{"version":3,"file":"webpack-chunks/chunk.8128.caac61abb06ff48c48c2.js","mappings":"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","sources":["webpack://wfp-usa/./node_modules/classnames/index.js","webpack://wfp-usa/./node_modules/domelementtype/lib/index.js","webpack://wfp-usa/./node_modules/domhandler/lib/node.js","webpack://wfp-usa/./node_modules/html-dom-parser/lib/client/constants.js","webpack://wfp-usa/./node_modules/html-dom-parser/lib/client/domparser.js","webpack://wfp-usa/./node_modules/html-dom-parser/lib/client/html-to-dom.js","webpack://wfp-usa/./node_modules/html-dom-parser/lib/client/utilities.js","webpack://wfp-usa/./node_modules/html-react-parser/index.js","webpack://wfp-usa/./node_modules/html-react-parser/lib/attributes-to-props.js","webpack://wfp-usa/./node_modules/html-react-parser/lib/dom-to-react.js","webpack://wfp-usa/./node_modules/html-react-parser/lib/utilities.js","webpack://wfp-usa/./node_modules/inline-style-parser/index.js","webpack://wfp-usa/./node_modules/react-property/lib/index.js","webpack://wfp-usa/./node_modules/react-property/lib/possibleStandardNamesOptimized.js","webpack://wfp-usa/./node_modules/style-to-js/cjs/index.js","webpack://wfp-usa/./node_modules/style-to-js/cjs/utilities.js","webpack://wfp-usa/./node_modules/style-to-object/index.js","webpack://wfp-usa/./node_modules/dom7/dom7.esm.js","webpack://wfp-usa/./node_modules/html-react-parser/index.mjs","webpack://wfp-usa/./node_modules/ssr-window/ssr-window.esm.js","webpack://wfp-usa/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://wfp-usa/./node_modules/swiper/core/breakpoints/index.js","webpack://wfp-usa/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://wfp-usa/./node_modules/swiper/core/check-overflow/index.js","webpack://wfp-usa/./node_modules/swiper/core/classes/addClasses.js","webpack://wfp-usa/./node_modules/swiper/core/classes/index.js","webpack://wfp-usa/./node_modules/swiper/core/classes/removeClasses.js","webpack://wfp-usa/./node_modules/swiper/core/core.js","webpack://wfp-usa/./node_modules/swiper/core/defaults.js","webpack://wfp-usa/./node_modules/swiper/core/events-emitter.js","webpack://wfp-usa/./node_modules/swiper/core/events/index.js","webpack://wfp-usa/./node_modules/swiper/core/events/onClick.js","webpack://wfp-usa/./node_modules/swiper/core/events/onResize.js","webpack://wfp-usa/./node_modules/swiper/core/events/onScroll.js","webpack://wfp-usa/./node_modules/swiper/core/events/onTouchEnd.js","webpack://wfp-usa/./node_modules/swiper/core/events/onTouchMove.js","webpack://wfp-usa/./node_modules/swiper/core/events/onTouchStart.js","webpack://wfp-usa/./node_modules/swiper/core/grab-cursor/index.js","webpack://wfp-usa/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://wfp-usa/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://wfp-usa/./node_modules/swiper/core/images/index.js","webpack://wfp-usa/./node_modules/swiper/core/images/loadImage.js","webpack://wfp-usa/./node_modules/swiper/core/images/preloadImages.js","webpack://wfp-usa/./node_modules/swiper/core/loop/index.js","webpack://wfp-usa/./node_modules/swiper/core/loop/loopCreate.js","webpack://wfp-usa/./node_modules/swiper/core/loop/loopDestroy.js","webpack://wfp-usa/./node_modules/swiper/core/loop/loopFix.js","webpack://wfp-usa/./node_modules/swiper/core/moduleExtendParams.js","webpack://wfp-usa/./node_modules/swiper/core/modules/observer/observer.js","webpack://wfp-usa/./node_modules/swiper/core/modules/resize/resize.js","webpack://wfp-usa/./node_modules/swiper/core/slide/index.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideNext.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slidePrev.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideReset.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideTo.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideToClosest.js","webpack://wfp-usa/./node_modules/swiper/core/slide/slideToLoop.js","webpack://wfp-usa/./node_modules/swiper/core/transition/index.js","webpack://wfp-usa/./node_modules/swiper/core/transition/setTransition.js","webpack://wfp-usa/./node_modules/swiper/core/transition/transitionEmit.js","webpack://wfp-usa/./node_modules/swiper/core/transition/transitionEnd.js","webpack://wfp-usa/./node_modules/swiper/core/transition/transitionStart.js","webpack://wfp-usa/./node_modules/swiper/core/translate/getTranslate.js","webpack://wfp-usa/./node_modules/swiper/core/translate/index.js","webpack://wfp-usa/./node_modules/swiper/core/translate/maxTranslate.js","webpack://wfp-usa/./node_modules/swiper/core/translate/minTranslate.js","webpack://wfp-usa/./node_modules/swiper/core/translate/setTranslate.js","webpack://wfp-usa/./node_modules/swiper/core/translate/translateTo.js","webpack://wfp-usa/./node_modules/swiper/core/update/index.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateProgress.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateSize.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateSlides.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://wfp-usa/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://wfp-usa/./node_modules/swiper/modules/a11y/a11y.js","webpack://wfp-usa/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://wfp-usa/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://wfp-usa/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://wfp-usa/./node_modules/swiper/modules/navigation/navigation.js","webpack://wfp-usa/./node_modules/swiper/modules/pagination/pagination.js","webpack://wfp-usa/./node_modules/swiper/react/context.js","webpack://wfp-usa/./node_modules/swiper/react/get-changed-params.js","webpack://wfp-usa/./node_modules/swiper/react/get-children.js","webpack://wfp-usa/./node_modules/swiper/react/get-params.js","webpack://wfp-usa/./node_modules/swiper/react/loop.js","webpack://wfp-usa/./node_modules/swiper/react/mount-swiper.js","webpack://wfp-usa/./node_modules/swiper/react/params-list.js","webpack://wfp-usa/./node_modules/swiper/react/swiper-slide.js","webpack://wfp-usa/./node_modules/swiper/react/swiper.js","webpack://wfp-usa/./node_modules/swiper/react/update-swiper.js","webpack://wfp-usa/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://wfp-usa/./node_modules/swiper/react/utils.js","webpack://wfp-usa/./node_modules/swiper/react/virtual.js","webpack://wfp-usa/./node_modules/swiper/shared/classes-to-selector.js","webpack://wfp-usa/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://wfp-usa/./node_modules/swiper/shared/create-shadow.js","webpack://wfp-usa/./node_modules/swiper/shared/dom.js","webpack://wfp-usa/./node_modules/swiper/shared/effect-init.js","webpack://wfp-usa/./node_modules/swiper/shared/effect-target.js","webpack://wfp-usa/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://wfp-usa/./node_modules/swiper/shared/get-browser.js","webpack://wfp-usa/./node_modules/swiper/shared/get-device.js","webpack://wfp-usa/./node_modules/swiper/shared/get-support.js","webpack://wfp-usa/./node_modules/swiper/shared/utils.js"],"sourcesContent":["/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar nodeTypes = new Map([\n [domelementtype_1.ElementType.Tag, 1],\n [domelementtype_1.ElementType.Script, 1],\n [domelementtype_1.ElementType.Style, 1],\n [domelementtype_1.ElementType.Directive, 1],\n [domelementtype_1.ElementType.Text, 3],\n [domelementtype_1.ElementType.CDATA, 4],\n [domelementtype_1.ElementType.Comment, 8],\n [domelementtype_1.ElementType.Root, 9],\n]);\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n /**\n *\n * @param type The type of the node.\n */\n function Node(type) {\n this.type = type;\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"nodeType\", {\n // Read-only aliases\n /**\n * [DOM spec](https://dom.spec.whatwg.org/#dom-node-nodetype)-compatible\n * node {@link type}.\n */\n get: function () {\n var _a;\n return (_a = nodeTypes.get(this.type)) !== null && _a !== void 0 ? _a : 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param type The type of the node\n * @param data The content of the data node\n */\n function DataNode(type, data) {\n var _this = _super.call(this, type) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text(data) {\n return _super.call(this, domelementtype_1.ElementType.Text, data) || this;\n }\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment(data) {\n return _super.call(this, domelementtype_1.ElementType.Comment, data) || this;\n }\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, domelementtype_1.ElementType.Directive, data) || this;\n _this.name = name;\n return _this;\n }\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param type Type of the node.\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(type, children) {\n var _this = _super.call(this, type) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document(children) {\n return _super.call(this, domelementtype_1.ElementType.Root, children) || this;\n }\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, type, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `NodeWithChildren` (has children), `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new NodeWithChildren(domelementtype_1.ElementType.CDATA, children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","/**\n * SVG elements are case-sensitive.\n *\n * @see {@link https://developer.mozilla.org/docs/Web/SVG/Element#SVG_elements_A_to_Z}\n */\nvar CASE_SENSITIVE_TAG_NAMES = [\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussainBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'linearGradient',\n 'radialGradient',\n 'textPath'\n];\n\nmodule.exports = {\n CASE_SENSITIVE_TAG_NAMES: CASE_SENSITIVE_TAG_NAMES\n};\n","// constants\nvar HTML = 'html';\nvar HEAD = 'head';\nvar BODY = 'body';\nvar FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1>\nvar HEAD_TAG_REGEX = /<head.*>/i;\nvar BODY_TAG_REGEX = /<body.*>/i;\n\n// falls back to `parseFromString` if `createHTMLDocument` cannot be used\nvar parseFromDocument = function () {\n throw new Error(\n 'This browser does not support `document.implementation.createHTMLDocument`'\n );\n};\n\nvar parseFromString = function () {\n throw new Error(\n 'This browser does not support `DOMParser.prototype.parseFromString`'\n );\n};\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nif (typeof window.DOMParser === 'function') {\n var domParser = new window.DOMParser();\n var mimeType = 'text/html';\n\n /**\n * Creates an HTML document using `DOMParser.parseFromString`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromString = function (html, tagName) {\n if (tagName) {\n html = '<' + tagName + '>' + html + '</' + tagName + '>';\n }\n\n return domParser.parseFromString(html, mimeType);\n };\n\n parseFromDocument = parseFromString;\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\nif (document.implementation) {\n var isIE = require('./utilities').isIE;\n\n // title parameter is required in IE\n // https://msdn.microsoft.com/en-us/library/ff975457(v=vs.85).aspx\n var doc = document.implementation.createHTMLDocument(\n isIE() ? 'html-dom-parser' : undefined\n );\n\n /**\n * Use HTML document created by `document.implementation.createHTMLDocument`.\n *\n * @param {string} html - The HTML string.\n * @param {string} [tagName] - The element to render the HTML (with 'body' as fallback).\n * @return {HTMLDocument}\n */\n parseFromDocument = function (html, tagName) {\n if (tagName) {\n doc.documentElement.getElementsByTagName(tagName)[0].innerHTML = html;\n return doc;\n }\n\n doc.documentElement.innerHTML = html;\n return doc;\n };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nvar template = document.createElement('template');\nvar parseFromTemplate;\n\nif (template.content) {\n /**\n * Uses a template element (content fragment) to parse HTML.\n *\n * @param {string} html - The HTML string.\n * @return {NodeList}\n */\n parseFromTemplate = function (html) {\n template.innerHTML = html;\n return template.content.childNodes;\n };\n}\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param {string} html - HTML markup.\n * @return {NodeList}\n */\nfunction domparser(html) {\n var firstTagName;\n var match = html.match(FIRST_TAG_REGEX);\n\n if (match && match[1]) {\n firstTagName = match[1].toLowerCase();\n }\n\n var doc;\n var element;\n var elements;\n\n switch (firstTagName) {\n case HTML:\n doc = parseFromString(html);\n\n // the created document may come with filler head/body elements,\n // so make sure to remove them if they don't actually exist\n if (!HEAD_TAG_REGEX.test(html)) {\n element = doc.getElementsByTagName(HEAD)[0];\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n if (!BODY_TAG_REGEX.test(html)) {\n element = doc.getElementsByTagName(BODY)[0];\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n\n return doc.getElementsByTagName(HTML);\n\n case HEAD:\n case BODY:\n elements = parseFromDocument(html).getElementsByTagName(firstTagName);\n\n // if there's a sibling element, then return both elements\n if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {\n return elements[0].parentNode.childNodes;\n }\n return elements;\n\n // low-level tag or text\n default:\n if (parseFromTemplate) {\n return parseFromTemplate(html);\n }\n\n return parseFromDocument(html, BODY).getElementsByTagName(BODY)[0]\n .childNodes;\n }\n}\n\nmodule.exports = domparser;\n","var domparser = require('./domparser');\nvar formatDOM = require('./utilities').formatDOM;\n\nvar DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., <!doctype html>\n\n/**\n * Parses HTML string to DOM nodes in browser.\n *\n * @param {string} html - HTML markup.\n * @return {DomElement[]} - DOM elements.\n */\nfunction HTMLDOMParser(html) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (html === '') {\n return [];\n }\n\n // match directive\n var match = html.match(DIRECTIVE_REGEX);\n var directive;\n\n if (match && match[1]) {\n directive = match[1];\n }\n\n return formatDOM(domparser(html), null, directive);\n}\n\nmodule.exports = HTMLDOMParser;\n","var constants = require('./constants');\nvar domhandler = require('domhandler/lib/node');\n\nvar CASE_SENSITIVE_TAG_NAMES = constants.CASE_SENSITIVE_TAG_NAMES;\n\nvar Comment = domhandler.Comment;\nvar Element = domhandler.Element;\nvar ProcessingInstruction = domhandler.ProcessingInstruction;\nvar Text = domhandler.Text;\n\nvar caseSensitiveTagNamesMap = {};\nvar tagName;\n\nfor (var i = 0, len = CASE_SENSITIVE_TAG_NAMES.length; i < len; i++) {\n tagName = CASE_SENSITIVE_TAG_NAMES[i];\n caseSensitiveTagNamesMap[tagName.toLowerCase()] = tagName;\n}\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param {string} tagName - Tag name in lowercase.\n * @return {string|undefined} - Case-sensitive tag name.\n */\nfunction getCaseSensitiveTagName(tagName) {\n return caseSensitiveTagNamesMap[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param {NamedNodeMap} attributes - List of attributes.\n * @return {object} - Map of attribute name to value.\n */\nfunction formatAttributes(attributes) {\n var result = {};\n var attribute;\n // `NamedNodeMap` is array-like\n for (var i = 0, len = attributes.length; i < len; i++) {\n attribute = attributes[i];\n result[attribute.name] = attribute.value;\n }\n return result;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param {string} tagName - Lowercase tag name.\n * @return {string} - Formatted tag name.\n */\nfunction formatTagName(tagName) {\n tagName = tagName.toLowerCase();\n var caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n if (caseSensitiveTagName) {\n return caseSensitiveTagName;\n }\n return tagName;\n}\n\n/**\n * Transforms DOM nodes to `domhandler` nodes.\n *\n * @param {NodeList} nodes - DOM nodes.\n * @param {Element|null} [parent=null] - Parent node.\n * @param {string} [directive] - Directive.\n * @return {Array<Comment|Element|ProcessingInstruction|Text>}\n */\nfunction formatDOM(nodes, parent, directive) {\n parent = parent || null;\n var result = [];\n\n for (var index = 0, len = nodes.length; index < len; index++) {\n var node = nodes[index];\n var current;\n\n // set the node data given the type\n switch (node.nodeType) {\n case 1:\n // script, style, or tag\n current = new Element(\n formatTagName(node.nodeName),\n formatAttributes(node.attributes)\n );\n current.children = formatDOM(node.childNodes, current);\n break;\n\n case 3:\n current = new Text(node.nodeValue);\n break;\n\n case 8:\n current = new Comment(node.nodeValue);\n break;\n\n default:\n continue;\n }\n\n // set previous node next\n var prev = result[index - 1] || null;\n if (prev) {\n prev.next = current;\n }\n\n // set properties for current node\n current.parent = parent;\n current.prev = prev;\n current.next = null;\n\n result.push(current);\n }\n\n if (directive) {\n current = new ProcessingInstruction(\n directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n directive\n );\n current.next = result[0] || null;\n current.parent = parent;\n result.unshift(current);\n\n if (result[1]) {\n result[1].prev = result[0];\n }\n }\n\n return result;\n}\n\n/**\n * Detects if browser is Internet Explorer.\n *\n * @return {boolean} - Whether IE is detected.\n */\nfunction isIE() {\n return /(MSIE |Trident\\/|Edge\\/)/.test(navigator.userAgent);\n}\n\nmodule.exports = {\n formatAttributes: formatAttributes,\n formatDOM: formatDOM,\n isIE: isIE\n};\n","var domToReact = require('./lib/dom-to-react');\nvar attributesToProps = require('./lib/attributes-to-props');\nvar htmlToDOM = require('html-dom-parser');\n\n// support backwards compatibility for ES Module\nhtmlToDOM =\n /* istanbul ignore next */\n typeof htmlToDOM.default === 'function' ? htmlToDOM.default : htmlToDOM;\n\nvar domParserOptions = { lowerCaseAttributeNames: false };\n\n/**\n * Converts HTML string to React elements.\n *\n * @param {String} html - HTML string.\n * @param {Object} [options] - Parser options.\n * @param {Object} [options.htmlparser2] - htmlparser2 options.\n * @param {Object} [options.library] - Library for React, Preact, etc.\n * @param {Function} [options.replace] - Replace method.\n * @return {JSX.Element|JSX.Element[]|String} - React element(s), empty array, or string.\n */\nfunction HTMLReactParser(html, options) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n if (html === '') {\n return [];\n }\n options = options || {};\n return domToReact(\n htmlToDOM(html, options.htmlparser2 || domParserOptions),\n options\n );\n}\n\nHTMLReactParser.domToReact = domToReact;\nHTMLReactParser.htmlToDOM = htmlToDOM;\nHTMLReactParser.attributesToProps = attributesToProps;\nHTMLReactParser.Element = require('domhandler/lib/node').Element;\n\n// support CommonJS and ES Modules\nmodule.exports = HTMLReactParser;\nmodule.exports.default = HTMLReactParser;\n","var reactProperty = require('react-property');\nvar utilities = require('./utilities');\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param {object} [attributes={}] - HTML/SVG DOM attributes.\n * @return {object} - React props.\n */\nmodule.exports = function attributesToProps(attributes) {\n attributes = attributes || {};\n\n var valueOnlyInputs = {\n reset: true,\n submit: true\n };\n\n var attributeName;\n var attributeNameLowerCased;\n var attributeValue;\n var propName;\n var propertyInfo;\n var props = {};\n var inputIsValueOnly = attributes.type && valueOnlyInputs[attributes.type];\n\n for (attributeName in attributes) {\n attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (reactProperty.isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n attributeNameLowerCased = attributeName.toLowerCase();\n propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n propertyInfo = reactProperty.getPropertyInfo(propName);\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n // https://reactjs.org/docs/uncontrolled-components.html\n if (\n (propName === 'checked' || propName === 'value') &&\n !inputIsValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo && propertyInfo.type) {\n case reactProperty.BOOLEAN:\n props[propName] = true;\n break;\n case reactProperty.OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (utilities.PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n utilities.setStyleProp(attributes.style, props);\n\n return props;\n};\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param {string} attributeName - Lowercased attribute name.\n * @return {string}\n */\nfunction getPropName(attributeName) {\n return reactProperty.possibleStandardNames[attributeName];\n}\n","var React = require('react');\nvar attributesToProps = require('./attributes-to-props');\nvar utilities = require('./utilities');\n\nvar setStyleProp = utilities.setStyleProp;\nvar canTextBeChildOfNode = utilities.canTextBeChildOfNode;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param {DomElement[]} nodes - DOM nodes.\n * @param {object} [options={}] - Options.\n * @param {Function} [options.replace] - Replacer.\n * @param {object} [options.library] - Library (React/Preact/etc.).\n * @return {string|JSX.Element|JSX.Element[]}\n */\nfunction domToReact(nodes, options) {\n options = options || {};\n\n var library = options.library || React;\n var cloneElement = library.cloneElement;\n var createElement = library.createElement;\n var isValidElement = library.isValidElement;\n\n var result = [];\n var node;\n var isWhitespace;\n var hasReplace = typeof options.replace === 'function';\n var replaceElement;\n var props;\n var children;\n var trim = options.trim;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n node = nodes[i];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n replaceElement = options.replace(node);\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://fb.me/react-warning-keys\n if (len > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key || i\n });\n }\n result.push(replaceElement);\n continue;\n }\n }\n\n if (node.type === 'text') {\n isWhitespace = !node.data.trim().length;\n\n if (isWhitespace && node.parent && !canTextBeChildOfNode(node.parent)) {\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n continue;\n }\n\n if (trim && isWhitespace) {\n // Trim is enabled and we have a whitespace node\n // so skip it\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n result.push(node.data);\n continue;\n }\n\n props = node.attribs;\n if (skipAttributesToProps(node)) {\n setStyleProp(props.style, props);\n } else if (props) {\n props = attributesToProps(props);\n }\n\n children = null;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in <script> or <style> from being escaped\n // https://reactjs.org/docs/dom-elements.html#dangerouslysetinnerhtml\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: node.children[0].data\n };\n }\n break;\n\n case 'tag':\n // setting textarea value in children is an antipattern in React\n // https://reactjs.org/docs/forms.html#the-textarea-tag\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = node.children[0].data;\n } else if (node.children && node.children.length) {\n // continue recursion of creating React elements (if applicable)\n children = domToReact(node.children, options);\n }\n break;\n\n // skip all other cases (e.g., comment)\n default:\n continue;\n }\n\n // set \"key\" prop for sibling elements\n // https://fb.me/react-warning-keys\n if (len > 1) {\n props.key = i;\n }\n\n result.push(createElement(node.name, props, children));\n }\n\n return result.length === 1 ? result[0] : result;\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param {DomElement} node\n * @return {boolean}\n */\nfunction skipAttributesToProps(node) {\n return (\n utilities.PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n utilities.isCustomComponent(node.name, node.attribs)\n );\n}\n\nmodule.exports = domToReact;\n","var React = require('react');\nvar styleToJS = require('style-to-js').default;\n\n/**\n * Swap key with value in an object.\n *\n * @param {Object} obj - The object.\n * @param {Function} [override] - The override method.\n * @return {Object} - The inverted object.\n */\nfunction invertObject(obj, override) {\n if (!obj || typeof obj !== 'object') {\n throw new TypeError('First argument must be an object');\n }\n\n var key;\n var value;\n var isOverridePresent = typeof override === 'function';\n var overrides = {};\n var result = {};\n\n for (key in obj) {\n value = obj[key];\n\n if (isOverridePresent) {\n overrides = override(key, value);\n if (overrides && overrides.length === 2) {\n result[overrides[0]] = overrides[1];\n continue;\n }\n }\n\n if (typeof value === 'string') {\n result[value] = key;\n }\n }\n\n return result;\n}\n\n/**\n * Check if a given tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param {string} tagName - The name of the html tag.\n * @param {Object} props - The props being passed to the element.\n * @return {boolean}\n */\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return props && typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\nvar styleToJSOptions = { reactCompat: true };\n\n/**\n * Sets style prop.\n *\n * @param {null|undefined|string} style\n * @param {object} props\n */\nfunction setStyleProp(style, props) {\n if (style === null || style === undefined) {\n return;\n }\n try {\n props.style = styleToJS(style, styleToJSOptions);\n } catch (err) {\n props.style = {};\n }\n}\n\n/**\n * @constant {boolean}\n * @see {@link https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html}\n */\nvar PRESERVE_CUSTOM_ATTRIBUTES = React.version.split('.')[0] >= 16;\n\n// Taken from\n// https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\nvar elementsWithNoTextChildren = new Set([\n 'tr',\n 'tbody',\n 'thead',\n 'tfoot',\n 'colgroup',\n 'table',\n 'head',\n 'html',\n 'frameset'\n]);\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param {DomElement} node\n * @returns {boolean}\n */\nfunction canTextBeChildOfNode(node) {\n return !elementsWithNoTextChildren.has(node.name);\n}\n\nmodule.exports = {\n PRESERVE_CUSTOM_ATTRIBUTES: PRESERVE_CUSTOM_ATTRIBUTES,\n invertObject: invertObject,\n isCustomComponent: isCustomComponent,\n setStyleProp: setStyleProp,\n canTextBeChildOfNode: canTextBeChildOfNode,\n elementsWithNoTextChildren: elementsWithNoTextChildren\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\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\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n attributeName = _ref2[1];\n\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function capitalize(token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\nvar _require = require('../lib/possibleStandardNamesOptimized'),\n CAMELCASE = _require.CAMELCASE,\n SAME = _require.SAME,\n possibleStandardNamesOptimized = _require.possibleStandardNames;\n\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see {@link https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25}\n *\n * @param {string}\n * @return {boolean}\n */\n\nvar isCustomAttribute = RegExp.prototype.test.bind( // eslint-disable-next-line no-misleading-character-class\nnew RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$'));\nvar possibleStandardNames = Object.keys(possibleStandardNamesOptimized).reduce(function (accumulator, standardName) {\n var propName = possibleStandardNamesOptimized[standardName];\n\n if (propName === SAME) {\n accumulator[standardName] = standardName;\n } else if (propName === CAMELCASE) {\n accumulator[standardName.toLowerCase()] = standardName;\n } else {\n accumulator[standardName] = propName;\n }\n\n return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n","// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n accept: 0,\n acceptCharset: 1,\n 'accept-charset': 'acceptCharset',\n accessKey: 1,\n action: 0,\n allowFullScreen: 1,\n alt: 0,\n as: 0,\n async: 0,\n autoCapitalize: 1,\n autoComplete: 1,\n autoCorrect: 1,\n autoFocus: 1,\n autoPlay: 1,\n autoSave: 1,\n capture: 0,\n cellPadding: 1,\n cellSpacing: 1,\n challenge: 0,\n charSet: 1,\n checked: 0,\n children: 0,\n cite: 0,\n class: 'className',\n classID: 1,\n className: 1,\n cols: 0,\n colSpan: 1,\n content: 0,\n contentEditable: 1,\n contextMenu: 1,\n controls: 0,\n controlsList: 1,\n coords: 0,\n crossOrigin: 1,\n dangerouslySetInnerHTML: 1,\n data: 0,\n dateTime: 1,\n default: 0,\n defaultChecked: 1,\n defaultValue: 1,\n defer: 0,\n dir: 0,\n disabled: 0,\n disablePictureInPicture: 1,\n disableRemotePlayback: 1,\n download: 0,\n draggable: 0,\n encType: 1,\n enterKeyHint: 1,\n for: 'htmlFor',\n form: 0,\n formMethod: 1,\n formAction: 1,\n formEncType: 1,\n formNoValidate: 1,\n formTarget: 1,\n frameBorder: 1,\n headers: 0,\n height: 0,\n hidden: 0,\n high: 0,\n href: 0,\n hrefLang: 1,\n htmlFor: 1,\n httpEquiv: 1,\n 'http-equiv': 'httpEquiv',\n icon: 0,\n id: 0,\n innerHTML: 1,\n inputMode: 1,\n integrity: 0,\n is: 0,\n itemID: 1,\n itemProp: 1,\n itemRef: 1,\n itemScope: 1,\n itemType: 1,\n keyParams: 1,\n keyType: 1,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 0,\n low: 0,\n manifest: 0,\n marginWidth: 1,\n marginHeight: 1,\n max: 0,\n maxLength: 1,\n media: 0,\n mediaGroup: 1,\n method: 0,\n min: 0,\n minLength: 1,\n multiple: 0,\n muted: 0,\n name: 0,\n noModule: 1,\n nonce: 0,\n noValidate: 1,\n open: 0,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 1,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 1,\n readOnly: 1,\n referrerPolicy: 1,\n rel: 0,\n required: 0,\n reversed: 0,\n role: 0,\n rows: 0,\n rowSpan: 1,\n sandbox: 0,\n scope: 0,\n scoped: 0,\n scrolling: 0,\n seamless: 0,\n selected: 0,\n shape: 0,\n size: 0,\n sizes: 0,\n span: 0,\n spellCheck: 1,\n src: 0,\n srcDoc: 1,\n srcLang: 1,\n srcSet: 1,\n start: 0,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 1,\n target: 0,\n title: 0,\n type: 0,\n useMap: 1,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n accentHeight: 1,\n 'accent-height': 'accentHeight',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 1,\n 'alignment-baseline': 'alignmentBaseline',\n allowReorder: 1,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 1,\n 'arabic-form': 'arabicForm',\n ascent: 0,\n attributeName: 1,\n attributeType: 1,\n autoReverse: 1,\n azimuth: 0,\n baseFrequency: 1,\n baselineShift: 1,\n 'baseline-shift': 'baselineShift',\n baseProfile: 1,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 1,\n capHeight: 1,\n 'cap-height': 'capHeight',\n clip: 0,\n clipPath: 1,\n 'clip-path': 'clipPath',\n clipPathUnits: 1,\n clipRule: 1,\n 'clip-rule': 'clipRule',\n color: 0,\n colorInterpolation: 1,\n 'color-interpolation': 'colorInterpolation',\n colorInterpolationFilters: 1,\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorProfile: 1,\n 'color-profile': 'colorProfile',\n colorRendering: 1,\n 'color-rendering': 'colorRendering',\n contentScriptType: 1,\n contentStyleType: 1,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n datatype: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 1,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 1,\n 'dominant-baseline': 'dominantBaseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 1,\n elevation: 0,\n enableBackground: 1,\n 'enable-background': 'enableBackground',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 1,\n fill: 0,\n fillOpacity: 1,\n 'fill-opacity': 'fillOpacity',\n fillRule: 1,\n 'fill-rule': 'fillRule',\n filter: 0,\n filterRes: 1,\n filterUnits: 1,\n floodOpacity: 1,\n 'flood-opacity': 'floodOpacity',\n floodColor: 1,\n 'flood-color': 'floodColor',\n focusable: 0,\n fontFamily: 1,\n 'font-family': 'fontFamily',\n fontSize: 1,\n 'font-size': 'fontSize',\n fontSizeAdjust: 1,\n 'font-size-adjust': 'fontSizeAdjust',\n fontStretch: 1,\n 'font-stretch': 'fontStretch',\n fontStyle: 1,\n 'font-style': 'fontStyle',\n fontVariant: 1,\n 'font-variant': 'fontVariant',\n fontWeight: 1,\n 'font-weight': 'fontWeight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 1,\n 'glyph-name': 'glyphName',\n glyphOrientationHorizontal: 1,\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphOrientationVertical: 1,\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphRef: 1,\n gradientTransform: 1,\n gradientUnits: 1,\n hanging: 0,\n horizAdvX: 1,\n 'horiz-adv-x': 'horizAdvX',\n horizOriginX: 1,\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 0,\n imageRendering: 1,\n 'image-rendering': 'imageRendering',\n in2: 0,\n in: 0,\n inlist: 0,\n intercept: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n k: 0,\n kernelMatrix: 1,\n kernelUnitLength: 1,\n kerning: 0,\n keyPoints: 1,\n keySplines: 1,\n keyTimes: 1,\n lengthAdjust: 1,\n letterSpacing: 1,\n 'letter-spacing': 'letterSpacing',\n lightingColor: 1,\n 'lighting-color': 'lightingColor',\n limitingConeAngle: 1,\n local: 0,\n markerEnd: 1,\n 'marker-end': 'markerEnd',\n markerHeight: 1,\n markerMid: 1,\n 'marker-mid': 'markerMid',\n markerStart: 1,\n 'marker-start': 'markerStart',\n markerUnits: 1,\n markerWidth: 1,\n mask: 0,\n maskContentUnits: 1,\n maskUnits: 1,\n mathematical: 0,\n mode: 0,\n numOctaves: 1,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 1,\n 'overline-position': 'overlinePosition',\n overlineThickness: 1,\n 'overline-thickness': 'overlineThickness',\n paintOrder: 1,\n 'paint-order': 'paintOrder',\n panose1: 0,\n 'panose-1': 'panose1',\n pathLength: 1,\n patternContentUnits: 1,\n patternTransform: 1,\n patternUnits: 1,\n pointerEvents: 1,\n 'pointer-events': 'pointerEvents',\n points: 0,\n pointsAtX: 1,\n pointsAtY: 1,\n pointsAtZ: 1,\n prefix: 0,\n preserveAlpha: 1,\n preserveAspectRatio: 1,\n primitiveUnits: 1,\n property: 0,\n r: 0,\n radius: 0,\n refX: 1,\n refY: 1,\n renderingIntent: 1,\n 'rendering-intent': 'renderingIntent',\n repeatCount: 1,\n repeatDur: 1,\n requiredExtensions: 1,\n requiredFeatures: 1,\n resource: 0,\n restart: 0,\n result: 0,\n results: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n security: 0,\n seed: 0,\n shapeRendering: 1,\n 'shape-rendering': 'shapeRendering',\n slope: 0,\n spacing: 0,\n specularConstant: 1,\n specularExponent: 1,\n speed: 0,\n spreadMethod: 1,\n startOffset: 1,\n stdDeviation: 1,\n stemh: 0,\n stemv: 0,\n stitchTiles: 1,\n stopColor: 1,\n 'stop-color': 'stopColor',\n stopOpacity: 1,\n 'stop-opacity': 'stopOpacity',\n strikethroughPosition: 1,\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughThickness: 1,\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 1,\n 'stroke-dasharray': 'strokeDasharray',\n strokeDashoffset: 1,\n 'stroke-dashoffset': 'strokeDashoffset',\n strokeLinecap: 1,\n 'stroke-linecap': 'strokeLinecap',\n strokeLinejoin: 1,\n 'stroke-linejoin': 'strokeLinejoin',\n strokeMiterlimit: 1,\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokeWidth: 1,\n 'stroke-width': 'strokeWidth',\n strokeOpacity: 1,\n 'stroke-opacity': 'strokeOpacity',\n suppressContentEditableWarning: 1,\n suppressHydrationWarning: 1,\n surfaceScale: 1,\n systemLanguage: 1,\n tableValues: 1,\n targetX: 1,\n targetY: 1,\n textAnchor: 1,\n 'text-anchor': 'textAnchor',\n textDecoration: 1,\n 'text-decoration': 'textDecoration',\n textLength: 1,\n textRendering: 1,\n 'text-rendering': 'textRendering',\n to: 0,\n transform: 0,\n typeof: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 1,\n 'underline-position': 'underlinePosition',\n underlineThickness: 1,\n 'underline-thickness': 'underlineThickness',\n unicode: 0,\n unicodeBidi: 1,\n 'unicode-bidi': 'unicodeBidi',\n unicodeRange: 1,\n 'unicode-range': 'unicodeRange',\n unitsPerEm: 1,\n 'units-per-em': 'unitsPerEm',\n unselectable: 0,\n vAlphabetic: 1,\n 'v-alphabetic': 'vAlphabetic',\n values: 0,\n vectorEffect: 1,\n 'vector-effect': 'vectorEffect',\n version: 0,\n vertAdvY: 1,\n 'vert-adv-y': 'vertAdvY',\n vertOriginX: 1,\n 'vert-origin-x': 'vertOriginX',\n vertOriginY: 1,\n 'vert-origin-y': 'vertOriginY',\n vHanging: 1,\n 'v-hanging': 'vHanging',\n vIdeographic: 1,\n 'v-ideographic': 'vIdeographic',\n viewBox: 1,\n viewTarget: 1,\n visibility: 0,\n vMathematical: 1,\n 'v-mathematical': 'vMathematical',\n vocab: 0,\n widths: 0,\n wordSpacing: 1,\n 'word-spacing': 'wordSpacing',\n writingMode: 1,\n 'writing-mode': 'writingMode',\n x1: 0,\n x2: 0,\n x: 0,\n xChannelSelector: 1,\n xHeight: 1,\n 'x-height': 'xHeight',\n xlinkActuate: 1,\n 'xlink:actuate': 'xlinkActuate',\n xlinkArcrole: 1,\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkHref: 1,\n 'xlink:href': 'xlinkHref',\n xlinkRole: 1,\n 'xlink:role': 'xlinkRole',\n xlinkShow: 1,\n 'xlink:show': 'xlinkShow',\n xlinkTitle: 1,\n 'xlink:title': 'xlinkTitle',\n xlinkType: 1,\n 'xlink:type': 'xlinkType',\n xmlBase: 1,\n 'xml:base': 'xmlBase',\n xmlLang: 1,\n 'xml:lang': 'xmlLang',\n xmlns: 0,\n 'xml:space': 'xmlSpace',\n xmlnsXlink: 1,\n 'xmlns:xlink': 'xmlnsXlink',\n xmlSpace: 1,\n y1: 0,\n y2: 0,\n y: 0,\n yChannelSelector: 1,\n z: 0,\n zoomAndPan: 1\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nexports.__esModule = true;\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n style_to_object_1[\"default\"](style, function (property, value) {\n if (property && value) {\n output[utilities_1.camelCase(property, options)] = value;\n }\n });\n return output;\n}\nexports[\"default\"] = StyleToJS;\n","\"use strict\";\nexports.__esModule = true;\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\nvar trimHyphen = function (match, prefix) { return prefix + \"-\"; };\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (!options.reactCompat) {\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\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 }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import HTMLReactParser from './index.js';\n\nexport var domToReact = HTMLReactParser.domToReact;\nexport var htmlToDOM = HTMLReactParser.htmlToDOM;\nexport var attributesToProps = HTMLReactParser.attributesToProps;\nexport var Element = HTMLReactParser.Element;\n\nexport default HTMLReactParser;\n","/**\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 &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\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}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\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\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\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\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\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\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","function 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}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\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 }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor() {\n let el;\n let params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\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\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\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 }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\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\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\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\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\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: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\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'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\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\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\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(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\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\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\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\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\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\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\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\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\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(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\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\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'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\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 default Swiper;","export default {\n init: true,\n direction: 'horizontal',\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 // 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: 0,\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 // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\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\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\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\n emit() {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\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\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\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\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\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 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 swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function 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\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\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\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\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\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\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\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\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\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\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\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\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}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function 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 let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && 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\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\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\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\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 return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // 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\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\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 (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\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\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getWindow } from 'ssr-window';\nexport default function 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\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\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\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\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}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\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\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\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\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 }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\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\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\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\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\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\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 } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = 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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\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\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\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 = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\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\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\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\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\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}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function 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\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\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; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\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\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\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\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function 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\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(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 } // Find new height from highest slide in view\n\n\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 } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\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\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('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\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('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}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\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\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\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 = $wrapperEl.children(`.${swiper.params.slideClass}`);\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\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\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\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\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\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(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\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\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\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.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\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\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\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\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; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.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\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n const handleFocus = e => {\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n }\n\n on('beforeInit', () => {\n liveRegion = $(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function 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 }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\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 const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\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\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\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 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\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\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\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\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\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.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](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 const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\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 paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\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 = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](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 {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(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.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\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\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\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}\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 (child.type && child.type.displayName === 'SwiperSlide') {\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\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\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 events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n\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\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_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', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from './get-params.js';\nimport { mountSwiper } from './mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\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\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\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\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\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\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\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\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); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\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\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], 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 }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import { isObject, extend } from './utils.js';\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');\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\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\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\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\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\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\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\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\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\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}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","import React from 'react';\n\nfunction 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\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","export default function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`<div class=\"swiper-slide-shadow${side ? `-${side}` : ''}\"></div>`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformEl,\n allSlides\n } = _ref;\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\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\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\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\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'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\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\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\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\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\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\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\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\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\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\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","define","amd","window","ElementType","defineProperty","value","Doctype","CDATA","Tag","Style","Script","Comment","Directive","Text","Root","isTag","elem","type","extendStatics","__extends","this","d","b","setPrototypeOf","__proto__","p","TypeError","String","__","constructor","create","__assign","assign","t","s","n","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","Element","Document","NodeWithChildren","ProcessingInstruction","DataNode","Node","domelementtype_1","nodeTypes","Map","parent","prev","next","startIndex","endIndex","get","_a","enumerable","configurable","set","recursive","_super","data","_this","name","children","attribs","keys","map","_b","namespace","prefix","node","result","cloneChildren","clone_1","forEach","child","clone_2","clone_3","Error","concat","instruction","sourceCodeLocation","childs","CASE_SENSITIVE_TAG_NAMES","HTML","HEAD","BODY","FIRST_TAG_REGEX","HEAD_TAG_REGEX","BODY_TAG_REGEX","parseFromDocument","parseFromString","DOMParser","domParser","html","tagName","document","implementation","isIE","doc","createHTMLDocument","undefined","documentElement","getElementsByTagName","innerHTML","parseFromTemplate","template","createElement","content","childNodes","firstTagName","element","elements","match","toLowerCase","test","parentNode","removeChild","domparser","formatDOM","DIRECTIVE_REGEX","directive","constants","domhandler","caseSensitiveTagNamesMap","len","formatAttributes","attributes","attribute","formatTagName","caseSensitiveTagName","getCaseSensitiveTagName","nodes","index","current","nodeType","nodeName","nodeValue","substring","indexOf","unshift","navigator","userAgent","domToReact","attributesToProps","htmlToDOM","domParserOptions","lowerCaseAttributeNames","HTMLReactParser","options","htmlparser2","reactProperty","utilities","getPropName","attributeName","possibleStandardNames","attributeNameLowerCased","attributeValue","propName","propertyInfo","props","inputIsValueOnly","reset","submit","isCustomAttribute","getPropertyInfo","BOOLEAN","OVERLOADED_BOOLEAN","PRESERVE_CUSTOM_ATTRIBUTES","setStyleProp","style","React","canTextBeChildOfNode","skipAttributesToProps","isCustomComponent","isWhitespace","replaceElement","library","cloneElement","isValidElement","hasReplace","replace","trim","dangerouslySetInnerHTML","__html","defaultValue","styleToJS","styleToJSOptions","reactCompat","version","split","elementsWithNoTextChildren","Set","invertObject","obj","override","isOverridePresent","overrides","is","err","has","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","lineno","column","updatePosition","lines","lastIndexOf","position","start","line","Position","whitespace","end","source","errorsList","error","msg","reason","filename","silent","re","m","exec","slice","comments","rules","c","comment","pos","charAt","declaration","prop","val","ret","property","decl","decls","declarations","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","_nonIterableRest","arr2","PropertyInfoRecord","mustUseProperty","attributeNamespace","sanitizeURL","removeEmptyString","acceptsBooleans","propertyName","properties","_ref","_ref2","CAMELIZE","capitalize","token","toUpperCase","_require","CAMELCASE","SAME","possibleStandardNamesOptimized","RegExp","bind","reduce","accumulator","standardName","BOOLEANISH_STRING","NUMERIC","POSITIVE_NUMERIC","RESERVED","STRING","accept","acceptCharset","accessKey","action","allowFullScreen","alt","as","async","autoCapitalize","autoComplete","autoCorrect","autoFocus","autoPlay","autoSave","capture","cellPadding","cellSpacing","challenge","charSet","checked","cite","class","classID","className","cols","colSpan","contentEditable","contextMenu","controls","controlsList","coords","crossOrigin","dateTime","defaultChecked","defer","dir","disabled","disablePictureInPicture","disableRemotePlayback","download","draggable","encType","enterKeyHint","for","form","formMethod","formAction","formEncType","formNoValidate","formTarget","frameBorder","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","icon","id","inputMode","integrity","itemID","itemProp","itemRef","itemScope","itemType","keyParams","keyType","kind","label","lang","list","loop","low","manifest","marginWidth","marginHeight","max","maxLength","media","mediaGroup","method","min","minLength","multiple","muted","noModule","nonce","noValidate","open","optimum","pattern","placeholder","playsInline","poster","preload","profile","radioGroup","readOnly","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scope","scoped","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","step","summary","tabIndex","target","title","useMap","width","wmode","wrap","about","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","datatype","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodOpacity","floodColor","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in2","in","inlist","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","resource","restart","results","rotate","rx","ry","scale","security","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeWidth","strokeOpacity","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","typeof","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","unselectable","vAlphabetic","values","vectorEffect","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewBox","viewTarget","visibility","vMathematical","vocab","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","__importDefault","mod","__esModule","style_to_object_1","utilities_1","output","camelCase","CUSTOM_PROPERTY_REGEX","HYPHEN_REGEX","NO_HYPHEN_REGEX","VENDOR_PREFIX_REGEX","character","trimHyphen","skipCamelCase","parse","hasIterator","Dom7","items","super","proto","makeReactive","arrayFlat","res","el","arrayFilter","callback","$","selector","context","toCreate","tempParent","a","querySelectorAll","qsa","uniqueArray","arrayUnique","addClass","classList","add","removeClass","remove","toggleClass","toggle","hasClass","contains","attr","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","handleLiveEvent","e","eventData","dom7EventData","parents","handleEvent","events","j","event","dom7LiveListeners","proxyListener","addEventListener","dom7Listeners","off","handlers","handler","dom7proxy","removeEventListener","splice","trigger","CustomEvent","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","getPropertyValue","outerHeight","offsetHeight","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","getComputedStyle","css","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","closest","find","foundElements","found","fn","noTrigger","shortcut","isObject","extend","ssrDocument","activeElement","querySelector","getElementById","createEvent","createElementNS","importNode","location","hash","host","hostname","pathname","protocol","search","getDocument","ssrWindow","history","screen","matchMedia","requestAnimationFrame","setTimeout","clearTimeout","getWindow","win","getBreakpoint","breakpoints","base","containerEl","breakpoint","currentHeight","innerHeight","clientHeight","point","minRatio","substr","sort","parseInt","clientWidth","setBreakpoint","isGridEnabled","swiper","params","grid","activeIndex","initialized","loopedSlides","$el","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","slidesPerView","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","disable","enable","emit","loopDestroy","loopCreate","updateSlides","slideTo","checkOverflow","isLocked","wasLocked","slidesOffsetBefore","lastSlideIndex","slides","lastSlideRightEdge","slidesGrid","slidesSizesGrid","snapGrid","isEnd","addClasses","rtl","device","support","suffixes","entries","resultClasses","item","prepareClasses","touch","freeMode","autoHeight","android","ios","cssMode","centeredSlides","removeClasses","prototypes","eventsEmitter","update","translate","slide","grabCursor","images","extendedDefaults","Swiper","_len","_key","swipers","newParams","__swiper__","browser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","extendParams","once","swiperParams","passedParams","eventName","onAny","isHorizontal","isVertical","realIndex","isBeginning","previousTranslate","progress","velocity","animating","touchEvents","desktop","touchEventsTouch","move","cancel","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","init","setGrabCursor","unsetGrabCursor","Math","minTranslate","maxTranslate","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","cls","slideEl","slideClass","updates","getSlideClasses","view","exact","swiperSize","spv","breakLoop","slideSize","swiperSlideSize","destroyed","setTranslate","translateValue","rtlTranslate","newTranslate","translated","updateSize","updateProgress","updateAutoHeight","watchOverflow","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","wrapperClass","$wrapperEl","shadowRoot","getWrapper","createElements","wrapper","wrapperEl","wrongRTL","mount","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","newDefaults","installModule","prototypeGroup","protoMethod","use","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","watchSlidesProgress","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","rewind","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","maxBackfaceHiddenSlides","slideBlankClass","slideDuplicateActiveClass","slideDuplicateClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","self","onceHandler","__emitterProxy","eventHandler","_len2","_key2","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","passiveListener","passive","onTouchStart","onTouchMove","onTouchEnd","onClick","onScroll","preventDefault","stopPropagation","stopImmediatePropagation","onResize","autoplay","running","paused","run","newProgress","translatesDiff","originalEvent","touchEndTime","timeDiff","pathTree","path","composedPath","updateClickedSlide","swipeDirection","currentPos","stopIndex","groupSize","increment","rewindFirstIndex","rewindLastIndex","virtual","ratio","abs","navigation","nextEl","prevEl","targetTouch","targetTouches","changedTouches","pageX","pageY","preventedByNestedSwiper","diffX","diffY","sqrt","atan2","PI","loopFix","getTranslate","setTransition","disableParentSwiper","$targetEl","which","button","isTargetShadow","__closestFrom","assignedSlot","getRootNode","closestElement","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","innerWidth","blur","shouldPreventDefault","isContentEditable","moving","loadImage","imageEl","srcset","checkForComplete","image","onReady","complete","Image","onload","onerror","currentSrc","$selector","blankSlidesNum","blankNode","ceil","prependSlides","appendSlides","newIndex","moduleExtendParams","moduleParamName","moduleParams","auto","Observer","observers","attach","observer","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","Resize","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","cancelAnimationFrame","unobserve","slideToLoop","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","slidesPerViewDynamic","_clientLeft","normalize","floor","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","snapIndex","prevIndex","lastIndex","initial","indexAsNumber","isFinite","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","isH","isVirtual","scrollSnapType","_immediateVirtual","_swiperImmediateVirtual","smoothScroll","targetPosition","side","scrollTo","behavior","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","clickedSlide","currentSnap","byController","transitionEmit","getSwiperTranslate","axis","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","wasBeginning","wasEnd","Number","isNaN","getDirectionLabel","getDirectionPropertyValue","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","_","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","backFaceHiddenClass","hasClassBackfaceClassAdded","activeSlide","nextSlide","prevSlide","emitSlidesClasses","swiperSlideOffset","offsetLeft","offsetTop","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","keyCode","$nextEl","$prevEl","pagination","bulletClass","click","hasPagination","bullets","hasClickablePagination","clickable","initNavEl","wrapperId","addElControls","handleFocus","includes","isActive","isVisible","$containerEl","repeat","round","random","live","addElLive","$slideEl","updateNavigation","bulletEl","$bulletEl","renderBullet","bulletActiveClass","updatePagination","destroy","Autoplay","timeout","$activeSlideEl","delay","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","EffectFade","fadeEffect","crossFade","transformEl","tx","ty","slideOpacity","allSlides","overwriteParams","EffectFlip","flipEffect","slideShadows","limitRotation","rotateY","rotateX","zIndex","shadowBefore","shadowAfter","perspective","Navigation","getEl","toggleEl","disabledClass","lockClass","onPrevClick","onNextClick","hideOnClick","hiddenClass","targetEl","isHidden","Pagination","pfx","bulletSize","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","dynamicBulletIndex","isPaginationDisabled","setSideBullets","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","render","paginationHTML","numberOfBullets","SwiperSlideContext","createContext","useSwiperSlide","useContext","SwiperContext","useSwiper","getChangedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","processChildren","displayName","getChildren","slots","slot","foundSlides","getParams","rest","allowedParams","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","renderLoop","modifiedSlides","duplicateSlide","blankSlide","mountSwiper","paginationEl","scrollbarEl","scrollbar","paramsList","_extends","SwiperSlide","forwardRef","_temp","externalRef","tag","zoom","virtualIndex","slideElRef","useRef","slideClasses","setSlideClasses","useState","updateClasses","slideData","isDuplicate","isPrev","isNext","renderChildren","ref","externalElRef","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","onBeforeBreakpoint","initSwiper","extendWith","cache","renderExternal","renderExternalUpdate","useEffect","changedParams","updateSwiper","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","controller","control","newValue","lazy","load","useIsomorphicLayoutEffect","deps","useLayoutEffect","noExtend","needsNavigation","needsPagination","needsScrollbar","uniqueClasses","unique","updateOnVirtualData","parallax","renderVirtual","classesToSelector","createElementIfNotDefined","checkProps","createShadow","shadowClass","$shadowContainer","$shadowEl","Methods","methodName","writable","effectInit","requireUpdateOnVirtual","overwriteParamsResult","effectTarget","effectParams","effectVirtualTransitionEnd","$transitionEndTarget","eventTriggered","triggerEvents","getBrowser","isSafari","ua","isWebView","calcBrowser","deviceCached","getDevice","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getSupport","DocumentTouch","supportsPassive","opts","gestures","calcSupport","deleteProps","object","nextTick","now","Date","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","startPosition","time","startTime","cssModeFrameID","isOutOfBound","animate","getTime","easeProgress","cos","currentPosition"],"sourceRoot":""}