/* =========================================================== -- DO NOT EDIT!!!---------------------------------------- -- THIS IS A GENERATED FILE. CHANGES WILL BE OVERWRITTEN -- =========================================================== */ /* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \*****************************************************************/ /***/ ((module) => { eval("function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/assertThisInitialized.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***! \**********************************************************************/ /***/ ((module) => { eval("function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/assertThisInitialized.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js": /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***! \*****************************************************************/ /***/ ((module) => { eval("function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/asyncToGenerator.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/classCallCheck.js": /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! \***************************************************************/ /***/ ((module) => { eval("function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/classCallCheck.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/construct.js": /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/construct.js ***! \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/construct.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/createClass.js": /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! \************************************************************/ /***/ ((module) => { eval("function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/createClass.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! \***************************************************************/ /***/ ((module) => { eval("function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/defineProperty.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/getPrototypeOf.js": /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***! \***************************************************************/ /***/ ((module) => { eval("function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/getPrototypeOf.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/inherits.js": /*!*********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/inherits.js ***! \*********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/inherits.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js": /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \**********************************************************************/ /***/ ((module) => { eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/interopRequireDefault.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/isNativeFunction.js": /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***! \*****************************************************************/ /***/ ((module) => { eval("function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/isNativeFunction.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js": /*!*************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! \*************************************************************************/ /***/ ((module) => { eval("function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /***/ ((module) => { eval("function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/iterableToArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /***/ ((module) => { eval("function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/nonIterableSpread.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js": /*!**************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***! \**************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var _typeof = (__webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\n\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/setPrototypeOf.js": /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! \***************************************************************/ /***/ ((module) => { eval("function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/setPrototypeOf.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/toConsumableArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/typeof.js": /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /***/ ((module) => { eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/typeof.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": /*!***************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \***************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\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\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/wrapNativeSuper.js": /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***! \****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\n\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\n\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\n\nvar construct = __webpack_require__(/*! ./construct.js */ \"./node_modules/@babel/runtime/helpers/construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/regenerator/index.js": /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/regenerator/index.js ***! \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("module.exports = __webpack_require__(/*! regenerator-runtime */ \"./node_modules/regenerator-runtime/runtime.js\");\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/@babel/runtime/regenerator/index.js?"); /***/ }), /***/ "./node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js": /*!***************************************************************************!*\ !*** ./node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LottiePlayer: () => (/* binding */ LottiePlayer),\n/* harmony export */ PlayMode: () => (/* binding */ PlayMode),\n/* harmony export */ PlayerEvents: () => (/* binding */ PlayerEvents),\n/* harmony export */ PlayerState: () => (/* binding */ PlayerState),\n/* harmony export */ parseSrc: () => (/* binding */ parseSrc)\n/* harmony export */ });\nfunction _asyncIterator(t){var e,r,i,s=2;for(\"undefined\"!=typeof Symbol&&(r=Symbol.asyncIterator,i=Symbol.iterator);s--;){if(r&&null!=(e=t[r]))return e.call(t);if(i&&null!=(e=t[i]))return new AsyncFromSyncIterator(e.call(t));r=\"@@asyncIterator\",i=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}function AsyncFromSyncIterator(t){function e(t){if(Object(t)!==t)return Promise.reject(new TypeError(t+\" is not an object.\"));var e=t.done;return Promise.resolve(t.value).then((function(t){return{value:t,done:e}}))}return AsyncFromSyncIterator=function(t){this.s=t,this.n=t.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return e(this.n.apply(this.s,arguments))},return:function(t){var r=this.s.return;return void 0===r?Promise.resolve({value:t,done:!0}):e(r.apply(this.s,arguments))},throw:function(t){var r=this.s.return;return void 0===r?Promise.reject(t):e(r.apply(this.s,arguments))}},new AsyncFromSyncIterator(t)}var REACT_ELEMENT_TYPE;function _jsx(t,e,r,i){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103);var s=t&&t.defaultProps,a=arguments.length-3;if(e||0===a||(e={children:void 0}),1===a)e.children=i;else if(a>1){for(var n=new Array(a),o=0;o]+)>/g,(function(t,e){return\"$\"+a[e]})))}if(\"function\"==typeof s){var n=this;return t[Symbol.replace].call(this,r,(function(){var t=arguments;return\"object\"!=typeof t[t.length-1]&&(t=[].slice.call(t)).push(i(t,n)),s.apply(this,t)}))}return t[Symbol.replace].call(this,r,s)},_wrapRegExp.apply(this,arguments)}function _AwaitValue(t){this.wrapped=t}function _AsyncGenerator(t){var e,r;function i(e,r){try{var a=t[e](r),n=a.value,o=n instanceof _AwaitValue;Promise.resolve(o?n.wrapped:n).then((function(t){o?i(\"return\"===e?\"return\":\"next\",t):s(a.done?\"return\":\"normal\",t)}),(function(t){i(\"throw\",t)}))}catch(t){s(\"throw\",t)}}function s(t,s){switch(t){case\"return\":e.resolve({value:s,done:!0});break;case\"throw\":e.reject(s);break;default:e.resolve({value:s,done:!1})}(e=e.next)?i(e.key,e.arg):r=null}this._invoke=function(t,s){return new Promise((function(a,n){var o={key:t,arg:s,resolve:a,reject:n,next:null};r?r=r.next=o:(e=r=o,i(t,s))}))},\"function\"!=typeof t.return&&(this.return=void 0)}function _wrapAsyncGenerator(t){return function(){return new _AsyncGenerator(t.apply(this,arguments))}}function _awaitAsyncGenerator(t){return new _AwaitValue(t)}function _asyncGeneratorDelegate(t,e){var r={},i=!1;function s(r,s){return i=!0,s=new Promise((function(e){e(t[r](s))})),{done:!1,value:e(s)}}return r[\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\"]=function(){return this},r.next=function(t){return i?(i=!1,t):s(\"next\",t)},\"function\"==typeof t.throw&&(r.throw=function(t){if(i)throw i=!1,t;return s(\"throw\",t)}),\"function\"==typeof t.return&&(r.return=function(t){return i?(i=!1,t):s(\"return\",t)}),r}function asyncGeneratorStep(t,e,r,i,s,a,n){try{var o=t[a](n),h=o.value}catch(t){return void r(t)}o.done?e(h):Promise.resolve(h).then(i,s)}function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(i,s){var a=t.apply(e,r);function n(t){asyncGeneratorStep(a,i,s,n,o,\"next\",t)}function o(t){asyncGeneratorStep(a,i,s,n,o,\"throw\",t)}n(void 0)}))}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var r=0;r=0||(s[r]=t[r]);return s}function _objectWithoutProperties(t,e){if(null==t)return{};var r,i,s=_objectWithoutPropertiesLoose(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(s[r]=t[r])}return s}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function _possibleConstructorReturn(t,e){if(e&&(\"object\"==typeof e||\"function\"==typeof e))return e;if(void 0!==e)throw new TypeError(\"Derived constructors may only return object or undefined\");return _assertThisInitialized(t)}function _createSuper(t){var e=_isNativeReflectConstruct();return function(){var r,i=_getPrototypeOf(t);if(e){var s=_getPrototypeOf(this).constructor;r=Reflect.construct(i,arguments,s)}else r=i.apply(this,arguments);return _possibleConstructorReturn(this,r)}}function _superPropBase(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=_getPrototypeOf(t)););return t}function _get(){return _get=\"undefined\"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var i=_superPropBase(t,e);if(i){var s=Object.getOwnPropertyDescriptor(i,e);return s.get?s.get.call(arguments.length<3?t:r):s.value}},_get.apply(this,arguments)}function set(t,e,r,i){return set=\"undefined\"!=typeof Reflect&&Reflect.set?Reflect.set:function(t,e,r,i){var s,a=_superPropBase(t,e);if(a){if((s=Object.getOwnPropertyDescriptor(a,e)).set)return s.set.call(i,r),!0;if(!s.writable)return!1}if(s=Object.getOwnPropertyDescriptor(i,e)){if(!s.writable)return!1;s.value=r,Object.defineProperty(i,e,s)}else _defineProperty(i,e,r);return!0},set(t,e,r,i)}function _set(t,e,r,i,s){if(!set(t,e,r,i||t)&&s)throw new Error(\"failed to set property\");return r}function _taggedTemplateLiteral(t,e){return e||(e=t.slice(0)),Object.freeze(Object.defineProperties(t,{raw:{value:Object.freeze(e)}}))}function _taggedTemplateLiteralLoose(t,e){return e||(e=t.slice(0)),t.raw=e,t}function _readOnlyError(t){throw new TypeError('\"'+t+'\" is read-only')}function _writeOnlyError(t){throw new TypeError('\"'+t+'\" is write-only')}function _classNameTDZError(t){throw new Error('Class \"'+t+'\" cannot be referenced in computed property keys.')}function _temporalUndefined(){}function _tdz(t){throw new ReferenceError(t+\" is not defined - temporal dead zone\")}function _temporalRef(t,e){return t===_temporalUndefined?_tdz(e):t}function _slicedToArray(t,e){return _arrayWithHoles(t)||_iterableToArrayLimit(t,e)||_unsupportedIterableToArray(t,e)||_nonIterableRest()}function _slicedToArrayLoose(t,e){return _arrayWithHoles(t)||_iterableToArrayLimitLoose(t,e)||_unsupportedIterableToArray(t,e)||_nonIterableRest()}function _toArray(t){return _arrayWithHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableRest()}function _toConsumableArray(t){return _arrayWithoutHoles(t)||_iterableToArray(t)||_unsupportedIterableToArray(t)||_nonIterableSpread()}function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}function _arrayWithHoles(t){if(Array.isArray(t))return t}function _maybeArrayLike(t,e,r){if(e&&!Array.isArray(e)&&\"number\"==typeof e.length){var i=e.length;return _arrayLikeToArray(e,void 0!==r&&rt.length)&&(e=t.length);for(var r=0,i=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:s}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var a,n=!0,o=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return n=t.done,t},e:function(t){o=!0,a=t},f:function(){try{n||null==r.return||r.return()}finally{if(o)throw a}}}}function _createForOfIteratorHelperLoose(t,e){var r=\"undefined\"!=typeof Symbol&&t[Symbol.iterator]||t[\"@@iterator\"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=_unsupportedIterableToArray(t))||e&&t&&\"number\"==typeof t.length){r&&(t=r);var i=0;return function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function _skipFirstGeneratorNext(t){return function(){var e=t.apply(this,arguments);return e.next(),e}}function _toPrimitive(t,e){if(\"object\"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||\"default\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}function _toPropertyKey(t){var e=_toPrimitive(t,\"string\");return\"symbol\"==typeof e?e:String(e)}function _initializerWarningHelper(t,e){throw new Error(\"Decorating class property failed. Please ensure that proposal-class-properties is enabled and runs after the decorators transform.\")}function _initializerDefineProperty(t,e,r,i){r&&Object.defineProperty(t,e,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(i):void 0})}function _applyDecoratedDescriptor(t,e,r,i,s){var a={};return Object.keys(i).forEach((function(t){a[t]=i[t]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,(\"value\"in a||a.initializer)&&(a.writable=!0),a=r.slice().reverse().reduce((function(r,i){return i(t,e,r)||r}),a),s&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(s):void 0,a.initializer=void 0),void 0===a.initializer&&(Object.defineProperty(t,e,a),a=null),a}_AsyncGenerator.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},_AsyncGenerator.prototype.next=function(t){return this._invoke(\"next\",t)},_AsyncGenerator.prototype.throw=function(t){return this._invoke(\"throw\",t)},_AsyncGenerator.prototype.return=function(t){return this._invoke(\"return\",t)};var id=0;function _classPrivateFieldLooseKey(t){return\"__private_\"+id+++\"_\"+t}function _classPrivateFieldLooseBase(t,e){if(!Object.prototype.hasOwnProperty.call(t,e))throw new TypeError(\"attempted to use private field on non-instance\");return t}function _classPrivateFieldGet(t,e){return _classApplyDescriptorGet(t,_classExtractFieldDescriptor(t,e,\"get\"))}function _classPrivateFieldSet(t,e,r){return _classApplyDescriptorSet(t,_classExtractFieldDescriptor(t,e,\"set\"),r),r}function _classPrivateFieldDestructureSet(t,e){return _classApplyDescriptorDestructureSet(t,_classExtractFieldDescriptor(t,e,\"set\"))}function _classExtractFieldDescriptor(t,e,r){if(!e.has(t))throw new TypeError(\"attempted to \"+r+\" private field on non-instance\");return e.get(t)}function _classStaticPrivateFieldSpecGet(t,e,r){return _classCheckPrivateStaticAccess(t,e),_classCheckPrivateStaticFieldDescriptor(r,\"get\"),_classApplyDescriptorGet(t,r)}function _classStaticPrivateFieldSpecSet(t,e,r,i){return _classCheckPrivateStaticAccess(t,e),_classCheckPrivateStaticFieldDescriptor(r,\"set\"),_classApplyDescriptorSet(t,r,i),i}function _classStaticPrivateMethodGet(t,e,r){return _classCheckPrivateStaticAccess(t,e),r}function _classStaticPrivateMethodSet(){throw new TypeError(\"attempted to set read only static private field\")}function _classApplyDescriptorGet(t,e){return e.get?e.get.call(t):e.value}function _classApplyDescriptorSet(t,e,r){if(e.set)e.set.call(t,r);else{if(!e.writable)throw new TypeError(\"attempted to set read only private field\");e.value=r}}function _classApplyDescriptorDestructureSet(t,e){if(e.set)return\"__destrObj\"in e||(e.__destrObj={set value(r){e.set.call(t,r)}}),e.__destrObj;if(!e.writable)throw new TypeError(\"attempted to set read only private field\");return e}function _classStaticPrivateFieldDestructureSet(t,e,r){return _classCheckPrivateStaticAccess(t,e),_classCheckPrivateStaticFieldDescriptor(r,\"set\"),_classApplyDescriptorDestructureSet(t,r)}function _classCheckPrivateStaticAccess(t,e){if(t!==e)throw new TypeError(\"Private static access of wrong provenance\")}function _classCheckPrivateStaticFieldDescriptor(t,e){if(void 0===t)throw new TypeError(\"attempted to \"+e+\" private static field before its declaration\")}function _decorate(t,e,r,i){var s=_getDecoratorsApi();if(i)for(var a=0;a=0;a--){var n=e[t.placement];n.splice(n.indexOf(t.key),1);var o=this.fromElementDescriptor(t),h=this.toElementFinisherExtras((0,s[a])(o)||o);t=h.element,this.addElementPlacement(t,e),h.finisher&&i.push(h.finisher);var l=h.extras;if(l){for(var p=0;p=0;i--){var s=this.fromClassDescriptor(t),a=this.toClassDescriptor((0,e[i])(s)||s);if(void 0!==a.finisher&&r.push(a.finisher),void 0!==a.elements){t=a.elements;for(var n=0;n=0;o--)(s=t[o])&&(n=(a<3?s(n):a>3?s(e,r,n):s(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function __param(t,e){return function(r,i){e(r,i,t)}}function __metadata(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function __awaiter(t,e,r,i){return new(r||(r=Promise))((function(s,a){function n(t){try{h(i.next(t))}catch(t){a(t)}}function o(t){try{h(i.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?s(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(n,o)}h((i=i.apply(t,e||[])).next())}))}function __generator(t,e){var r,i,s,a,n={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(r)throw new TypeError(\"Generator is already executing.\");for(;n;)try{if(r=1,i&&(s=2&a[0]?i.return:a[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,a[1])).done)return s;switch(i=0,s&&(a=[2&a[0],s.value]),a[0]){case 0:case 1:s=a;break;case 4:return n.label++,{value:a[1],done:!1};case 5:n.label++,i=a[1],a=[0];continue;case 7:a=n.ops.pop(),n.trys.pop();continue;default:if(!(s=n.trys,(s=s.length>0&&s[s.length-1])||6!==a[0]&&2!==a[0])){n=0;continue}if(3===a[0]&&(!s||a[1]>s[0]&&a[1]=t.length&&(t=void 0),{value:t&&t[i++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(t,e){var r=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,s,a=r.call(t),n=[];try{for(;(void 0===e||e-- >0)&&!(i=a.next()).done;)n.push(i.value)}catch(t){s={error:t}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(s)throw s.error}}return n}function __spread(){for(var t=[],e=0;e1||o(t,e)}))})}function o(t,e){try{!function(t){t.value instanceof __await?Promise.resolve(t.value.v).then(h,l):p(a[0][2],t)}(s[t](e))}catch(t){p(a[0][3],t)}}function h(t){o(\"next\",t)}function l(t){o(\"throw\",t)}function p(t,e){t(e),a.shift(),a.length&&o(a[0][0],a[0][1])}}function __asyncDelegator(t){var e,r;return e={},i(\"next\"),i(\"throw\",(function(t){throw t})),i(\"return\"),e[Symbol.iterator]=function(){return this},e;function i(i,s){e[i]=t[i]?function(e){return(r=!r)?{value:__await(t[i](e)),done:\"return\"===i}:s?s(e):e}:s}}function __asyncValues(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=\"function\"==typeof __values?__values(t):t[Symbol.iterator](),e={},i(\"next\"),i(\"throw\"),i(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function i(r){e[r]=t[r]&&function(e){return new Promise((function(i,s){(function(t,e,r,i){Promise.resolve(i).then((function(e){t({value:e,done:r})}),e)})(i,s,(e=t[r](e)).done,e.value)}))}}}function __makeTemplateObject(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t}var __setModuleDefault=Object.create?function(t,e){Object.defineProperty(t,\"default\",{enumerable:!0,value:e})}:function(t,e){t.default=e};function __importStar(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)\"default\"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&__createBinding(e,t,r);return __setModuleDefault(e,t),e}function __importDefault(t){return t&&t.__esModule?t:{default:t}}function __classPrivateFieldGet(t,e,r,i){if(\"a\"===r&&!i)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!i:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?i:\"a\"===r?i.call(t):i?i.value:e.get(t)}function __classPrivateFieldSet(t,e,r,i,s){if(\"m\"===i)throw new TypeError(\"Private method is not writable\");if(\"a\"===i&&!s)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!s:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===i?s.call(t,r):s?s.value=r:e.set(t,r),r\n/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */}var t$3=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,e$8=Symbol(),n$5=new Map;class s$3{constructor(t,e){if(this._$cssResult$=!0,e!==e$8)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t}get styleSheet(){var t=n$5.get(this.cssText);return t$3&&void 0===t&&(n$5.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}var o$5=t=>new s$3(\"string\"==typeof t?t:t+\"\",e$8),r$3=function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),i=1;ie+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(r)+t[i+1]),t[0]);return new s$3(s,e$8)},i$3=(t,e)=>{t$3?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{var r=document.createElement(\"style\"),i=window.litNonce;void 0!==i&&r.setAttribute(\"nonce\",i),r.textContent=e.cssText,t.appendChild(r)}))},S$1=t$3?t=>t:t=>t instanceof CSSStyleSheet?(t=>{var e=\"\";for(var r of t.cssRules)e+=r.cssText;return o$5(e)})(t):t\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */,s$2,e$7=window.trustedTypes,r$2=e$7?e$7.emptyScript:\"\",h$2=window.reactiveElementPolyfillSupport,o$4={toAttribute(t,e){switch(e){case Boolean:t=t?r$2:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){var r=t;switch(e){case Boolean:r=null!==t;break;case Number:r=null===t?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch(t){r=null}}return r}},n$4=(t,e)=>e!==t&&(e==e||t==t),l$3={attribute:!0,type:String,converter:o$4,reflect:!1,hasChanged:n$4},t$2;class a$1 extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();var t=[];return this.elementProperties.forEach(((e,r)=>{var i=this._$Eh(r,e);void 0!==i&&(this._$Eu.set(i,r),t.push(i))})),t}static createProperty(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l$3;if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){var r=\"symbol\"==typeof t?Symbol():\"__\"+t,i=this.getPropertyDescriptor(t,r,e);void 0!==i&&Object.defineProperty(this.prototype,t,i)}}static getPropertyDescriptor(t,e,r){return{get(){return this[e]},set(i){var s=this[t];this[e]=i,this.requestUpdate(t,s,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l$3}static finalize(){if(this.hasOwnProperty(\"finalized\"))return!1;this.finalized=!0;var t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty(\"properties\")){var e=this.properties,r=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(var i of r)this.createProperty(i,e[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){var e=[];if(Array.isArray(t)){var r=new Set(t.flat(1/0).reverse());for(var i of r)e.unshift(S$1(i))}else void 0!==t&&e.push(S$1(t));return e}static _$Eh(t,e){var r=e.attribute;return!1===r?void 0:\"string\"==typeof r?r:\"string\"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,r;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(r=t.hostConnected)||void 0===r||r.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t,e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i$3(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ES(t,e){var r,i,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l$3,a=this.constructor._$Eh(t,s);if(void 0!==a&&!0===s.reflect){var n=(null!==(i=null===(r=s.converter)||void 0===r?void 0:r.toAttribute)&&void 0!==i?i:o$4.toAttribute)(e,s.type);this._$Ei=t,null==n?this.removeAttribute(a):this.setAttribute(a,n),this._$Ei=null}}_$AK(t,e){var r,i,s,a=this.constructor,n=a._$Eu.get(t);if(void 0!==n&&this._$Ei!==n){var o=a.getPropertyOptions(n),h=o.converter,l=null!==(s=null!==(i=null===(r=h)||void 0===r?void 0:r.fromAttribute)&&void 0!==i?i:\"function\"==typeof h?h:null)&&void 0!==s?s:o$4.fromAttribute;this._$Ei=n,this[n]=l(e,o.type),this._$Ei=null}}requestUpdate(t,e,r){var i=!0;void 0!==t&&(((r=r||this.constructor.getPropertyOptions(t)).hasChanged||n$4)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===r.reflect&&this._$Ei!==t&&(void 0===this._$E_&&(this._$E_=new Map),this._$E_.set(t,r))):i=!1),!this.isUpdatePending&&i&&(this._$Ep=this._$EC())}_$EC(){var t=this;return _asyncToGenerator((function*(){t.isUpdatePending=!0;try{yield t._$Ep}catch(e){Promise.reject(e)}var e=t.scheduleUpdate();return null!=e&&(yield e),!t.isUpdatePending}))()}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(this.isUpdatePending){this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);var e=!1,r=this._$AL;try{(e=this.shouldUpdate(r))?(this.willUpdate(r),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(r)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(r)}}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$E_&&(this._$E_.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$E_=void 0),this._$EU()}updated(t){}firstUpdated(t){}}a$1.finalized=!0,a$1.elementProperties=new Map,a$1.elementStyles=[],a$1.shadowRootOptions={mode:\"open\"},null==h$2||h$2({ReactiveElement:a$1}),(null!==(s$2=globalThis.reactiveElementVersions)&&void 0!==s$2?s$2:globalThis.reactiveElementVersions=[]).push(\"1.2.1\");var i$2=globalThis.trustedTypes,s$1=i$2?i$2.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e$6=\"lit$\".concat((Math.random()+\"\").slice(9),\"$\"),o$3=\"?\"+e$6,n$3=\"<\".concat(o$3,\">\"),l$2=document,h$1=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\";return l$2.createComment(t)},r$1=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,d=Array.isArray,u=t=>{var e;return d(t)||\"function\"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])},c=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,a=/>/g,f=/>|[ \t\\n\f\\r](?:([^\\s\"'>=/]+)([ \t\\n\f\\r]*=[ \t\\n\f\\r]*(?:[^ \t\\n\f\\r\"'`<>=]|(\"|')|))|$)/g,_=/'/g,m=/\"/g,g=/^(?:script|style|textarea)$/i,p=t=>function(e){for(var r=arguments.length,i=new Array(r>1?r-1:0),s=1;s{var i,s,a=null!==(i=null==r?void 0:r.renderBefore)&&void 0!==i?i:e,n=a._$litPart$;if(void 0===n){var o=null!==(s=null==r?void 0:r.renderBefore)&&void 0!==s?s:null;a._$litPart$=n=new N(e.insertBefore(h$1(),o),o,void 0,null!=r?r:{})}return n._$AI(t),n},A=l$2.createTreeWalker(l$2,129,null,!1),C=(t,e)=>{for(var r,i=t.length-1,s=[],n=2===e?\"\":\"\",o=c,h=0;h\"===d[0]?(o=null!=r?r:c,u=-1):void 0===d[1]?u=-2:(u=o.lastIndex-d[2].length,p=d[1],o=void 0===d[3]?f:'\"'===d[3]?m:_):o===m||o===_?o=f:o===v||o===a?o=c:(o=f,r=void 0);var b=o===f&&t[h+1].startsWith(\"/>\")?\" \":\"\";n+=o===c?l+n$3:u>=0?(s.push(p),l.slice(0,u)+\"$lit$\"+l.slice(u)+e$6+b):l+e$6+(-2===u?(s.push(void 0),h):b)}var P=n+(t[i]||\"\")+(2===e?\"\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==s$1?s$1.createHTML(P):P,s]};class E{constructor(t,e){var r,{strings:i,_$litType$:s}=t;this.parts=[];var a=0,n=0,o=i.length-1,h=this.parts,[l,p]=C(i,s);if(this.el=E.createElement(l,e),A.currentNode=this.el.content,2===s){var c=this.el.content,f=c.firstChild;f.remove(),c.append(...f.childNodes)}for(;null!==(r=A.nextNode())&&h.length0){r.textContent=i$2?i$2.emptyScript:\"\";for(var x=0;x2&&void 0!==arguments[2]?arguments[2]:t,o=arguments.length>3?arguments[3]:void 0;if(e===b)return e;var h=void 0!==o?null===(r=n._$Cl)||void 0===r?void 0:r[o]:n._$Cu,l=r$1(e)?void 0:e._$litDirective$;return(null==h?void 0:h.constructor)!==l&&(null===(i=null==h?void 0:h._$AO)||void 0===i||i.call(h,!1),void 0===l?h=void 0:(h=new l(t))._$AT(t,n,o),void 0!==o?(null!==(s=(a=n)._$Cl)&&void 0!==s?s:a._$Cl=[])[o]=h:n._$Cu=h),void 0!==h&&(e=P(t,h._$AS(t,e.values),h,o)),e}class V{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e,{el:{content:r},parts:i}=this._$AD,s=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:l$2).importNode(r,!0);A.currentNode=s;for(var a=A.nextNode(),n=0,o=0,h=i[0];void 0!==h;){if(n===h.index){var l=void 0;2===h.type?l=new N(a,a.nextSibling,this,t):1===h.type?l=new h.ctor(a,h.name,h.strings,this,t):6===h.type&&(l=new L(a,this,t)),this.v.push(l),h=i[++o]}n!==(null==h?void 0:h.index)&&(a=A.nextNode(),n++)}return s}m(t){var e=0;for(var r of this.v)void 0!==r&&(void 0!==r.strings?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}}class N{constructor(t,e,r,i){var s;this.type=2,this._$AH=w,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=i,this._$Cg=null===(s=null==i?void 0:i.isConnected)||void 0===s||s}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){var t=this._$AA.parentNode,e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t){t=P(this,t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:this),r$1(t)?t===w||null==t||\"\"===t?(this._$AH!==w&&this._$AR(),this._$AH=w):t!==this._$AH&&t!==b&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):u(t)?this.A(t):this.$(t)}M(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._$AB;return this._$AA.parentNode.insertBefore(t,e)}S(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==w&&r$1(this._$AH)?this._$AA.nextSibling.data=t:this.S(l$2.createTextNode(t)),this._$AH=t}T(t){var e,{values:r,_$litType$:i}=t,s=\"number\"==typeof i?this._$AC(t):(void 0===i.el&&(i.el=E.createElement(i.h,this.options)),i);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===s)this._$AH.m(r);else{var a=new V(s,this),n=a.p(this.options);a.m(r),this.S(n),this._$AH=a}}_$AC(t){var e=T.get(t.strings);return void 0===e&&T.set(t.strings,e=new E(t)),e}A(t){d(this._$AH)||(this._$AH=[],this._$AR());var e,r=this._$AH,i=0;for(var s of t)i===r.length?r.push(e=new N(this.M(h$1()),this.M(h$1()),this,this.options)):e=r[i],e._$AI(s),i++;i0&&void 0!==arguments[0]?arguments[0]:this._$AA.nextSibling,r=arguments.length>1?arguments[1]:void 0;for(null===(t=this._$AP)||void 0===t||t.call(this,!1,!0,r);e&&e!==this._$AB;){var i=e.nextSibling;e.remove(),e=i}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class S{constructor(t,e,r,i,s){this.type=1,this._$AH=w,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=s,r.length>2||\"\"!==r[0]||\"\"!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=w}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,s=this.strings,a=!1;if(void 0===s)t=P(this,t,e,0),(a=!r$1(t)||t!==this._$AH&&t!==b)&&(this._$AH=t);else{var n,o,h=t;for(t=s[0],n=0;n1&&void 0!==arguments[1]?arguments[1]:this,0))&&void 0!==e?e:w)!==b){var r=this._$AH,i=t===w&&r!==w||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,s=t!==w&&(r===w||i);i&&this.element.removeEventListener(this.name,this,r),s&&this.element.addEventListener(this.name,this,t),this._$AH=t}}handleEvent(t){var e,r;\"function\"==typeof this._$AH?this._$AH.call(null!==(r=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==r?r:this.element,t):this._$AH.handleEvent(t)}}class L{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){P(this,t)}}var R={P:\"$lit$\",V:e$6,L:o$3,I:1,N:C,R:V,D:u,j:P,H:N,O:S,F:H,B:I,W:M,Z:L},z=window.litHtmlPolyfillSupport,l$1,o$2;null==z||z(E,N),(null!==(t$2=globalThis.litHtmlVersions)&&void 0!==t$2?t$2:globalThis.litHtmlVersions=[]).push(\"2.1.2\");var r=a$1;class s extends a$1{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e,r=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=r.firstChild),r}update(t){var e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=x(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return b}}s.finalized=!0,s._$litElement$=!0,null===(l$1=globalThis.litElementHydrateSupport)||void 0===l$1||l$1.call(globalThis,{LitElement:s});var n$2=globalThis.litElementPolyfillSupport;null==n$2||n$2({LitElement:s});var h={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(null!==(o$2=globalThis.litElementVersions)&&void 0!==o$2?o$2:globalThis.litElementVersions=[]).push(\"3.1.2\");\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar n$1=t=>e=>\"function\"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{var{kind:r,elements:i}=e;return{kind:r,elements:i,finisher(e){window.customElements.define(t,e)}}})(t,e)\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */,i$1=(t,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?_objectSpread2(_objectSpread2({},e),{},{finisher(r){r.createProperty(e.key,t)}}):{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(r){r.createProperty(e.key,t)}};function e$5(t){return(e,r)=>void 0!==r?((t,e,r)=>{e.constructor.createProperty(r,t)})(t,e,r):i$1(t,e)}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t$1(t){return e$5(_objectSpread2(_objectSpread2({},t),{},{state:!0}))}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var e$4=(t,e,r)=>{Object.defineProperty(e,r,t)},t=(t,e)=>({kind:\"method\",placement:\"prototype\",key:e.key,descriptor:t}),o$1=t=>{var{finisher:e,descriptor:r}=t;return(t,i)=>{var s;if(void 0===i){var a=null!==(s=t.originalKey)&&void 0!==s?s:t.key,n=null!=r?{kind:\"method\",placement:\"prototype\",key:a,descriptor:r(t.key)}:_objectSpread2(_objectSpread2({},t),{},{key:a});return null!=e&&(n.finisher=function(t){e(t,a)}),n}var o=t.constructor;void 0!==r&&Object.defineProperty(t,i,r(i)),null==e||e(o,i)}},n;\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e$3(t){return o$1({finisher:(e,r)=>{Object.assign(e.prototype[r],t)}})}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(t,e){return o$1({descriptor:r=>{var i={get(){var e,r;return null!==(r=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==r?r:null},enumerable:!0,configurable:!0};if(e){var s=\"symbol\"==typeof r?Symbol():\"__\"+r;i.get=function(){var e,r;return void 0===this[s]&&(this[s]=null!==(r=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==r?r:null),this[s]}}return i}})}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e$2(t){return o$1({descriptor:e=>({get(){var e,r;return null!==(r=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelectorAll(t))&&void 0!==r?r:[]},enumerable:!0,configurable:!0})})}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e$1(t){return o$1({descriptor:e=>({get(){var e=this;return _asyncToGenerator((function*(){var r;return yield e.updateComplete,null===(r=e.renderRoot)||void 0===r?void 0:r.querySelector(t)}))()},enumerable:!0,configurable:!0})})}\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(t,e)=>t.assignedElements(e):(t,e)=>t.assignedNodes(e).filter((t=>t.nodeType===Node.ELEMENT_NODE));function l(t){var{slot:r,selector:i}=null!=t?t:{};return o$1({descriptor:s=>({get(){var s,a=\"slot\"+(r?\"[name=\".concat(r,\"]\"):\":not([name])\"),n=null===(s=this.renderRoot)||void 0===s?void 0:s.querySelector(a),o=null!=n?e(n,t):[];return i?o.filter((t=>t.matches(i))):o},enumerable:!0,configurable:!0})})}\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(t,e,r){var i,s=t;return\"object\"==typeof t?(s=t.slot,i=t):i={flatten:e},r?l({slot:s,flatten:e,selector:r}):o$1({descriptor:t=>({get(){var t,e,r=\"slot\"+(s?\"[name=\".concat(s,\"]\"):\":not([name])\"),a=null===(t=this.renderRoot)||void 0===t?void 0:t.querySelector(r);return null!==(e=null==a?void 0:a.assignedNodes(i))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}var commonjsGlobal=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof __webpack_require__.g?__webpack_require__.g:\"undefined\"!=typeof self?self:{};function getDefaultExportFromCjs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function getDefaultExportFromNamespaceIfPresent(t){return t&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function getDefaultExportFromNamespaceIfNotNamed(t){return t&&Object.prototype.hasOwnProperty.call(t,\"default\")&&1===Object.keys(t).length?t.default:t}function getAugmentedNamespace(t){if(t.__esModule)return t;var e=Object.defineProperty({},\"__esModule\",{value:!0});return Object.keys(t).forEach((function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})})),e}function commonjsRequire(t){throw new Error('Could not dynamically require \"'+t+'\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var lottie$1={exports:{}};(function(module,exports){var factory;\"undefined\"!=typeof navigator&&(factory=function(){var svgNS=\"http://www.w3.org/2000/svg\",locationHref=\"\",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(t){_useWebWorker=!!t},getWebWorker=function(){return _useWebWorker},setLocationHref=function(t){locationHref=t},getLocationHref=function(){return locationHref};function createTag(t){return document.createElement(t)}function extendPrototype(t,e){var r,i,s=t.length;for(r=0;r1?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[2]+=e,r[2]>1?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(t,e){var r=RGBtoHSV(255*t[0],255*t[1],255*t[2]);return r[0]+=e/360,r[0]>1?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}var rgbToHex=function(){var t,e,r=[];for(t=0;t<256;t+=1)e=t.toString(16),r[t]=1===e.length?\"0\"+e:e;return function(t,e,i){return t<0&&(t=0),e<0&&(e=0),i<0&&(i=0),\"#\"+r[t]+r[e]+r[i]}}(),setSubframeEnabled=function(t){subframeEnabled=!!t},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(t){expressionsPlugin=t},getExpressionsPlugin=function(){return expressionsPlugin},setExpressionInterfaces=function(t){expressionsInterfaces=t},getExpressionInterfaces=function(){return expressionsInterfaces},setDefaultCurveSegments=function(t){defaultCurveSegments=t},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(t){idPrefix$1=t},getIdPrefix=function(){return idPrefix$1};function createNS(t){return document.createElementNS(svgNS,t)}function _typeof$5(t){return _typeof$5=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},_typeof$5(t)}var dataManager=function(){var t,e,r=1,i=[],s={onmessage:function(){},postMessage:function(e){t({data:e})}},_workerSelf={postMessage:function(t){s.onmessage({data:t})}};function a(){e||(e=function(e){if(window.Worker&&window.Blob&&getWebWorker()){var r=new Blob([\"var _workerSelf = self; self.onmessage = \",e.toString()],{type:\"text/javascript\"}),i=URL.createObjectURL(r);return new Worker(i)}return t=e,s}((function(t){if(_workerSelf.dataManager||(_workerSelf.dataManager=function(){function t(s,a){var n,o,h,l,p,f,d=s.length;for(o=0;o=0;e-=1)if(\"sh\"===t[e].ty)if(t[e].ks.k.i)i(t[e].ks.k);else for(a=t[e].ks.k.length,s=0;sr[0]||!(r[0]>t[0])&&(t[1]>r[1]||!(r[1]>t[1])&&(t[2]>r[2]||!(r[2]>t[2])&&null))}var a,n=function(){var t=[4,4,14];function e(t){var e,r,i,s=t.length;for(e=0;e=0;r-=1)if(\"sh\"===t[r].ty)if(t[r].ks.k.i)t[r].ks.k.c=t[r].closed;else for(s=t[r].ks.k.length,i=0;i500)&&(this._imageLoaded(),clearInterval(r)),e+=1}.bind(this),50)}function a(t){var e={assetData:t},r=i(t,this.assetsPath,this.path);return dataManager.loadData(r,function(t){e.img=t,this._footageLoaded()}.bind(this),function(){e.img={},this._footageLoaded()}.bind(this)),e}function n(){this._imageLoaded=e.bind(this),this._footageLoaded=r.bind(this),this.testImageLoaded=s.bind(this),this.createFootageData=a.bind(this),this.assetsPath=\"\",this.path=\"\",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return n.prototype={loadAssets:function(t,e){var r;this.imagesLoadedCb=e;var i=t.length;for(r=0;rthis.animationData.op&&(this.animationData.op=t.op,this.totalFrames=Math.floor(t.op-this.animationData.ip));var e,r,i=this.animationData.layers,s=i.length,a=t.layers,n=a.length;for(r=0;rthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger(\"enterFrame\"),this.renderFrame(),this.trigger(\"drawnFrame\")},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(t){this.triggerRenderFrameError(t)}},AnimationItem.prototype.play=function(t){t&&this.name!==t||!0===this.isPaused&&(this.isPaused=!1,this.trigger(\"_pause\"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger(\"_active\")))},AnimationItem.prototype.pause=function(t){t&&this.name!==t||!1===this.isPaused&&(this.isPaused=!0,this.trigger(\"_play\"),this._idle=!0,this.trigger(\"_idle\"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(t){t&&this.name!==t||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(t){t&&this.name!==t||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(t){for(var e,r=0;r=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger(\"loopComplete\"))):this.setCurrentRawFrameValue(e):this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(r=!0,e=this.totalFrames-1):e<0?this.checkSegments(e%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,e=0):(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger(\"loopComplete\"):this._completedLoop=!0)):this.setCurrentRawFrameValue(e),r&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger(\"complete\"))}},AnimationItem.prototype.adjustSegment=function(t,e){this.playCount=0,t[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=t[0]-t[1],this.timeCompleted=this.totalFrames,this.firstFrame=t[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):t[1]>t[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=t[1]-t[0],this.timeCompleted=this.totalFrames,this.firstFrame=t[0],this.setCurrentRawFrameValue(.001+e)),this.trigger(\"segmentStart\")},AnimationItem.prototype.setSegment=function(t,e){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFramee&&(r=e-t)),this.firstFrame=t,this.totalFrames=e-t,this.timeCompleted=this.totalFrames,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(t,e){if(e&&(this.segments.length=0),\"object\"===_typeof$4(t[0])){var r,i=t.length;for(r=0;r=0;r-=1)e[r].animation.destroy(t)},t.freeze=function(){n=!0},t.unfreeze=function(){n=!1,u()},t.setVolume=function(t,r){var s;for(s=0;s=.001?function(t,e,r,i){for(var s=0;s<4;++s){var a=h(e,r,i);if(0===a)return e;e-=(o(e,r,i)-t)/a}return e}(t,l,e,i):0===p?l:function(t,e,r,i,s){var a,n,h=0;do{(a=o(n=e+(r-e)/2,i,s)-t)>0?r=n:e=n}while(Math.abs(a)>1e-7&&++h<10);return n}(t,a,a+r,e,i)}},t}(),pooling={double:function(t){return t.concat(createSizedArray(t.length))}},poolFactory=function(t,e,r){var i=0,s=t,a=createSizedArray(s);return{newElement:function(){return i?a[i-=1]:e()},release:function(t){i===s&&(a=pooling.double(a),s*=2),r&&r(t),a[i]=t,i+=1}}},bezierLengthPool=poolFactory(8,(function(){return{addedLength:0,percents:createTypedArray(\"float32\",getDefaultCurveSegments()),lengths:createTypedArray(\"float32\",getDefaultCurveSegments())}})),segmentsLengthPool=poolFactory(8,(function(){return{lengths:[],totalLength:0}}),(function(t){var e,r=t.lengths.length;for(e=0;e-.001&&n<.001}var r=function(t,e,r,i){var s,a,n,o,h,l,p=getDefaultCurveSegments(),c=0,f=[],d=[],u=bezierLengthPool.newElement();for(n=r.length,s=0;sn?-1:1,l=!0;l;)if(i[a]<=n&&i[a+1]>n?(o=(n-i[a])/(i[a+1]-i[a]),l=!1):a+=h,a<0||a>=s-1){if(a===s-1)return r[a];l=!1}return r[a]+(r[a+1]-r[a])*o}var h=createTypedArray(\"float32\",8);return{getSegmentsLength:function(t){var e,i=segmentsLengthPool.newElement(),s=t.c,a=t.v,n=t.o,o=t.i,h=t._length,l=i.lengths,p=0;for(e=0;e1&&(a=1);var p,c=o(a,l),f=o(n=n>1?1:n,l),d=e.length,u=1-c,m=1-f,y=u*u*u,g=c*u*u*3,v=c*c*u*3,b=c*c*c,_=u*u*m,P=c*u*m+u*c*m+u*u*f,E=c*c*m+u*c*f+c*u*f,S=c*c*f,x=u*m*m,A=c*m*m+u*f*m+u*m*f,w=c*f*m+u*f*f+c*m*f,C=c*f*f,k=m*m*m,T=f*m*m+m*f*m+m*m*f,D=f*f*m+m*f*f+f*m*f,M=f*f*f;for(p=0;pd?f>u?f-d-u:u-d-f:u>d?u-d-f:d-f-u)>-1e-4&&c<1e-4}}}var bez=bezFunction(),PropertyFactory=function(){var t=initialDefaultFrame,e=Math.abs;function r(t,e){var r,s=this.offsetTime;\"multidimensional\"===this.propType&&(r=createTypedArray(\"float32\",this.pv.length));for(var a,n,o,h,l,p,c,f,d,u=e.lastIndex,m=u,y=this.keyframes.length-1,g=!0;g;){if(a=this.keyframes[m],n=this.keyframes[m+1],m===y-1&&t>=n.t-s){a.h&&(a=n),u=0;break}if(n.t-s>t){u=m;break}m=k||t=k?D.points.length-1:0;for(l=D.points[M].point.length,h=0;h=R&&I=k)r[0]=v[0],r[1]=v[1],r[2]=v[2];else if(t<=T)r[0]=a.s[0],r[1]=a.s[1],r[2]=a.s[2];else{var z=i(a.s),G=i(v);b=r,_=function(t,e,r){var i,s,a,n,o,h=[],l=t[0],p=t[1],c=t[2],f=t[3],d=e[0],u=e[1],m=e[2],y=e[3];return(s=l*d+p*u+c*m+f*y)<0&&(s=-s,d=-d,u=-u,m=-m,y=-y),1-s>1e-6?(i=Math.acos(s),a=Math.sin(i),n=Math.sin((1-r)*i)/a,o=Math.sin(r*i)/a):(n=1-r,o=r),h[0]=n*l+o*d,h[1]=n*p+o*u,h[2]=n*c+o*m,h[3]=n*f+o*y,h}(z,G,(t-T)/(k-T)),P=_[0],E=_[1],S=_[2],x=_[3],A=Math.atan2(2*E*x-2*P*S,1-2*E*E-2*S*S),w=Math.asin(2*P*E+2*S*x),C=Math.atan2(2*P*x-2*E*S,1-2*P*P-2*S*S),b[0]=A/degToRads,b[1]=w/degToRads,b[2]=C/degToRads}else for(m=0;m=k?p=1:t=i&&e>=i||this._caching.lastFrame=e&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var s=this.interpolateValue(e,this._caching);this.pv=s}return this._caching.lastFrame=e,this.pv}function a(t){var r;if(\"unidimensional\"===this.propType)r=t*this.mult,e(this.v-r)>1e-5&&(this.v=r,this._mdf=!0);else for(var i=0,s=this.v.length;i1e-5&&(this.v[i]=r,this._mdf=!0),i+=1}function n(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var t;this.lock=!0,this._mdf=this._isFirstFrame;var e=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(t=0;t=this._maxLength&&this.doubleArrayLength(),r){case\"v\":a=this.v;break;case\"i\":a=this.i;break;case\"o\":a=this.o;break;default:a=[]}(!a[i]||a[i]&&!s)&&(a[i]=pointPool.newElement()),a[i][0]=t,a[i][1]=e},ShapePath.prototype.setTripleAt=function(t,e,r,i,s,a,n,o){this.setXYAt(t,e,\"v\",n,o),this.setXYAt(r,i,\"o\",n,o),this.setXYAt(s,a,\"i\",n,o)},ShapePath.prototype.reverse=function(){var t=new ShapePath;t.setPathData(this.c,this._length);var e=this.v,r=this.o,i=this.i,s=0;this.c&&(t.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],r[0][0],r[0][1],0,!1),s=1);var a,n=this._length-1,o=this._length;for(a=s;a=d[d.length-1].t-this.offsetTime)i=d[d.length-1].s?d[d.length-1].s[0]:d[d.length-2].e[0],a=!0;else{for(var u,m,y,g=f,v=d.length-1,b=!0;b&&(u=d[g],!((m=d[g+1]).t-this.offsetTime>t));)g=m.t-this.offsetTime)p=1;else if(ti&&e>i)||(this._caching.lastIndex=s0||t>-1e-6&&t<0?i(1e4*t)/1e4:t}function F(){var t=this.props;return\"matrix(\"+M(t[0])+\",\"+M(t[1])+\",\"+M(t[4])+\",\"+M(t[5])+\",\"+M(t[12])+\",\"+M(t[13])+\")\"}return function(){this.reset=s,this.rotate=a,this.rotateX=n,this.rotateY=o,this.rotateZ=h,this.skew=p,this.skewFromAxis=c,this.shear=l,this.scale=f,this.setTransform=d,this.translate=u,this.transform=m,this.applyToPoint=_,this.applyToX=P,this.applyToY=E,this.applyToZ=S,this.applyToPointArray=k,this.applyToTriplePoints=C,this.applyToPointStringified=T,this.toCSS=D,this.to2dCSS=F,this.clone=v,this.cloneFromProps=b,this.equals=g,this.inversePoints=w,this.inversePoint=A,this.getInverseMatrix=x,this._t=this.transform,this.isIdentity=y,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray(\"float32\",16),this.reset()}}();function _typeof$3(t){return _typeof$3=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},_typeof$3(t)}var lottie={},standalone=\"__[STANDALONE]__\",animationData=\"__[ANIMATIONDATA]__\",renderer=\"\";function setLocation(t){setLocationHref(t)}function searchAnimations(){!0===standalone?animationManager.searchAnimations(animationData,standalone,renderer):animationManager.searchAnimations()}function setSubframeRendering(t){setSubframeEnabled(t)}function setPrefix(t){setIdPrefix(t)}function loadAnimation(t){return!0===standalone&&(t.animationData=JSON.parse(animationData)),animationManager.loadAnimation(t)}function setQuality(t){if(\"string\"==typeof t)switch(t){case\"high\":setDefaultCurveSegments(200);break;default:case\"medium\":setDefaultCurveSegments(50);break;case\"low\":setDefaultCurveSegments(10)}else!isNaN(t)&&t>1&&setDefaultCurveSegments(t);getDefaultCurveSegments()>=50?roundValues(!1):roundValues(!0)}function inBrowser(){return\"undefined\"!=typeof navigator}function installPlugin(t,e){\"expressions\"===t&&setExpressionsPlugin(e)}function getFactory(t){switch(t){case\"propertyFactory\":return PropertyFactory;case\"shapePropertyFactory\":return ShapePropertyFactory;case\"matrix\":return Matrix;default:return null}}function checkReady(){\"complete\"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(t){for(var e=queryString.split(\"&\"),r=0;r=1?a.push({s:t-1,e:e-1}):(a.push({s:t,e:1}),a.push({s:0,e:e-1}));var n,o,h=[],l=a.length;for(n=0;ni+r||(p=o.s*s<=i?0:(o.s*s-i)/r,c=o.e*s>=i+r?1:(o.e*s-i)/r,h.push([p,c]))}return h.length||h.push([0,0]),h},TrimModifier.prototype.releasePathsData=function(t){var e,r=t.length;for(e=0;e1?1+a:this.s.v<0?0+a:this.s.v+a)>(r=this.e.v>1?1+a:this.e.v<0?0+a:this.e.v+a)){var n=e;e=r,r=n}e=1e-4*Math.round(1e4*e),r=1e-4*Math.round(1e4*r),this.sValue=e,this.eValue=r}else e=this.sValue,r=this.eValue;var o,h,l,p,c,f=this.shapes.length,d=0;if(r===e)for(s=0;s=0;s-=1)if((u=this.shapes[s]).shape._mdf){for((m=u.localShapeCollection).releaseShapes(),2===this.m&&f>1?(g=this.calculateShapeEdges(e,r,u.totalShapeLength,_,d),_+=u.totalShapeLength):g=[[v,b]],h=g.length,o=0;o=1?y.push({s:u.totalShapeLength*(v-1),e:u.totalShapeLength*(b-1)}):(y.push({s:u.totalShapeLength*v,e:u.totalShapeLength}),y.push({s:0,e:u.totalShapeLength*(b-1)}));var P=this.addShapes(u,y[0]);if(y[0].s!==y[0].e){if(y.length>1)if(u.shape.paths.shapes[u.shape.paths._length-1].c){var E=P.pop();this.addPaths(P,m),P=this.addShapes(u,y[1],E)}else this.addPaths(P,m),P=this.addShapes(u,y[1]);this.addPaths(P,m)}}u.shape.paths=m}}},TrimModifier.prototype.addPaths=function(t,e){var r,i=t.length;for(r=0;re.e){r.c=!1;break}e.s<=u&&e.e>=u+n.addedLength?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[s],f[i].v[s],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[s],f[i].o[s-1],f[i].i[s],(e.s-u)/n.addedLength,(e.e-u)/n.addedLength,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1),u+=n.addedLength,o+=1}if(f[i].c&&h.length){if(n=h[s-1],u<=e.e){var g=h[s-1].addedLength;e.s<=u&&e.e>=u+g?(this.addSegment(f[i].v[s-1],f[i].o[s-1],f[i].i[0],f[i].v[0],r,o,y),y=!1):(l=bez.getNewSegment(f[i].v[s-1],f[i].v[0],f[i].o[s-1],f[i].i[0],(e.s-u)/g,(e.e-u)/g,h[s-1]),this.addSegmentFromArray(l,r,o,y),y=!1,r.c=!1)}else r.c=!1;u+=n.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[p][0],r.v[p][1],\"i\",p),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],\"o\",r._length-1)),u>e.e)break;i=this.p.keyframes[this.p.keyframes.length-1].t?(i=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/r,0),s=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/r,0)):(i=this.p.pv,s=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/r,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){i=[],s=[];var a=this.px,n=this.py;a._caching.lastFrame+a.offsetTime<=a.keyframes[0].t?(i[0]=a.getValueAtTime((a.keyframes[0].t+.01)/r,0),i[1]=n.getValueAtTime((n.keyframes[0].t+.01)/r,0),s[0]=a.getValueAtTime(a.keyframes[0].t/r,0),s[1]=n.getValueAtTime(n.keyframes[0].t/r,0)):a._caching.lastFrame+a.offsetTime>=a.keyframes[a.keyframes.length-1].t?(i[0]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/r,0),i[1]=n.getValueAtTime(n.keyframes[n.keyframes.length-1].t/r,0),s[0]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/r,0),s[1]=n.getValueAtTime((n.keyframes[n.keyframes.length-1].t-.01)/r,0)):(i=[a.pv,n.pv],s[0]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/r,a.offsetTime),s[1]=n.getValueAtTime((n._caching.lastFrame+n.offsetTime-.01)/r,n.offsetTime))}else i=s=t;this.v.rotate(-Math.atan2(i[1]-s[1],i[0]-s[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],e),e.prototype.addDynamicProperty=function(t){this._addDynamicProperty(t),this.elem.addDynamicProperty(t),this._isDirty=!0},e.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(t,r,i){return new e(t,r,i)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function floatEqual(t,e){return 1e5*Math.abs(t-e)<=Math.min(Math.abs(t),Math.abs(e))}function floatZero(t){return Math.abs(t)<=1e-5}function lerp(t,e,r){return t*(1-r)+e*r}function lerpPoint(t,e,r){return[lerp(t[0],e[0],r),lerp(t[1],e[1],r)]}function quadRoots(t,e,r){if(0===t)return[];var i=e*e-4*t*r;if(i<0)return[];var s=-e/(2*t);if(0===i)return[s];var a=Math.sqrt(i)/(2*t);return[s-a,s+a]}function polynomialCoefficients(t,e,r,i){return[3*e-t-3*r+i,3*t-6*e+3*r,-3*t+3*e,t]}function singlePoint(t){return new PolynomialBezier(t,t,t,t,!1)}function PolynomialBezier(t,e,r,i,s){s&&pointEqual(t,e)&&(e=lerpPoint(t,i,1/3)),s&&pointEqual(r,i)&&(r=lerpPoint(t,i,2/3));var a=polynomialCoefficients(t[0],e[0],r[0],i[0]),n=polynomialCoefficients(t[1],e[1],r[1],i[1]);this.a=[a[0],n[0]],this.b=[a[1],n[1]],this.c=[a[2],n[2]],this.d=[a[3],n[3]],this.points=[t,e,r,i]}function extrema(t,e){var r=t.points[0][e],i=t.points[t.points.length-1][e];if(r>i){var s=i;i=r,r=s}for(var a=quadRoots(3*t.a[e],2*t.b[e],t.c[e]),n=0;n0&&a[n]<1){var o=t.point(a[n])[e];oi&&(i=o)}return{min:r,max:i}}function intersectData(t,e,r){var i=t.boundingBox();return{cx:i.cx,cy:i.cy,width:i.width,height:i.height,bez:t,t:(e+r)/2,t1:e,t2:r}}function splitData(t){var e=t.bez.split(.5);return[intersectData(e[0],t.t1,t.t),intersectData(e[1],t.t,t.t2)]}function boxIntersect(t,e){return 2*Math.abs(t.cx-e.cx)=a||t.width<=i&&t.height<=i&&e.width<=i&&e.height<=i)s.push([t.t,e.t]);else{var n=splitData(t),o=splitData(e);intersectsImpl(n[0],o[0],r+1,i,s,a),intersectsImpl(n[0],o[1],r+1,i,s,a),intersectsImpl(n[1],o[0],r+1,i,s,a),intersectsImpl(n[1],o[1],r+1,i,s,a)}}function crossProduct(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function lineIntersection(t,e,r,i){var s=[t[0],t[1],1],a=[e[0],e[1],1],n=[r[0],r[1],1],o=[i[0],i[1],1],h=crossProduct(crossProduct(s,a),crossProduct(n,o));return floatZero(h[2])?null:[h[0]/h[2],h[1]/h[2]]}function polarOffset(t,e,r){return[t[0]+Math.cos(e)*r,t[1]-Math.sin(e)*r]}function pointDistance(t,e){return Math.hypot(t[0]-e[0],t[1]-e[1])}function pointEqual(t,e){return floatEqual(t[0],e[0])&&floatEqual(t[1],e[1])}function ZigZagModifier(){}function setPoint(t,e,r,i,s,a,n){var o=r-Math.PI/2,h=r+Math.PI/2,l=e[0]+Math.cos(r)*i*s,p=e[1]-Math.sin(r)*i*s;t.setTripleAt(l,p,l+Math.cos(o)*a,p-Math.sin(o)*a,l+Math.cos(h)*n,p-Math.sin(h)*n,t.length())}function getPerpendicularVector(t,e){var r=[e[0]-t[0],e[1]-t[1]],i=.5*-Math.PI;return[Math.cos(i)*r[0]-Math.sin(i)*r[1],Math.sin(i)*r[0]+Math.cos(i)*r[1]]}function getProjectingAngle(t,e){var r=0===e?t.length()-1:e-1,i=(e+1)%t.length(),s=getPerpendicularVector(t.v[r],t.v[i]);return Math.atan2(0,1)-Math.atan2(s[1],s[0])}function zigZagCorner(t,e,r,i,s,a,n){var o=getProjectingAngle(e,r),h=e.v[r%e._length],l=e.v[0===r?e._length-1:r-1],p=e.v[(r+1)%e._length],c=2===a?Math.sqrt(Math.pow(h[0]-l[0],2)+Math.pow(h[1]-l[1],2)):0,f=2===a?Math.sqrt(Math.pow(h[0]-p[0],2)+Math.pow(h[1]-p[1],2)):0;setPoint(t,e.v[r%e._length],o,n,i,f/(2*(s+1)),c/(2*(s+1)),a)}function zigZagSegment(t,e,r,i,s,a){for(var n=0;n1&&e.length>1&&(s=getIntersection(t[0],e[e.length-1]))?[[t[0].split(s[0])[0]],[e[e.length-1].split(s[1])[1]]]:[r,i]}function pruneIntersections(t){for(var e,r=1;r1&&(e=pruneSegmentIntersection(t[t.length-1],t[0]),t[t.length-1]=e[0],t[0]=e[1]),t}function offsetSegmentSplit(t,e){var r,i,s,a,n=t.inflectionPoints();if(0===n.length)return[offsetSegment(t,e)];if(1===n.length||floatEqual(n[1],1))return r=(s=t.split(n[0]))[0],i=s[1],[offsetSegment(r,e),offsetSegment(i,e)];r=(s=t.split(n[0]))[0];var o=(n[1]-n[0])/(1-n[0]);return a=(s=s[1].split(o))[0],i=s[1],[offsetSegment(r,e),offsetSegment(a,e),offsetSegment(i,e)]}function OffsetPathModifier(){}function getFontProperties(t){for(var e=t.fStyle?t.fStyle.split(\" \"):[],r=\"normal\",i=\"normal\",s=e.length,a=0;a0;)r-=1,this._elements.unshift(e[r]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(t){var e,r=t.length;for(e=0;e0?Math.floor(f):Math.ceil(f),m=this.pMatrix.props,y=this.rMatrix.props,g=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var v,b,_=0;if(f>0){for(;_u;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),_-=1;d&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-d,!0),_-=d)}for(i=1===this.data.m?0:this._currentCopies-1,s=1===this.data.m?1:-1,a=this._currentCopies;a;){if(b=(r=(e=this.elemsData[i].it)[e.length-1].transform.mProps.v.props).length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=1===this._currentCopies?this.so.v:this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),0!==_){for((0!==i&&1===s||i!==this._currentCopies-1&&-1===s)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15]),this.matrix.transform(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15]),this.matrix.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),v=0;v0&&i<1?[e]:[]:[e-i,e+i].filter((function(t){return t>0&&t<1}))},PolynomialBezier.prototype.split=function(t){if(t<=0)return[singlePoint(this.points[0]),this];if(t>=1)return[this,singlePoint(this.points[this.points.length-1])];var e=lerpPoint(this.points[0],this.points[1],t),r=lerpPoint(this.points[1],this.points[2],t),i=lerpPoint(this.points[2],this.points[3],t),s=lerpPoint(e,r,t),a=lerpPoint(r,i,t),n=lerpPoint(s,a,t);return[new PolynomialBezier(this.points[0],e,s,n,!0),new PolynomialBezier(n,a,i,this.points[3],!0)]},PolynomialBezier.prototype.bounds=function(){return{x:extrema(this,0),y:extrema(this,1)}},PolynomialBezier.prototype.boundingBox=function(){var t=this.bounds();return{left:t.x.min,right:t.x.max,top:t.y.min,bottom:t.y.max,width:t.x.max-t.x.min,height:t.y.max-t.y.min,cx:(t.x.max+t.x.min)/2,cy:(t.y.max+t.y.min)/2}},PolynomialBezier.prototype.intersections=function(t,e,r){void 0===e&&(e=2),void 0===r&&(r=7);var i=[];return intersectsImpl(intersectData(this,0,1),intersectData(t,0,1),0,e,i,r),i},PolynomialBezier.shapeSegment=function(t,e){var r=(e+1)%t.length();return new PolynomialBezier(t.v[e],t.o[e],t.i[r],t.v[r],!0)},PolynomialBezier.shapeSegmentInverted=function(t,e){var r=(e+1)%t.length();return new PolynomialBezier(t.v[r],t.i[r],t.o[e],t.v[e],!0)},extendPrototype([ShapeModifier],ZigZagModifier),ZigZagModifier.prototype.initModifierProperties=function(t,e){this.getValue=this.processKeys,this.amplitude=PropertyFactory.getProp(t,e.s,0,null,this),this.frequency=PropertyFactory.getProp(t,e.r,0,null,this),this.pointsType=PropertyFactory.getProp(t,e.pt,0,null,this),this._isAnimated=0!==this.amplitude.effectsSequence.length||0!==this.frequency.effectsSequence.length||0!==this.pointsType.effectsSequence.length},ZigZagModifier.prototype.processPath=function(t,e,r,i){var s=t._length,a=shapePool.newElement();if(a.c=t.c,t.c||(s-=1),0===s)return a;var n=-1,o=PolynomialBezier.shapeSegment(t,0);zigZagCorner(a,t,0,e,r,i,n);for(var h=0;h=0;a-=1)o=PolynomialBezier.shapeSegmentInverted(t,a),l.push(offsetSegmentSplit(o,e));l=pruneIntersections(l);var p=null,c=null;for(a=0;a0&&(p=!1),p){var c=createTag(\"style\");c.setAttribute(\"f-forigin\",i[r].fOrigin),c.setAttribute(\"f-origin\",i[r].origin),c.setAttribute(\"f-family\",i[r].fFamily),c.type=\"text/css\",c.innerText=\"@font-face {font-family: \"+i[r].fFamily+\"; font-style: normal; src: url('\"+i[r].fPath+\"');}\",e.appendChild(c)}}else if(\"g\"===i[r].fOrigin||1===i[r].origin){for(h=document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]'),l=0;lt?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var t,e=this.renderableComponents.length;for(t=0;t0&&(this.maskElement.setAttribute(\"id\",y),this.element.maskedElement.setAttribute(v,\"url(\"+getLocationHref()+\"#\"+y+\")\"),a.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(t,e){var r;this.data=t,this.effectElements=[],this.initDynamicPropertyContainer(e);var i,s=this.data.ef.length,a=this.data.ef;for(r=0;r.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(t){this.audio.rate(t)},AudioElement.prototype.volume=function(t){this._volumeMultiplier=t,this._previousVolume=t*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(t){var e,r,i=this.layers.length;for(this.completeLayers=!0,e=i-1;e>=0;e-=1)this.elements[e]||(r=this.layers[e]).ip-r.st<=t-this.layers[e].st&&r.op-r.st>t-this.layers[e].st&&this.buildItem(e),this.completeLayers=!!this.elements[e]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(t){switch(t.ty){case 2:return this.createImage(t);case 0:return this.createComp(t);case 1:return this.createSolid(t);case 3:default:return this.createNull(t);case 4:return this.createShape(t);case 5:return this.createText(t);case 6:return this.createAudio(t);case 13:return this.createCamera(t);case 15:return this.createFootage(t)}},BaseRenderer.prototype.createCamera=function(){throw new Error(\"You're using a 3d camera. Try the html renderer.\")},BaseRenderer.prototype.createAudio=function(t){return new AudioElement(t,this.globalData,this)},BaseRenderer.prototype.createFootage=function(t){return new FootageElement(t,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var t,e=this.layers.length;for(t=0;t1&&(a+=\" C\"+e.o[i-1][0]+\",\"+e.o[i-1][1]+\" \"+e.i[0][0]+\",\"+e.i[0][1]+\" \"+e.v[0][0]+\",\"+e.v[0][1]),r.lastPath!==a){var n=\"\";r.elem&&(e.c&&(n=t.inv?this.solidPath+a:a),r.elem.setAttribute(\"d\",n)),r.lastPath=a}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var t={createFilter:function(t,e){var r=createNS(\"filter\");return r.setAttribute(\"id\",t),!0!==e&&(r.setAttribute(\"filterUnits\",\"objectBoundingBox\"),r.setAttribute(\"x\",\"0%\"),r.setAttribute(\"y\",\"0%\"),r.setAttribute(\"width\",\"100%\"),r.setAttribute(\"height\",\"100%\")),r},createAlphaToLuminanceFilter:function(){var t=createNS(\"feColorMatrix\");return t.setAttribute(\"type\",\"matrix\"),t.setAttribute(\"color-interpolation-filters\",\"sRGB\"),t.setAttribute(\"values\",\"0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1\"),t}};return t}(),featureSupport=function(){var t={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\\/\\d./i.test(navigator.userAgent))&&(t.maskType=!1),t}(),registeredEffects={},idPrefix=\"filter_result_\";function SVGEffects(t){var e,r,i=\"SourceGraphic\",s=t.data.ef?t.data.ef.length:0,a=createElementID(),n=filtersFactory.createFilter(a,!0),o=0;for(this.filters=[],e=0;e=0&&!this.shapeModifiers[t].processShapes(this._isFirstFrame);t-=1);}},searchProcessedElement:function(t){for(var e=this.processedElements,r=0,i=e.length;r.01)return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var t=0,e=this.data.k.k.length;t0;)h=i.transformers[m].mProps._mdf||h,u-=1,m-=1;if(h)for(u=g-i.styles[p].lvl,m=i.transformers.length-1;u>0;)d=i.transformers[m].mProps.v.props,f.transform(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15]),u-=1,m-=1}else f=t;if(n=(c=i.sh.paths)._length,h){for(o=\"\",a=0;a=1?v=.99:v<=-1&&(v=-.99);var b=o*v,_=Math.cos(g+e.a.v)*b+p[0],P=Math.sin(g+e.a.v)*b+p[1];h.setAttribute(\"fx\",_),h.setAttribute(\"fy\",P),l&&!e.g._collapsable&&(e.of.setAttribute(\"fx\",_),e.of.setAttribute(\"fy\",P))}}function h(t,e,r){var i=e.style,s=e.d;s&&(s._mdf||r)&&s.dashStr&&(i.pElem.setAttribute(\"stroke-dasharray\",s.dashStr),i.pElem.setAttribute(\"stroke-dashoffset\",s.dashoffset[0])),e.c&&(e.c._mdf||r)&&i.pElem.setAttribute(\"stroke\",\"rgb(\"+bmFloor(e.c.v[0])+\",\"+bmFloor(e.c.v[1])+\",\"+bmFloor(e.c.v[2])+\")\"),(e.o._mdf||r)&&i.pElem.setAttribute(\"stroke-opacity\",e.o.v),(e.w._mdf||r)&&(i.pElem.setAttribute(\"stroke-width\",e.w.v),i.msElem&&i.msElem.setAttribute(\"stroke-width\",e.w.v))}return{createRenderFunction:function(t){switch(t.ty){case\"fl\":return a;case\"gf\":return o;case\"gs\":return n;case\"st\":return h;case\"sh\":case\"el\":case\"rc\":case\"sr\":return s;case\"tr\":return r;case\"no\":return i;default:return null}}}}();function SVGShapeElement(t,e,r){this.shapes=[],this.shapesData=t.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(t,e,r),this.prevViewData=[]}function LetterProps(t,e,r,i,s,a){this.o=t,this.sw=e,this.sc=r,this.fc=i,this.m=s,this.p=a,this._mdf={o:!0,sw:!!e,sc:!!r,fc:!!i,m:!0,p:!0}}function TextProperty(t,e){this._frameId=initialDefaultFrame,this.pv=\"\",this.v=\"\",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=e,this.elem=t,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:\"\",fStyle:\"\",fWeight:\"\",fc:\"\",j:\"\",justifyOffset:\"\",l:[],lh:0,lineWidths:[],ls:\"\",of:\"\",s:\"\",sc:\"\",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var t,e,r,i,s=this.shapes.length,a=this.stylesList.length,n=[],o=!1;for(r=0;r1&&o&&this.setShapesAsAnimated(n)}},SVGShapeElement.prototype.setShapesAsAnimated=function(t){var e,r=t.length;for(e=0;e=0;o-=1){if((f=this.searchProcessedElement(t[o]))?e[o]=r[f-1]:t[o]._render=n,\"fl\"===t[o].ty||\"st\"===t[o].ty||\"gf\"===t[o].ty||\"gs\"===t[o].ty||\"no\"===t[o].ty)f?e[o].style.closed=!1:e[o]=this.createStyleElement(t[o],s),t[o]._render&&e[o].style.pElem.parentNode!==i&&i.appendChild(e[o].style.pElem),m.push(e[o].style);else if(\"gr\"===t[o].ty){if(f)for(l=e[o].it.length,h=0;h1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(t){this.effectsSequence.push(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(t){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||t){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var i;this.lock=!0,this._mdf=!1;var s=this.effectsSequence.length,a=t||this.data.d.k[this.keysIndex].s;for(i=0;ie);)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(t){for(var e,r,i=[],s=0,a=t.length,n=!1;s=55296&&e<=56319?(r=t.charCodeAt(s+1))>=56320&&r<=57343?(n||FontManager.isModifier(e,r)?(i[i.length-1]+=t.substr(s,2),n=!1):i.push(t.substr(s,2)),s+=1):i.push(t.charAt(s)):e>56319?(r=t.charCodeAt(s+1),FontManager.isZeroWidthJoiner(e,r)?(n=!0,i[i.length-1]+=t.substr(s,2),s+=1):i.push(t.charAt(s))):FontManager.isZeroWidthJoiner(e)?(i[i.length-1]+=t.charAt(s),n=!0):i.push(t.charAt(s)),s+=1;return i},TextProperty.prototype.completeTextData=function(t){t.__complete=!0;var e,r,i,s,a,n,o,h=this.elem.globalData.fontManager,l=this.data,p=[],c=0,f=l.m.g,d=0,u=0,m=0,y=[],g=0,v=0,b=h.getFontByName(t.f),_=0,P=getFontProperties(b);t.fWeight=P.weight,t.fStyle=P.style,t.finalSize=t.s,t.finalText=this.buildFinalText(t.t),r=t.finalText.length,t.finalLineHeight=t.lh;var E,S=t.tr/1e3*t.finalSize;if(t.sz)for(var x,A,w=!0,C=t.sz[0],k=t.sz[1];w;){x=0,g=0,r=(A=this.buildFinalText(t.t)).length,S=t.tr/1e3*t.finalSize;var T=-1;for(e=0;eC&&\" \"!==A[e]?(-1===T?r+=1:e=T,x+=t.finalLineHeight||1.2*t.finalSize,A.splice(e,T===e?1:0,\"\\r\"),T=-1,g=0):(g+=_,g+=S);x+=b.ascent*t.finalSize/100,this.canResize&&t.finalSize>this.minimumFontSize&&kv?g:v,g=-2*S,s=\"\",i=!0,m+=1):s=D,h.chars?(o=h.getCharData(D,b.fStyle,h.getFontByName(t.f).fFamily),_=i?0:o.w*t.finalSize/100):_=h.measureText(s,t.f,t.finalSize),\" \"===D?M+=_+S:(g+=_+S+M,M=0),p.push({l:_,an:_,add:d,n:i,anIndexes:[],val:s,line:m,animatorJustifyOffset:0}),2==f){if(d+=_,\"\"===s||\" \"===s||e===r-1){for(\"\"!==s&&\" \"!==s||(d-=_);u<=e;)p[u].an=d,p[u].ind=c,p[u].extra=_,u+=1;c+=1,d=0}}else if(3==f){if(d+=_,\"\"===s||e===r-1){for(\"\"===s&&(d-=_);u<=e;)p[u].an=d,p[u].ind=c,p[u].extra=_,u+=1;d=0,c+=1}}else p[c].ind=c,p[c].extra=0,c+=1;if(t.l=p,v=g>v?g:v,y.push(g),t.sz)t.boxWidth=t.sz[0],t.justifyOffset=0;else switch(t.boxWidth=v,t.j){case 1:t.justifyOffset=-t.boxWidth;break;case 2:t.justifyOffset=-t.boxWidth/2;break;default:t.justifyOffset=0}t.lineWidths=y;var F,I,R,B,V=l.a;n=V.length;var O=[];for(a=0;a0?s=this.ne.v/100:a=-this.ne.v/100,this.xe.v>0?n=1-this.xe.v/100:o=1+this.xe.v/100;var h=BezierFactory.getBezierEasing(s,a,n,o).get,l=0,p=this.finalS,c=this.finalE,f=this.data.sh;if(2===f)l=h(l=c===p?i>=c?1:0:t(0,e(.5/(c-p)+(i-p)/(c-p),1)));else if(3===f)l=h(l=c===p?i>=c?0:1:1-t(0,e(.5/(c-p)+(i-p)/(c-p),1)));else if(4===f)c===p?l=0:(l=t(0,e(.5/(c-p)+(i-p)/(c-p),1)))<.5?l*=2:l=1-2*(l-.5),l=h(l);else if(5===f){if(c===p)l=0;else{var d=c-p,u=-d/2+(i=e(t(0,i+.5-p),c-p)),m=d/2;l=Math.sqrt(1-u*u/(m*m))}l=h(l)}else 6===f?(c===p?l=0:(i=e(t(0,i+.5-p),c-p),l=(1+Math.cos(Math.PI+2*Math.PI*i/(c-p)))/2),l=h(l)):(i>=r(p)&&(l=t(0,e(i-p<0?e(c,1)-(p-i):c-i,1))),l=h(l));if(100!==this.sm.v){var y=.01*this.sm.v;0===y&&(y=1e-8);var g=.5-.5*y;l1&&(l=1)}return l*this.a.v},getValue:function(t){this.iterateDynamicProperties(),this._mdf=t||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,t&&2===this.data.r&&(this.e.v=this._currentTextLength);var e=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/e,i=this.s.v/e+r,s=this.e.v/e+r;if(i>s){var a=i;i=s,s=a}this.finalS=i,this.finalE=s}},extendPrototype([DynamicPropertyContainer],i),{getTextSelectorProp:function(t,e,r){return new i(t,e,r)}}}();function TextAnimatorDataProperty(t,e,r){var i={propType:!1},s=PropertyFactory.getProp,a=e.a;this.a={r:a.r?s(t,a.r,0,degToRads,r):i,rx:a.rx?s(t,a.rx,0,degToRads,r):i,ry:a.ry?s(t,a.ry,0,degToRads,r):i,sk:a.sk?s(t,a.sk,0,degToRads,r):i,sa:a.sa?s(t,a.sa,0,degToRads,r):i,s:a.s?s(t,a.s,1,.01,r):i,a:a.a?s(t,a.a,1,0,r):i,o:a.o?s(t,a.o,0,.01,r):i,p:a.p?s(t,a.p,1,0,r):i,sw:a.sw?s(t,a.sw,0,0,r):i,sc:a.sc?s(t,a.sc,1,0,r):i,fc:a.fc?s(t,a.fc,1,0,r):i,fh:a.fh?s(t,a.fh,0,0,r):i,fs:a.fs?s(t,a.fs,0,.01,r):i,fb:a.fb?s(t,a.fb,0,.01,r):i,t:a.t?s(t,a.t,0,0,r):i},this.s=TextSelectorProp.getTextSelectorProp(t,e.s,r),this.s.t=e.s.t}function TextAnimatorProperty(t,e,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=t,this._renderType=e,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var t,e,r=this._textData.a.length,i=PropertyFactory.getProp;for(t=0;t=o+ot||!u?(v=(o+ot-l)/h.partialLength,L=d.point[0]+(h.point[0]-d.point[0])*v,$=d.point[1]+(h.point[1]-d.point[1])*v,x.translate(-P[0]*C[s].an*.005,-P[1]*B*.01),p=!1):u&&(l+=h.partialLength,(c+=1)>=u.length&&(c=0,m[f+=1]?u=m[f].points:_.v.c?(c=0,u=m[f=0].points):(l-=h.partialLength,u=null)),u&&(d=h,y=(h=u[c]).partialLength));O=C[s].an/2-C[s].add,x.translate(-O,0,0)}else O=C[s].an/2-C[s].add,x.translate(-O,0,0),x.translate(-P[0]*C[s].an*.005,-P[1]*B*.01,0);for(M=0;Mt?this.textSpans[t].span:createNS(h?\"g\":\"text\"),y<=t){if(n.setAttribute(\"stroke-linecap\",\"butt\"),n.setAttribute(\"stroke-linejoin\",\"round\"),n.setAttribute(\"stroke-miterlimit\",\"4\"),this.textSpans[t].span=n,h){var g=createNS(\"g\");n.appendChild(g),this.textSpans[t].childSpan=g}this.textSpans[t].span=n,this.layerElement.appendChild(n)}n.style.display=\"inherit\"}if(l.reset(),p&&(o[t].n&&(c=-u,f+=r.yOffset,f+=d?1:0,d=!1),this.applyTextPropertiesToMatrix(r,l,o[t].line,c,f),c+=o[t].l||0,c+=u),h){var v;if(1===(m=this.globalData.fontManager.getCharData(r.finalText[t],i.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily)).t)v=new SVGCompElement(m.data,this.globalData,this);else{var b=emptyShapeData;m.data&&m.data.shapes&&(b=this.buildShapeData(m.data,r.finalSize)),v=new SVGShapeElement(b,this.globalData,this)}if(this.textSpans[t].glyph){var _=this.textSpans[t].glyph;this.textSpans[t].childSpan.removeChild(_.layerElement),_.destroy()}this.textSpans[t].glyph=v,v._debug=!0,v.prepareFrame(0),v.renderFrame(),this.textSpans[t].childSpan.appendChild(v.layerElement),1===m.t&&this.textSpans[t].childSpan.setAttribute(\"transform\",\"scale(\"+r.finalSize/100+\",\"+r.finalSize/100+\")\")}else p&&n.setAttribute(\"transform\",\"translate(\"+l.props[12]+\",\"+l.props[13]+\")\"),n.textContent=o[t].val,n.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\")}p&&n&&n.setAttribute(\"d\",\"\")}else{var P=this.textContainer,E=\"start\";switch(r.j){case 1:E=\"end\";break;case 2:E=\"middle\";break;default:E=\"start\"}P.setAttribute(\"text-anchor\",E),P.setAttribute(\"letter-spacing\",u);var S=this.buildTextContents(r.finalText);for(e=S.length,f=r.ps?r.ps[1]+r.ascent:0,t=0;t=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(t-this.layers[e].st);if(this.globalData._mdf)for(e=0;e=0;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var t,e=this.layers.length;for(t=0;t=0;i-=1)r=t.transforms[i].transform.mProps.v.props,t.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);t._mdf=a},processSequences:function(t){var e,r=this.sequenceList.length;for(e=0;e=0;a-=1){if((h=this.searchProcessedElement(t[a]))?e[a]=r[h-1]:t[a]._shouldRender=i,\"fl\"===t[a].ty||\"st\"===t[a].ty||\"gf\"===t[a].ty||\"gs\"===t[a].ty)h?e[a].style.closed=!1:e[a]=this.createStyleElement(t[a],u),f.push(e[a].style);else if(\"gr\"===t[a].ty){if(h)for(o=e[a].it.length,n=0;n=0;s-=1)\"tr\"===e[s].ty?(a=r[s].transform,this.renderShapeTransform(t,a)):\"sh\"===e[s].ty||\"el\"===e[s].ty||\"rc\"===e[s].ty||\"sr\"===e[s].ty?this.renderPath(e[s],r[s]):\"fl\"===e[s].ty?this.renderFill(e[s],r[s],a):\"st\"===e[s].ty?this.renderStroke(e[s],r[s],a):\"gf\"===e[s].ty||\"gs\"===e[s].ty?this.renderGradientFill(e[s],r[s],a):\"gr\"===e[s].ty?this.renderShape(a,e[s].it,r[s].it):e[s].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(t,e){if(this._isFirstFrame||e._mdf||t.transforms._mdf){var r,i,s,a=t.trNodes,n=e.paths,o=n._length;a.length=0;var h=t.transforms.finalTransform;for(s=0;s=1?c=.99:c<=-1&&(c=-.99);var f=l*c,d=Math.cos(p+e.a.v)*f+o[0],u=Math.sin(p+e.a.v)*f+o[1];i=n.createRadialGradient(d,u,0,o[0],o[1],l)}var m=t.g.p,y=e.g.c,g=1;for(a=0;ao&&\"xMidYMid slice\"===h||ns&&\"meet\"===o||as&&\"slice\"===o)?(r-this.transformCanvas.w*(i/this.transformCanvas.h))/2*this.renderConfig.dpr:\"xMax\"===l&&(as&&\"slice\"===o)?(r-this.transformCanvas.w*(i/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty=\"YMid\"===p&&(a>s&&\"meet\"===o||as&&\"meet\"===o||a=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(t,e){if((this.renderedFrame!==t||!0!==this.renderConfig.clearCanvas||e)&&!this.destroyed&&-1!==t){var r;this.renderedFrame=t,this.globalData.frameNum=t-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=t;var i=this.layers.length;for(this.completeLayers||this.checkLayers(t),r=0;r=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(t){var e=this.elements;if(!e[t]&&99!==this.layers[t].ty){var r=this.createItem(this.layers[t],this,this.globalData);e[t]=r,r.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;)this.pendingElements.pop().checkParenting()},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display=\"none\"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display=\"block\"},extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var t,e=this.canvasContext;for(e.beginPath(),e.moveTo(0,0),e.lineTo(this.data.w,0),e.lineTo(this.data.w,this.data.h),e.lineTo(0,this.data.h),e.lineTo(0,0),e.clip(),t=this.layers.length-1;t>=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame()},CVCompElement.prototype.destroy=function(){var t;for(t=this.layers.length-1;t>=0;t-=1)this.elements[t]&&this.elements[t].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(t){return new CVCompElement(t,this.globalData,this)},HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||\"div\"),this.data.hasMask?(this.svgElement=createNS(\"svg\"),this.layerElement=createNS(\"g\"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute(\"id\",this.data.ln),this.data.cl&&this.layerElement.setAttribute(\"class\",this.data.cl),0!==this.data.bm&&this.setBlendMode()},renderElement:function(){var t=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var e=this.finalTransform.mat.toCSS();t.transform=e,t.webkitTransform=e}this.finalTransform._opMdf&&(t.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting,extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var t;this.data.hasMask?((t=createNS(\"rect\")).setAttribute(\"width\",this.data.sw),t.setAttribute(\"height\",this.data.sh),t.setAttribute(\"fill\",this.data.sc),this.svgElement.setAttribute(\"width\",this.data.sw),this.svgElement.setAttribute(\"height\",this.data.sh)):((t=createTag(\"div\")).style.width=this.data.sw+\"px\",t.style.height=this.data.sh+\"px\",t.style.backgroundColor=this.data.sc),this.layerElement.appendChild(t)},extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var t;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),t=this.svgElement;else{t=createNS(\"svg\");var e=this.comp.data?this.comp.data:this.globalData.compSize;t.setAttribute(\"width\",e.w),t.setAttribute(\"height\",e.h),t.appendChild(this.shapesContainer),this.layerElement.appendChild(t)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=t},HShapeElement.prototype.getTransformedPoint=function(t,e){var r,i=t.length;for(r=0;r0&&o<1&&c[f].push(this.calculateF(o,t,e,r,i,f)):(h=a*a-4*n*s)>=0&&((l=(-a+bmSqrt(h))/(2*s))>0&&l<1&&c[f].push(this.calculateF(l,t,e,r,i,f)),(p=(-a-bmSqrt(h))/(2*s))>0&&p<1&&c[f].push(this.calculateF(p,t,e,r,i,f))));this.shapeBoundingBox.left=bmMin.apply(null,c[0]),this.shapeBoundingBox.top=bmMin.apply(null,c[1]),this.shapeBoundingBox.right=bmMax.apply(null,c[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,c[1])},HShapeElement.prototype.calculateF=function(t,e,r,i,s,a){return bmPow(1-t,3)*e[a]+3*bmPow(1-t,2)*t*r[a]+3*(1-t)*bmPow(t,2)*i[a]+bmPow(t,3)*s[a]},HShapeElement.prototype.calculateBoundingBox=function(t,e){var r,i=t.length;for(r=0;rr&&(r=s)}r*=t.mult}else r=t.v*t.mult;e.x-=r,e.xMax+=r,e.y-=r,e.yMax+=r},HShapeElement.prototype.currentBoxContains=function(t){return this.currentBBox.x<=t.x&&this.currentBBox.y<=t.y&&this.currentBBox.width+this.currentBBox.x>=t.x+t.width&&this.currentBBox.height+this.currentBBox.y>=t.y+t.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var t=this.tempBoundingBox,e=999999;if(t.x=e,t.xMax=-e,t.y=e,t.yMax=-e,this.calculateBoundingBox(this.itemsData,t),t.width=t.xMax=0;t-=1){var i=this.hierarchy[t].finalTransform.mProp;this.mat.translate(-i.p.v[0],-i.p.v[1],i.p.v[2]),this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]),this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v),this.mat.scale(1/i.s.v[0],1/i.s.v[1],1/i.s.v[2]),this.mat.translate(i.a.v[0],i.a.v[1],i.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var s;s=this.p?[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var a=Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2)),n=[s[0]/a,s[1]/a,s[2]/a],o=Math.sqrt(n[2]*n[2]+n[0]*n[0]),h=Math.atan2(n[1],o),l=Math.atan2(n[0],-n[2]);this.mat.rotateY(l).rotateX(-h)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var p=!this._prevMat.equals(this.mat);if((p||this.pe._mdf)&&this.comp.threeDElements){var c,f,d;for(e=this.comp.threeDElements.length,t=0;t=t)return this.threeDElements[e].perspectiveElem;e+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(t,e){var r,i,s=createTag(\"div\");styleDiv(s);var a=createTag(\"div\");if(styleDiv(a),\"3d\"===e){(r=s.style).width=this.globalData.compSize.w+\"px\",r.height=this.globalData.compSize.h+\"px\";var n=\"50% 50%\";r.webkitTransformOrigin=n,r.mozTransformOrigin=n,r.transformOrigin=n;var o=\"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";(i=a.style).transform=o,i.webkitTransform=o}s.appendChild(a);var h={container:a,perspectiveElem:s,startPos:t,endPos:t,type:e};return this.threeDElements.push(h),h},HybridRendererBase.prototype.build3dContainers=function(){var t,e,r=this.layers.length,i=\"\";for(t=0;t=0;t-=1)this.resizerElem.appendChild(this.threeDElements[t].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(t,e){for(var r=0,i=this.threeDElements.length;rn?(t=s/this.globalData.compSize.w,e=s/this.globalData.compSize.w,r=0,i=(a-this.globalData.compSize.h*(s/this.globalData.compSize.w))/2):(t=a/this.globalData.compSize.h,e=a/this.globalData.compSize.h,r=(s-this.globalData.compSize.w*(a/this.globalData.compSize.h))/2,i=0);var o=this.resizerElem.style;o.webkitTransform=\"matrix3d(\"+t+\",0,0,0,0,\"+e+\",0,0,0,0,1,0,\"+r+\",\"+i+\",0,1)\",o.transform=o.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display=\"none\"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display=\"block\"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var t,e=this.globalData.compSize.w,r=this.globalData.compSize.h,i=this.threeDElements.length;for(t=0;t=n;)t/=2,e/=2,r>>>=1;return(t+r)/e};return v.int32=function(){return 0|g.g(4)},v.quick=function(){return g.g(4)/4294967296},v.double=v,c(f(g.S),t),(d.pass||u||function(t,r,i,s){return s&&(s.S&&l(s,g),t.state=function(){return l(g,{})}),i?(e.random=t,r):t})(v,y,\"global\"in d?d.global:this==e,d.state)},c(e.random(),t)}function initialize$2(t){seedRandom([],t)}var propTypes={SHAPE:\"shape\"};function _typeof(t){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},_typeof(t)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(t){return t.constructor===Array||t.constructor===Float32Array}function isNumerable(t,e){return\"number\"===t||\"boolean\"===t||\"string\"===t||e instanceof Number}function $bm_neg(t){var e=_typeof(t);if(\"number\"===e||\"boolean\"===e||t instanceof Number)return-t;if($bm_isInstanceOfArray(t)){var r,i=t.length,s=[];for(r=0;rr){var i=r;r=e,e=i}return Math.min(Math.max(t,e),r)}function radiansToDegrees(t){return t/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(t){return t*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(t,e){if(\"number\"==typeof t||t instanceof Number)return e=e||0,Math.abs(t-e);var r;e||(e=helperLengthArray);var i=Math.min(t.length,e.length),s=0;for(r=0;r.5?l/(2-n-o):l/(n+o),n){case i:e=(s-a)/l+(s1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}function hslToRgb(t){var e,r,i,s=t[0],a=t[1],n=t[2];if(0===a)e=n,i=n,r=n;else{var o=n<.5?n*(1+a):n+a-n*a,h=2*n-o;e=hue2rgb(h,o,s+1/3),r=hue2rgb(h,o,s),i=hue2rgb(h,o,s-1/3)}return[e,r,i,t[3]]}function linear(t,e,r,i,s){if(void 0!==i&&void 0!==s||(i=e,s=r,e=0,r=1),r=r)return s;var n,o=r===e?0:(t-e)/(r-e);if(!i.length)return i+(s-i)*o;var h=i.length,l=createTypedArray(\"float32\",h);for(n=0;n1){for(i=0;i1?e=1:e<0&&(e=0);var n=t(e);if($bm_isInstanceOfArray(s)){var o,h=s.length,l=createTypedArray(\"float32\",h);for(o=0;odata.k[e].t&&tdata.k[e+1].t-t?(r=e+2,i=data.k[e+1].t):(r=e+1,i=data.k[e].t);break}}-1===r&&(r=e+1,i=data.k[e].t)}else r=0,i=0;var a={};return a.index=r,a.time=i/elem.comp.globalData.frameRate,a}function key(t){var e,r,i;if(!data.k.length||\"number\"==typeof data.k[0])throw new Error(\"The property has no keyframe at index \"+t);t-=1,e={time:data.k[t].t/elem.comp.globalData.frameRate,value:[]};var s=Object.prototype.hasOwnProperty.call(data.k[t],\"s\")?data.k[t].s:data.k[t-1].e;for(i=s.length,r=0;rl.length-1)&&(e=l.length-1),i=p-(s=l[l.length-1-e].t)),\"pingpong\"===t){if(Math.floor((h-s)/i)%2!=0)return this.getValueAtTime((i-(h-s)%i+s)/this.comp.globalData.frameRate,0)}else{if(\"offset\"===t){var c=this.getValueAtTime(s/this.comp.globalData.frameRate,0),f=this.getValueAtTime(p/this.comp.globalData.frameRate,0),d=this.getValueAtTime(((h-s)%i+s)/this.comp.globalData.frameRate,0),u=Math.floor((h-s)/i);if(this.pv.length){for(n=(o=new Array(c.length)).length,a=0;a=p)return this.pv;if(r?s=p+(i=e?Math.abs(this.elem.comp.globalData.frameRate*e):Math.max(0,this.elem.data.op-p)):((!e||e>l.length-1)&&(e=l.length-1),i=(s=l[e].t)-p),\"pingpong\"===t){if(Math.floor((p-h)/i)%2==0)return this.getValueAtTime(((p-h)%i+p)/this.comp.globalData.frameRate,0)}else{if(\"offset\"===t){var c=this.getValueAtTime(p/this.comp.globalData.frameRate,0),f=this.getValueAtTime(s/this.comp.globalData.frameRate,0),d=this.getValueAtTime((i-(p-h)%i+p)/this.comp.globalData.frameRate,0),u=Math.floor((p-h)/i)+1;if(this.pv.length){for(n=(o=new Array(c.length)).length,a=0;a1?(s+t-a)/(e-1):1,o=0,h=0;for(r=this.pv.length?createTypedArray(\"float32\",this.pv.length):0;on){var p=o,c=r.c&&o===h-1?0:o+1,f=(n-l)/a[o].addedLength;i=bez.getPointInSegment(r.v[p],r.v[c],r.o[p],r.i[c],f,a[o]);break}l+=a[o].addedLength,o+=1}return i||(i=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),i},vectorOnPath:function(t,e,r){1==t?t=this.v.c:0==t&&(t=.999);var i=this.pointOnPath(t,e),s=this.pointOnPath(t+.001,e),a=s[0]-i[0],n=s[1]-i[1],o=Math.sqrt(Math.pow(a,2)+Math.pow(n,2));return 0===o?[0,0]:\"tangent\"===r?[a/o,n/o]:[-n/o,a/o]},tangentOnPath:function(t,e){return this.vectorOnPath(t,e,\"tangent\")},normalOnPath:function(t,e){return this.vectorOnPath(t,e,\"normal\")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([l],o),extendPrototype([l],h),h.prototype.getValueAtTime=function(t){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),t*=this.elem.globalData.frameRate,(t-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime=l?d<0?i:s:i+f*Math.pow((a-t)/d,1/r),p[c]=n,c+=1,o+=256/255;return p.join(\" \")},SVGProLevelsFilter.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){var e,r=this.filterManager.effectElements;this.feFuncRComposed&&(t||r[3].p._mdf||r[4].p._mdf||r[5].p._mdf||r[6].p._mdf||r[7].p._mdf)&&(e=this.getTableValue(r[3].p.v,r[4].p.v,r[5].p.v,r[6].p.v,r[7].p.v),this.feFuncRComposed.setAttribute(\"tableValues\",e),this.feFuncGComposed.setAttribute(\"tableValues\",e),this.feFuncBComposed.setAttribute(\"tableValues\",e)),this.feFuncR&&(t||r[10].p._mdf||r[11].p._mdf||r[12].p._mdf||r[13].p._mdf||r[14].p._mdf)&&(e=this.getTableValue(r[10].p.v,r[11].p.v,r[12].p.v,r[13].p.v,r[14].p.v),this.feFuncR.setAttribute(\"tableValues\",e)),this.feFuncG&&(t||r[17].p._mdf||r[18].p._mdf||r[19].p._mdf||r[20].p._mdf||r[21].p._mdf)&&(e=this.getTableValue(r[17].p.v,r[18].p.v,r[19].p.v,r[20].p.v,r[21].p.v),this.feFuncG.setAttribute(\"tableValues\",e)),this.feFuncB&&(t||r[24].p._mdf||r[25].p._mdf||r[26].p._mdf||r[27].p._mdf||r[28].p._mdf)&&(e=this.getTableValue(r[24].p.v,r[25].p.v,r[26].p.v,r[27].p.v,r[28].p.v),this.feFuncB.setAttribute(\"tableValues\",e)),this.feFuncA&&(t||r[31].p._mdf||r[32].p._mdf||r[33].p._mdf||r[34].p._mdf||r[35].p._mdf)&&(e=this.getTableValue(r[31].p.v,r[32].p.v,r[33].p.v,r[34].p.v,r[35].p.v),this.feFuncA.setAttribute(\"tableValues\",e))}},extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(t){if(t||this.filterManager._mdf){if((t||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute(\"stdDeviation\",this.filterManager.effectElements[4].p.v/4),t||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute(\"flood-color\",rgbToHex(Math.round(255*e[0]),Math.round(255*e[1]),Math.round(255*e[2])))}if((t||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute(\"flood-opacity\",this.filterManager.effectElements[1].p.v/255),t||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var r=this.filterManager.effectElements[3].p.v,i=(this.filterManager.effectElements[2].p.v-90)*degToRads,s=r*Math.cos(i),a=r*Math.sin(i);this.feOffset.setAttribute(\"dx\",s),this.feOffset.setAttribute(\"dy\",a)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(t,e,r){this.initialized=!1,this.filterManager=e,this.filterElem=t,this.elem=r,r.matteElement=createNS(\"g\"),r.matteElement.appendChild(r.layerElement),r.matteElement.appendChild(r.transformedElement),r.baseElement=r.matteElement}function SVGGaussianBlurEffect(t,e,r,i){t.setAttribute(\"x\",\"-100%\"),t.setAttribute(\"y\",\"-100%\"),t.setAttribute(\"width\",\"300%\"),t.setAttribute(\"height\",\"300%\"),this.filterManager=e;var s=createNS(\"feGaussianBlur\");s.setAttribute(\"result\",i),t.appendChild(s),this.feGaussianBlur=s}return SVGMatte3Effect.prototype.findSymbol=function(t){for(var e=0,r=_svgMatteSymbols.length;eObject.prototype.hasOwnProperty.call(t,e)))}function fromURL(t){return _fromURL.apply(this,arguments)}function _fromURL(){return(_fromURL=_asyncToGenerator((function*(t){if(\"string\"!=typeof t)throw new Error(\"The url value must be a string\");var e;try{var r=new URL(t),i=yield fetch(r.toString());e=yield i.json()}catch(t){throw new Error(\"An error occurred while trying to load the Lottie file from URL\")}return e}))).apply(this,arguments)}!function(t){t.Destroyed=\"destroyed\",t.Error=\"error\",t.Frozen=\"frozen\",t.Loading=\"loading\",t.Paused=\"paused\",t.Playing=\"playing\",t.Stopped=\"stopped\"}(PlayerState||(PlayerState={})),function(t){t.Bounce=\"bounce\",t.Normal=\"normal\"}(PlayMode||(PlayMode={})),function(t){t.Complete=\"complete\",t.Destroyed=\"destroyed\",t.Error=\"error\",t.Frame=\"frame\",t.Freeze=\"freeze\",t.Load=\"load\",t.Loop=\"loop\",t.Pause=\"pause\",t.Play=\"play\",t.Ready=\"ready\",t.Rendered=\"rendered\",t.Stop=\"stop\"}(PlayerEvents||(PlayerEvents={}));var LottiePlayer=class extends s{constructor(){super(...arguments),this.autoplay=!1,this.background=\"transparent\",this.controls=!1,this.currentState=PlayerState.Loading,this.description=\"Lottie animation\",this.direction=1,this.disableCheck=!1,this.disableShadowDOM=!1,this.hover=!1,this.intermission=1,this.loop=!1,this.mode=PlayMode.Normal,this.preserveAspectRatio=\"xMidYMid meet\",this.renderer=\"svg\",this.speed=1,this._io=void 0,this._counter=1}load(t){var e=this;return _asyncToGenerator((function*(){var r={container:e.container,loop:!1,autoplay:!1,renderer:e.renderer,rendererSettings:Object.assign({preserveAspectRatio:e.preserveAspectRatio,clearCanvas:!1,progressiveLoad:!0,hideOnTransparent:!0},e.viewBoxSize&&{viewBoxSize:e.viewBoxSize})};try{var i=parseSrc(t),s={},a=\"string\"==typeof i?\"path\":\"animationData\";e._lottie&&e._lottie.destroy(),e.webworkers&&lottie$1.exports.useWebWorker(!0),e._lottie=lottie$1.exports.loadAnimation(Object.assign(Object.assign({},r),{[a]:i})),e._attachEventListeners(),e.disableCheck||(\"path\"===a?(s=yield fromURL(i),a=\"animationData\"):s=i,isLottie(s)||(e.currentState=PlayerState.Error,e.dispatchEvent(new CustomEvent(PlayerEvents.Error))))}catch(t){e.currentState=PlayerState.Error,e.dispatchEvent(new CustomEvent(PlayerEvents.Error))}}))()}getLottie(){return this._lottie}getVersions(){return{lottieWebVersion:LOTTIE_WEB_VERSION,lottiePlayerVersion:LOTTIE_PLAYER_VERSION}}play(){this._lottie&&(this._lottie.play(),this.currentState=PlayerState.Playing,this.dispatchEvent(new CustomEvent(PlayerEvents.Play)))}pause(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Paused,this.dispatchEvent(new CustomEvent(PlayerEvents.Pause)))}stop(){this._lottie&&(this._counter=1,this._lottie.stop(),this.currentState=PlayerState.Stopped,this.dispatchEvent(new CustomEvent(PlayerEvents.Stop)))}destroy(){this._lottie&&(this._lottie.destroy(),this._lottie=null,this.currentState=PlayerState.Destroyed,this.dispatchEvent(new CustomEvent(PlayerEvents.Destroyed)),this.remove())}seek(t){if(this._lottie){var e=/^(\\d+)(%?)$/.exec(t.toString());if(e){var r=\"%\"===e[2]?this._lottie.totalFrames*Number(e[1])/100:Number(e[1]);this.seeker=r,this.currentState===PlayerState.Playing?this._lottie.goToAndPlay(r,!0):(this._lottie.goToAndStop(r,!0),this._lottie.pause())}}}snapshot(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.shadowRoot){var e=this.shadowRoot.querySelector(\".animation svg\"),r=(new XMLSerializer).serializeToString(e);if(t){var i=document.createElement(\"a\");i.href=\"data:image/svg+xml;charset=utf-8,\".concat(encodeURIComponent(r)),i.download=\"download_\".concat(this.seeker,\".svg\"),document.body.appendChild(i),i.click(),document.body.removeChild(i)}return r}}setSpeed(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this._lottie&&this._lottie.setSpeed(t)}setDirection(t){this._lottie&&this._lottie.setDirection(t)}setLooping(t){this._lottie&&(this.loop=t,this._lottie.loop=t)}togglePlay(){return this.currentState===PlayerState.Playing?this.pause():this.play()}toggleLooping(){this.setLooping(!this.loop)}resize(){this._lottie&&this._lottie.resize()}static get styles(){return styles}disconnectedCallback(){this.isConnected||(this._io&&(this._io.disconnect(),this._io=void 0),document.removeEventListener(\"visibilitychange\",(()=>this._onVisibilityChange())),this.destroy())}render(){var t=this.controls?\"main controls\":\"main\",e=this.controls?\"animation controls\":\"animation\";return $(_templateObject||(_templateObject=_taggedTemplateLiteral([' \\n \\n ',\"\\n \\n \",\"\\n \"])),t,this.description,e,this.background,this.currentState===PlayerState.Error?$(_templateObject2||(_templateObject2=_taggedTemplateLiteral(['
⚠️
']))):void 0,this.controls&&!this.disableShadowDOM?this.renderControls():void 0)}createRenderRoot(){return this.disableShadowDOM&&(this.style.display=\"block\"),this.disableShadowDOM?this:super.createRenderRoot()}firstUpdated(){\"IntersectionObserver\"in window&&(this._io=new IntersectionObserver((t=>{t[0].isIntersecting?this.currentState===PlayerState.Frozen&&this.play():this.currentState===PlayerState.Playing&&this.freeze()})),this._io.observe(this.container)),void 0!==document.hidden&&document.addEventListener(\"visibilitychange\",(()=>this._onVisibilityChange())),this.src&&this.load(this.src),this.dispatchEvent(new CustomEvent(PlayerEvents.Rendered))}renderControls(){var t=this.currentState===PlayerState.Playing,e=this.currentState===PlayerState.Paused,r=this.currentState===PlayerState.Stopped;return $(_templateObject3||(_templateObject3=_taggedTemplateLiteral(['\\n \\n \\n ','\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n '])),this.togglePlay,t||e?\"active\":\"\",$(t?_templateObject4||(_templateObject4=_taggedTemplateLiteral(['\\n \\n '])):_templateObject5||(_templateObject5=_taggedTemplateLiteral(['\\n \\n ']))),this.stop,r?\"active\":\"\",this.seeker,this._handleSeekChange,(()=>{this._prevState=this.currentState,this.freeze()}),(()=>{this._prevState===PlayerState.Playing&&this.play()}),this.seeker,this.toggleLooping,this.loop?\"active\":\"\")}_onVisibilityChange(){!0===document.hidden&&this.currentState===PlayerState.Playing?this.freeze():this.currentState===PlayerState.Frozen&&this.play()}_handleSeekChange(t){if(this._lottie&&!isNaN(t.target.value)){var e=t.target.value/100*this._lottie.totalFrames;this.seek(e)}}_attachEventListeners(){this._lottie.addEventListener(\"enterFrame\",(()=>{this.seeker=this._lottie.currentFrame/this._lottie.totalFrames*100,this.dispatchEvent(new CustomEvent(PlayerEvents.Frame,{detail:{frame:this._lottie.currentFrame,seeker:this.seeker}}))})),this._lottie.addEventListener(\"complete\",(()=>{if(this.currentState===PlayerState.Playing){if(!this.loop||this.count&&this._counter>=this.count){if(this.dispatchEvent(new CustomEvent(PlayerEvents.Complete)),this.mode!==PlayMode.Bounce)return;if(0===this._lottie.currentFrame)return}this.mode===PlayMode.Bounce?(this.count&&(this._counter+=.5),setTimeout((()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(this._lottie.setDirection(-1*this._lottie.playDirection),this._lottie.play())}),this.intermission)):(this.count&&(this._counter+=1),window.setTimeout((()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Loop)),this.currentState===PlayerState.Playing&&(-1===this.direction?(this.seek(\"99%\"),this.play()):(this._lottie.stop(),this._lottie.play()))}),this.intermission))}else this.dispatchEvent(new CustomEvent(PlayerEvents.Complete))})),this._lottie.addEventListener(\"DOMLoaded\",(()=>{this.setSpeed(this.speed),this.setDirection(this.direction),this.autoplay&&(-1===this.direction&&this.seek(\"100%\"),this.play()),this.dispatchEvent(new CustomEvent(PlayerEvents.Ready))})),this._lottie.addEventListener(\"data_ready\",(()=>{this.dispatchEvent(new CustomEvent(PlayerEvents.Load))})),this._lottie.addEventListener(\"data_failed\",(()=>{this.currentState=PlayerState.Error,this.dispatchEvent(new CustomEvent(PlayerEvents.Error))})),this.container.addEventListener(\"mouseenter\",(()=>{this.hover&&this.currentState!==PlayerState.Playing&&this.play()})),this.container.addEventListener(\"mouseleave\",(()=>{this.hover&&this.currentState===PlayerState.Playing&&this.stop()}))}freeze(){this._lottie&&(this._lottie.pause(),this.currentState=PlayerState.Frozen,this.dispatchEvent(new CustomEvent(PlayerEvents.Freeze)))}};__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"autoplay\",void 0),__decorate([e$5({type:String,reflect:!0})],LottiePlayer.prototype,\"background\",void 0),__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"controls\",void 0),__decorate([e$5({type:Number})],LottiePlayer.prototype,\"count\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"currentState\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"description\",void 0),__decorate([e$5({type:Number})],LottiePlayer.prototype,\"direction\",void 0),__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"disableCheck\",void 0),__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"disableShadowDOM\",void 0),__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"hover\",void 0),__decorate([e$5()],LottiePlayer.prototype,\"intermission\",void 0),__decorate([e$5({type:Boolean,reflect:!0})],LottiePlayer.prototype,\"loop\",void 0),__decorate([e$5()],LottiePlayer.prototype,\"mode\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"preserveAspectRatio\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"renderer\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"viewBoxSize\",void 0),__decorate([e$5()],LottiePlayer.prototype,\"seeker\",void 0),__decorate([e$5({type:Number})],LottiePlayer.prototype,\"speed\",void 0),__decorate([e$5({type:String})],LottiePlayer.prototype,\"src\",void 0),__decorate([e$5({type:Boolean})],LottiePlayer.prototype,\"webworkers\",void 0),__decorate([i(\".animation\")],LottiePlayer.prototype,\"container\",void 0),LottiePlayer=__decorate([n$1(\"lottie-player\")],LottiePlayer);\n//# sourceMappingURL=lottie-player.esm.js.map\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js?"); /***/ }), /***/ "./node_modules/@shopify/theme-a11y/theme-a11y.js": /*!********************************************************!*\ !*** ./node_modules/@shopify/theme-a11y/theme-a11y.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bindInPageLinks: () => (/* binding */ bindInPageLinks),\n/* harmony export */ focusHash: () => (/* binding */ focusHash),\n/* harmony export */ focusable: () => (/* binding */ focusable),\n/* harmony export */ pageLinkFocus: () => (/* binding */ pageLinkFocus),\n/* harmony export */ removeTrapFocus: () => (/* binding */ removeTrapFocus),\n/* harmony export */ trapFocus: () => (/* binding */ trapFocus)\n/* harmony export */ });\n/**\n * A11y Helpers\n * -----------------------------------------------------------------------------\n * A collection of useful functions that help make your theme more accessible\n */\n\n/**\n * For use when focus shifts to a container rather than a link\n * eg for In-page links, after scroll, focus shifts to content area so that\n * next `tab` is where user expects if focusing a link, just $link.focus();\n */\nfunction pageLinkFocus(element, config) {\n config = config || {};\n\n var className = config.className || 'js-focus-hidden';\n var savedTabIndex = element.tabIndex;\n\n element.tabIndex = -1;\n element.dataset.tabIndex = savedTabIndex;\n element.focus();\n element.classList.add(className);\n element.addEventListener('blur', callback);\n\n function callback(event) {\n event.target.removeEventListener(event.type, callback);\n\n element.tabIndex = savedTabIndex;\n delete element.dataset.tabIndex;\n element.classList.remove(className);\n }\n}\n\n/**\n * If there's a hash in the url, focus the appropriate element\n */\n\nfunction focusHash() {\n var hash = window.location.hash;\n var element = document.getElementById(hash.slice(1));\n // is there a hash in the url? is it an element on the page?\n\n if (hash && element) {\n pageLinkFocus(element);\n }\n}\n\n/**\n * When an in-page (url w/hash) link is clicked, focus the appropriate element\n */\nfunction bindInPageLinks() {\n var links = Array.prototype.slice.call(\n document.querySelectorAll('a[href^=\"#\"]')\n );\n\n return links.filter(function(link) {\n if (link.hash === '#' || link.hash === '') {\n return false;\n }\n\n var element = document.querySelector(link.hash);\n\n if (!element) {\n return false;\n }\n\n link.addEventListener('click', function() {\n pageLinkFocus(element);\n });\n\n return true;\n });\n}\n\nfunction focusable(container) {\n var elements = Array.from(\n container.querySelectorAll(\n '[tabindex],' +\n '[draggable],' +\n 'a[href],' +\n 'area,' +\n 'button:enabled,' +\n 'input:not([type=hidden]):enabled,' +\n 'object,' +\n 'select:enabled,' +\n 'textarea:enabled'\n )\n );\n\n // Filter out elements that are not visible.\n // Copied from jQuery https://github.com/jquery/jquery/blob/2d4f53416e5f74fa98e0c1d66b6f3c285a12f0ce/src/css/hiddenVisibleSelectors.js\n return elements.filter(function(element) {\n return !!(\n element.offsetWidth ||\n element.offsetHeight ||\n element.getClientRects().length\n );\n });\n}\n\n/**\n * Traps the focus in a particular container\n *\n * @param {Element} container - Container DOM element to trap focus inside of\n * @param {Element} elementToFocus - Element to be focused on first\n */\n\nvar trapFocusHandlers = {};\n\nfunction trapFocus(container, elementToFocus) {\n elementToFocus = elementToFocus || container;\n\n var elements = focusable(container);\n var first = elements[0];\n var last = elements[elements.length - 1];\n\n removeTrapFocus();\n\n trapFocusHandlers.focusin = function(event) {\n if (container !== event.target && !container.contains(event.target)) {\n first.focus();\n }\n\n if (\n event.target !== container &&\n event.target !== last &&\n event.target !== first\n )\n return;\n document.addEventListener('keydown', trapFocusHandlers.keydown);\n };\n\n trapFocusHandlers.focusout = function() {\n document.removeEventListener('keydown', trapFocusHandlers.keydown);\n };\n\n trapFocusHandlers.keydown = function(event) {\n if (event.keyCode !== 9) return; // If not TAB key\n\n // On the last focusable element and tab forward, focus the first element.\n if (event.target === last && !event.shiftKey) {\n event.preventDefault();\n first.focus();\n }\n\n // On the first focusable element and tab backward, focus the last element.\n if (\n (event.target === container || event.target === first) &&\n event.shiftKey\n ) {\n event.preventDefault();\n last.focus();\n }\n };\n\n document.addEventListener('focusout', trapFocusHandlers.focusout);\n document.addEventListener('focusin', trapFocusHandlers.focusin);\n\n pageLinkFocus(elementToFocus);\n}\n\n/**\n * Removes the trap of focus from the page\n */\nfunction removeTrapFocus() {\n document.removeEventListener('focusin', trapFocusHandlers.focusin);\n document.removeEventListener('focusout', trapFocusHandlers.focusout);\n document.removeEventListener('keydown', trapFocusHandlers.keydown);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/@shopify/theme-a11y/theme-a11y.js?"); /***/ }), /***/ "./src/scripts/components/cart.js": /*!****************************************!*\ !*** ./src/scripts/components/cart.js ***! \****************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nvar _relatedProducts = __webpack_require__(/*! @sections/related-products */ \"./src/scripts/sections/related-products.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction addToCart() {\n var productSubmitButtons = document.querySelectorAll('[data-product-submit]');\n var cartContent = document.querySelector('[data-cart-content]');\n\n if (cartContent) {\n cartContent.addEventListener('click', function (event) {\n if (!event.target.hasAttribute('data-product-submit')) {\n return;\n }\n\n addToCartSubmission(event.target);\n });\n }\n\n if (productSubmitButtons.length) {\n productSubmitButtons.forEach(function (productSubmitButton) {\n productSubmitButton.addEventListener('click', function () {\n addToCartSubmission(productSubmitButton);\n });\n });\n }\n}\n\nfunction addToCartSubmission(button) {\n if (button.hasAttribute('data-product-submit-sticky-scroll')) {\n document.querySelector('[data-associated-upsells]').scrollIntoView({\n behavior: 'smooth'\n });\n return;\n }\n\n var lineItemVariantId = parseInt(button.closest('[data-product-form]').querySelector('[data-product-select]').value, 10);\n var lineItemQuantity = 1;\n var lineItemProperties = {};\n var formInputs = button.closest('[data-product-form]').querySelectorAll('input, select, textarea');\n var giftCardValidateError = document.getElementById('cardigan-field-recipient-form-validate-error'); // Check if gift card purchase and validate email\n\n if (giftCardValidateError) {\n var requiredFields = document.querySelectorAll('.floating-label-input[required]');\n var missingFields = false;\n var emailField = document.getElementById('cardigan-field-recipient-email');\n var emailConfirmField = document.getElementById('cardigan-field-recipient-email-validate');\n var emailFieldValue = String(emailField.value).toLowerCase();\n var emailConfirmFieldValue = String(emailConfirmField.value).toLowerCase();\n var emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/; // Check if required fields are filled out\n\n var _iterator = _createForOfIteratorHelper(requiredFields),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _field = _step.value;\n\n var errorLabel = _field.parentNode.querySelector('.cardigan-field-recipient-required-error');\n\n if (_field.value === '') {\n giftCardValidateError.classList.remove('hide');\n errorLabel.classList.remove('hide');\n\n _field.classList.add('value-validation-error');\n\n missingFields = true;\n continue;\n } else {\n errorLabel.classList.add('hide');\n\n _field.classList.remove('value-validation-error');\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (missingFields) {\n return;\n } // Array of fields to validate\n\n\n var fields = [{\n field: emailField,\n value: emailFieldValue\n }, {\n field: emailConfirmField,\n value: emailConfirmFieldValue\n }]; // Validate each field\n\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i].field;\n var value = fields[i].value; // Email format validation\n\n if (!emailRegex.test(value)) {\n giftCardValidateError.classList.remove('hide');\n field.classList.add('email-missmatch-error');\n return;\n } else {\n field.classList.remove('email-missmatch-error');\n giftCardValidateError.classList.add('hide');\n }\n } // Email match validation\n\n\n if (emailFieldValue !== emailConfirmFieldValue) {\n emailField.classList.add('email-missmatch-error');\n emailConfirmField.classList.add('email-missmatch-error');\n giftCardValidateError.classList.remove('hide');\n return;\n } else {\n emailField.classList.remove('email-missmatch-error');\n emailConfirmField.classList.remove('email-missmatch-error');\n giftCardValidateError.classList.add('hide');\n }\n }\n\n if (formInputs.length) {\n formInputs.forEach(function (formInput) {\n var nameAttr = formInput.getAttribute('name');\n var typeAttr = formInput.getAttribute('type');\n\n if (nameAttr && nameAttr.indexOf('properties') >= 0) {\n var propertyName = nameAttr.split('[')[1].replace(']', '');\n var propertyValue = '';\n\n if (typeAttr && (typeAttr === 'radio' || typeAttr === 'checkbox')) {\n if (formInput.checked === true) {\n propertyValue = formInput.value;\n }\n } else {\n propertyValue = formInput.value;\n }\n\n if (propertyValue !== '') {\n lineItemProperties[propertyName] = propertyValue;\n }\n }\n });\n }\n\n var lineItems = {\n items: []\n }; // Add selected upsell items (if exists)\n\n if (button.hasAttribute('data-associated-upsell-submit')) {\n var upsellItems = document.querySelectorAll('[data-associated-upsell-item]');\n upsellItems.forEach(function (item) {\n var check = item.querySelector('[data-associated-upsell-checkbox]').checked;\n\n if (!check) {\n return;\n }\n\n var selected = item.querySelector('[data-product-select]').value;\n lineItems.items.push({\n id: selected,\n quantity: 1,\n properties: lineItemProperties\n });\n });\n } else {\n lineItems.items.push({\n id: lineItemVariantId,\n quantity: lineItemQuantity,\n properties: lineItemProperties\n });\n }\n\n fetch('/cart/add.js', {\n method: 'POST',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'xmlhttprequest'\n },\n body: JSON.stringify(lineItems)\n }).then(function (response) {\n // clear gift card inputs\n if (giftCardValidateError) {\n var _requiredFields = document.querySelectorAll('.floating-label-input[required]');\n\n var _iterator2 = _createForOfIteratorHelper(_requiredFields),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _field2 = _step2.value;\n _field2.value = '';\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n\n return response.json();\n }).then(function (result) {\n if (result.status) {\n throw new Error(result.description);\n }\n\n var openPreview = !button.hasAttribute('data-gift-kit-submit');\n reloadCart(openPreview);\n return null;\n })[\"catch\"](function (error) {\n alert(error);\n });\n}\n\nfunction updateLineItem(lineItemKey, lineItemQuantity) {\n var lineItem = {\n id: lineItemKey,\n quantity: lineItemQuantity\n };\n var cartItemPromos = document.querySelectorAll('[data-cart-item-promo]');\n fetch('/cart/change.js', {\n method: 'POST',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'xmlhttprequest'\n },\n body: JSON.stringify(lineItem)\n }).then(function (response) {\n return response.json();\n }).then(function (cart) {\n var currentLineItemCount = parseFloat(document.querySelector('[data-cart-preview]').getAttribute('data-line-item-count'));\n var lineItems = cart.items;\n var matchingLineItem = lineItems.find(function (item) {\n return item.key === lineItemKey;\n });\n updateCartNavToggle(cart);\n\n if (cartItemPromos.length > 0) {\n reloadCart();\n return null;\n }\n\n if (currentLineItemCount === cart.items.length && matchingLineItem) {\n updateCart(lineItemKey, cart);\n } else {\n reloadCart();\n }\n\n return null;\n })[\"catch\"](function (error) {\n console.log(error);\n });\n}\n\nfunction removeLineItem() {\n document.addEventListener('click', function (event) {\n if (!event.target.hasAttribute('data-line-item-remove')) {\n return;\n }\n\n event.preventDefault();\n var lineItemKey = event.target.getAttribute('data-line-item-key');\n updateLineItem(lineItemKey, 0);\n });\n}\n\nfunction updateCart(lineItemKey, cart) {\n var lineItems = cart.items;\n var subTotals = document.querySelectorAll('[data-cart-subtotal]');\n lineItems.forEach(function (lineItem) {\n var lineItemOriginalPrices = document.querySelectorAll(\"[data-line-item-key=\\\"\".concat(lineItem.key, \"\\\"] [data-line-item-original-price]\"));\n var lineItemPrices = document.querySelectorAll(\"[data-line-item-key=\\\"\".concat(lineItem.key, \"\\\"] [data-line-item-price]\"));\n var lineItemQuantityInputs = document.querySelectorAll(\"[data-line-item-key=\\\"\".concat(lineItem.key, \"\\\"] [data-quantity-input]\"));\n lineItemOriginalPrices.forEach(function (lineItemOriginalPrice) {\n if (lineItemOriginalPrice.hasAttribute('data-line-item-compare-price')) {\n var comparePrice = lineItemOriginalPrice.getAttribute('data-line-item-compare-price');\n lineItemOriginalPrice.innerHTML = \"$\".concat((comparePrice * lineItem.quantity).toFixed(2));\n } else {\n lineItemOriginalPrice.innerHTML = Shopify.formatMoney(lineItem.original_line_price, theme.moneyFormat);\n }\n });\n lineItemPrices.forEach(function (lineItemPrice) {\n lineItemPrice.innerHTML = Shopify.formatMoney(lineItem.final_line_price, theme.moneyFormat);\n });\n lineItemQuantityInputs.forEach(function (lineItemQuantityInput) {\n lineItemQuantityInput.value = lineItem.quantity;\n });\n });\n subTotals.forEach(function (subTotal) {\n subTotal.innerHTML = Shopify.formatMoney(cart.total_price, theme.moneyFormat);\n });\n updateCartPreview();\n}\n\nfunction updateCartNavToggle(cart) {\n var navCartToggle = document.querySelector('[data-nav-cart-toggle]');\n var navCartCount = document.querySelector('[data-nav-cart-count]');\n navCartCount.innerHTML = cart.item_count;\n\n if (cart.item_count >= 1) {\n navCartToggle === null || navCartToggle === void 0 ? void 0 : navCartToggle.classList.add('active');\n } else {\n navCartToggle === null || navCartToggle === void 0 ? void 0 : navCartToggle.classList.remove('active');\n }\n}\n\nfunction reloadCart(openPreview) {\n var cartContent = document.querySelector('[data-cart-content]');\n var cartPreview = document.querySelector('[data-cart-preview]');\n var cartEndpoint = '/cart';\n moveDonationOut();\n fetch(cartEndpoint, {\n credentials: 'same-origin',\n headers: {\n 'X-Requested-With': 'xmlhttprequest',\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\n Pragma: 'no-cache',\n Expires: 0\n }\n }).then(function (response) {\n return response.text();\n }).then(function (html) {\n var responseDOMParser = new window.DOMParser();\n var responseDocument = responseDOMParser.parseFromString(html, 'text/html');\n var responseDocumentCart = responseDocument.querySelector('[data-cart-content]');\n var responseDocumentCartPreview = responseDocument.querySelector('[data-cart-preview]');\n\n if (cartContent) {\n cartContent.innerHTML = responseDocumentCart.innerHTML;\n cartContent.setAttribute('data-line-item-count', responseDocumentCart.getAttribute('data-line-item-count'));\n updateSummaryTitleMargin();\n (0, _relatedProducts.relatedProducts)();\n }\n\n if (cartPreview) {\n var navCartToggle = document.querySelector('[data-nav-cart-toggle]');\n var navCartCount = document.querySelector('[data-nav-cart-count]');\n var lineItemCount = parseInt(responseDocumentCartPreview.getAttribute('data-line-item-count'), 10);\n cartPreview.innerHTML = responseDocumentCartPreview.innerHTML;\n cartPreview.setAttribute('data-line-item-count', lineItemCount);\n navCartCount.innerHTML = lineItemCount;\n\n if (lineItemCount >= 1) {\n navCartToggle === null || navCartToggle === void 0 ? void 0 : navCartToggle.classList.add('active');\n } else {\n navCartToggle === null || navCartToggle === void 0 ? void 0 : navCartToggle.classList.remove('active');\n }\n\n if (openPreview === true) {\n updateCartPreview(openPreview);\n }\n }\n\n moveDonationIn();\n checkLoggedInDiscountProducts();\n return null;\n })[\"catch\"](function (error) {\n console.log(error);\n });\n}\n\nfunction openCartPreview() {\n var siteHtml = document.querySelector('[data-site-html]');\n var siteBody = document.querySelector('[data-site-body]');\n var cartPreview = document.querySelector('[data-cart-preview]');\n var cartPreviewOverlay = document.querySelector('[data-cart-preview-overlay]');\n var cartPreviewSuccess = document.querySelector('[data-cart-preview-success]');\n var cursorInCart = false;\n\n if (!cartPreview) {\n return;\n }\n\n siteBody.classList.add('cart-preview-active');\n cartPreview.classList.remove('hide');\n cartPreviewOverlay.classList.remove('hide');\n (0, _themeA11y.trapFocus)(cartPreview);\n siteHtml.classList.add('disable-scrolling');\n siteBody.classList.add('disable-scrolling');\n\n if (document.body.classList.contains('tab-outline')) {\n return;\n }\n\n if (cartPreview.hasAttribute('data-timer')) {\n var timeout = parseInt(cartPreview.getAttribute('data-timer'), 10);\n cursorInCart = false;\n document.body.addEventListener('mousemove', checkCartCursor);\n setTimeout(function () {\n if (!cursorInCart) {\n cartPreview.classList.add('hide');\n cartPreviewOverlay.classList.add('hide');\n cartPreviewSuccess.classList.remove('active');\n siteHtml.classList.remove('disable-scrolling');\n siteBody.classList.remove('disable-scrolling');\n }\n\n document.body.removeEventListener('mousemove', checkCartCursor);\n }, timeout);\n }\n\n function checkCartCursor(e) {\n var cartRect = cartPreview.getBoundingClientRect();\n cursorInCart = e.clientX >= cartRect.left && e.clientX <= cartRect.right && e.clientY >= cartRect.top && e.clientY <= cartRect.bottom;\n } // Close cart if preview message link is clicked\n\n\n document.querySelectorAll('[data-cart-preview-message] a').forEach(function (link) {\n if (link.hasAttribute('data-init')) {\n return;\n }\n\n link.setAttribute('data-init', true);\n link.addEventListener('click', function () {\n cartPreview.classList.add('hide');\n cartPreviewOverlay.classList.add('hide');\n cartPreviewSuccess.classList.remove('active');\n siteHtml.classList.remove('disable-scrolling');\n siteBody.classList.remove('disable-scrolling');\n });\n });\n}\n\nfunction updateCartPreview(openPreview) {\n var cartPreview = document.querySelector('[data-cart-preview]');\n var cartPreviewSuccess = document.querySelector('[data-cart-preview-success]');\n var cartPreviewContent = document.querySelector('[data-cart-preview-content]');\n var cartPreviewEmpty = document.querySelector('[data-cart-preview-empty]');\n\n if (!cartPreview) {\n return;\n }\n\n cartPreviewEmpty.classList.add('hide');\n cartPreviewContent.classList.remove('hide');\n updateProgressBar();\n\n if (openPreview === true && cartPreview.classList.contains('hide')) {\n cartPreviewSuccess.classList.add('active');\n openCartPreview();\n }\n}\n\nfunction updateProgressBar() {\n var cartProgressBars = document.querySelectorAll('[data-cart-progress-bar]');\n var cartProgressBarsSuccess = document.querySelectorAll('[data-cart-progress-bar-success]');\n var cartProgressBarsMessage = document.querySelectorAll('[data-cart-progress-bar-message]');\n var cartEstimatedShipping = document.querySelector('[data-cart-estimated-shipping]');\n\n if (!cartProgressBars.length) {\n return;\n }\n\n fetch('/cart.js', {\n method: 'GET',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'xmlhttprequest'\n }\n }).then(function (response) {\n return response.json();\n }).then(function (cart) {\n var cartProgressBarTotal = parseInt(cartProgressBars[0].getAttribute('data-total'), 10);\n var originalTotalPrice = cart.total_price / 100;\n\n if (cartProgressBarTotal > originalTotalPrice) {\n var amountUntilDiscount = cartProgressBarTotal - originalTotalPrice;\n var cartProgressBarPercentage = originalTotalPrice / cartProgressBarTotal * 100;\n var cartProgressBarMessageOriginalText = cartProgressBarsMessage[0].getAttribute('data-original-text');\n\n if (cartEstimatedShipping) {\n cartEstimatedShipping.innerText = '-';\n }\n\n cartProgressBars.forEach(function (cartProgressBar) {\n cartProgressBar.style.width = \"\".concat(cartProgressBarPercentage, \"%\");\n cartProgressBar.classList.remove('active');\n });\n cartProgressBarsSuccess.forEach(function (cartProgressBarSuccess) {\n cartProgressBarSuccess.classList.add('hide');\n });\n cartProgressBarsMessage.forEach(function (cartProgressBarMessage) {\n cartProgressBarMessage.classList.remove('hide');\n cartProgressBarMessage.innerHTML = cartProgressBarMessageOriginalText.replace('[amount]', amountUntilDiscount.toFixed(2).replace('.00', ''));\n });\n } else {\n if (cartEstimatedShipping) {\n cartEstimatedShipping.innerText = theme.strings.estimatedShippingFree;\n }\n\n cartProgressBars.forEach(function (cartProgressBar) {\n cartProgressBar.style.width = '100%';\n cartProgressBar.classList.add('active');\n });\n cartProgressBarsSuccess.forEach(function (cartProgressBarSuccess) {\n cartProgressBarSuccess.classList.remove('hide');\n });\n cartProgressBarsMessage.forEach(function (cartProgressBarMessage) {\n cartProgressBarMessage.classList.add('hide');\n });\n }\n\n return null;\n })[\"catch\"](function (error) {\n console.log(error);\n });\n}\n\nfunction quantitySelector() {\n document.addEventListener('click', function (event) {\n if (!event.target.hasAttribute('data-quantity-adjust')) {\n return;\n }\n\n var quantityInput = event.target.closest('[data-quantity-selector]').querySelector('[data-quantity-input]');\n var lineItemKey = quantityInput.getAttribute('data-line-item-key');\n var lineItemMaxQuantity = parseFloat(quantityInput.max);\n var lineItemQuantity = parseFloat(quantityInput.value);\n\n if (event.target.hasAttribute('data-quantity-minus')) {\n if (quantityInput.value > 1) {\n lineItemQuantity -= 1;\n } else {\n lineItemQuantity = 0;\n }\n } else if (event.target.hasAttribute('data-quantity-plus')) {\n if (quantityInput.value < lineItemMaxQuantity) {\n lineItemQuantity += 1;\n }\n }\n\n updateLineItem(lineItemKey, lineItemQuantity);\n });\n document.addEventListener('change', function (event) {\n if (!event.target.hasAttribute('data-quantity-input')) {\n return;\n }\n\n var lineItemKey = event.target.getAttribute('data-line-item-key');\n var lineItemMaxQuantity = parseFloat(event.target.max);\n var lineItemQuantity = parseFloat(event.target.value);\n\n if (lineItemQuantity > lineItemMaxQuantity) {\n lineItemQuantity = lineItemMaxQuantity;\n } else if (lineItemQuantity < 1) {\n lineItemQuantity = 0;\n }\n\n updateLineItem(lineItemKey, lineItemQuantity);\n });\n}\n\nfunction moveDonationOut() {\n var cartDonation = document.querySelector('[data-cart-donation]');\n\n if (!cartDonation) {\n return;\n }\n\n cartDonation.classList.add('hide');\n document.body.append(cartDonation);\n}\n\nfunction moveDonationIn() {\n checkRemoveGifts();\n var cartDonation = document.querySelector('[data-cart-donation]');\n var donationPlaceholder = document.querySelector('[data-cart-donation-holder]');\n\n if (!cartDonation || !donationPlaceholder) {\n return;\n }\n\n donationPlaceholder.append(cartDonation);\n cartDonation.classList.remove('hide');\n checkPreventDonations();\n}\n\nfunction checkRemoveGifts() {\n var donationCount = document.querySelectorAll('[data-donation-cart-item]').length;\n var donationGiftItems = (0, _toConsumableArray2[\"default\"])(document.querySelectorAll('[data-donation-gift-cart-item]'));\n var donationGiftKeys = (0, _toConsumableArray2[\"default\"])(new Set(donationGiftItems.map(function (giftItem) {\n return giftItem.getAttribute('data-line-item-key');\n })));\n\n if (donationCount > 0) {\n donationGiftItems.forEach(function (elm) {\n return elm.classList.remove('hide');\n });\n return;\n }\n\n donationGiftKeys.forEach(function (giftItemKey) {\n updateLineItem(giftItemKey, 0);\n });\n}\n\nfunction checkPreventDonations() {\n var donationGiftItems = document.querySelectorAll('[data-donation-gift-cart-item]');\n var giftAlert = document.querySelector('[data-donation-gift-alert]');\n var giftList = document.querySelector('[data-donation-gift-list]');\n\n if (!giftAlert || !giftList) {\n return;\n }\n\n giftAlert.classList.toggle('hide', donationGiftItems.length <= 0);\n giftList.classList.toggle('hide', donationGiftItems.length > 0);\n}\n\nfunction checkLoggedInDiscountProducts() {\n var loggedInDiscountItems = document.querySelectorAll('[data-line-item-logged-in-discount]');\n\n if (!loggedInDiscountItems.length) {\n return;\n }\n\n loggedInDiscountItems.forEach(function (loggedInDiscountItem) {\n var lineItem = {\n id: loggedInDiscountItem.getAttribute('data-line-item-key'),\n quantity: loggedInDiscountItem.getAttribute('data-line-item-quantity'),\n properties: {\n '_logged-in-discount': true\n }\n };\n\n if (loggedInDiscountItem.hasAttribute('data-line-item-compare-price')) {\n var comparePrice = loggedInDiscountItem.getAttribute('data-line-item-compare-price');\n lineItem.properties['compare-price'] = comparePrice;\n }\n\n fetch('/cart/change.js', {\n method: 'POST',\n credentials: 'same-origin',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'xmlhttprequest'\n },\n body: JSON.stringify(lineItem)\n }).then(function (response) {\n return response.json();\n }).then(function (cart) {\n reloadCart();\n return null;\n })[\"catch\"](function (error) {\n console.log(error);\n });\n });\n}\n\nfunction goToNewsletter() {\n var newsletterScrollEl = document.querySelector('#footer-newsletter');\n\n if (!newsletterScrollEl) {\n return;\n }\n\n var newsletterSection = newsletterScrollEl.closest('.shopify-section');\n var newsletterInput = newsletterSection.querySelector('[data-newsletter-input-email]');\n var newsletterAnchors = document.querySelectorAll('a[href=\"#footer-newsletter\"]');\n newsletterAnchors.forEach(function (newsletterAnchor) {\n newsletterAnchor.addEventListener('click', function () {\n if (newsletterInput) {\n setTimeout(function () {\n newsletterInput.click();\n newsletterInput.focus({\n focusVisible: true\n });\n }, 100);\n }\n });\n });\n}\n\nfunction updateSummaryTitleMargin() {\n var progressBars = document.querySelectorAll('.cart-progress-bar');\n var cartTotalH5 = document.querySelector('.cart__total h5');\n\n var _iterator3 = _createForOfIteratorHelper(progressBars),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var progressBar = _step3.value;\n\n if (progressBar.classList.contains('hide')) {\n cartTotalH5.classList.add('no-margin');\n } else {\n cartTotalH5.classList.remove('no-margin');\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n addToCart();\n removeLineItem();\n quantitySelector();\n moveDonationIn();\n checkLoggedInDiscountProducts();\n goToNewsletter();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/cart.js?"); /***/ }), /***/ "./src/scripts/components/event-planner-api.js": /*!*****************************************************!*\ !*** ./src/scripts/components/event-planner-api.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.eventPlannerAPI = eventPlannerAPI;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/axios/dist/browser/axios.cjs\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2[\"default\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar baseURL = window.theme.urls.event_planner_proxy_url;\n\nfunction eventPlannerAPI() {\n /* -- Events -- */\n function getEvent(_x) {\n return _getEvent.apply(this, arguments);\n }\n\n function _getEvent() {\n _getEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(eventId) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId)\n }));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _getEvent.apply(this, arguments);\n }\n\n function updateEvent(_x2, _x3) {\n return _updateEvent.apply(this, arguments);\n }\n\n function _updateEvent() {\n _updateEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2(eventId, data) {\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId),\n method: 'put',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _updateEvent.apply(this, arguments);\n }\n\n function createEvent(_x4) {\n return _createEvent.apply(this, arguments);\n }\n\n function _createEvent() {\n _createEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3(data) {\n return _regenerator[\"default\"].wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events\"),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _createEvent.apply(this, arguments);\n }\n\n function finalizeEvent(_x5, _x6) {\n return _finalizeEvent.apply(this, arguments);\n }\n /* -- Customers -- */\n\n\n function _finalizeEvent() {\n _finalizeEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee4(eventId, data) {\n return _regenerator[\"default\"].wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/finalized\"),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finalizeEvent.apply(this, arguments);\n }\n\n function addCustomerToEvent(_x7, _x8) {\n return _addCustomerToEvent.apply(this, arguments);\n }\n\n function _addCustomerToEvent() {\n _addCustomerToEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee5(eventId, data) {\n return _regenerator[\"default\"].wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers\"),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n return _addCustomerToEvent.apply(this, arguments);\n }\n\n function getCustomers(_x9) {\n return _getCustomers.apply(this, arguments);\n }\n\n function _getCustomers() {\n _getCustomers = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee6(eventId) {\n return _regenerator[\"default\"].wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers\"),\n method: 'get'\n }));\n\n case 1:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n return _getCustomers.apply(this, arguments);\n }\n\n function getCustomer(_x10, _x11) {\n return _getCustomer.apply(this, arguments);\n }\n\n function _getCustomer() {\n _getCustomer = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee7(eventId, customerId) {\n return _regenerator[\"default\"].wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n return _context7.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId)\n }));\n\n case 1:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n return _getCustomer.apply(this, arguments);\n }\n\n function getCustomerEvents(_x12) {\n return _getCustomerEvents.apply(this, arguments);\n }\n\n function _getCustomerEvents() {\n _getCustomerEvents = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee8(itemsPerPage) {\n var currentPage,\n _args8 = arguments;\n return _regenerator[\"default\"].wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n currentPage = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : 1;\n return _context8.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/customers/events?items_per_page=\").concat(itemsPerPage, \"&page=\").concat(currentPage)\n }));\n\n case 2:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n return _getCustomerEvents.apply(this, arguments);\n }\n\n function updateCustomer(_x13, _x14, _x15) {\n return _updateCustomer.apply(this, arguments);\n }\n\n function _updateCustomer() {\n _updateCustomer = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee9(eventId, customerId, data) {\n return _regenerator[\"default\"].wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n return _context9.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId),\n method: 'put',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n return _updateCustomer.apply(this, arguments);\n }\n\n function addLooktoCustomer(_x16, _x17, _x18) {\n return _addLooktoCustomer.apply(this, arguments);\n }\n\n function _addLooktoCustomer() {\n _addLooktoCustomer = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee10(eventId, customerId, lookId) {\n var adminWearing,\n data,\n _args10 = arguments;\n return _regenerator[\"default\"].wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n adminWearing = _args10.length > 3 && _args10[3] !== undefined ? _args10[3] : false;\n data = {\n lookId: lookId,\n adminWearing: adminWearing\n };\n return _context10.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId, \"/looks\"),\n method: 'post',\n data: data\n }));\n\n case 3:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n return _addLooktoCustomer.apply(this, arguments);\n }\n\n function deleteLookOnCustomer(_x19, _x20, _x21) {\n return _deleteLookOnCustomer.apply(this, arguments);\n }\n\n function _deleteLookOnCustomer() {\n _deleteLookOnCustomer = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee11(eventId, customerId, lookId) {\n return _regenerator[\"default\"].wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId, \"/looks/\").concat(lookId),\n method: 'delete'\n }));\n\n case 1:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n return _deleteLookOnCustomer.apply(this, arguments);\n }\n\n function deleteCustomer(_x22, _x23) {\n return _deleteCustomer.apply(this, arguments);\n }\n\n function _deleteCustomer() {\n _deleteCustomer = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee12(eventId, customerId) {\n return _regenerator[\"default\"].wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n return _context12.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId),\n method: 'delete'\n }));\n\n case 1:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n return _deleteCustomer.apply(this, arguments);\n }\n\n function updateCustomerProductVariant(_x24, _x25, _x26, _x27) {\n return _updateCustomerProductVariant.apply(this, arguments);\n }\n /* -- Looks -- */\n\n\n function _updateCustomerProductVariant() {\n _updateCustomerProductVariant = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee13(eventId, customerId, lookId, data) {\n return _regenerator[\"default\"].wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n return _context13.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId, \"/looks/\").concat(lookId),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n return _updateCustomerProductVariant.apply(this, arguments);\n }\n\n function createLook(_x28, _x29) {\n return _createLook.apply(this, arguments);\n }\n\n function _createLook() {\n _createLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee14(eventId, data) {\n return _regenerator[\"default\"].wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n return _context14.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks\"),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee14);\n }));\n return _createLook.apply(this, arguments);\n }\n\n function getLooks(_x30) {\n return _getLooks.apply(this, arguments);\n }\n\n function _getLooks() {\n _getLooks = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee15(eventId) {\n return _regenerator[\"default\"].wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n return _context15.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks\"),\n method: 'get'\n }));\n\n case 1:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee15);\n }));\n return _getLooks.apply(this, arguments);\n }\n\n function updateLook(_x31, _x32, _x33) {\n return _updateLook.apply(this, arguments);\n }\n\n function _updateLook() {\n _updateLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee16(eventId, lookId, data) {\n return _regenerator[\"default\"].wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n return _context16.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks/\").concat(lookId),\n method: 'put',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee16);\n }));\n return _updateLook.apply(this, arguments);\n }\n\n function getLook(_x34, _x35, _x36) {\n return _getLook.apply(this, arguments);\n }\n\n function _getLook() {\n _getLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee17(eventId, lookId, data) {\n return _regenerator[\"default\"].wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n return _context17.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks/\").concat(lookId),\n method: 'get'\n }));\n\n case 1:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee17);\n }));\n return _getLook.apply(this, arguments);\n }\n\n function deleteLook(_x37, _x38) {\n return _deleteLook.apply(this, arguments);\n }\n\n function _deleteLook() {\n _deleteLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee18(eventId, lookId) {\n return _regenerator[\"default\"].wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n return _context18.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks/\").concat(lookId),\n method: 'delete'\n }));\n\n case 1:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee18);\n }));\n return _deleteLook.apply(this, arguments);\n }\n\n function addProductToLook(_x39, _x40, _x41) {\n return _addProductToLook.apply(this, arguments);\n }\n\n function _addProductToLook() {\n _addProductToLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee19(eventId, lookId, data) {\n return _regenerator[\"default\"].wrap(function _callee19$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n return _context19.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks/\").concat(lookId, \"/products\"),\n method: 'post',\n data: data\n }));\n\n case 1:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee19);\n }));\n return _addProductToLook.apply(this, arguments);\n }\n\n function deleteProductFromLook(_x42, _x43, _x44) {\n return _deleteProductFromLook.apply(this, arguments);\n }\n /* -- Reminder -- */\n\n\n function _deleteProductFromLook() {\n _deleteProductFromLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee20(eventId, lookId, productId) {\n return _regenerator[\"default\"].wrap(function _callee20$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n return _context20.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/looks/\").concat(lookId, \"/products/\").concat(productId),\n method: 'delete'\n }));\n\n case 1:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee20);\n }));\n return _deleteProductFromLook.apply(this, arguments);\n }\n\n function sendReminder(_x45, _x46) {\n return _sendReminder.apply(this, arguments);\n }\n\n function _sendReminder() {\n _sendReminder = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee21(eventId, customerId) {\n return _regenerator[\"default\"].wrap(function _callee21$(_context21) {\n while (1) {\n switch (_context21.prev = _context21.next) {\n case 0:\n return _context21.abrupt(\"return\", handleRequest({\n url: \"\".concat(baseURL, \"/events/\").concat(eventId, \"/customers/\").concat(customerId, \"/reminder\"),\n method: 'POST'\n }));\n\n case 1:\n case \"end\":\n return _context21.stop();\n }\n }\n }, _callee21);\n }));\n return _sendReminder.apply(this, arguments);\n }\n\n function handleRequest(_x47) {\n return _handleRequest.apply(this, arguments);\n }\n\n function _handleRequest() {\n _handleRequest = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee22(_ref) {\n var url, _ref$method, method, _ref$data, data, axiosConfig, response;\n\n return _regenerator[\"default\"].wrap(function _callee22$(_context22) {\n while (1) {\n switch (_context22.prev = _context22.next) {\n case 0:\n url = _ref.url, _ref$method = _ref.method, method = _ref$method === void 0 ? 'get' : _ref$method, _ref$data = _ref.data, data = _ref$data === void 0 ? null : _ref$data;\n axiosConfig = _objectSpread({\n url: url,\n method: method\n }, data && {\n data: data\n });\n _context22.next = 4;\n return (0, _axios[\"default\"])(axiosConfig);\n\n case 4:\n response = _context22.sent;\n return _context22.abrupt(\"return\", response.data);\n\n case 6:\n case \"end\":\n return _context22.stop();\n }\n }\n }, _callee22);\n }));\n return _handleRequest.apply(this, arguments);\n }\n\n return {\n getEvent: getEvent,\n updateEvent: updateEvent,\n createEvent: createEvent,\n finalizeEvent: finalizeEvent,\n addCustomerToEvent: addCustomerToEvent,\n getCustomers: getCustomers,\n getCustomer: getCustomer,\n getCustomerEvents: getCustomerEvents,\n updateCustomer: updateCustomer,\n addLooktoCustomer: addLooktoCustomer,\n deleteLookOnCustomer: deleteLookOnCustomer,\n deleteCustomer: deleteCustomer,\n updateCustomerProductVariant: updateCustomerProductVariant,\n createLook: createLook,\n getLook: getLook,\n getLooks: getLooks,\n updateLook: updateLook,\n deleteLook: deleteLook,\n addProductToLook: addProductToLook,\n deleteProductFromLook: deleteProductFromLook,\n sendReminder: sendReminder\n };\n}\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/event-planner-api.js?"); /***/ }), /***/ "./src/scripts/components/event-planner-utils.js": /*!*******************************************************!*\ !*** ./src/scripts/components/event-planner-utils.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.setActiveEvent = setActiveEvent;\nexports.createEvent = createEvent;\nexports.getUpgradeValue = getUpgradeValue;\nexports.getPackageType = getPackageType;\nexports.calculatePackagePrice = calculatePackagePrice;\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _eventPlannerApi = __webpack_require__(/*! @scripts/components/event-planner-api */ \"./src/scripts/components/event-planner-api.js\");\n\nvar eventsAPI = (0, _eventPlannerApi.eventPlannerAPI)();\n\nfunction setActiveEvent(_x) {\n return _setActiveEvent.apply(this, arguments);\n}\n\nfunction _setActiveEvent() {\n _setActiveEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(id) {\n var event;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return eventsAPI.getEvent(id);\n\n case 2:\n event = _context.sent;\n window.localStorage.setItem('eventPlannerActiveEvent', JSON.stringify(event));\n window.localStorage.setItem('activeEvent', event.id);\n\n case 5:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _setActiveEvent.apply(this, arguments);\n}\n\nfunction createEvent(_x2) {\n return _createEvent.apply(this, arguments);\n}\n/*\r\n It is recommended that you test against productType when you can\r\n Ties and Pocket Squares are an exception because boost returns their product_type as Ties & Accessories\r\n*/\n\n\nfunction _createEvent() {\n _createEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2(choices) {\n var newEvent, event, matchingCustomer, createLookData, firstName, lastName, matchingName, customerData;\n return _regenerator[\"default\"].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n choices.title = 'Wedding';\n choices.language = 'english';\n choices.customerEmail = document.body.getAttribute('data-customer-email');\n choices.eventType = window.localStorage.getItem('source') || 'customer';\n _context2.next = 6;\n return eventsAPI.createEvent(choices);\n\n case 6:\n newEvent = _context2.sent;\n _context2.next = 9;\n return eventsAPI.getEvent(newEvent.id);\n\n case 9:\n event = _context2.sent;\n matchingCustomer = event.customers.find(function (customer) {\n return customer.wedding_role.toLowerCase() === choices.personTitle1 || customer.wedding_role.toLowerCase() === choices.personTitle2;\n });\n createLookData = {\n name: window.theme.strings.eventPlannerDefaultLookName\n };\n firstName = null;\n lastName = null;\n\n if (matchingCustomer) {\n matchingName = matchingCustomer.wedding_role.toLowerCase() === choices.personTitle1 ? choices.personName1 : choices.personName2;\n firstName = matchingName.split(' ')[0];\n lastName = matchingName.indexOf(' ') >= 0 ? matchingName.split(' ')[1] : null;\n } else {\n firstName = document.body.getAttribute('data-customer-first-name');\n lastName = document.body.getAttribute('data-customer-last-name');\n }\n\n customerData = {\n firstName: firstName,\n lastName: lastName,\n weddingRole: event.customers[0].wedding_role,\n allowCommunication: true,\n adminPurchasingLook: true,\n city: choices.city,\n province: choices.province,\n language: 'english'\n };\n _context2.next = 18;\n return eventsAPI.updateCustomer(event.id, event.customers[0].id, customerData);\n\n case 18:\n _context2.next = 20;\n return eventsAPI.createLook(event.id, createLookData);\n\n case 20:\n _context2.next = 22;\n return setActiveEvent(event.id);\n\n case 22:\n window.localStorage.removeItem('eventPlannerPendingEvent');\n document.dispatchEvent(new Event('updateEventPlannerDrawer'));\n document.dispatchEvent(new Event('openEventPlannerDrawer'));\n\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _createEvent.apply(this, arguments);\n}\n\nfunction getUpgradeValue(productType, productTitle, productPrice) {\n if (!productType || !productTitle || !productPrice) {\n return;\n }\n\n var value = null;\n\n if (productTitle.indexOf('Tie') >= 0 && productPrice > 39) {\n value = productPrice - 39;\n }\n\n if (productTitle.indexOf('Pocket Square') >= 0 && productPrice > 20) {\n value = productPrice - 20;\n }\n\n if (value) {\n value = parseInt(value);\n }\n\n return value;\n}\n\nfunction getPackageType(lookProductData) {\n var itemProductTypes = lookProductData.map(function (item) {\n return item.product_type;\n });\n var packageType = null;\n var hasDressShirt = itemProductTypes.includes('Patterned Dress Shirts') || itemProductTypes.includes('Solid Dress Shirts') || itemProductTypes.includes('Dress Shirts');\n var hasTie = itemProductTypes.includes('Ties') || itemProductTypes.includes('Bow Ties');\n\n if (itemProductTypes.includes('Suit Jackets') && itemProductTypes.includes('Suit Pants') && itemProductTypes.includes('Suit Vests') && hasDressShirt && hasTie && itemProductTypes.includes('Pocket Squares')) {\n packageType = 'Full Package';\n } else if (itemProductTypes.includes('Suit Jackets') && itemProductTypes.includes('Suit Pants') && hasDressShirt && hasTie && itemProductTypes.includes('Pocket Squares')) {\n packageType = 'No Vest';\n } else if (itemProductTypes.includes('Suit Pants') && itemProductTypes.includes('Suit Vests') && hasDressShirt && hasTie) {\n packageType = 'No Jacket';\n }\n\n return packageType;\n}\n\nfunction calculatePackagePrice(lookProductData, packageType, legacyBundlePrice) {\n var typePrices = new Map();\n\n if (legacyBundlePrice) {\n if (packageType === 'No Jacket') {\n typePrices.set('Suit Pants', 61);\n typePrices.set('Suit Vests', 68);\n typePrices.set('Patterned Dress Shirts', 37);\n typePrices.set('Solid Dress Shirts', 37);\n typePrices.set('Dress Shirts', 37);\n typePrices.set('Ties', 33);\n typePrices.set('Bow Ties', 33);\n typePrices.set('Pocket Squares', 20);\n } else if (packageType === 'No Vest') {\n typePrices.set('Suit Jackets', 133);\n typePrices.set('Suit Pants', 60);\n typePrices.set('Patterned Dress Shirts', 33);\n typePrices.set('Solid Dress Shirts', 33);\n typePrices.set('Dress Shirts', 33);\n typePrices.set('Ties', 33);\n typePrices.set('Bow Ties', 33);\n typePrices.set('Pocket Squares', 20);\n } else if (packageType === 'Full Package') {\n typePrices.set('Suit Jackets', 130);\n typePrices.set('Suit Pants', 57);\n typePrices.set('Suit Vests', 60);\n typePrices.set('Patterned Dress Shirts', 32);\n typePrices.set('Solid Dress Shirts', 32);\n typePrices.set('Dress Shirts', 32);\n typePrices.set('Ties', 30);\n typePrices.set('Bow Ties', 30);\n typePrices.set('Pocket Squares', 20);\n }\n } else {\n // New bundle pricing after July 3rd 2024 update\n if (packageType === 'No Jacket') {\n typePrices.set('Suit Pants', 61);\n typePrices.set('Suit Vests', 68);\n typePrices.set('Patterned Dress Shirts', 37);\n typePrices.set('Solid Dress Shirts', 37);\n typePrices.set('Dress Shirts', 37);\n typePrices.set('Ties', 33);\n typePrices.set('Bow Ties', 33);\n typePrices.set('Pocket Squares', 20);\n } else if (packageType === 'No Vest') {\n typePrices.set('Suit Jackets', 144);\n typePrices.set('Suit Pants', 57);\n typePrices.set('Patterned Dress Shirts', 39);\n typePrices.set('Solid Dress Shirts', 39);\n typePrices.set('Dress Shirts', 39);\n typePrices.set('Ties', 39);\n typePrices.set('Bow Ties', 39);\n typePrices.set('Pocket Squares', 20);\n } else if (packageType === 'Full Package') {\n typePrices.set('Suit Jackets', 139);\n typePrices.set('Suit Pants', 55);\n typePrices.set('Suit Vests', 60);\n typePrices.set('Patterned Dress Shirts', 36);\n typePrices.set('Solid Dress Shirts', 36);\n typePrices.set('Dress Shirts', 36);\n typePrices.set('Ties', 39);\n typePrices.set('Bow Ties', 39);\n typePrices.set('Pocket Squares', 20);\n }\n }\n\n var totalPrice = lookProductData.reduce(function (total, item) {\n var itemTypePrice = typePrices.get(item.product_type);\n\n if (itemTypePrice) {\n return total + itemTypePrice;\n } else {\n return total + parseFloat(item.shopify_price);\n }\n }, 0);\n return totalPrice * 100;\n}\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/event-planner-utils.js?"); /***/ }), /***/ "./src/scripts/components/global-wpx.js": /*!**********************************************!*\ !*** ./src/scripts/components/global-wpx.js ***! \**********************************************/ /***/ (() => { "use strict"; eval("\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var queryParams = new URLSearchParams(window.location.search);\n\n if (queryParams.has('event_planner_popup')) {\n var sourceValue = queryParams.get('event_planner_popup');\n\n if (sourceValue === 'true') {\n var popupEl = document.querySelector('event-planner-popup');\n\n if (popupEl) {\n popupEl.openPopup();\n } else {\n console.log('event-planner-popup not found');\n }\n }\n }\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/global-wpx.js?"); /***/ }), /***/ "./src/scripts/components/grafton-store-capture.js": /*!*********************************************************!*\ !*** ./src/scripts/components/grafton-store-capture.js ***! \*********************************************************/ /***/ (() => { "use strict"; eval("\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var queryParams = new URLSearchParams(window.location.search);\n var regex = /^12\\d{3}$/;\n\n if (queryParams.has('source')) {\n var sourceValue = queryParams.get('source'); // regex for valid store number\n\n if (!regex.test(sourceValue)) {\n return;\n }\n\n window.localStorage.setItem('source', sourceValue);\n }\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/grafton-store-capture.js?"); /***/ }), /***/ "./src/scripts/components/required-validation.js": /*!*******************************************************!*\ !*** ./src/scripts/components/required-validation.js ***! \*******************************************************/ /***/ (() => { "use strict"; eval("\n\n/*\n*\n* To add form validation:\n* - Give form [data-validation-required]\n* - Wrap required field with [data-required-field-wrapper]\n* - Give required field [data-required-field=\"value\"] with value set to the desired error message\n* - Add a span inside the wrapper with the desired error icon/text to display on input (example: ×)\n*\n* Optional:\n* - to add further validation (by default validation checks if field is empty)\n* set [data-required-field=\"some-regex-here\"] on required field with desired regex validation\n*\n*/\nfunction requiredValidation() {\n var forms = document.querySelectorAll('[data-validation-required]');\n\n if (!forms.length) {\n return;\n }\n\n forms.forEach(function (form) {\n var requiredFields = form.querySelectorAll('[data-required-field]');\n form.setAttribute('novalidate', 'novalidate');\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n requiredFields.forEach(function (field) {\n validate(field);\n field.addEventListener('input', function () {\n validate(field);\n });\n });\n\n if (!checkForErrors(requiredFields)) {\n form.submit();\n }\n });\n });\n}\n\nfunction validate(field) {\n var pattern = field.getAttribute('data-required-field-pattern');\n var errorMessage = field.getAttribute('data-required-field');\n\n if (field.value.length === 0 && field.hasAttribute('data-optional-input')) {\n return;\n }\n\n if (pattern) {\n var regex = new RegExp(pattern);\n\n if (field.value.length === 0) {\n addErrorMessage(field, 'required field');\n } else if (regex.test(field.value)) {\n field.classList.remove('input-error');\n } else {\n addErrorMessage(field, errorMessage);\n }\n } else if (field.value.length > 0) {\n field.classList.remove('input-error');\n } else {\n addErrorMessage(field, errorMessage);\n }\n}\n\nfunction checkForErrors(fields) {\n var errors = false;\n fields.forEach(function (field) {\n if (field.classList.contains('input-error')) {\n errors = true;\n }\n });\n return errors;\n}\n\nfunction addErrorMessage(field, errorMessage) {\n field.classList.add('input-error');\n field.nextElementSibling.setAttribute('data-after', errorMessage === '' ? 'required field' : errorMessage);\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n requiredValidation();\n});\ndocument.addEventListener('shopify:section:load', function () {\n requiredValidation();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/required-validation.js?"); /***/ }), /***/ "./src/scripts/components/swiper-breakpoint.js": /*!*****************************************************!*\ !*** ./src/scripts/components/swiper-breakpoint.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.swiperBreakpoint = swiperBreakpoint;\n\nvar _swiper = _interopRequireDefault(__webpack_require__(/*! swiper */ \"./node_modules/swiper/js/swiper.esm.bundle.js\"));\n\n/*\n windowUnderBreakpoint === true, swiper will only work if window.width < breakpoint value\n windowUnderBreakpoint === false, swiper will only work if window.width >= breakpoint value\n\n Example Usage\n -----------------------------\n import Swiper from 'swiper'\n import { swiperBreakpoint } from '@scripts/components/swiper-breakpoint'\n .\n .\n .\n const swiperTarget = document.querySelector('[data-swiper-container]')\n const swiperParams = {\n slidesPerView: 'auto',\n freeMode: true,\n loop: false,\n observer: true,\n observeParents: true\n }\n let swiper = new Swiper(swiperTarget, swiperParams)\n\n const breakpoint = 1025\n swiper = swiperBreakpoint(swiper, swiperTarget, swiperParams, breakpoint)\n window.addEventListener('resize', () => {\n swiper = swiperBreakpoint(swiper, swiperTarget, swiperParams, breakpoint)\n })\n*/\nfunction swiperBreakpoint(swiper, swiperTarget, swiperParams, breakpoint) {\n var windowUnderBreakpoint = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var breakpointCheck = windowUnderBreakpoint === true ? window.innerWidth < breakpoint : window.innerWidth >= breakpoint;\n\n if (breakpointCheck) {\n if (swiper !== null) {\n return swiper;\n }\n\n var initSwiper = new _swiper[\"default\"](swiperTarget, swiperParams);\n return initSwiper;\n } else {\n if (swiper === null) {\n return swiper;\n }\n\n swiper.destroy(true, true);\n return null;\n }\n}\n\n//# sourceURL=webpack://starter-theme/./src/scripts/components/swiper-breakpoint.js?"); /***/ }), /***/ "./src/scripts/core/a11y.js": /*!**********************************!*\ !*** ./src/scripts/core/a11y.js ***! \**********************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nfunction tabOutline() {\n var siteBody = document.querySelector('[data-site-body]');\n document.addEventListener('keydown', function (event) {\n if (event.keyCode !== 9) {\n return;\n }\n\n siteBody.classList.add('tab-outline');\n });\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n (0, _themeA11y.focusHash)();\n (0, _themeA11y.bindInPageLinks)();\n tabOutline();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/core/a11y.js?"); /***/ }), /***/ "./src/scripts/core/object-fit-fallback.js": /*!*************************************************!*\ !*** ./src/scripts/core/object-fit-fallback.js ***! \*************************************************/ /***/ (() => { "use strict"; eval("\n\nfunction objectFitFallback() {\n // Detect objectFit support\n if ('objectFit' in document.documentElement.style !== false) {\n return;\n }\n\n var coverImages = document.querySelectorAll('.img-cover');\n var containImages = document.querySelectorAll('.img-contain');\n handleObjectFit(coverImages, 'cover');\n handleObjectFit(containImages, 'contain');\n\n function handleObjectFit(items, type) {\n if (items === null) {\n return;\n }\n\n items.forEach(function (item) {\n var itemImage = item.querySelector('img');\n itemImage.style.display = 'none';\n item.classList.add('no-object-fit', \"no-object-fit--\".concat(type));\n item.style.backgroundSize = type;\n item.style.backgroundImage = \"url(\".concat(itemImage.src, \")\");\n });\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n objectFitFallback();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/core/object-fit-fallback.js?"); /***/ }), /***/ "./src/scripts/layout/theme.js": /*!*************************************!*\ !*** ./src/scripts/layout/theme.js ***! \*************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\n__webpack_require__(/*! lazysizes/plugins/object-fit/ls.object-fit */ \"./node_modules/lazysizes/plugins/object-fit/ls.object-fit.js\");\n\n__webpack_require__(/*! lazysizes/plugins/parent-fit/ls.parent-fit */ \"./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js\");\n\n__webpack_require__(/*! lazysizes/plugins/rias/ls.rias */ \"./node_modules/lazysizes/plugins/rias/ls.rias.js\");\n\n__webpack_require__(/*! lazysizes/plugins/bgset/ls.bgset */ \"./node_modules/lazysizes/plugins/bgset/ls.bgset.js\");\n\n__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\");\n\n__webpack_require__(/*! lazysizes/plugins/respimg/ls.respimg */ \"./node_modules/lazysizes/plugins/respimg/ls.respimg.js\");\n\n__webpack_require__(/*! @lottiefiles/lottie-player */ \"./node_modules/@lottiefiles/lottie-player/dist/lottie-player.esm.js\");\n\n__webpack_require__(/*! focus-within-polyfill */ \"./node_modules/focus-within-polyfill/dist/focus-within-polyfill.js\");\n\n__webpack_require__(/*! @scripts/core/a11y */ \"./src/scripts/core/a11y.js\");\n\n__webpack_require__(/*! @scripts/core/object-fit-fallback */ \"./src/scripts/core/object-fit-fallback.js\");\n\n__webpack_require__(/*! @scripts/components/cart */ \"./src/scripts/components/cart.js\");\n\n__webpack_require__(/*! @scripts/components/required-validation */ \"./src/scripts/components/required-validation.js\");\n\n__webpack_require__(/*! @scripts/components/grafton-store-capture */ \"./src/scripts/components/grafton-store-capture.js\");\n\n__webpack_require__(/*! @scripts/components/global-wpx */ \"./src/scripts/components/global-wpx.js\");\n\n__webpack_require__(/*! @sections/header */ \"./src/scripts/sections/header.js\");\n\n__webpack_require__(/*! @sections/cart-preview */ \"./src/scripts/sections/cart-preview.js\");\n\n__webpack_require__(/*! @sections/newsletter-popup */ \"./src/scripts/sections/newsletter-popup.js\");\n\n__webpack_require__(/*! @sections/event-planner-drawer */ \"./src/scripts/sections/event-planner-drawer.js\");\n\n__webpack_require__(/*! @sections/event-planner-popup */ \"./src/scripts/sections/event-planner-popup.js\");\n\n__webpack_require__(/*! @snippets/nav */ \"./src/scripts/snippets/nav.js\");\n\n__webpack_require__(/*! @snippets/newsletter-form */ \"./src/scripts/snippets/newsletter-form.js\");\n\n__webpack_require__(/*! @snippets/weglot-language-switcher */ \"./src/scripts/snippets/weglot-language-switcher.js\");\n\n//# sourceURL=webpack://starter-theme/./src/scripts/layout/theme.js?"); /***/ }), /***/ "./src/scripts/sections/cart-preview.js": /*!**********************************************!*\ !*** ./src/scripts/sections/cart-preview.js ***! \**********************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nvar _header = __webpack_require__(/*! @sections/header */ \"./src/scripts/sections/header.js\");\n\nfunction cartPreviewInit() {\n var siteHtml = document.querySelector('[data-site-html]');\n var siteBody = document.querySelector('[data-site-body]');\n var cartPreview = document.querySelector('[data-cart-preview]');\n var cartPreviewOverlay = document.querySelector('[data-cart-preview-overlay]');\n\n if (!cartPreview) {\n return;\n }\n\n cartPreview.addEventListener('click', function (event) {\n if (event.target.hasAttribute('data-cart-preview-close')) {\n closeCartPreview();\n } else if (event.target.hasAttribute('href') && event.target.getAttribute('href').indexOf('#newsletter') >= 0) {\n event.preventDefault();\n var newsletterPopup = document.querySelector('[data-newsletter-popup]');\n var newsletterPopupOverlay = document.querySelector('[data-newsletter-popup-overlay]');\n cartPreview.classList.add('hide');\n cartPreviewOverlay.classList.add('hide');\n (0, _themeA11y.removeTrapFocus)();\n newsletterPopup.classList.remove('hide');\n newsletterPopupOverlay.classList.remove('hide');\n (0, _themeA11y.trapFocus)(newsletterPopup);\n }\n });\n document.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n closeCartPreview();\n });\n document.addEventListener('click', function (event) {\n if (cartPreview.classList.contains('hide') || event.target.hasAttribute('data-nav-cart-toggle')) {\n return;\n }\n\n var parentElement = event.target.closest('[data-cart-preview]');\n\n if (parentElement === null) {\n closeCartPreview();\n }\n });\n window.addEventListener('resize', function () {\n positionCartPreview();\n });\n positionCartPreview();\n\n function positionCartPreview() {\n var siteHeaderWidth = document.querySelector('[data-site-header]').offsetWidth;\n var siteHeaderWrapperWidth = document.querySelector('[data-site-header-wrapper]').offsetWidth;\n\n if (siteHeaderWidth >= siteHeaderWrapperWidth) {\n var rightPosition = (siteHeaderWidth - siteHeaderWrapperWidth) / 2;\n cartPreview.style.right = \"\".concat(rightPosition, \"px\");\n } else {\n cartPreview.style.right = 'auto';\n }\n }\n\n function closeCartPreview() {\n siteHtml.classList.remove('disable-scrolling');\n siteBody.classList.remove('disable-scrolling');\n siteBody.classList.remove('cart-preview-active');\n cartPreview.classList.add('hide');\n cartPreviewOverlay.classList.add('hide');\n (0, _themeA11y.removeTrapFocus)();\n (0, _header.addTransparency)();\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n cartPreviewInit();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/cart-preview.js?"); /***/ }), /***/ "./src/scripts/sections/event-planner-drawer.js": /*!******************************************************!*\ !*** ./src/scripts/sections/event-planner-drawer.js ***! \******************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\n\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nvar _swiper = _interopRequireDefault(__webpack_require__(/*! swiper */ \"./node_modules/swiper/js/swiper.esm.bundle.js\"));\n\nvar _vanillajsDatepicker = __webpack_require__(/*! vanillajs-datepicker */ \"./node_modules/vanillajs-datepicker/js/main.js\");\n\nvar _eventPlannerApi = __webpack_require__(/*! @scripts/components/event-planner-api */ \"./src/scripts/components/event-planner-api.js\");\n\nvar _eventPlannerUtils = __webpack_require__(/*! @scripts/components/event-planner-utils */ \"./src/scripts/components/event-planner-utils.js\");\n\nvar _axios = _interopRequireDefault(__webpack_require__(/*! axios */ \"./node_modules/axios/dist/browser/axios.cjs\"));\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nvar eventsAPI = (0, _eventPlannerApi.eventPlannerAPI)();\n\n(function () {\n if (typeof window.customElements.get('event-planner-drawer') === 'undefined') {\n window.customElements.define('event-planner-drawer', /*#__PURE__*/function (_HTMLElement) {\n (0, _inherits2[\"default\"])(EventPlannerDrawer, _HTMLElement);\n\n var _super = _createSuper(EventPlannerDrawer);\n\n function EventPlannerDrawer() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawer);\n _this = _super.call(this);\n _this.closeButton = _this.querySelector('[data-event-planner-drawer-close]');\n _this.eventTitle = _this.querySelector('[data-event-planner-drawer-title]');\n _this.initials = _this.querySelector('[data-event-planner-drawer-initials]');\n _this.date = _this.querySelector('[data-event-planner-drawer-date]');\n _this.longDate = _this.querySelector('[data-event-planner-drawer-long-date]');\n _this.editButton = _this.querySelector('[data-event-planner-drawer-edit]');\n _this.addGuestButton = _this.querySelector('[data-event-planner-drawer-add-guest]');\n _this.addLookButton = _this.querySelector('[data-event-planner-drawer-add-look]');\n _this.finalizeButton = _this.querySelector('[data-event-planner-drawer-finalize]');\n _this.editFinalizedEventButton = _this.querySelector('[data-event-planner-drawer-unfinalize]');\n _this.warningContainer = _this.querySelector('[data-event-planner-drawer-warning-container]'); // Click events\n\n _this.closeButton.addEventListener('click', function () {\n return _this.toggleDrawer('close');\n });\n\n _this.editButton.addEventListener('click', function () {\n return document.dispatchEvent(new Event('openEventPlannerEditPopup'));\n });\n\n _this.addGuestButton.addEventListener('click', function () {\n return document.dispatchEvent(new Event('openEventPlannerGuestPopup'));\n });\n\n _this.addLookButton.addEventListener('click', function () {\n return document.dispatchEvent(new Event('openEventPlannerLookPopup'));\n });\n\n _this.finalizeButton.addEventListener('click', function () {\n return document.dispatchEvent(new Event('openEventPlannerFinalizePopup'));\n });\n\n _this.editFinalizedEventButton.addEventListener('click', function () {\n return document.dispatchEvent(new Event('openEventPlannerUnfinalizePopup'));\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerDrawer', function () {\n return _this.toggleDrawer('open');\n });\n document.addEventListener('closeEventPlannerDrawer', function () {\n return _this.toggleDrawer('close');\n });\n document.addEventListener('updateEventPlannerDetails', function () {\n return _this.buildDetails();\n });\n document.addEventListener('eventPlannerProductAdded', function (event) {\n return _this.showProductAddedBanner(event.detail);\n });\n document.addEventListener('eventPlannerCheckFinalizedState', function () {\n return _this.toggleFinalizeButtonState();\n });\n document.addEventListener('updateEventPlannerGuests', function () {\n _this.buildGuestsCarousel();\n\n _this.toggleFinalizeButtonState();\n });\n document.addEventListener('updateEventPlannerLooks', function () {\n _this.buildLooksCarousel();\n\n _this.toggleFinalizeButtonState();\n }); // Rebuild drawer\n\n document.addEventListener('updateEventPlannerDrawer', function () {\n _this.toggleFinalizedState();\n\n _this.buildDetails();\n\n _this.buildGuestsCarousel();\n\n _this.buildLooksCarousel();\n\n _this.buildPromoCarousel();\n\n _this.toggleFinalizeButtonState();\n }); // Show warning notice\n\n document.addEventListener('showFinalizeWarning', function (event) {\n _this.showFinalizeWarning(event.detail);\n }); // Hide warning notice\n\n document.addEventListener('hideFinalizeWarning', function () {\n _this.hideFinalizeWarning();\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape' || !_this.classList.contains('active') || document.body.classList.contains('event-planner-drawer-popup-active')) {\n return;\n }\n\n _this.toggleDrawer('close');\n }); // If pending event is stored from event-planner-cta.liquid flow trigger logic to create event\n\n if (window.localStorage.getItem('eventPlannerPendingEvent')) {\n _this.checkForPendingEvents();\n } else {\n _this.toggleFinalizedState();\n\n _this.buildDetails();\n\n _this.buildGuestsCarousel();\n\n _this.buildLooksCarousel();\n\n _this.buildPromoCarousel();\n\n _this.toggleFinalizeButtonState();\n\n _this.hideElements();\n }\n\n return _this;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawer, [{\n key: \"showFinalizeWarning\",\n value: function showFinalizeWarning(detail) {\n this.warningContainer.classList.remove('hide');\n this.warningContainer.innerHTML = this.warningContainer.querySelector('svg').outerHTML;\n this.warningContainer.insertAdjacentHTML('beforeend', detail);\n this.finalizeButton.scrollIntoView({\n behavior: 'smooth'\n });\n }\n }, {\n key: \"hideFinalizeWarning\",\n value: function hideFinalizeWarning() {\n this.warningContainer.classList.add('hide');\n }\n }, {\n key: \"buildDetails\",\n value: function () {\n var _buildDetails = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var activeEvent, customerId, activeEventJSON, utcDate, formattedDate, month, day, year;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n customerId = document.body.getAttribute('data-customer-id');\n\n if (!(!activeEvent || !customerId)) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 4:\n activeEventJSON = JSON.parse(activeEvent);\n utcDate = new Date(activeEventJSON.event_date);\n formattedDate = new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60000);\n month = formattedDate.toString().split(' ')[1];\n day = formattedDate.toString().split(' ')[2];\n year = formattedDate.toString().split(' ')[3];\n this.initials.innerHTML = \"\".concat(activeEventJSON.person_1_name.length ? activeEventJSON.person_1_name.charAt(0) : '', \"&\").concat(activeEventJSON.person_2_name.length ? activeEventJSON.person_2_name.charAt(0) : '');\n this.date.innerHTML = \"\".concat(month, \" \").concat(day);\n this.eventTitle.innerHTML = activeEventJSON.title;\n this.longDate.innerHTML = \"\".concat(month, \" \").concat(day, \", \").concat(year);\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function buildDetails() {\n return _buildDetails.apply(this, arguments);\n }\n\n return buildDetails;\n }()\n }, {\n key: \"buildGuestsCarousel\",\n value: function () {\n var _buildGuestsCarousel = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee2() {\n var activeEvent, customerId, guestSwiperContainer, activeEventJSON, guests, looks, guestCountElements, guestsList, _iterator, _step, _loop, swiperWrapper, prevEl, nextEl, swiper;\n\n return _regenerator[\"default\"].wrap(function _callee2$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n customerId = document.body.getAttribute('data-customer-id');\n guestSwiperContainer = this.querySelector('[data-event-planner-drawer-guests-swiper-container]');\n\n if (!(!activeEvent || !customerId || !guestSwiperContainer)) {\n _context4.next = 5;\n break;\n }\n\n return _context4.abrupt(\"return\");\n\n case 5:\n activeEventJSON = JSON.parse(activeEvent);\n guests = activeEventJSON.customers;\n looks = activeEventJSON.looks;\n guestCountElements = this.querySelectorAll('[data-event-planner-drawer-guests-count]');\n guestCountElements.forEach(function (guestCountElement) {\n guestCountElement.innerHTML = guests.length;\n });\n\n if (!activeEventJSON.finalized) {\n _context4.next = 32;\n break;\n }\n\n guestCountElements.forEach(function (guestCountElement) {\n guestCountElement.innerHTML = guests.filter(function (guest) {\n return guest.looks.length;\n }).length;\n });\n guestsList = this.querySelector('[data-event-planner-drawer-guests-list]');\n guestsList.innerHTML = '';\n _iterator = _createForOfIteratorHelper(guests);\n _context4.prev = 15;\n _loop = /*#__PURE__*/_regenerator[\"default\"].mark(function _loop() {\n var guest, guestData, guestListItem, productVariantList, productsWithNoSelection, unpurchasedProducts, purchaseDate, purchaseMethod, purchaseOrderNumber, retailLocationNumber, productData, soldoutProducts, packageType, remindedCustomers, reminderSentToCustomer, firstProduct, _iterator2, _step2, _loop2;\n\n return _regenerator[\"default\"].wrap(function _loop$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n guest = _step.value;\n _context3.next = 3;\n return eventsAPI.getCustomer(activeEventJSON.id, guest.id);\n\n case 3:\n guestData = _context3.sent;\n guestListItem = document.createElement('div');\n\n if (!guestData.Looks.length) {\n _context3.next = 44;\n break;\n }\n\n productVariantList = guestData.Looks[0].Products.filter(function (product) {\n return product.Customers.length;\n });\n productsWithNoSelection = guestData.Looks[0].Products.filter(function (product) {\n return !product.Customers.length;\n });\n unpurchasedProducts = productVariantList.length ? productVariantList.filter(function (product) {\n return product.Customers[0].CustomerProduct.status !== 'paid';\n }) : false;\n purchaseDate = null;\n purchaseMethod = null;\n purchaseOrderNumber = null;\n retailLocationNumber = null;\n productData = null;\n soldoutProducts = false;\n packageType = (0, _eventPlannerUtils.getPackageType)(guestData.Looks[0].Products);\n remindedCustomers = window.localStorage.getItem('eventPlannerRemindedCustomers');\n reminderSentToCustomer = remindedCustomers ? JSON.parse(remindedCustomers).find(function (customer) {\n return customer.id === guestData.id;\n }) : null;\n\n if (!(productVariantList.length && !unpurchasedProducts.length)) {\n _context3.next = 23;\n break;\n }\n\n firstProduct = productVariantList[0] ? productVariantList[0].Customers[0].CustomerProduct : null;\n\n if (firstProduct) {\n purchaseDate = firstProduct.updatedAt.split('T')[0];\n purchaseMethod = firstProduct.sales_channel === 'web' ? 'online' : 'in store';\n purchaseOrderNumber = firstProduct.retail_receipt_number ? firstProduct.retail_receipt_number : firstProduct.shopify_order_id;\n retailLocationNumber = firstProduct.retail_location_number;\n }\n\n _context3.next = 41;\n break;\n\n case 23:\n if (!(productVariantList && unpurchasedProducts.length)) {\n _context3.next = 41;\n break;\n }\n\n productData = unpurchasedProducts.map(function (product) {\n return product;\n });\n _iterator2 = _createForOfIteratorHelper(unpurchasedProducts);\n _context3.prev = 26;\n _loop2 = /*#__PURE__*/_regenerator[\"default\"].mark(function _loop2() {\n var unpurchasedProduct, variantId, productVariants, soldoutVariant;\n return _regenerator[\"default\"].wrap(function _loop2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n unpurchasedProduct = _step2.value;\n variantId = unpurchasedProduct.Customers[0].CustomerProduct.shopify_variant_id;\n _context2.next = 4;\n return _axios[\"default\"].get(\"/products/\".concat(unpurchasedProduct.shopify_handle, \"?view=variants\"));\n\n case 4:\n productVariants = _context2.sent;\n soldoutVariant = productVariants.data.find(function (variant) {\n return variant.id === parseInt(variantId) && variant.inventory_quantity === 0;\n });\n\n if (soldoutVariant) {\n soldoutProducts = true;\n }\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _loop2);\n });\n\n _iterator2.s();\n\n case 29:\n if ((_step2 = _iterator2.n()).done) {\n _context3.next = 33;\n break;\n }\n\n return _context3.delegateYield(_loop2(), \"t0\", 31);\n\n case 31:\n _context3.next = 29;\n break;\n\n case 33:\n _context3.next = 38;\n break;\n\n case 35:\n _context3.prev = 35;\n _context3.t1 = _context3[\"catch\"](26);\n\n _iterator2.e(_context3.t1);\n\n case 38:\n _context3.prev = 38;\n\n _iterator2.f();\n\n return _context3.finish(38);\n\n case 41:\n guestListItem.classList.add('event-planner-drawer__guest', 'event-planner-drawer__guest--full', 'swiper-slide');\n guestListItem.innerHTML = \"\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n
\\n \".concat(!guestData.first_name && !guestData.last_name ? '' : \"\".concat(guestData.first_name ? guestData.first_name : '', \" \").concat(guestData.last_name ? guestData.last_name : ''), \"\\n
\\n \\n \").concat(guestData.email, \"\\n \\n \\n \").concat(window.theme.strings.eventPlannerRole, \"\\n \").concat(guestData.wedding_role, \"\\n \\n \\n \").concat(window.theme.strings.eventPlannerLook, \"\\n \").concat(guestData.Looks[0].name, \"\\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \").concat(guestData.admin_purchasing_look ? \"\\n \".concat(productVariantList.length && !productsWithNoSelection.length ? \"\\n \".concat(unpurchasedProducts.length ? \"\\n \".concat(guestData.is_event_admin ? \"\\n \\n \").concat(window.theme.strings.eventPlannerPurchase, \"\\n \\n \") : \"\\n \".concat(soldoutProducts ? '

This outfit contains items that are no longer in stock.

' : '', \"\\n
\\n
\\n \").concat(window.theme.strings.eventPlannerSizesReceived, \"\\n
\\n \\n \\n \\n
\\n \"), \"\\n \") : \"\\n
\\n \".concat(window.theme.strings.eventPlannerPurchased, \" \").concat(purchaseMethod, \" \").concat(purchaseDate, \"\\n
\\n \").concat(purchaseOrderNumber ? \"\".concat(window.theme.strings.eventPlannerPONumber).concat(purchaseOrderNumber) : '').concat(retailLocationNumber ? \", \".concat(window.theme.strings.eventPlannerStoreId, \" \").concat(retailLocationNumber) : '', \"\\n
\\n \"), \"\\n \") : \"\\n \".concat(guestData.is_event_admin ? \"\\n \\n \").concat(window.theme.strings.eventPlannerPurchase, \"\\n \\n \") : \"\\n
\\n \".concat(window.theme.strings.eventPlannerEmailSent, \"\\n
\\n \").concat(window.theme.strings.eventPlannerWaitingForSizes, \"\\n
\\n \\n \\n \\n
\\n \"), \"\\n \"), \"\\n \") : \"\\n \".concat(productVariantList.length && !unpurchasedProducts.length && !productsWithNoSelection.length ? \"\\n
\\n \".concat(window.theme.strings.eventPlannerPurchased, \" \").concat(purchaseMethod, \" \").concat(purchaseDate, \"\\n
\\n \").concat(purchaseOrderNumber ? \"\".concat(window.theme.strings.eventPlannerPONumber).concat(purchaseOrderNumber) : '').concat(retailLocationNumber ? \", \".concat(window.theme.strings.eventPlannerStoreId, \" \").concat(retailLocationNumber) : '', \"\\n
\\n \") : \"\\n
\\n \".concat(window.theme.strings.eventPlannerEmailSent, \"\\n
\\n \\n \\n \\n
\\n \"), \"\\n \"), \"\\n
\\n \");\n guestsList.appendChild(guestListItem);\n\n case 44:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _loop, null, [[26, 35, 38, 41]]);\n });\n\n _iterator.s();\n\n case 18:\n if ((_step = _iterator.n()).done) {\n _context4.next = 22;\n break;\n }\n\n return _context4.delegateYield(_loop(), \"t0\", 20);\n\n case 20:\n _context4.next = 18;\n break;\n\n case 22:\n _context4.next = 27;\n break;\n\n case 24:\n _context4.prev = 24;\n _context4.t1 = _context4[\"catch\"](15);\n\n _iterator.e(_context4.t1);\n\n case 27:\n _context4.prev = 27;\n\n _iterator.f();\n\n return _context4.finish(27);\n\n case 30:\n _context4.next = 42;\n break;\n\n case 32:\n swiperWrapper = guestSwiperContainer.querySelector('.swiper-wrapper');\n swiperWrapper.innerHTML = '';\n guests.forEach(function (guest) {\n var guestSlide = document.createElement('div');\n guestSlide.classList.add('event-planner-drawer__guest', 'swiper-slide');\n guestSlide.setAttribute('data-id', guest.id);\n guestSlide.innerHTML = \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n

\".concat(!guest.first_name && !guest.last_name ? '' : \"\".concat(guest.first_name ? guest.first_name : '', \" \").concat(guest.last_name ? guest.last_name : ''), \"

\\n

\").concat(guest.wedding_role, \"

\\n \\n \\n \\n \\n \").concat(guest.admin_purchasing_look ? \"

\".concat(window.theme.strings.eventPlannerImBuying, \"

\") : '', \"\\n \\n \\n \\n \");\n swiperWrapper.appendChild(guestSlide);\n });\n prevEl = guestSwiperContainer.querySelector('[data-swiper-prev]');\n nextEl = guestSwiperContainer.querySelector('[data-swiper-next]');\n swiper = new _swiper[\"default\"](guestSwiperContainer, {\n spaceBetween: 10,\n slidesPerView: 'auto',\n freeMode: true,\n draggable: true,\n threshold: 10,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n prevEl: prevEl,\n nextEl: nextEl\n }\n });\n\n if (guestSwiperContainer.querySelectorAll('.event-planner-drawer__guest').length < 5) {\n prevEl.classList.add('hide');\n nextEl.classList.add('hide');\n } else {\n prevEl.classList.remove('hide');\n nextEl.classList.remove('hide');\n }\n\n swiper.init();\n setTimeout(function () {\n return swiper.update();\n }, 100);\n document.addEventListener('showRecentlyAddedGuests', function (event) {\n var guestSlides = guestSwiperContainer.querySelectorAll('.event-planner-drawer__guest');\n var activeIndex = 0;\n\n if (guestSlides.length >= 5) {\n guestSlides.forEach(function (guestSlide, index) {\n activeIndex = index;\n });\n setTimeout(function () {\n return swiper.slideTo(activeIndex, 0, false);\n }, 300);\n }\n });\n\n case 42:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee2, this, [[15, 24, 27, 30]]);\n }));\n\n function buildGuestsCarousel() {\n return _buildGuestsCarousel.apply(this, arguments);\n }\n\n return buildGuestsCarousel;\n }()\n }, {\n key: \"buildLooksCarousel\",\n value: function () {\n var _buildLooksCarousel = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee3() {\n var activeEvent, customerId, eventPlannerDrawerLooks, activeEventJSON, looks, eventCreationDate, legacyBundlePrice, legacyPrice, legacyPriceSave, lookSwiperContainers;\n return _regenerator[\"default\"].wrap(function _callee3$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n customerId = document.body.getAttribute('data-customer-id');\n eventPlannerDrawerLooks = this.querySelector('[data-event-planner-drawer-looks]');\n\n if (!(!activeEvent || !customerId || !eventPlannerDrawerLooks)) {\n _context5.next = 5;\n break;\n }\n\n return _context5.abrupt(\"return\");\n\n case 5:\n eventPlannerDrawerLooks.innerHTML = '';\n activeEventJSON = JSON.parse(activeEvent);\n looks = activeEventJSON.looks;\n eventCreationDate = new Date(activeEventJSON.Address.createdAt); // const eventInitialized = activeEventJSON.initialized\n\n legacyBundlePrice = false;\n\n if (eventCreationDate < new Date('2024-07-03')) {\n legacyBundlePrice = true;\n legacyPrice = document.querySelectorAll('.event-planner-drawer__promo-price');\n legacyPriceSave = document.querySelectorAll('.event-planner-drawer__promo-save');\n legacyPrice[0].textContent = 'From $329';\n legacyPriceSave[0].textContent = ' SAVE $150';\n legacyPrice[1].textContent = 'From $279';\n legacyPriceSave[1].textContent = ' SAVE $100';\n }\n\n looks.forEach(function (look) {\n var lookBlock = document.createElement('div');\n lookBlock.classList.add('event-planner-drawer__look');\n var productList = window.eventPlannerLookOptions;\n var packagePrice = null;\n var packageType = null;\n var originalPrice = null;\n\n if (look.products.length) {\n var assignedProducts = look.products.filter(function (look) {\n return look.product_type;\n });\n var packageTypesArray = look.products.map(function (look) {\n return look.product_type;\n });\n var hasDressShirt = packageTypesArray.includes('Patterned Dress Shirts') || packageTypesArray.includes('Solid Dress Shirts') || packageTypesArray.includes('Dress Shirts');\n var hasTie = packageTypesArray.includes('Ties') || packageTypesArray.includes('Bow Ties');\n var upgradesTotal = 0;\n productList = productList.map(function (product) {\n var matchingProduct = look.products.find(function (lookProduct) {\n return lookProduct.product_type.indexOf(product.productType) >= 0;\n });\n\n if (matchingProduct) {\n return matchingProduct;\n } else {\n return product;\n }\n });\n\n if (packageTypesArray.includes('Suit Jackets') && packageTypesArray.includes('Suit Pants') && packageTypesArray.includes('Suit Vests') && hasDressShirt && hasTie && packageTypesArray.includes('Pocket Squares')) {\n packageType = 'Full Package';\n } else if (packageTypesArray.includes('Suit Jackets') && packageTypesArray.includes('Suit Pants') && hasDressShirt && hasTie && packageTypesArray.includes('Pocket Squares')) {\n packageType = 'No Vest';\n } else if (packageTypesArray.includes('Suit Pants') && packageTypesArray.includes('Suit Vests') && hasDressShirt && hasTie) {\n packageType = 'No Jacket';\n }\n\n var _iterator3 = _createForOfIteratorHelper(assignedProducts),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var product = _step3.value;\n var upgradeValue = (0, _eventPlannerUtils.getUpgradeValue)(product.product_type, product.shopify_title, product.shopify_price);\n upgradesTotal = upgradesTotal + (upgradeValue || 0);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n if (packageType) {\n packagePrice = (0, _eventPlannerUtils.calculatePackagePrice)(look.products, packageType, legacyBundlePrice) + upgradesTotal * 100;\n }\n }\n\n originalPrice = look.products.map(function (product) {\n return parseFloat(product.shopify_price, 10);\n }).reduce(function (partialSum, a) {\n return partialSum + a;\n }, 0) * 100;\n lookBlock.innerHTML = \"\\n
\\n \\n
\\n

\\n \").concat(look.name, \"\\n \\n \\n \\n

\\n

\").concat(packagePrice ? \"\".concat(Shopify.formatMoney(originalPrice, window.theme.moneyFormat), \" \").concat(Shopify.formatMoney(packagePrice, window.theme.moneyFormat)) : \"\".concat(originalPrice > 0 ? Shopify.formatMoney(originalPrice, window.theme.moneyFormat) : ''), \"

\\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \");\n eventPlannerDrawerLooks.appendChild(lookBlock);\n });\n lookSwiperContainers = this.querySelectorAll('[data-event-planner-drawer-look-swiper-container]');\n lookSwiperContainers.forEach(function (lookSwiperContainer) {\n var prevEl = lookSwiperContainer.querySelector('[data-swiper-prev]');\n var nextEl = lookSwiperContainer.querySelector('[data-swiper-next]');\n var swiper = new _swiper[\"default\"](lookSwiperContainer, {\n spaceBetween: 10,\n slidesPerView: 'auto',\n freeMode: true,\n draggable: true,\n threshold: 10,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n prevEl: prevEl,\n nextEl: nextEl\n }\n });\n swiper.init();\n setTimeout(function () {\n return swiper.update();\n }, 100);\n });\n\n case 14:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function buildLooksCarousel() {\n return _buildLooksCarousel.apply(this, arguments);\n }\n\n return buildLooksCarousel;\n }()\n }, {\n key: \"buildPromoCarousel\",\n value: function buildPromoCarousel() {\n var activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n var customerId = document.body.getAttribute('data-customer-id');\n var promoSwiperContainer = this.querySelector('[data-event-planner-drawer-promo-swiper-container]');\n\n if (!activeEvent || !customerId || !promoSwiperContainer) {\n return;\n }\n\n var swiper = new _swiper[\"default\"](promoSwiperContainer, {\n spaceBetween: 10,\n slidesPerView: 'auto',\n freeMode: true,\n draggable: true,\n threshold: 10,\n mousewheel: {\n forceToAxis: true\n }\n });\n swiper.init();\n setTimeout(function () {\n return swiper.update();\n }, 100);\n }\n /*\r\n Check for pending events in local storage, if there is one create the event\r\n This gets used when a user creates a new event using the event-planner-cta.liquid section while logged out\r\n */\n\n }, {\n key: \"checkForPendingEvents\",\n value: function () {\n var _checkForPendingEvents = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee4() {\n var pendingEvent, customerId, pendingEventJSON;\n return _regenerator[\"default\"].wrap(function _callee4$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n pendingEvent = window.localStorage.getItem('eventPlannerPendingEvent');\n customerId = document.body.getAttribute('data-customer-id');\n\n if (!(!pendingEvent || !customerId)) {\n _context6.next = 4;\n break;\n }\n\n return _context6.abrupt(\"return\");\n\n case 4:\n if (!(window.location.href.indexOf('?view=event-planner') >= 0)) {\n _context6.next = 11;\n break;\n }\n\n pendingEventJSON = JSON.parse(pendingEvent);\n _context6.next = 8;\n return (0, _eventPlannerUtils.createEvent)(pendingEventJSON);\n\n case 8:\n document.dispatchEvent(new Event('fetchEvents'));\n _context6.next = 12;\n break;\n\n case 11:\n window.location.href = '/account?view=event-planner';\n\n case 12:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee4);\n }));\n\n function checkForPendingEvents() {\n return _checkForPendingEvents.apply(this, arguments);\n }\n\n return checkForPendingEvents;\n }()\n }, {\n key: \"showProductAddedBanner\",\n value: function showProductAddedBanner(productTitles) {\n var productAddedBanner = this.querySelector('[data-event-planner-drawer-product-added-banner]');\n var productAddedText = this.querySelector('[data-event-planner-drawer-product-added-text]');\n var originalText = productAddedText.getAttribute('data-original-text');\n productAddedText.innerHTML = originalText.replace('[product]', productTitles.join(' and '));\n productAddedBanner.classList.remove('hide');\n setTimeout(function () {\n return productAddedBanner.classList.add('hide');\n }, 8000);\n }\n }, {\n key: \"toggleFinalizeButtonState\",\n value: function toggleFinalizeButtonState() {\n var activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n var customerId = document.body.getAttribute('data-customer-id');\n\n if (!activeEvent || !customerId) {\n return;\n }\n\n var activeEventJSON = JSON.parse(activeEvent);\n var lookSelectors = Array.from(document.querySelectorAll('[data-event-planner-drawer-look-selector]'));\n var noLookAssigned = lookSelectors.find(function (selector) {\n return selector.value === 'select-look' && !selector.hasAttribute('data-event-planner-drawer-admin-look-selector');\n });\n\n if (!activeEventJSON.customers.length || !activeEventJSON.looks.length || noLookAssigned) {\n this.finalizeButton.setAttribute('disabled', true);\n } else {\n this.finalizeButton.removeAttribute('disabled', true);\n }\n }\n }, {\n key: \"toggleFinalizedState\",\n value: function toggleFinalizedState() {\n var activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n var customerId = document.body.getAttribute('data-customer-id');\n\n if (!activeEvent || !customerId) {\n return;\n }\n\n var activeEventJSON = JSON.parse(activeEvent);\n\n if (activeEventJSON.finalized) {\n this.classList.add('event-planner-drawer--finalized');\n } else {\n this.classList.remove('event-planner-drawer--finalized');\n }\n }\n }, {\n key: \"hideElements\",\n value: function hideElements() {\n var hideElements = document.querySelectorAll('[data-hide-if-active-event]');\n hideElements.forEach(function (hideElement) {\n return hideElement.classList.add('hide');\n });\n }\n }, {\n key: \"toggleDrawer\",\n value: function toggleDrawer(state) {\n var siteHtml = document.querySelector('[data-site-html]');\n var siteBody = document.querySelector('[data-site-body]');\n var eventPlannerDrawerOverlay = document.querySelector('event-planner-drawer-overlay');\n var eventPlannerDrawerOpen = document.querySelector('event-planner-drawer-open');\n\n if (state === 'open') {\n this.classList.add('active');\n this.setAttribute('aria-hidden', false);\n eventPlannerDrawerOpen.classList.add('hide');\n eventPlannerDrawerOverlay.classList.remove('hide');\n siteHtml.classList.add('disable-scrolling');\n siteBody.classList.add('disable-scrolling');\n (0, _themeA11y.trapFocus)(this);\n } else {\n this.classList.remove('active');\n this.setAttribute('aria-hidden', true);\n eventPlannerDrawerOpen.classList.remove('hide');\n eventPlannerDrawerOverlay.classList.add('hide');\n siteHtml.classList.remove('disable-scrolling');\n siteBody.classList.remove('disable-scrolling');\n (0, _themeA11y.removeTrapFocus)();\n }\n }\n }]);\n return EventPlannerDrawer;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Sticky toggle\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-open') === 'undefined') {\n window.customElements.define('event-planner-drawer-open', /*#__PURE__*/function (_HTMLElement2) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerOpen, _HTMLElement2);\n\n var _super2 = _createSuper(EventPlannerDrawerOpen);\n\n function EventPlannerDrawerOpen() {\n var _this2;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerOpen);\n _this2 = _super2.call(this);\n _this2.button = _this2.querySelector('[data-event-planner-drawer-open]');\n _this2.initials = _this2.querySelector('[data-event-planner-drawer-open-initials]');\n _this2.date = _this2.querySelector('[data-event-planner-drawer-open-date]'); // Click events\n\n _this2.button.addEventListener('click', function () {\n return _this2.openDrawer();\n }); // Custom event listeners\n\n\n document.addEventListener('updateEventPlannerDetails', function () {\n return _this2.buildDetails();\n });\n document.addEventListener('updateEventPlannerDrawer', function () {\n return _this2.buildDetails();\n }); // Build\n\n _this2.buildDetails();\n\n return _this2;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerOpen, [{\n key: \"buildDetails\",\n value: function buildDetails() {\n var _this3 = this;\n\n var activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n\n if (activeEvent && document.body.hasAttribute('data-customer-id')) {\n var activeEventJSON = JSON.parse(activeEvent);\n var utcDate = new Date(activeEventJSON.event_date);\n var formattedDate = new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60000);\n var month = formattedDate.toString().split(' ')[1];\n var day = formattedDate.toString().split(' ')[2];\n this.initials.innerHTML = \"\".concat(activeEventJSON.person_1_name ? activeEventJSON.person_1_name.charAt(0) : '', \"&\").concat(activeEventJSON.person_2_name ? activeEventJSON.person_2_name.charAt(0) : '');\n this.date.innerHTML = \"\".concat(month, \" \").concat(day);\n setTimeout(function () {\n return _this3.classList.remove('hide');\n }, 500);\n } else {\n window.localStorage.removeItem('activeEvent');\n window.localStorage.removeItem('eventPlannerActiveEvent');\n this.classList.add('hide');\n }\n }\n }, {\n key: \"openDrawer\",\n value: function openDrawer() {\n document.dispatchEvent(new Event('openEventPlannerDrawer'));\n }\n }]);\n return EventPlannerDrawerOpen;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Overlay\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-overlay') === 'undefined') {\n window.customElements.define('event-planner-drawer-overlay', /*#__PURE__*/function (_HTMLElement3) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerOverlay, _HTMLElement3);\n\n var _super3 = _createSuper(EventPlannerDrawerOverlay);\n\n function EventPlannerDrawerOverlay() {\n var _this4;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerOverlay);\n _this4 = _super3.call(this);\n\n _this4.addEventListener('click', function () {\n return _this4.closeDrawer();\n });\n\n return _this4;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerOverlay, [{\n key: \"closeDrawer\",\n value: function closeDrawer() {\n document.dispatchEvent(new Event('closeEventPlannerDrawer'));\n }\n }]);\n return EventPlannerDrawerOverlay;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Edit popup\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-edit-popup') === 'undefined') {\n window.customElements.define('event-planner-drawer-edit-popup', /*#__PURE__*/function (_HTMLElement4) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerEditPopup, _HTMLElement4);\n\n var _super4 = _createSuper(EventPlannerDrawerEditPopup);\n\n function EventPlannerDrawerEditPopup() {\n var _this5;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerEditPopup);\n _this5 = _super4.call(this);\n _this5.closeButton = _this5.querySelector('[data-event-planner-drawer-popup-close]');\n _this5.datepickerElement = _this5.querySelector('[data-event-planner-drawer-popup-datepicker]');\n _this5.saveButton = _this5.querySelector('[data-event-planner-drawer-popup-save]');\n _this5.form = _this5.querySelector('form');\n _this5.requiredFields = _this5.querySelectorAll('input[required]'); // Click events\n\n _this5.saveButton.addEventListener('click', function () {\n return _this5.saveChanges();\n });\n\n _this5.closeButton.addEventListener('click', function () {\n return _this5.close();\n }); // Close popup on background click\n\n\n _this5.addEventListener('click', function (event) {\n if (!event.target.classList.contains('event-planner-drawer-popup')) {\n return;\n }\n\n if (window.getSelection().toString().trim().length > 0) {\n return;\n }\n\n _this5.close();\n });\n\n _this5.requiredFields.forEach(function (requiredField) {\n var tooltipWrapper = document.createElement('div');\n var tooltip = document.createElement('span');\n\n if (requiredField.parentNode.classList.contains('event-planner-locations')) {\n tooltipWrapper = requiredField.parentNode;\n } else {\n requiredField.parentNode.insertBefore(tooltipWrapper, requiredField);\n tooltipWrapper.appendChild(requiredField);\n }\n\n tooltipWrapper.classList.add('event-planner-drawer__tooltip-wrapper');\n tooltipWrapper.appendChild(tooltip);\n tooltip.classList.add('event-planner-drawer__tooltip');\n tooltip.classList.add('hide');\n tooltip.textContent = 'Required.';\n tooltip.addEventListener('click', function () {\n requiredField.focus();\n });\n requiredField.addEventListener('input', function (event) {\n event.target.classList.remove('input--error');\n event.target.parentNode.querySelector('.event-planner-drawer__tooltip').classList.add('hide');\n });\n }); // Prevent default on form\n\n\n _this5.form.addEventListener('submit', function (event) {\n return event.preventDefault();\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerEditPopup', function () {\n return _this5.open();\n });\n document.addEventListener('updateEventPlannerDrawer', function () {\n return _this5.buildDetails();\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this5.close();\n }); // Build\n\n _this5.initDatepicker();\n\n _this5.buildDetails();\n\n return _this5;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerEditPopup, [{\n key: \"close\",\n value: function close() {\n document.body.classList.remove('event-planner-drawer-popup-active');\n this.classList.remove('active');\n (0, _themeA11y.removeTrapFocus)();\n setTimeout(function () {\n return document.querySelector('event-planner-drawer').focus();\n }, 200);\n }\n }, {\n key: \"open\",\n value: function open() {\n document.body.classList.add('event-planner-drawer-popup-active');\n this.classList.add('active');\n (0, _themeA11y.trapFocus)(this);\n this.buildDetails();\n }\n }, {\n key: \"initDatepicker\",\n value: function initDatepicker() {\n var _this6 = this;\n\n var datepicker = new _vanillajsDatepicker.Datepicker(this.datepickerElement, {\n minDate: Date.now()\n }); // eslint-disable-line\n\n this.datepickerElement.addEventListener('changeDate', function () {\n _this6.querySelector('input[name=\"eventDate\"]').value = _this6.datepickerElement.datepicker.getDate('yyyy-mm-dd');\n });\n }\n }, {\n key: \"buildDetails\",\n value: function buildDetails() {\n var _activeEventJSON$Addr, _activeEventJSON$Addr2;\n\n var activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n\n if (!activeEvent || !document.body.hasAttribute('data-customer-id')) {\n return;\n }\n\n var activeEventJSON = JSON.parse(activeEvent);\n var person1Role = this.querySelector('[data-event-planner-drawer-person-1-role]');\n var person1FirstNameInput = this.querySelector('input[name=\"person1FirstName\"]');\n var person1LastNameInput = this.querySelector('input[name=\"person1LastName\"]');\n var person2Role = this.querySelector('[data-event-planner-drawer-person-2-role]');\n var person2FirstNameInput = this.querySelector('input[name=\"person2FirstName\"]');\n var person2LastNameInput = this.querySelector('input[name=\"person2LastName\"]');\n var dateInput = this.querySelector('input[name=\"eventDate\"]');\n var roleInputs = this.querySelectorAll('input[name=\"weddingRole\"]');\n var cityInput = this.querySelector('input[name=\"city\"]');\n var provinceSelect = this.querySelector('select[name=\"province\"]');\n var admin = activeEventJSON.customers.find(function (customer) {\n return customer.is_event_admin;\n });\n person1Role.innerHTML = \"\".concat(activeEventJSON.person_1_title, \"'s\");\n person1FirstNameInput.value = activeEventJSON.person_1_name.split(' ')[0];\n person1LastNameInput.value = activeEventJSON.person_1_name.split(' ')[1];\n person2Role.innerHTML = \"\".concat(activeEventJSON.person_2_title, \"'s\");\n person2FirstNameInput.value = activeEventJSON.person_2_name.split(' ')[0];\n person2LastNameInput.value = activeEventJSON.person_2_name.split(' ')[1];\n dateInput.value = activeEventJSON.event_date;\n\n if ((_activeEventJSON$Addr = activeEventJSON.Address) !== null && _activeEventJSON$Addr !== void 0 && _activeEventJSON$Addr.city) {\n cityInput.value = activeEventJSON.Address.city;\n }\n\n if ((_activeEventJSON$Addr2 = activeEventJSON.Address) !== null && _activeEventJSON$Addr2 !== void 0 && _activeEventJSON$Addr2.province) {\n provinceSelect.value = activeEventJSON.Address.province;\n }\n\n roleInputs.forEach(function (roleInput) {\n if (roleInput.value === admin.wedding_role) {\n roleInput.setAttribute('checked', true);\n } else {\n roleInput.removeAttribute('checked');\n }\n });\n this.requiredFields.forEach(function (input) {\n input.classList.remove('input--error');\n input.parentNode.querySelector('.event-planner-drawer__tooltip').classList.add('hide');\n });\n var utcDate = new Date(activeEventJSON.event_date);\n this.datepickerElement.datepicker.setDate(new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60000));\n }\n }, {\n key: \"saveChanges\",\n value: function () {\n var _saveChanges = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee5() {\n var activeEvent, formData, eventPlannerChoices, admin, adminFirstName, adminLastName, validationError, customerData;\n return _regenerator[\"default\"].wrap(function _callee5$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n formData = new FormData(this.form); // eslint-disable-line\n\n eventPlannerChoices = Object.fromEntries(formData.entries());\n admin = activeEvent.customers.find(function (customer) {\n return customer.is_event_admin;\n });\n adminFirstName = admin.first_name;\n adminLastName = admin.last_name;\n validationError = false;\n\n if (eventPlannerChoices.weddingRole.toLowerCase() === activeEvent.person_1_title) {\n adminFirstName = eventPlannerChoices.person1FirstName;\n adminLastName = eventPlannerChoices.person1LastName;\n } else if (eventPlannerChoices.weddingRole.toLowerCase() === activeEvent.person_2_title) {\n adminFirstName = eventPlannerChoices.person2FirstName;\n adminLastName = eventPlannerChoices.person2LastName;\n }\n\n eventPlannerChoices.personName1 = \"\".concat(eventPlannerChoices.person1FirstName, \" \").concat(eventPlannerChoices.person1LastName);\n eventPlannerChoices.personName2 = \"\".concat(eventPlannerChoices.person2FirstName, \" \").concat(eventPlannerChoices.person2LastName);\n delete eventPlannerChoices.person1FirstName;\n delete eventPlannerChoices.person1LastName;\n delete eventPlannerChoices.person2FirstName;\n delete eventPlannerChoices.person2LastName;\n customerData = {\n firstName: adminFirstName,\n lastName: adminLastName,\n weddingRole: eventPlannerChoices.weddingRole,\n phone: admin.phone,\n allowCommunication: true,\n adminPurchasingLook: true,\n city: eventPlannerChoices.city,\n province: eventPlannerChoices.province,\n language: admin.language\n };\n this.requiredFields.forEach(function (input) {\n var tooltip = input.parentNode.querySelector('.event-planner-drawer__tooltip');\n\n if (input.value) {\n input.classList.remove('input--error');\n tooltip.classList.add('hide');\n } else {\n input.classList.add('input--error');\n tooltip.classList.remove('hide');\n validationError = true;\n }\n });\n\n if (!(eventPlannerChoices.personName1.length === 0 || eventPlannerChoices.personName1.length === 0 || validationError)) {\n _context7.next = 18;\n break;\n }\n\n return _context7.abrupt(\"return\");\n\n case 18:\n _context7.next = 20;\n return eventsAPI.updateEvent(activeEvent.id, eventPlannerChoices);\n\n case 20:\n _context7.next = 22;\n return eventsAPI.updateCustomer(activeEvent.id, admin.id, customerData);\n\n case 22:\n _context7.next = 24;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 24:\n document.dispatchEvent(new Event('updateEventPlannerDrawer'));\n this.close();\n\n case 26:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function saveChanges() {\n return _saveChanges.apply(this, arguments);\n }\n\n return saveChanges;\n }()\n }]);\n return EventPlannerDrawerEditPopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Guest popup\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-guest-popup') === 'undefined') {\n window.customElements.define('event-planner-drawer-guest-popup', /*#__PURE__*/function (_HTMLElement5) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerGuestPopup, _HTMLElement5);\n\n var _super5 = _createSuper(EventPlannerDrawerGuestPopup);\n\n function EventPlannerDrawerGuestPopup() {\n var _this7;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerGuestPopup);\n _this7 = _super5.call(this);\n _this7.closeButton = _this7.querySelector('[data-event-planner-drawer-popup-close]');\n _this7.heading = _this7.querySelector('[data-event-planner-drawer-popup-guest-heading]');\n _this7.addGuestButton = _this7.querySelector('[data-event-planner-drawer-popup-add-guest]');\n _this7.updateGuestButton = _this7.querySelector('[data-event-planner-drawer-popup-update-guest]');\n _this7.deleteGuestButton = _this7.querySelector('[data-event-planner-drawer-popup-delete-guest]');\n _this7.form = _this7.querySelector('form');\n _this7.requiredFields = _this7.form.querySelectorAll('input[required]');\n _this7.emailWarning = _this7.querySelector('[data-event-planner-drawer-warning-container]');\n _this7.emailInput = _this7.querySelector('#guest-email'); // Click events\n\n _this7.addGuestButton.addEventListener('click', function () {\n return _this7.addGuest();\n });\n\n _this7.updateGuestButton.addEventListener('click', function () {\n return _this7.addGuest(true);\n });\n\n _this7.deleteGuestButton.addEventListener('click', function () {\n return _this7.deleteGuest();\n });\n\n _this7.closeButton.addEventListener('click', function () {\n return _this7.close();\n }); // Close popup on background click\n\n\n _this7.addEventListener('click', function (event) {\n if (!event.target.classList.contains('event-planner-drawer-popup')) {\n return;\n }\n\n var activeElement = document.activeElement;\n var isTextSelected = activeElement && activeElement.selectionStart != null && activeElement.selectionStart !== activeElement.selectionEnd;\n\n if (window.getSelection().toString().trim().length > 0 || isTextSelected) {\n return;\n }\n\n _this7.close();\n }); // Add required fields error\n\n\n _this7.requiredFields.forEach(function (requiredField) {\n var tooltipWrapper = document.createElement('div');\n var tooltip = document.createElement('span');\n requiredField.parentNode.insertBefore(tooltipWrapper, requiredField);\n tooltipWrapper.appendChild(requiredField);\n tooltipWrapper.classList.add('event-planner-drawer__tooltip-wrapper');\n tooltipWrapper.appendChild(tooltip);\n tooltip.classList.add('event-planner-drawer__tooltip');\n tooltip.classList.add('hide');\n tooltip.textContent = 'Required.';\n tooltip.addEventListener('click', function () {\n requiredField.focus();\n });\n requiredField.addEventListener('input', function (event) {\n event.target.classList.remove('input--error');\n event.target.parentNode.querySelector('.event-planner-drawer__tooltip').classList.add('hide');\n });\n }); // Prevent default on form\n\n\n _this7.form.addEventListener('submit', function (event) {\n return event.preventDefault();\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerGuestPopup', function () {\n return _this7.buildAddForm();\n });\n document.addEventListener('openEventPlannerEditGuestPopup', function (event) {\n return _this7.buildEditForm(event.detail);\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this7.close();\n });\n return _this7;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerGuestPopup, [{\n key: \"showEmailWarning\",\n value: function showEmailWarning() {\n this.emailInput.classList.add('input--error');\n console.log(this.emailWarning);\n this.emailWarning.classList.remove('hide');\n }\n }, {\n key: \"hideEmailWarning\",\n value: function hideEmailWarning() {\n this.emailWarning.classList.add('hide');\n }\n }, {\n key: \"addGuest\",\n value: function () {\n var _addGuest = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee6(updateGuest) {\n var activeEvent, formData, choices, customerData, emailAlreadyExists, validationError, customerId, oldCustomerData;\n return _regenerator[\"default\"].wrap(function _callee6$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n formData = new FormData(this.form); // eslint-disable-line\n\n choices = Object.fromEntries(formData.entries());\n customerData = null;\n choices.allowCommunication = true;\n choices.adminPurchasingLook = choices.adminPurchasingLook === 'true';\n\n if (!choices.phone) {\n delete choices.phone;\n }\n\n this.requiredFields.forEach(function (input) {\n var tooltip = input.parentNode.querySelector('.event-planner-drawer__tooltip');\n\n if (input.value) {\n input.classList.remove('input--error');\n tooltip.classList.add('hide');\n } else {\n input.classList.add('input--error');\n tooltip.classList.remove('hide');\n }\n }); // check if inputs are empty\n\n if (!Object.values(choices).some(function (value) {\n return value === '';\n })) {\n _context8.next = 10;\n break;\n }\n\n return _context8.abrupt(\"return\");\n\n case 10:\n emailAlreadyExists = activeEvent.customers.find(function (customer) {\n return customer.email.toLowerCase() === choices.email.toLowerCase();\n });\n\n if (!(emailAlreadyExists && !updateGuest)) {\n _context8.next = 15;\n break;\n }\n\n this.showEmailWarning();\n _context8.next = 49;\n break;\n\n case 15:\n validationError = false;\n\n if (!updateGuest) {\n _context8.next = 39;\n break;\n }\n\n customerId = this.getAttribute('data-edit-guest-form');\n _context8.next = 20;\n return eventsAPI.getCustomer(activeEvent.id, customerId);\n\n case 20:\n oldCustomerData = _context8.sent;\n\n if (!(oldCustomerData.email !== choices.email)) {\n _context8.next = 34;\n break;\n }\n\n if (!emailAlreadyExists) {\n _context8.next = 27;\n break;\n }\n\n this.showEmailWarning();\n validationError = true;\n _context8.next = 32;\n break;\n\n case 27:\n _context8.next = 29;\n return eventsAPI.deleteCustomer(activeEvent.id, customerId);\n\n case 29:\n _context8.next = 31;\n return eventsAPI.addCustomerToEvent(activeEvent.id, choices);\n\n case 31:\n customerData = _context8.sent;\n\n case 32:\n _context8.next = 37;\n break;\n\n case 34:\n _context8.next = 36;\n return eventsAPI.updateCustomer(activeEvent.id, customerId, choices);\n\n case 36:\n customerData = _context8.sent;\n\n case 37:\n _context8.next = 42;\n break;\n\n case 39:\n _context8.next = 41;\n return eventsAPI.addCustomerToEvent(activeEvent.id, choices);\n\n case 41:\n customerData = _context8.sent;\n\n case 42:\n if (!validationError) {\n _context8.next = 44;\n break;\n }\n\n return _context8.abrupt(\"return\");\n\n case 44:\n _context8.next = 46;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 46:\n document.dispatchEvent(new Event('updateEventPlannerGuests'));\n document.dispatchEvent(new CustomEvent('showRecentlyAddedGuests', {\n detail: customerData.id\n })); // eslint-disable-line\n\n this.close();\n\n case 49:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function addGuest(_x) {\n return _addGuest.apply(this, arguments);\n }\n\n return addGuest;\n }()\n }, {\n key: \"deleteGuest\",\n value: function () {\n var _deleteGuest = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee7() {\n var activeEvent, customerId;\n return _regenerator[\"default\"].wrap(function _callee7$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n customerId = this.getAttribute('data-edit-guest-form');\n _context9.next = 4;\n return eventsAPI.deleteCustomer(activeEvent.id, customerId);\n\n case 4:\n _context9.next = 6;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 6:\n document.dispatchEvent(new Event('updateEventPlannerGuests'));\n this.close();\n\n case 8:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function deleteGuest() {\n return _deleteGuest.apply(this, arguments);\n }\n\n return deleteGuest;\n }()\n }, {\n key: \"buildEditForm\",\n value: function () {\n var _buildEditForm = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee8(customerId) {\n var activeEvent, customer, firstNameInput, lastNameInput, emailInput, phoneInput, weddingRoleInputs, languageInputs, adminPurchasingLookInputs, editGuestButtons, tooltipContactButton;\n return _regenerator[\"default\"].wrap(function _callee8$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n this.setAttribute('data-edit-guest-form', customerId);\n this.heading.innerHTML = window.theme.strings.eventPlannerEditGuest;\n _context10.next = 5;\n return eventsAPI.getCustomer(activeEvent.id, customerId);\n\n case 5:\n customer = _context10.sent;\n firstNameInput = this.querySelector('input[name=\"firstName\"]');\n lastNameInput = this.querySelector('input[name=\"lastName\"]');\n emailInput = this.querySelector('input[name=\"email\"]');\n phoneInput = this.querySelector('input[name=\"phone\"]');\n weddingRoleInputs = this.querySelectorAll('input[name=\"weddingRole\"]');\n languageInputs = this.querySelectorAll('input[name=\"language\"]');\n adminPurchasingLookInputs = this.querySelectorAll('input[name=\"adminPurchasingLook\"]');\n editGuestButtons = this.querySelector('[data-event-planner-drawer-popup-edit-guest-buttons]');\n tooltipContactButton = this.querySelector('[data-event-planner-drawer-popup-tooltip-contact]');\n tooltipContactButton.addEventListener('click', function () {\n window.open('/pages/contact-us', '_blank');\n });\n\n if (customer.is_event_admin) {\n editGuestButtons.classList.add('justify-center');\n this.deleteGuestButton.classList.add('hide');\n this.toggleRoleInputs(customer.is_event_admin);\n } else {\n editGuestButtons.classList.remove('justify-center');\n this.deleteGuestButton.classList.remove('hide');\n this.toggleRoleInputs(customer.is_event_admin);\n }\n\n firstNameInput.value = customer.first_name;\n lastNameInput.value = customer.last_name;\n emailInput.value = customer.email;\n phoneInput.value = customer.phone;\n weddingRoleInputs.forEach(function (input) {\n if (input.value !== customer.wedding_role) {\n return;\n }\n\n input.click();\n });\n languageInputs.forEach(function (input) {\n if (input.value !== customer.language) {\n return;\n }\n\n input.click();\n });\n adminPurchasingLookInputs.forEach(function (input) {\n if (input.value !== customer.admin_purchasing_look.toString()) {\n return;\n }\n\n input.click();\n });\n this.open();\n\n case 25:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function buildEditForm(_x2) {\n return _buildEditForm.apply(this, arguments);\n }\n\n return buildEditForm;\n }()\n }, {\n key: \"toggleRoleInputs\",\n value: function toggleRoleInputs(isEventAdmin) {\n var celebrantRoleOptionWrapper = this.querySelector('[data-event-planner-roles-celebrant]');\n var celebrantRoleInput = celebrantRoleOptionWrapper === null || celebrantRoleOptionWrapper === void 0 ? void 0 : celebrantRoleOptionWrapper.querySelector('input');\n var weddingPlannerRoleOptionWrapper = this.querySelector('[data-event-planner-roles-wedding-planner]');\n var weddingPlannerRoleInput = weddingPlannerRoleOptionWrapper === null || weddingPlannerRoleOptionWrapper === void 0 ? void 0 : weddingPlannerRoleOptionWrapper.querySelector('input');\n var emailInput = this.querySelector('input[name=\"email\"]');\n var emailTooltipButton = this.querySelector('[event-planner-drawer-popup-tooltip-button]');\n var guestEditButtons = this.querySelector('[data-event-planner-drawer-popup-edit-guest-buttons]');\n\n if (isEventAdmin) {\n if (celebrantRoleOptionWrapper) {\n celebrantRoleOptionWrapper.classList.remove('hide');\n celebrantRoleInput.removeAttribute('disabled');\n }\n\n if (weddingPlannerRoleOptionWrapper) {\n weddingPlannerRoleOptionWrapper.classList.remove('hide');\n weddingPlannerRoleInput.removeAttribute('disabled');\n }\n\n if (guestEditButtons) {\n emailInput.disabled = true;\n emailTooltipButton.classList.remove('hide');\n }\n } else {\n if (celebrantRoleOptionWrapper) {\n celebrantRoleOptionWrapper.classList.add('hide');\n celebrantRoleInput.setAttribute('disabled', true);\n }\n\n if (weddingPlannerRoleOptionWrapper) {\n weddingPlannerRoleOptionWrapper.classList.add('hide');\n weddingPlannerRoleInput.setAttribute('disabled', true);\n }\n\n if (guestEditButtons) {\n emailInput.disabled = false;\n emailTooltipButton.classList.add('hide');\n }\n }\n }\n }, {\n key: \"buildAddForm\",\n value: function buildAddForm() {\n this.removeAttribute('data-edit-guest-form');\n this.heading.innerHTML = window.theme.strings.eventPlannerAddANewGuest;\n this.resetForm();\n this.toggleRoleInputs(false);\n this.open();\n }\n }, {\n key: \"close\",\n value: function close() {\n document.body.classList.remove('event-planner-drawer-popup-active');\n this.resetForm();\n this.classList.remove('active');\n (0, _themeA11y.removeTrapFocus)();\n setTimeout(function () {\n return document.querySelector('event-planner-drawer').focus();\n }, 200);\n }\n }, {\n key: \"open\",\n value: function open() {\n document.body.classList.add('event-planner-drawer-popup-active');\n this.classList.add('active');\n (0, _themeA11y.trapFocus)(this);\n }\n }, {\n key: \"resetForm\",\n value: function resetForm() {\n var inputs = this.querySelectorAll('input');\n var weddingRoleInputs = this.querySelectorAll('input[name=\"weddingRole\"]');\n var languageInputs = this.querySelectorAll('input[name=\"language\"]');\n var adminPurchasingLookInputs = this.querySelectorAll('input[name=\"adminPurchasingLook\"]');\n this.hideEmailWarning();\n inputs.forEach(function (input) {\n if (input.getAttribute('name') === 'weddingRole' || input.getAttribute('name') === 'language' || input.getAttribute('name') === 'adminPurchasingLook') {\n return;\n }\n\n input.value = ''; // check if field is required and clear error state\n\n if (input.hasAttribute('required')) {\n input.classList.remove('input--error');\n input.parentNode.querySelector('.event-planner-drawer__tooltip').classList.add('hide');\n }\n });\n weddingRoleInputs.forEach(function (input, index) {\n if (index !== 0) {\n return;\n }\n\n input.click();\n });\n languageInputs.forEach(function (input, index) {\n if (index !== 0) {\n return;\n }\n\n input.click();\n });\n adminPurchasingLookInputs.forEach(function (input, index) {\n if (index !== 0) {\n return;\n }\n\n input.click();\n });\n }\n }]);\n return EventPlannerDrawerGuestPopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Guest edit button\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-guest-edit-button') === 'undefined') {\n window.customElements.define('event-planner-drawer-guest-edit-button', /*#__PURE__*/function (_HTMLElement6) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerGuestEditButton, _HTMLElement6);\n\n var _super6 = _createSuper(EventPlannerDrawerGuestEditButton);\n\n function EventPlannerDrawerGuestEditButton() {\n var _this8;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerGuestEditButton);\n _this8 = _super6.call(this);\n _this8.button = _this8.querySelector('[data-event-planner-drawer-guest-edit]');\n\n _this8.button.addEventListener('click', function () {\n return _this8.editGuest();\n });\n\n return _this8;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerGuestEditButton, [{\n key: \"editGuest\",\n value: function editGuest() {\n var customerId = this.button.getAttribute('data-id');\n document.dispatchEvent(new CustomEvent('openEventPlannerEditGuestPopup', {\n detail: customerId\n })); // eslint-disable-line\n }\n }]);\n return EventPlannerDrawerGuestEditButton;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Guest look selector\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-guest-look-selector') === 'undefined') {\n window.customElements.define('event-planner-drawer-guest-look-selector', /*#__PURE__*/function (_HTMLElement7) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerGuestLookSelector, _HTMLElement7);\n\n var _super7 = _createSuper(EventPlannerDrawerGuestLookSelector);\n\n function EventPlannerDrawerGuestLookSelector() {\n var _this9;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerGuestLookSelector);\n _this9 = _super7.call(this);\n _this9.select = _this9.querySelector('[data-event-planner-drawer-look-selector]');\n\n _this9.select.addEventListener('change', function () {\n return _this9.updateLook();\n });\n\n return _this9;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerGuestLookSelector, [{\n key: \"updateLook\",\n value: function () {\n var _updateLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee9() {\n var activeEvent, customerId, lookId, existingLooks, _iterator4, _step4, look;\n\n return _regenerator[\"default\"].wrap(function _callee9$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n customerId = this.select.getAttribute('data-id');\n lookId = this.select.value;\n existingLooks = activeEvent.customers.find(function (customer) {\n return customer.id === customerId;\n }).looks;\n console.log('Clicked', lookId);\n\n if (!existingLooks.length) {\n _context11.next = 24;\n break;\n }\n\n _iterator4 = _createForOfIteratorHelper(existingLooks);\n _context11.prev = 7;\n\n _iterator4.s();\n\n case 9:\n if ((_step4 = _iterator4.n()).done) {\n _context11.next = 16;\n break;\n }\n\n look = _step4.value;\n console.log('Removing look', look.id);\n _context11.next = 14;\n return eventsAPI.deleteLookOnCustomer(activeEvent.id, customerId, look.id);\n\n case 14:\n _context11.next = 9;\n break;\n\n case 16:\n _context11.next = 21;\n break;\n\n case 18:\n _context11.prev = 18;\n _context11.t0 = _context11[\"catch\"](7);\n\n _iterator4.e(_context11.t0);\n\n case 21:\n _context11.prev = 21;\n\n _iterator4.f();\n\n return _context11.finish(21);\n\n case 24:\n if (!(lookId !== 'select-look')) {\n _context11.next = 27;\n break;\n }\n\n _context11.next = 27;\n return eventsAPI.addLooktoCustomer(activeEvent.id, customerId, lookId, false);\n\n case 27:\n _context11.next = 29;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 29:\n document.dispatchEvent(new Event('eventPlannerCheckFinalizedState'));\n\n case 30:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee9, this, [[7, 18, 21, 24]]);\n }));\n\n function updateLook() {\n return _updateLook.apply(this, arguments);\n }\n\n return updateLook;\n }()\n }]);\n return EventPlannerDrawerGuestLookSelector;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Look popup\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-look-popup') === 'undefined') {\n window.customElements.define('event-planner-drawer-look-popup', /*#__PURE__*/function (_HTMLElement8) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerLookPopup, _HTMLElement8);\n\n var _super8 = _createSuper(EventPlannerDrawerLookPopup);\n\n function EventPlannerDrawerLookPopup() {\n var _this10;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerLookPopup);\n _this10 = _super8.call(this);\n _this10.closeButton = _this10.querySelector('[data-event-planner-drawer-popup-close]');\n _this10.addLookButton = _this10.querySelector('[data-event-planner-drawer-popup-add-look]');\n _this10.updateLookButton = _this10.querySelector('[data-event-planner-drawer-popup-update-look]');\n _this10.deleteLookButton = _this10.querySelector('[data-event-planner-drawer-popup-delete-look]');\n _this10.heading = _this10.querySelector('[data-event-planner-drawer-popup-look-heading]');\n _this10.lookWarning = _this10.querySelector('[data-event-planner-drawer-warning-container]');\n _this10.form = _this10.querySelector('form'); // Click events\n\n _this10.closeButton.addEventListener('click', function () {\n return _this10.close();\n });\n\n _this10.addLookButton.addEventListener('click', function () {\n return _this10.addLook();\n });\n\n _this10.updateLookButton.addEventListener('click', function () {\n return _this10.addLook(true);\n });\n\n _this10.deleteLookButton.addEventListener('click', function () {\n return _this10.deleteLook();\n }); // Close popup on background click\n\n\n _this10.addEventListener('click', function (event) {\n if (!event.target.classList.contains('event-planner-drawer-popup')) {\n return;\n }\n\n if (window.getSelection().toString().trim().length > 0) {\n return;\n }\n\n _this10.close();\n }); // Prevent default on form\n\n\n _this10.form.addEventListener('submit', function (event) {\n return event.preventDefault();\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerLookPopup', function () {\n return _this10.buildAddForm();\n });\n document.addEventListener('openEventPlannerEditLookPopup', function (event) {\n return _this10.buildEditForm(event.detail);\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this10.close();\n });\n return _this10;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerLookPopup, [{\n key: \"addLook\",\n value: function () {\n var _addLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee10(updateLook) {\n var activeEvent, formData, choices, matchingLook, lookId;\n return _regenerator[\"default\"].wrap(function _callee10$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n formData = new FormData(this.form); // eslint-disable-line\n\n choices = Object.fromEntries(formData.entries());\n matchingLook = activeEvent.looks.find(function (look) {\n return look.name === choices.name;\n });\n\n if (!matchingLook) {\n _context12.next = 8;\n break;\n }\n\n this.showLookWarning();\n _context12.next = 21;\n break;\n\n case 8:\n if (!updateLook) {\n _context12.next = 14;\n break;\n }\n\n lookId = this.getAttribute('data-edit-look-form');\n _context12.next = 12;\n return eventsAPI.updateLook(activeEvent.id, lookId, choices);\n\n case 12:\n _context12.next = 16;\n break;\n\n case 14:\n _context12.next = 16;\n return eventsAPI.createLook(activeEvent.id, choices);\n\n case 16:\n _context12.next = 18;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 18:\n document.dispatchEvent(new Event('updateEventPlannerLooks'));\n document.dispatchEvent(new Event('updateEventPlannerGuests'));\n this.close();\n\n case 21:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function addLook(_x3) {\n return _addLook.apply(this, arguments);\n }\n\n return addLook;\n }()\n }, {\n key: \"showLookWarning\",\n value: function showLookWarning() {\n this.lookWarning.classList.remove('hide');\n this.lookWarning.insertAdjacentHTML('beforeend', window.theme.strings.eventPlannerLookError);\n }\n }, {\n key: \"hideLookWarning\",\n value: function hideLookWarning() {\n this.lookWarning.classList.add('hide');\n this.lookWarning.innerHTML = this.lookWarning.querySelector('svg').outerHTML;\n }\n }, {\n key: \"deleteLook\",\n value: function () {\n var _deleteLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee11() {\n var activeEvent, lookId;\n return _regenerator[\"default\"].wrap(function _callee11$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n lookId = this.getAttribute('data-edit-look-form');\n _context13.next = 4;\n return eventsAPI.deleteLook(activeEvent.id, lookId);\n\n case 4:\n _context13.next = 6;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 6:\n document.dispatchEvent(new Event('updateEventPlannerLooks'));\n document.dispatchEvent(new Event('updateEventPlannerGuests'));\n this.close();\n\n case 9:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function deleteLook() {\n return _deleteLook.apply(this, arguments);\n }\n\n return deleteLook;\n }()\n }, {\n key: \"buildEditForm\",\n value: function buildEditForm(lookId) {\n var activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n var input = this.querySelector('input');\n var matchingLook = activeEvent.looks.find(function (look) {\n return look.id === lookId;\n });\n input.value = matchingLook.name;\n this.heading.innerHTML = window.theme.strings.eventPlannerEditThisLook;\n this.lookWarning.classList.add('hide');\n this.setAttribute('data-edit-look-form', lookId);\n this.open();\n }\n }, {\n key: \"buildAddForm\",\n value: function buildAddForm() {\n this.removeAttribute('data-edit-look-form');\n this.heading.innerHTML = window.theme.strings.eventPlannerAddANewLook;\n this.resetForm();\n this.open();\n }\n }, {\n key: \"close\",\n value: function close() {\n document.body.classList.remove('event-planner-drawer-popup-active');\n this.resetForm();\n this.classList.remove('active');\n (0, _themeA11y.removeTrapFocus)();\n setTimeout(function () {\n return document.querySelector('event-planner-drawer').focus();\n }, 200);\n }\n }, {\n key: \"open\",\n value: function open() {\n document.body.classList.add('event-planner-drawer-popup-active');\n this.classList.add('active');\n (0, _themeA11y.trapFocus)(this);\n this.form.querySelector('input').focus();\n }\n }, {\n key: \"resetForm\",\n value: function resetForm() {\n var input = this.querySelector('input');\n this.hideLookWarning();\n input.value = '';\n }\n }]);\n return EventPlannerDrawerLookPopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n View look option product page\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer__look-option-selected') === 'undefined') {\n window.customElements.define('event-planner-drawer__look-option-selected', /*#__PURE__*/function (_HTMLElement9) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerLookOptionSelected, _HTMLElement9);\n\n var _super9 = _createSuper(EventPlannerDrawerLookOptionSelected);\n\n function EventPlannerDrawerLookOptionSelected() {\n var _this11;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerLookOptionSelected);\n _this11 = _super9.call(this);\n _this11.shopifyHandle = _this11.getAttribute('data-event-planner-drawer-look-product-sh-handle');\n _this11.productId = _this11.getAttribute('data-event-planner-drawer-look-product-sh-id');\n\n _this11.addEventListener('click', function () {\n return _this11.viewLookItem(_this11.shopifyHandle, _this11.productId);\n });\n\n return _this11;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerLookOptionSelected, [{\n key: \"viewLookItem\",\n value: function viewLookItem(shopifyHandle, productId) {\n window.location.href = \"/products/\".concat(shopifyHandle, \"?variant=\").concat(productId, \"&view=event\");\n }\n }]);\n return EventPlannerDrawerLookOptionSelected;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Look edit button\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-look-edit-button') === 'undefined') {\n window.customElements.define('event-planner-drawer-look-edit-button', /*#__PURE__*/function (_HTMLElement10) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerLookEditButton, _HTMLElement10);\n\n var _super10 = _createSuper(EventPlannerDrawerLookEditButton);\n\n function EventPlannerDrawerLookEditButton() {\n var _this12;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerLookEditButton);\n _this12 = _super10.call(this);\n _this12.button = _this12.querySelector('[data-event-planner-drawer-look-edit-button]');\n\n _this12.button.addEventListener('click', function () {\n return _this12.editLook();\n });\n\n return _this12;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerLookEditButton, [{\n key: \"editLook\",\n value: function editLook() {\n var lookId = this.button.getAttribute('data-id');\n document.dispatchEvent(new CustomEvent('openEventPlannerEditLookPopup', {\n detail: lookId\n })); // eslint-disable-line\n }\n }]);\n return EventPlannerDrawerLookEditButton;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Look product remove button\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-look-product-remove-button') === 'undefined') {\n window.customElements.define('event-planner-drawer-look-product-remove-button', /*#__PURE__*/function (_HTMLElement11) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerLookProductRemoveButton, _HTMLElement11);\n\n var _super11 = _createSuper(EventPlannerDrawerLookProductRemoveButton);\n\n function EventPlannerDrawerLookProductRemoveButton() {\n var _this13;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerLookProductRemoveButton);\n _this13 = _super11.call(this);\n _this13.button = _this13.querySelector('[data-event-planner-drawer-look-product-remove-button]');\n\n _this13.button.addEventListener('click', function (event) {\n event.stopPropagation();\n\n _this13.removeProductFromLook();\n });\n\n return _this13;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerLookProductRemoveButton, [{\n key: \"removeProductFromLook\",\n value: function () {\n var _removeProductFromLook = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee12() {\n var activeEvent, lookId, productId;\n return _regenerator[\"default\"].wrap(function _callee12$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n lookId = this.button.getAttribute('data-look-id');\n productId = this.button.getAttribute('data-product-id');\n _context14.next = 5;\n return eventsAPI.deleteProductFromLook(activeEvent.id, lookId, productId);\n\n case 5:\n _context14.next = 7;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 7:\n document.dispatchEvent(new Event('updateEventPlannerLooks'));\n\n case 8:\n case \"end\":\n return _context14.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function removeProductFromLook() {\n return _removeProductFromLook.apply(this, arguments);\n }\n\n return removeProductFromLook;\n }()\n }]);\n return EventPlannerDrawerLookProductRemoveButton;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Finalize popup\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-finalize-popup') === 'undefined') {\n window.customElements.define('event-planner-drawer-finalize-popup', /*#__PURE__*/function (_HTMLElement12) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerFinalizePopup, _HTMLElement12);\n\n var _super12 = _createSuper(EventPlannerDrawerFinalizePopup);\n\n function EventPlannerDrawerFinalizePopup() {\n var _this14;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerFinalizePopup);\n _this14 = _super12.call(this);\n _this14.closeButtons = _this14.querySelectorAll('[data-event-planner-drawer-popup-close]');\n _this14.submitButton = _this14.querySelector('[data-event-planner-drawer-popup-finalize-submit]');\n _this14.summaryContainer = _this14.querySelector('.event-planner-drawer-popup__guest-summary'); // Click events\n\n _this14.closeButtons.forEach(function (closeButton) {\n return closeButton.addEventListener('click', function () {\n return _this14.close();\n });\n });\n\n _this14.submitButton.addEventListener('click', function () {\n return _this14.finalizeEvent();\n }); // Close popup on background click\n\n\n _this14.addEventListener('click', function (event) {\n if (!event.target.classList.contains('event-planner-drawer-popup')) {\n return;\n }\n\n _this14.close();\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerFinalizePopup', function () {\n return _this14.validate();\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this14.close();\n });\n return _this14;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerFinalizePopup, [{\n key: \"finalizeEvent\",\n value: function () {\n var _finalizeEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee13() {\n var activeEvent, data;\n return _regenerator[\"default\"].wrap(function _callee13$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n data = {\n finalized: true\n };\n _context15.next = 4;\n return eventsAPI.finalizeEvent(activeEvent.id, data);\n\n case 4:\n _context15.next = 6;\n return (0, _eventPlannerUtils.setActiveEvent)(activeEvent.id);\n\n case 6:\n document.dispatchEvent(new Event('updateEventPlannerDrawer'));\n this.close();\n\n case 8:\n case \"end\":\n return _context15.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function finalizeEvent() {\n return _finalizeEvent.apply(this, arguments);\n }\n\n return finalizeEvent;\n }()\n }, {\n key: \"populate\",\n value: function () {\n var _populate = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee14() {\n var _this15 = this;\n\n var activeEvent, guests;\n return _regenerator[\"default\"].wrap(function _callee14$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n guests = activeEvent.customers;\n this.summaryContainer.innerHTML = '';\n guests.slice().reverse().forEach(function (guest) {\n // Reverse the array so the admin is at the bottom\n var guestSummaryElement = document.createElement('div');\n var guestLookName = guest.looks.length ? guest.looks[0].name : 'No Look Assigned';\n guestSummaryElement.classList.add('event-planner-drawer-popup__guest-summary-item');\n guestSummaryElement.innerHTML = \"\\n \".concat(guest.first_name, \" \").concat(guest.last_name, \" - \").concat(guest.wedding_role, \"\\n Look: \\n \\n \").concat(guestLookName, \"\\n \\n \\n \");\n\n _this15.summaryContainer.appendChild(guestSummaryElement);\n });\n\n case 4:\n case \"end\":\n return _context16.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function populate() {\n return _populate.apply(this, arguments);\n }\n\n return populate;\n }()\n }, {\n key: \"validate\",\n value: function () {\n var _validate = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee15() {\n var activeEvent, lookSelectors, noLookAssigned, emptyLooks, guestsWithLooksCount, eventCreationDate;\n return _regenerator[\"default\"].wrap(function _callee15$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n lookSelectors = Array.from(document.querySelectorAll('[data-event-planner-drawer-look-selector]'));\n noLookAssigned = lookSelectors.find(function (selector) {\n return selector.value === 'select-look' && !selector.hasAttribute('data-event-planner-drawer-admin-look-selector');\n });\n emptyLooks = activeEvent.looks.length ? activeEvent.looks.filter(function (look) {\n return look.products.length === 0;\n }) : false;\n guestsWithLooksCount = activeEvent.customers.filter(function (customer) {\n return customer.looks.length;\n }); // const eventInitialized = activeEvent.initialized\n\n eventCreationDate = new Date(activeEvent.Address.createdAt);\n document.dispatchEvent(new Event('hideFinalizeWarning'));\n\n if (!(!activeEvent.customers.length || !activeEvent.looks.length)) {\n _context17.next = 11;\n break;\n }\n\n // alert(window.theme.strings.eventPlannerFinalizeError)\n document.dispatchEvent(new window.CustomEvent('showFinalizeWarning', {\n detail: window.theme.strings.eventPlannerFinalizeError\n }));\n _context17.next = 30;\n break;\n\n case 11:\n if (!emptyLooks.length) {\n _context17.next = 15;\n break;\n }\n\n // alert(window.theme.strings.eventPlannerFinalizeEmptyLooksError)\n document.dispatchEvent(new window.CustomEvent('showFinalizeWarning', {\n detail: window.theme.strings.eventPlannerFinalizeEmptyLooksError\n }));\n _context17.next = 30;\n break;\n\n case 15:\n if (!noLookAssigned) {\n _context17.next = 19;\n break;\n }\n\n document.dispatchEvent(new window.CustomEvent('showFinalizeWarning', {\n detail: window.theme.strings.eventPlannerFinalizeAssignLooksError\n })); // check if there are less than 3 guests with Looks and if the event was created after July 3rd 2024, this is done to grandfather in events created before the new rules\n\n _context17.next = 30;\n break;\n\n case 19:\n if (!(guestsWithLooksCount.length < 3 && eventCreationDate > new Date('2024-07-03'))) {\n _context17.next = 23;\n break;\n }\n\n document.dispatchEvent(new window.CustomEvent('showFinalizeWarning', {\n detail: window.theme.strings.eventPlannerFinalizeGuestsError\n }));\n _context17.next = 30;\n break;\n\n case 23:\n if (!(guestsWithLooksCount.length < 2 && eventCreationDate < new Date('2024-07-03'))) {\n _context17.next = 27;\n break;\n }\n\n document.dispatchEvent(new window.CustomEvent('showFinalizeWarning', {\n detail: 'You must have at least 2 guests with looks assigned to finalize an event.'\n }));\n _context17.next = 30;\n break;\n\n case 27:\n _context17.next = 29;\n return this.populate();\n\n case 29:\n this.open();\n\n case 30:\n case \"end\":\n return _context17.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function validate() {\n return _validate.apply(this, arguments);\n }\n\n return validate;\n }()\n }, {\n key: \"close\",\n value: function close() {\n document.body.classList.remove('event-planner-drawer-popup-active');\n this.classList.remove('active');\n (0, _themeA11y.removeTrapFocus)();\n setTimeout(function () {\n return document.querySelector('event-planner-drawer').focus();\n }, 200);\n }\n }, {\n key: \"open\",\n value: function open() {\n document.body.classList.add('event-planner-drawer-popup-active');\n this.classList.add('active');\n (0, _themeA11y.trapFocus)(this);\n }\n }]);\n return EventPlannerDrawerFinalizePopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Unfinalize popup\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-unfinalize-popup') === 'undefined') {\n window.customElements.define('event-planner-drawer-unfinalize-popup', /*#__PURE__*/function (_HTMLElement13) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerUnfinalizePopup, _HTMLElement13);\n\n var _super13 = _createSuper(EventPlannerDrawerUnfinalizePopup);\n\n function EventPlannerDrawerUnfinalizePopup() {\n var _this16;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerUnfinalizePopup);\n _this16 = _super13.call(this);\n _this16.closeButtons = _this16.querySelectorAll('[data-event-planner-drawer-popup-close]');\n _this16.submitButton = _this16.querySelector('[data-event-planner-drawer-popup-unfinalize-submit]'); // Click events\n\n _this16.closeButtons.forEach(function (closeButton) {\n return closeButton.addEventListener('click', function () {\n return _this16.close();\n });\n });\n\n _this16.submitButton.addEventListener('click', function () {\n return _this16.unfinalizeEvent();\n }); // Close popup on background click\n\n\n _this16.addEventListener('click', function (event) {\n if (!event.target.classList.contains('event-planner-drawer-popup')) {\n return;\n }\n\n _this16.close();\n }); // Custom event listeners\n\n\n document.addEventListener('openEventPlannerUnfinalizePopup', function () {\n return _this16.open();\n }); // Close popup on escape\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this16.close();\n });\n return _this16;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerUnfinalizePopup, [{\n key: \"unfinalizeEvent\",\n value: function () {\n var _unfinalizeEvent = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee16() {\n var activeEvent, data, event;\n return _regenerator[\"default\"].wrap(function _callee16$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n activeEvent = JSON.parse(window.localStorage.getItem('eventPlannerActiveEvent'));\n data = {\n finalized: false\n };\n _context18.next = 4;\n return eventsAPI.finalizeEvent(activeEvent.id, data);\n\n case 4:\n _context18.next = 6;\n return eventsAPI.getEvent(activeEvent.id);\n\n case 6:\n event = _context18.sent;\n window.localStorage.setItem('eventPlannerActiveEvent', JSON.stringify(event));\n document.dispatchEvent(new Event('updateEventPlannerDrawer'));\n this.close();\n\n case 10:\n case \"end\":\n return _context18.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function unfinalizeEvent() {\n return _unfinalizeEvent.apply(this, arguments);\n }\n\n return unfinalizeEvent;\n }()\n }, {\n key: \"close\",\n value: function close() {\n document.body.classList.remove('event-planner-drawer-popup-active');\n this.classList.remove('active');\n (0, _themeA11y.removeTrapFocus)();\n setTimeout(function () {\n return document.querySelector('event-planner-drawer').focus();\n }, 200);\n }\n }, {\n key: \"open\",\n value: function open() {\n document.body.classList.add('event-planner-drawer-popup-active');\n this.classList.add('active');\n (0, _themeA11y.trapFocus)(this);\n }\n }]);\n return EventPlannerDrawerUnfinalizePopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Send reminder button\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-send-reminder-button') === 'undefined') {\n window.customElements.define('event-planner-drawer-send-reminder-button', /*#__PURE__*/function (_HTMLElement14) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerSendReminderButton, _HTMLElement14);\n\n var _super14 = _createSuper(EventPlannerDrawerSendReminderButton);\n\n function EventPlannerDrawerSendReminderButton() {\n var _this17;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerSendReminderButton);\n _this17 = _super14.call(this);\n _this17.button = _this17.querySelector('button');\n\n _this17.button.addEventListener('click', function () {\n return _this17.sendReminder();\n });\n\n return _this17;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerSendReminderButton, [{\n key: \"sendReminder\",\n value: function () {\n var _sendReminder = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee17() {\n var remindedCustomers, eventId, customerId;\n return _regenerator[\"default\"].wrap(function _callee17$(_context19) {\n while (1) {\n switch (_context19.prev = _context19.next) {\n case 0:\n remindedCustomers = window.localStorage.getItem('eventPlannerRemindedCustomers') ? JSON.parse(window.localStorage.getItem('eventPlannerRemindedCustomers')) : [];\n eventId = this.button.getAttribute('data-event-id');\n customerId = this.button.getAttribute('data-customer-id');\n _context19.next = 5;\n return eventsAPI.sendReminder(eventId, customerId);\n\n case 5:\n remindedCustomers.push({\n id: customerId\n });\n window.localStorage.setItem('eventPlannerRemindedCustomers', JSON.stringify(remindedCustomers));\n this.button.innerHTML = window.theme.strings.eventPlannerReminderSent;\n\n case 8:\n case \"end\":\n return _context19.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function sendReminder() {\n return _sendReminder.apply(this, arguments);\n }\n\n return sendReminder;\n }()\n }]);\n return EventPlannerDrawerSendReminderButton;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n /* -----------------------\r\n Purchase button\r\n ------------------------ */\n\n\n if (typeof window.customElements.get('event-planner-drawer-purchase-button') === 'undefined') {\n window.customElements.define('event-planner-drawer-purchase-button', /*#__PURE__*/function (_HTMLElement15) {\n (0, _inherits2[\"default\"])(EventPlannerDrawerPurchaseButton, _HTMLElement15);\n\n var _super15 = _createSuper(EventPlannerDrawerPurchaseButton);\n\n function EventPlannerDrawerPurchaseButton() {\n var _this18;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerDrawerPurchaseButton);\n _this18 = _super15.call(this);\n _this18.button = _this18.querySelector('button');\n\n _this18.button.addEventListener('click', function () {\n return _this18.addProductsToCart();\n });\n\n return _this18;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerDrawerPurchaseButton, [{\n key: \"addProductsToCart\",\n value: function () {\n var _addProductsToCart = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee18() {\n var activeEvent, activeEventJSON, productData, packageType, customerId, eventId, eventCreationDate, legacyBundlePrice, cartItems;\n return _regenerator[\"default\"].wrap(function _callee18$(_context20) {\n while (1) {\n switch (_context20.prev = _context20.next) {\n case 0:\n activeEvent = window.localStorage.getItem('eventPlannerActiveEvent');\n activeEventJSON = JSON.parse(activeEvent);\n productData = JSON.parse(this.button.getAttribute('data-product-data'));\n packageType = this.button.getAttribute('data-package-type');\n customerId = this.button.getAttribute('data-customer-id');\n eventId = this.button.getAttribute('data-event-id');\n eventCreationDate = new Date(activeEventJSON.Address.createdAt); // const eventInitialized = activeEventJSON.initialized\n\n legacyBundlePrice = false;\n\n if (eventCreationDate < new Date('2024-07-03')) {\n legacyBundlePrice = true;\n }\n\n console.log('This is a legacy event', legacyBundlePrice);\n cartItems = {\n items: productData.map(function (product) {\n return {\n id: product.Customers[0].CustomerProduct.shopify_variant_id,\n quantity: 1,\n properties: {\n '_event-planner-legacyPrice': legacyBundlePrice,\n '_event-planner-product': true,\n '_event-planner-package': packageType,\n '_event-planner-addon-value': (0, _eventPlannerUtils.getUpgradeValue)(product.product_type, product.shopify_title, product.shopify_price),\n _customer_id: customerId,\n _product_id: product.id,\n _event_id: eventId,\n _look_id: product.LookId\n }\n };\n })\n };\n _context20.next = 13;\n return _axios[\"default\"].post(\"\".concat(theme.urls.cart_add_url, \".js\"), cartItems);\n\n case 13:\n window.location.href = '/cart';\n\n case 14:\n case \"end\":\n return _context20.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function addProductsToCart() {\n return _addProductsToCart.apply(this, arguments);\n }\n\n return addProductsToCart;\n }()\n }]);\n return EventPlannerDrawerPurchaseButton;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n }\n})();\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/event-planner-drawer.js?"); /***/ }), /***/ "./src/scripts/sections/event-planner-popup.js": /*!*****************************************************!*\ !*** ./src/scripts/sections/event-planner-popup.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\n\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\n\nvar _vanillajsDatepicker = __webpack_require__(/*! vanillajs-datepicker */ \"./node_modules/vanillajs-datepicker/js/main.js\");\n\nvar _eventPlannerUtils = __webpack_require__(/*! @scripts/components/event-planner-utils */ \"./src/scripts/components/event-planner-utils.js\");\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nif (typeof window.customElements.get('event-planner-popup') === 'undefined') {\n window.customElements.define('event-planner-popup', /*#__PURE__*/function (_HTMLElement) {\n (0, _inherits2[\"default\"])(EventPlannerPopup, _HTMLElement);\n\n var _super = _createSuper(EventPlannerPopup);\n\n function EventPlannerPopup() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerPopup);\n _this = _super.call(this);\n _this.close = _this.querySelector('[data-event-planner-popup-close]');\n _this.getStartedButtons = _this.querySelectorAll('[data-event-planner-popup-get-started]');\n _this.stepNavigationControls = _this.querySelectorAll('[data-event-planner-popup-step-navigation-control]');\n _this.createButton = _this.querySelector('[data-event-planner-popup-create]');\n _this.datepickerElement = _this.querySelector('[data-event-planner-popup-datepicker]');\n _this.form = _this.querySelector('form');\n _this.requiredFields = _this.form.querySelectorAll('input[required]');\n _this.warning = _this.querySelector('[data-event-planner-popup-warning]');\n\n _this.close.addEventListener('click', function () {\n return _this.closePopup();\n });\n\n _this.createButton.addEventListener('click', function () {\n return _this.createEvent();\n });\n\n _this.stepNavigationControls.forEach(function (stepNavigationControl) {\n stepNavigationControl.addEventListener('click', function () {\n var stepNumber = parseInt(stepNavigationControl.getAttribute('data-target-step'));\n var validate = stepNavigationControl.hasAttribute('data-event-planner-popup-next');\n\n _this.goToStep(stepNumber, validate);\n });\n });\n\n _this.requiredFields.forEach(function (requiredField) {\n var tooltipWrapper = document.createElement('div');\n var tooltip = document.createElement('span');\n\n if (requiredField.parentNode.classList.contains('event-planner-locations')) {\n tooltipWrapper = requiredField.parentNode;\n } else {\n requiredField.parentNode.insertBefore(tooltipWrapper, requiredField);\n tooltipWrapper.appendChild(requiredField);\n }\n\n tooltipWrapper.classList.add('event-planner-popup__tooltip-wrapper');\n tooltipWrapper.appendChild(tooltip);\n tooltip.classList.add('event-planner-popup__tooltip');\n tooltip.classList.add('hide');\n tooltip.textContent = 'Required.';\n tooltip.addEventListener('click', function () {\n requiredField.focus();\n });\n requiredField.addEventListener('input', function (event) {\n event.target.classList.remove('input--error');\n event.target.parentNode.querySelector('.event-planner-popup__tooltip').classList.add('hide');\n });\n });\n\n _this.getStartedButtons.forEach(function (getStartedButton) {\n getStartedButton.addEventListener('click', function () {\n return _this.goToStep(1);\n });\n });\n\n window.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n _this.closePopup();\n });\n document.addEventListener('click', function (event) {\n // Close popup if user clicks outside of it\n var targetParent = event.target.parentElement;\n\n if (targetParent && targetParent.getAttribute('id') === 'shopify-section-event-planner-popup') {\n _this.closePopup();\n }\n });\n\n _this.initDatepicker();\n\n _this.checkLocalStorageChoices();\n\n return _this;\n } // getLocation () {\n // if ('geolocation' in navigator) { // Check if Geolocation API is supported\n // navigator.geolocation.getCurrentPosition(function (position) {\n // console.log('Latitude: ' + position.coords.latitude)\n // console.log('Longitude: ' + position.coords.longitude)\n // }, function (error) {\n // // Function executed on error\n // console.error('Error Code = ' + error.code + ' - ' + error.message)\n // })\n // } else {\n // console.log('Geolocation is not supported by this browser.')\n // }\n // }\n\n\n (0, _createClass2[\"default\"])(EventPlannerPopup, [{\n key: \"closePopup\",\n value: function closePopup() {\n var siteHtml = document.querySelector('html');\n var siteBody = document.querySelector('body');\n this.createButton.disabled = false;\n this.createButton.classList.remove('event-planner-popup__disabled-button');\n this.createButton.textContent = 'Create';\n this.classList.add('hide');\n siteHtml.classList.remove('disable-scrolling');\n siteBody.classList.remove('disable-scrolling');\n (0, _themeA11y.removeTrapFocus)();\n this.goToStep(0);\n }\n }, {\n key: \"openPopup\",\n value: function openPopup() {\n var siteHtml = document.querySelector('html');\n var siteBody = document.querySelector('body');\n this.hideDateWarning(); // this.getLocation()\n\n this.classList.remove('hide');\n siteHtml.classList.add('disable-scrolling');\n siteBody.classList.add('disable-scrolling');\n (0, _themeA11y.trapFocus)(this);\n }\n }, {\n key: \"goToStep\",\n value: function goToStep(stepNumber, validate) {\n var steps = this.querySelectorAll('[data-event-planner-popup-step]');\n var passedValidation = validate ? this.validateChoices(stepNumber - 1) : true;\n\n if (passedValidation) {\n steps.forEach(function (step) {\n if (parseInt(step.getAttribute('data-event-planner-popup-step')) === stepNumber) {\n step.classList.remove('hide');\n } else {\n step.classList.add('hide');\n }\n });\n }\n }\n }, {\n key: \"showDateWarning\",\n value: function showDateWarning() {\n var step = document.querySelector('.event-planner-popup__step:not(.hide)');\n var dateWarning = step.querySelector('[data-event-planner-popup-warning]');\n dateWarning.classList.add('event-planner-popup__warning--red');\n dateWarning.innerHTML = \"\\n \\n \\n \\n \\n \\n Please choose a date before creating your event.
\\n You can change this later!\";\n }\n }, {\n key: \"hideDateWarning\",\n value: function hideDateWarning() {\n var dateWarning = document.querySelector('[data-event-planner-popup-warning]');\n dateWarning.classList.remove('event-planner-popup__warning--red');\n dateWarning.textContent = 'You can change this later!';\n } // Ensure the user has finished filling out the form, else do not let them continue\n\n }, {\n key: \"validateChoices\",\n value: function validateChoices(stepNumber) {\n var step = this.querySelector(\"[data-event-planner-popup-step=\\\"\".concat(stepNumber, \"\\\"]\"));\n var validationStatus = true;\n\n if (!step) {\n return;\n }\n\n var inputs = step.querySelectorAll('[data-event-planner-popup-input]');\n inputs.forEach(function (input) {\n var tooltip = input.parentNode.querySelector('.event-planner-popup__tooltip');\n\n if (input.value) {\n input.classList.remove('input--error');\n tooltip.classList.add('hide');\n } else {\n validationStatus = false;\n input.classList.add('input--error');\n tooltip.classList.remove('hide');\n }\n });\n return validationStatus;\n } // Init datepicker and update hidden input with the date value\n\n }, {\n key: \"initDatepicker\",\n value: function initDatepicker() {\n var _this2 = this;\n\n var datepicker = new _vanillajsDatepicker.Datepicker(this.datepickerElement, {\n minDate: Date.now()\n }); // eslint-disable-line\n\n this.datepickerElement.addEventListener('changeDate', function () {\n _this2.querySelector('input[name=\"eventDate\"]').value = _this2.datepickerElement.datepicker.getDate('yyyy-mm-dd');\n });\n } // Create event if user is logged in, else store their choices in local storage and make them log in\n\n }, {\n key: \"createEvent\",\n value: function () {\n var _createEvent2 = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee() {\n var customerId, formData, eventPlannerChoices;\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n this.createButton.disabled = true;\n this.createButton.classList.add('event-planner-popup__disabled-button');\n this.createButton.textContent = 'Creating...';\n customerId = this.createButton.getAttribute('data-customer-id');\n formData = new FormData(this.form); // eslint-disable-line\n\n eventPlannerChoices = Object.fromEntries(formData.entries());\n eventPlannerChoices.personName1 = \"\".concat(eventPlannerChoices.person1FirstName, \" \").concat(eventPlannerChoices.person1LastName);\n eventPlannerChoices.personName2 = \"\".concat(eventPlannerChoices.person2FirstName, \" \").concat(eventPlannerChoices.person2LastName);\n delete eventPlannerChoices.person1FirstName;\n delete eventPlannerChoices.person1LastName;\n delete eventPlannerChoices.person2FirstName;\n delete eventPlannerChoices.person2LastName;\n\n if (!eventPlannerChoices.eventDate) {\n _context.next = 24;\n break;\n }\n\n this.hideDateWarning();\n\n if (!customerId) {\n _context.next = 20;\n break;\n }\n\n _context.next = 17;\n return (0, _eventPlannerUtils.createEvent)(eventPlannerChoices);\n\n case 17:\n this.closePopup();\n _context.next = 22;\n break;\n\n case 20:\n this.goToStep(3);\n window.localStorage.setItem('eventPlannerPendingEvent', JSON.stringify(eventPlannerChoices));\n\n case 22:\n _context.next = 28;\n break;\n\n case 24:\n this.createButton.disabled = false;\n this.createButton.classList.remove('event-planner-popup__disabled-button');\n this.createButton.textContent = 'Create';\n this.showDateWarning();\n\n case 28:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function createEvent() {\n return _createEvent2.apply(this, arguments);\n }\n\n return createEvent;\n }() // Pre-fill choices if they exist in local storage\n\n }, {\n key: \"checkLocalStorageChoices\",\n value: function checkLocalStorageChoices() {\n var localStorageEvent = window.localStorage.getItem('eventPlannerPendingEvent');\n\n if (!localStorageEvent) {\n return;\n }\n\n var localStorageEventJSON = JSON.parse(localStorageEvent);\n var person1FirstNameInput = this.querySelector('input[name=\"person1FirstName\"]');\n var person1LastNameInput = this.querySelector('input[name=\"person1LastName\"]');\n var person2FirstNameInput = this.querySelector('input[name=\"person2FirstName\"]');\n var person2LastNameInput = this.querySelector('input[name=\"person2LastName\"]');\n var dateInput = this.querySelector('input[name=\"eventDate\"]');\n var roleInputs = this.querySelectorAll('input[name=\"weddingRole\"]');\n person1FirstNameInput.value = localStorageEventJSON.personName1.split(' ')[0];\n person1LastNameInput.value = localStorageEventJSON.personName1.split(' ')[1];\n person2FirstNameInput.value = localStorageEventJSON.personName2.split(' ')[0];\n person2LastNameInput.value = localStorageEventJSON.personName2.split(' ')[1];\n dateInput.value = localStorageEventJSON.eventDate;\n roleInputs.forEach(function (roleInput) {\n if (roleInput.value === localStorageEventJSON.weddingRole) {\n roleInput.setAttribute('checked', true);\n } else {\n roleInput.removeAttribute('checked');\n }\n });\n var utcDate = new Date(localStorageEventJSON.eventDate);\n this.datepickerElement.datepicker.setDate(new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60000));\n }\n }]);\n return EventPlannerPopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n}\n\nif (typeof window.customElements.get('event-planner-popup-toggle') === 'undefined') {\n window.customElements.define('event-planner-popup-toggle', /*#__PURE__*/function (_HTMLElement2) {\n (0, _inherits2[\"default\"])(EventPlannerCTAPopup, _HTMLElement2);\n\n var _super2 = _createSuper(EventPlannerCTAPopup);\n\n function EventPlannerCTAPopup() {\n var _this3;\n\n (0, _classCallCheck2[\"default\"])(this, EventPlannerCTAPopup);\n _this3 = _super2.call(this);\n _this3.popupEl = document.querySelector('event-planner-popup');\n\n _this3.toggleInit();\n\n return _this3;\n }\n\n (0, _createClass2[\"default\"])(EventPlannerCTAPopup, [{\n key: \"toggleInit\",\n value: function toggleInit() {\n var _this4 = this;\n\n if (!this.popupEl) {\n return false;\n }\n\n this.addEventListener('click', function () {\n _this4.popupEl.openPopup();\n });\n }\n }]);\n return EventPlannerCTAPopup;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n}\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/event-planner-popup.js?"); /***/ }), /***/ "./src/scripts/sections/header.js": /*!****************************************!*\ !*** ./src/scripts/sections/header.js ***! \****************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.removeTransparency = removeTransparency;\nexports.addTransparency = addTransparency;\nvar promobarHeight = 0;\nvar promobar = null;\n\nfunction initTransitionHeader() {\n var header = document.querySelector('[data-site-header]');\n var headerLinks = document.querySelectorAll('[data-nav-link-wrapper]');\n promobar = document.querySelector('[data-promobar]');\n var siteBody = document.querySelector('[data-site-body]');\n\n if (!header) {\n return;\n }\n\n promobarHeight = promobar === null ? 0 : promobar.scrollHeight;\n header.style.setProperty('--promobar-header-push', \"\".concat(promobarHeight, \"px\"));\n var onLoadHeaderHeight = promobarHeight + header.offsetHeight;\n siteBody.style.setProperty('--header-height', \"\".concat(onLoadHeaderHeight, \"px\"));\n checkScrollPos(header);\n window.addEventListener('scroll', function () {\n checkScrollPos(header, promobarHeight);\n });\n var winWidth = window.innerWidth;\n window.addEventListener('resize', function () {\n winWidth = window.innerWidth;\n promobarHeight = promobar === null ? 0 : promobar.scrollHeight;\n header.style.setProperty('--promobar-header-push', \"\".concat(promobarHeight, \"px\"));\n siteBody.style.setProperty('--header-height', \"\".concat(onLoadHeaderHeight, \"px\"));\n });\n headerLinks.forEach(function (link) {\n link.addEventListener('mouseenter', function () {\n if (winWidth < 1400) {\n return;\n }\n\n if (link.getAttribute('data-nav-link-wrapper') === 'link') {\n addTransparency();\n } else {\n removeTransparency();\n }\n });\n link.addEventListener('mouseleave', function () {\n if (winWidth < 1400) {\n return;\n }\n\n addTransparency();\n });\n });\n}\n\nfunction checkScrollPos(header) {\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n\n if (promobar === null) {\n header.classList.toggle('sticky', scrollTop > promobarHeight);\n } else {\n if (promobar.hasAttribute('data-promobar-sticky')) {\n promobar.classList.toggle('sticky', scrollTop > 0);\n header.classList.toggle('sticky-with-promo', scrollTop > 0);\n } else {\n header.classList.toggle('sticky', scrollTop > promobarHeight);\n }\n }\n\n header.classList.toggle('site-header--bg_transition', scrollTop < promobarHeight && header.hasAttribute('data-site-header-transition'));\n header.classList.toggle('site-header--compact', scrollTop >= promobarHeight + (header.hasAttribute('data-site-header-transition') ? 0 : 92) && header.hasAttribute('data-scroll-colapse'));\n var headerRect = header.getBoundingClientRect();\n document.body.style.setProperty('--bottom-of-header', \"\".concat(headerRect.bottom, \"px\"));\n}\n\nfunction removeTransparency() {\n var header = document.querySelector('[data-site-header-transition]');\n\n if (!header) {\n return;\n }\n\n header.classList.remove('site-header--bg_transition');\n}\n\nfunction addTransparency() {\n var header = document.querySelector('[data-site-header-transition]');\n\n if (!header) {\n return;\n }\n\n header.classList.add('site-header--bg_transition');\n checkScrollPos(header);\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n initTransitionHeader();\n});\ndocument.addEventListener('shopify:section:load', function () {\n initTransitionHeader();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/header.js?"); /***/ }), /***/ "./src/scripts/sections/newsletter-popup.js": /*!**************************************************!*\ !*** ./src/scripts/sections/newsletter-popup.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nvar _jsCookie = _interopRequireDefault(__webpack_require__(/*! js-cookie */ \"./node_modules/js-cookie/src/js.cookie.js\"));\n\nfunction newsletterPopupInit() {\n var newsletterPopup = document.querySelector('[data-newsletter-popup]');\n var newsletterPopupOverlay = document.querySelector('[data-newsletter-popup-overlay]');\n var newsletterPopupClose = document.querySelector('[data-newsletter-popup-close]');\n\n var newsletterPopupState = _jsCookie[\"default\"].get('newsletter-popup-state');\n\n if (!newsletterPopup) {\n return;\n }\n\n if (!newsletterPopupState) {\n setTimeout(function () {\n newsletterPopup.classList.remove('hide');\n newsletterPopupOverlay.classList.remove('hide');\n (0, _themeA11y.trapFocus)(newsletterPopup);\n document.body.style.overflow = 'hidden';\n }, 5000);\n }\n\n newsletterPopupClose.addEventListener('click', function () {\n newsletterPopup.classList.add('hide');\n newsletterPopupOverlay.classList.add('hide');\n\n _jsCookie[\"default\"].set('newsletter-popup-state', 'closed');\n\n (0, _themeA11y.removeTrapFocus)();\n document.body.style.overflow = null;\n });\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n newsletterPopupInit();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/newsletter-popup.js?"); /***/ }), /***/ "./src/scripts/sections/related-products.js": /*!**************************************************!*\ !*** ./src/scripts/sections/related-products.js ***! \**************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.relatedProducts = relatedProducts;\n\nvar _swiper = _interopRequireDefault(__webpack_require__(/*! swiper */ \"./node_modules/swiper/js/swiper.esm.bundle.js\"));\n\n__webpack_require__(/*! @snippets/collection-item-swatches */ \"./src/scripts/snippets/collection-item-swatches.js\");\n\nfunction relatedProducts() {\n var relatedProductsWrapper = document.querySelector('[data-related-products]');\n\n if (!relatedProductsWrapper) {\n return;\n }\n\n var relatedProductsCarousel = relatedProductsWrapper.querySelector('[data-related-products-carousel]');\n\n if (!relatedProductsCarousel) {\n return;\n }\n\n if (relatedProductsCarousel.hasAttribute('data-randomizer')) {\n var swiperSlides = relatedProductsCarousel.querySelectorAll('.swiper-slide');\n var randomSlideIndexes = [];\n\n if (swiperSlides.length >= 1) {\n relatedProductsWrapper.classList.remove('hide');\n }\n\n while (randomSlideIndexes.length < 3) {\n var randomIndex = Math.floor(Math.random() * 6) + 1;\n if (randomSlideIndexes.indexOf(randomIndex) === -1) randomSlideIndexes.push(randomIndex);\n }\n\n randomSlideIndexes.forEach(function (randomSlideIndex) {\n swiperSlides.forEach(function (swiperSlide, index) {\n var slideIndex = index + 1;\n\n if (slideIndex !== randomSlideIndex) {\n return;\n }\n\n swiperSlide.classList.remove('hide');\n });\n });\n swiperSlides.forEach(function (swiperSlide) {\n if (!swiperSlide.classList.contains('hide')) {\n return;\n }\n\n swiperSlide.remove();\n });\n }\n\n var swiper = new _swiper[\"default\"](relatedProductsCarousel, {\n spaceBetween: 16,\n slidesPerView: 'auto',\n freeMode: true,\n draggable: true,\n threshold: 10,\n breakpoints: {\n 1025: {\n spaceBetween: 32\n }\n },\n scrollbar: {\n el: '.related-products .swiper-scrollbar',\n draggable: true\n }\n });\n return swiper;\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n relatedProducts();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/sections/related-products.js?"); /***/ }), /***/ "./src/scripts/snippets/collection-item-swatches.js": /*!**********************************************************!*\ !*** ./src/scripts/snippets/collection-item-swatches.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\n\nfunction collectionItemSwatchesInit() {\n var collectionGrid = document.querySelector('[data-collection-grid]');\n var collectionItemSwatches = document.querySelectorAll('[data-collection-item-swatch]');\n var collectionItemSwatchesWrappers = document.querySelectorAll('[data-collection-item-swatches-wrapper]');\n\n if (collectionGrid) {\n collectionGrid.addEventListener('click', function (event) {\n if (!event.target.hasAttribute('data-collection-item-swatch')) {\n return;\n }\n\n updateSwatches(event.target);\n });\n } else if (collectionItemSwatches.length) {\n collectionItemSwatches.forEach(function (collectionItemSwatch) {\n collectionItemSwatch.addEventListener('click', function () {\n updateSwatches(collectionItemSwatch);\n });\n });\n }\n\n collectionItemSwatchesWrappers.forEach(function (collectionItemSwatchesWrapper) {\n if (collectionItemSwatchesWrapper.hasAttribute('data-collection-item-associated-swatches')) {\n var existingSwatches = collectionItemSwatchesWrapper.querySelectorAll('[data-collection-item-swatch]');\n var associatedSwatchesWrapper = collectionItemSwatchesWrapper.querySelector('[data-collection-item-associated-product-swatches]');\n var collectionItem = collectionItemSwatchesWrapper.closest('[data-collection-item]');\n var productHandle = collectionItem.getAttribute('data-handle');\n\n if (associatedSwatchesWrapper) {\n associatedSwatchesWrapper.remove();\n }\n\n getAssociatedProductSwatches(productHandle, existingSwatches, collectionItemSwatchesWrapper);\n } else {\n setUpSwatchesWrapper(collectionItemSwatchesWrapper);\n }\n });\n\n function getAssociatedProductSwatches(_x, _x2, _x3) {\n return _getAssociatedProductSwatches.apply(this, arguments);\n }\n\n function _getAssociatedProductSwatches() {\n _getAssociatedProductSwatches = (0, _asyncToGenerator2[\"default\"])( /*#__PURE__*/_regenerator[\"default\"].mark(function _callee(productHandle, existingSwatches, collectionItemSwatchesWrapper) {\n return _regenerator[\"default\"].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch(\"\".concat(window.location.origin, \"/products/\").concat(productHandle, \"?view=collection-item\"), {\n credentials: 'same-origin',\n headers: {\n 'X-Requested-With': 'xmlhttprequest',\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\n Pragma: 'no-cache',\n Expires: 0\n }\n }).then(function (response) {\n if (response.ok) {\n return response.text();\n } else {\n throw new Error('Product not found');\n }\n }).then(function (html) {\n var responseDOMParser = new window.DOMParser();\n var responseDocument = responseDOMParser.parseFromString(html, 'text/html');\n var responseDocumentSwatches = responseDocument.querySelector('[data-collection-item-associated-product-swatches]');\n\n if (responseDocumentSwatches) {\n var swatchesToRender = responseDocumentSwatches.querySelectorAll('[data-collection-item-swatch]');\n swatchesToRender.forEach(function (swatchEl) {\n swatchEl.classList.remove('active');\n swatchEl.addEventListener('click', function () {\n updateSwatches(swatchEl);\n });\n\n if (window.location.href.indexOf('view=event') >= 0) {\n var newVariantUrl = \"\".concat(swatchEl.getAttribute('data-variant-url'), \"&view=event\");\n swatchEl.setAttribute('data-variant-url', newVariantUrl);\n }\n\n existingSwatches[existingSwatches.length - 1].insertAdjacentElement('afterend', swatchEl);\n });\n }\n })[\"catch\"](function (error) {\n console.log(error);\n });\n\n case 2:\n _context.next = 4;\n return setUpSwatchesWrapper(collectionItemSwatchesWrapper);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _getAssociatedProductSwatches.apply(this, arguments);\n }\n\n function updateSwatches(swatch) {\n var swatchVariantImage = swatch.getAttribute('data-variant-image');\n var swatchVariantUrl = swatch.getAttribute('data-variant-url');\n var collectionItem = swatch.closest('[data-collection-item]');\n var collectionItemImage = collectionItem.querySelector('img');\n var collectionItemLinks = collectionItem.querySelectorAll('[data-collection-item-link]');\n var siblingSwatches = collectionItem.querySelectorAll('[data-collection-item-swatch]');\n var promotionWrapper = collectionItem.querySelector('[data-promotion-wrapper]');\n var hoverImage = collectionItem.querySelector('[data-collection-item-hover]');\n var hoverImageSrc = swatch.getAttribute('data-variant-secondary-image');\n collectionItemImage.setAttribute('srcset', '');\n collectionItemImage.src = swatchVariantImage;\n\n if (hoverImage) {\n hoverImage.setAttribute('srcset', '');\n\n if (hoverImageSrc) {\n hoverImage.src = hoverImageSrc;\n } else {\n hoverImage.src = swatchVariantImage;\n }\n }\n\n collectionItemLinks.forEach(function (collectionItemLink) {\n collectionItemLink.setAttribute('href', swatchVariantUrl);\n });\n siblingSwatches.forEach(function (siblingSwatch) {\n if (siblingSwatch === swatch) {\n siblingSwatch.classList.add('active');\n } else {\n siblingSwatch.classList.remove('active');\n }\n });\n\n if (promotionWrapper) {\n promotionWrapper.classList.add('hide');\n var variantSkuList = swatch.getAttribute('data-variant-sku').split(',');\n var promotionSkus = promotionWrapper.getAttribute('data-promotion-skus').split(',');\n\n if (!promotionSkus || !variantSkuList) {\n return;\n }\n\n variantSkuList.forEach(function (variantSku) {\n promotionSkus.forEach(function (promotionSku) {\n if (promotionSku !== variantSku) {\n return;\n }\n\n promotionWrapper.classList.remove('hide');\n });\n });\n }\n }\n\n function setUpSwatchesWrapper(collectionItemSwatchesWrapper) {\n var swatches = collectionItemSwatchesWrapper.querySelectorAll('[data-collection-item-swatch]');\n var swatchMax = 4;\n collectionItemSwatchesWrapper.classList.toggle('hide', swatches.length === 1);\n\n if (window.matchMedia('(min-width: 750px)').matches) {\n swatchMax = 5;\n }\n\n if (swatches.length >= swatchMax + 1) {\n var swatchToggle = collectionItemSwatchesWrapper.querySelector('[data-collection-item-swatch-toggle]');\n swatches.forEach(function (swatch, index) {\n if (index < swatchMax) {\n return;\n }\n\n swatch.classList.add('hide');\n swatch.setAttribute('data-is-hidden', true);\n });\n swatchToggle.classList.remove('hide');\n swatchToggle.addEventListener('click', function () {\n var hiddenSwatches = collectionItemSwatchesWrapper.querySelectorAll('[data-is-hidden]');\n swatchToggle.classList.add('hide');\n swatches.forEach(function (swatch, index) {\n swatch.classList.remove('hide');\n });\n hiddenSwatches[0].focus();\n });\n }\n\n if (!collectionItemSwatchesWrapper.hasAttribute('data-product-variants-json')) {\n return;\n }\n\n var variantData = JSON.parse(collectionItemSwatchesWrapper.getAttribute('data-product-variants-json'));\n var swatchCount = 0;\n swatches.forEach(function (swatch) {\n var swatchValue = swatch.getAttribute('data-value');\n swatch.classList.add('hide');\n variantData.forEach(function (variantObject) {\n if (variantObject.option1 !== swatchValue || variantObject.status === 'No') {\n return;\n }\n\n swatch.classList.remove('hide');\n });\n });\n swatches.forEach(function (swatch) {\n if (swatch.classList.contains('hide')) {\n return;\n }\n\n swatchCount += 1;\n });\n\n if (swatchCount !== 1) {\n return;\n }\n\n collectionItemSwatchesWrapper.classList.add('hide');\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n collectionItemSwatchesInit();\n});\ndocument.addEventListener('shopify:section:load', function () {\n collectionItemSwatchesInit();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/snippets/collection-item-swatches.js?"); /***/ }), /***/ "./src/scripts/snippets/nav.js": /*!*************************************!*\ !*** ./src/scripts/snippets/nav.js ***! \*************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\n\nvar _swiper = _interopRequireDefault(__webpack_require__(/*! swiper */ \"./node_modules/swiper/js/swiper.esm.bundle.js\"));\n\nvar _themeA11y = __webpack_require__(/*! @shopify/theme-a11y */ \"./node_modules/@shopify/theme-a11y/theme-a11y.js\");\n\nvar _swiperBreakpoint = __webpack_require__(/*! @scripts/components/swiper-breakpoint */ \"./src/scripts/components/swiper-breakpoint.js\");\n\nvar _header = __webpack_require__(/*! @sections/header */ \"./src/scripts/sections/header.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction navInit() {\n var siteHtml = document.querySelector('[data-site-html]');\n var siteBody = document.querySelector('[data-site-body]');\n var siteHeader = document.querySelector('[data-site-header]');\n var nav = document.querySelector('[data-nav]');\n var navLinkWappers = document.querySelectorAll('[data-nav-link-wrapper]');\n var navLinks = document.querySelectorAll('[data-nav-link]');\n var navSearch = document.querySelector('[data-nav-search]');\n var navSearchToggles = document.querySelectorAll('[data-nav-search-toggle]');\n var searchBar = document.querySelector('[data-search-bar]');\n var searchBarHeader = document.querySelector('[data-header-search]');\n var navCartToggle = document.querySelector('[data-nav-cart-toggle]');\n var dropdownMenuWrappers = document.querySelectorAll('[data-dropdown-menu-wrapper]');\n var dropdownMenuToggles = document.querySelectorAll('[data-dropdown-menu-toggle]');\n var mobileNavHeader = document.querySelector('[data-mobile-header]');\n var mobileNavTitle = document.querySelector('[data-mobile-nav-title]');\n var mobileNavBack = document.querySelector('[data-mobile-nav-back]');\n var mobileNavToggles = document.querySelectorAll('[data-mobile-nav-toggle]');\n var mobileNavScreenReaderBackButtons = document.querySelectorAll('[data-mobile-nav-screenreader-back]');\n var cartPreview = document.querySelector('[data-cart-preview]');\n var cartPreviewOverlay = document.querySelector('[data-cart-preview-overlay]');\n var collectionNavSliders = document.querySelectorAll('[data-nav-collection-slider]');\n var mobileLinkGroup = document.querySelectorAll('[data-link-group]');\n var siteNavContent = document.querySelector('[data-site-nav-content');\n var siteNavMainList = document.querySelector('[data-site-nav-main-list]');\n var breakpoint = 1025;\n initSearchToggles();\n initCartPreview();\n initMobileNavLinks();\n initMobileNavToggles();\n initDropdownMobileToggles();\n initMobileBackButton();\n initNavLinkWrapperDesktop();\n initScreenReaderBackButtons();\n initMobileLinkGroups();\n initSearchBarHeader();\n window.addEventListener('load', function () {\n var boostSearchPopup = document.querySelector('.boost-pfs-search-suggestion-wrapper');\n boostSearchPopup.addEventListener('mouseover', function () {\n navSearch.classList.add('active');\n });\n });\n collectionNavSliders.forEach(function (slider) {\n initCollectionNavSlider(slider);\n });\n\n var closeDropdownDesktop = function closeDropdownDesktop() {\n navLinkWappers.forEach(function (elm) {\n elm.classList.remove('active-dropdown');\n (0, _themeA11y.removeTrapFocus)(elm);\n document.body.classList.remove('active-dropdown');\n });\n };\n\n var tabbedIn = false;\n\n var openDropdownDesktop = function openDropdownDesktop(linkWrapper, event) {\n var _event$pointerType;\n\n var wasOpen = linkWrapper.classList.contains('active-dropdown');\n\n if (window.innerWidth < breakpoint) {\n return;\n }\n\n if (linkWrapper.getAttribute('data-nav-link-wrapper') !== 'link') {\n event.preventDefault();\n }\n\n closeDropdownDesktop();\n\n if (wasOpen && event.type !== 'mouseenter' || linkWrapper.getAttribute('data-nav-link-wrapper') === 'link') {\n return;\n }\n\n tabbedIn = ((_event$pointerType = event.pointerType) === null || _event$pointerType === void 0 ? void 0 : _event$pointerType.length) === 0;\n linkWrapper.classList.add('active-dropdown');\n document.body.classList.add('active-dropdown');\n (0, _themeA11y.trapFocus)(linkWrapper);\n };\n\n var searchIsOpen = false;\n\n var toggleNavSearch = function toggleNavSearch() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n searchIsOpen = active === null ? !searchIsOpen : active;\n\n if (searchIsOpen) {\n closeDropdownDesktop();\n }\n\n navSearchToggles.forEach(function (navSearchToggle) {\n navSearchToggle === null || navSearchToggle === void 0 ? void 0 : navSearchToggle.classList.toggle('active', searchIsOpen);\n });\n navSearch === null || navSearch === void 0 ? void 0 : navSearch.classList.toggle('active', searchIsOpen);\n document.body.classList.toggle('disable-scrolling', searchIsOpen && window.innerWidth < breakpoint);\n\n if (searchIsOpen) {\n if (window.innerWidth >= breakpoint) {\n siteNavMainList.classList.add('hide');\n } else {\n searchBar.focus();\n }\n\n (0, _header.removeTransparency)();\n } else {\n siteBody.classList.remove('nav-active');\n siteNavMainList.classList.remove('hide');\n (0, _header.addTransparency)();\n }\n };\n\n document.addEventListener('keydown', function (event) {\n if (event.key !== 'Escape') {\n return;\n }\n\n closeDropdownDesktop();\n toggleNavSearch(false);\n });\n\n function initNavLinkWrapperDesktop() {\n navLinkWappers.forEach(function (linkWrapper) {\n var buttonToggle = linkWrapper.querySelector('[data-nav-link]');\n\n if (!buttonToggle) {\n return;\n }\n\n buttonToggle.addEventListener('click', function (event) {\n toggleNavSearch(false);\n openDropdownDesktop(linkWrapper, event);\n });\n buttonToggle.addEventListener('mouseenter', function (event) {\n toggleNavSearch(false);\n openDropdownDesktop(linkWrapper, event);\n });\n buttonToggle.addEventListener('keydown', function (event) {\n if (event.key !== 'ArrowDown' || event.key !== ' ') {\n return;\n }\n\n toggleNavSearch(false);\n openDropdownDesktop(linkWrapper, event);\n });\n document.querySelectorAll('[data-nav-dropdown-background]').forEach(function (backdrop) {\n backdrop.addEventListener('click', function () {\n closeDropdownDesktop();\n toggleNavSearch(false);\n });\n backdrop.addEventListener('mouseenter', function () {\n if (tabbedIn === true) {\n return;\n }\n\n closeDropdownDesktop();\n toggleNavSearch(false);\n });\n });\n\n if (siteNavContent) {\n siteNavContent.addEventListener('mouseleave', function () {\n if (tabbedIn === true) {\n return;\n }\n\n closeDropdownDesktop();\n });\n }\n });\n }\n\n function initCartPreview() {\n if (!navCartToggle) {\n return;\n }\n\n if (navCartToggle.getAttribute('data-nav-cart-toggle') === 'true') {\n navCartToggle.addEventListener('mouseover', function () {\n if (window.innerWidth < breakpoint || document.body.classList.contains('template-cart') || !cartPreview.classList.contains('hide')) {\n return;\n }\n\n openCartPreview();\n });\n }\n\n navCartToggle.addEventListener('click', function () {\n siteHtml.classList.add('disable-scrolling');\n siteBody.classList.add('disable-scrolling');\n openCartPreview();\n });\n }\n\n function openCartPreview() {\n document.body.classList.toggle('cart-preview-active');\n cartPreview.classList.toggle('hide');\n cartPreviewOverlay.classList.toggle('hide');\n\n if (cartPreview.classList.contains('hide')) {\n (0, _themeA11y.removeTrapFocus)();\n (0, _header.addTransparency)();\n } else {\n (0, _themeA11y.trapFocus)(cartPreview);\n (0, _header.removeTransparency)();\n }\n }\n\n function initMobileNavToggles() {\n mobileNavToggles.forEach(function (mobileNavToggle) {\n mobileNavToggle.addEventListener('click', function () {\n mobileNavToggles.forEach(function (changeToggle) {\n return changeToggle.classList.toggle('active');\n });\n siteHtml.classList.remove('search-active');\n toggleNavSearch(false);\n var hasOpen = (0, _toConsumableArray2[\"default\"])(mobileNavToggles).find(function (findToggle) {\n return findToggle.classList.contains('active');\n });\n\n if (typeof hasOpen !== 'undefined') {\n siteHtml.classList.add('nav-active');\n siteBody.classList.add('nav-active');\n nav.classList.remove('medium-down--hide');\n (0, _header.removeTransparency)();\n (0, _themeA11y.trapFocus)(siteHeader);\n } else {\n siteHtml.classList.remove('nav-active');\n siteBody.classList.remove('nav-active');\n nav.classList.add('medium-down--hide');\n (0, _header.addTransparency)();\n (0, _themeA11y.removeTrapFocus)();\n }\n });\n });\n }\n\n function initMobileNavLinks() {\n navLinks.forEach(function (navLink) {\n navLink.addEventListener('click', function () {\n if (window.matchMedia(\"(min-width: \".concat(breakpoint, \"px)\")).matches) {\n return;\n }\n\n var parentWrapper = navLink.closest('[data-nav-link-wrapper]'); // Prevent rest of nav logic when simple link\n\n if (parentWrapper.getAttribute('data-nav-link-wrapper') === 'link') {\n return;\n } // Skip second step in mobile nav for Sale menu\n\n\n if (parentWrapper.getAttribute('data-nav-link-wrapper') === 'sale') {\n var dropdownWrapper = parentWrapper.querySelector('[data-dropdown-menu-wrapper]');\n dropdownWrapper.classList.add('dropdown-menu-active');\n mobileNavTitle.setAttribute('data-prev-text', mobileNavTitle.textContent);\n (0, _themeA11y.trapFocus)(dropdownWrapper);\n } else {\n (0, _themeA11y.trapFocus)(parentWrapper);\n }\n\n parentWrapper.classList.add('active');\n mobileNavTitle.textContent = navLink.textContent;\n mobileNavBack.classList.remove('hide');\n mobileNavBack.setAttribute('data-depth', 1);\n mobileNavHeader.classList.toggle('visible', mobileNavTitle.textContent.length !== 0);\n });\n });\n }\n\n function initDropdownMobileToggles() {\n dropdownMenuToggles.forEach(function (dropdownMenuToggle) {\n dropdownMenuToggle.addEventListener('click', function () {\n var parentWrapper = dropdownMenuToggle.closest('[data-dropdown-menu-wrapper]');\n parentWrapper.classList.add('dropdown-menu-active');\n (0, _themeA11y.trapFocus)(parentWrapper);\n mobileNavTitle.setAttribute('data-prev-text', mobileNavTitle.textContent);\n mobileNavTitle.textContent = dropdownMenuToggle.textContent;\n mobileNavBack.setAttribute('data-depth', 2);\n mobileNavHeader.classList.toggle('visible', mobileNavTitle.textContent.length !== 0);\n });\n });\n }\n\n function initMobileBackButton() {\n if (!mobileNavBack) {\n return;\n }\n\n mobileNavBack.addEventListener('click', function () {\n var currentDepth = parseInt(mobileNavBack.getAttribute('data-depth'));\n\n if (currentDepth === 1) {\n navLinkWappers.forEach(function (navLinkWapper) {\n navLinkWapper.classList.remove('active');\n });\n (0, _themeA11y.trapFocus)(nav);\n mobileNavBack.classList.add('hide');\n mobileNavTitle.textContent = mobileNavTitle.getAttribute('data-original-text');\n } else {\n dropdownMenuWrappers.forEach(function (dropdownMenuWrapper) {\n dropdownMenuWrapper.classList.remove('dropdown-menu-active');\n });\n mobileNavBack.setAttribute('data-depth', 1);\n mobileNavTitle.textContent = mobileNavTitle.getAttribute('data-prev-text');\n var elementToFocus = document.querySelector(\"[data-nav-link-wrapper][data-handle=\\\"\".concat(mobileNavTitle.textContent, \"\\\"]\"));\n (0, _themeA11y.trapFocus)(elementToFocus);\n }\n\n mobileNavHeader.classList.toggle('visible', mobileNavTitle.textContent.length !== 0);\n });\n }\n\n function initSearchToggles() {\n if (!navSearchToggles || !searchBar) {\n return;\n }\n\n navSearchToggles.forEach(function (navSearchToggle) {\n navSearchToggle.addEventListener('click', function () {\n toggleNavSearch();\n\n if (window.matchMedia(\"(min-width: \".concat(breakpoint, \"px)\")).matches) {\n navSearchToggle.classList.add('swiper-active');\n\n if (navSearchToggle.classList.contains('active')) {\n siteHtml.classList.add('nav-active', 'search-active');\n siteBody.classList.add('nav-active');\n nav.classList.remove('medium-down--hide');\n } else {\n siteHtml.classList.remove('nav-active', 'search-active');\n siteBody.classList.remove('nav-active');\n nav.classList.add('medium-down--hide');\n }\n } else {\n siteHtml.classList.remove('nav-active');\n nav.classList.add('medium-down--hide');\n var hasOpen = (0, _toConsumableArray2[\"default\"])(navSearchToggles).find(function (findToggle) {\n return findToggle.classList.contains('active');\n });\n\n if (typeof hasOpen !== 'undefined') {\n mobileNavToggles.forEach(function (changeToggle) {\n return changeToggle.classList.remove('active');\n });\n siteHtml.classList.add('nav-active');\n siteBody.classList.add('nav-active');\n nav.classList.remove('medium-down--hide');\n (0, _header.removeTransparency)();\n searchBar.focus();\n }\n }\n });\n });\n }\n\n function initCollectionNavSlider(slider) {\n var swiperTarget = slider;\n var swiperParams = {\n slidesPerView: 'auto',\n freeMode: true,\n loop: false,\n observer: true,\n observeParents: true\n };\n var swiper = new _swiper[\"default\"](swiperTarget, swiperParams);\n swiper = (0, _swiperBreakpoint.swiperBreakpoint)(swiper, swiperTarget, swiperParams, breakpoint);\n window.addEventListener('resize', function () {\n swiper = (0, _swiperBreakpoint.swiperBreakpoint)(swiper, swiperTarget, swiperParams, breakpoint);\n });\n }\n\n function initScreenReaderBackButtons() {\n mobileNavScreenReaderBackButtons.forEach(function (mobileNavScreenReaderBackButton) {\n mobileNavScreenReaderBackButton.addEventListener('click', function () {\n mobileNavBack.click();\n\n if (window.innerWidth >= breakpoint) {\n closeDropdownDesktop();\n }\n });\n });\n }\n\n function initMobileLinkGroups() {\n mobileLinkGroup.forEach(function (group) {\n var toggle = group.querySelector('[data-link-group-toggle]');\n\n if (!toggle || !group.classList.contains('site-nav__link-group--collapsed')) {\n return;\n }\n\n toggle.addEventListener('click', function (event) {\n if (window.matchMedia('(max-width: 1024px)').matches) {\n event.preventDefault();\n }\n\n group.classList.toggle('open');\n });\n });\n }\n\n function initSearchBarHeader() {\n if (!searchBarHeader) {\n return;\n }\n\n searchBarHeader.addEventListener('focus', function () {\n toggleNavSearch(true);\n });\n searchBarHeader.addEventListener('blur', function () {\n setTimeout(function () {\n toggleNavSearch(false);\n }, 100);\n }); // override boost placeholder change\n\n var searchMutationCallback = function searchMutationCallback(mutationsList) {\n var _iterator = _createForOfIteratorHelper(mutationsList),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var mutation = _step.value;\n\n if (mutation.type !== 'attributes') {\n return;\n }\n\n searchBarHeader.setAttribute('placeholder', searchBarHeader.dataset.placeholder);\n searchBarObserver.disconnect();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n };\n\n var searchBarObserver = new MutationObserver(searchMutationCallback);\n searchBarObserver.observe(searchBarHeader, {\n attributes: true\n });\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n navInit();\n});\ndocument.addEventListener('shopify:section:load', function () {\n navInit();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/snippets/nav.js?"); /***/ }), /***/ "./src/scripts/snippets/newsletter-form.js": /*!*************************************************!*\ !*** ./src/scripts/snippets/newsletter-form.js ***! \*************************************************/ /***/ (() => { "use strict"; eval("\n\nfunction newsletterForm() {\n var newsletterForms = document.querySelectorAll('[data-newsletter-form]');\n var newsletterSMSForms = document.querySelectorAll('[data-newsletter-form-sms]');\n var newsletterInputMobilePlaceholders = document.querySelectorAll('[data-newsletter-input-mobile-placeholder]');\n\n if (!newsletterForms.length) {\n return;\n }\n\n var siteHtml = document.querySelector('[data-site-html]');\n var lang = siteHtml.getAttribute('lang');\n var observer = new MutationObserver(function (mutations) {\n // eslint-disable-line\n mutations.forEach(function (mutation) {\n if (mutation.attributeName === 'lang') {\n lang = siteHtml.getAttribute('lang');\n klaviyoSetup();\n }\n });\n });\n observer.observe(siteHtml, {\n attributes: true\n });\n klaviyoSetup();\n\n function klaviyoSetup() {\n newsletterForms.forEach(function (newsletterForm) {\n KlaviyoSubscribe.attachToForms(newsletterForm, {\n // eslint-disable-line\n hide_form_on_success: true,\n // eslint-disable-line\n success: function success() {\n var newsletterControls = newsletterForm.querySelector('[data-newsletter-controls]');\n var newsletterMessage = newsletterForm.querySelector('[data-newsletter-message]');\n newsletterControls.classList.add('hide');\n newsletterMessage.classList.remove('hide');\n },\n extra_properties: {\n $language: lang\n }\n });\n });\n }\n\n newsletterSMSForms.forEach(function (newsletterSMSForm) {\n newsletterSMSForm.addEventListener('submit', function (e) {\n e.preventDefault();\n var formID = parseInt(newsletterSMSForm.getAttribute('data-newsletter-form-sms'), 10);\n var frenchFormID = newsletterSMSForm.getAttribute('data-newsletter-form-sms-fr');\n\n if (lang === 'fr' && frenchFormID) {\n formID = parseInt(frenchFormID, 10);\n }\n\n var newsletterControls = newsletterSMSForm.querySelector('[data-newsletter-controls]');\n var newsletterMessageSuccess = newsletterSMSForm.querySelector('[data-newsletter-message-success]');\n var newsletterMessageError = newsletterSMSForm.querySelector('[data-newsletter-message-error]');\n var newsletterMessageErrorCustom = newsletterSMSForm.querySelector('[data-newsletter-message-error-custom]');\n var phoneNumber = newsletterSMSForm.querySelector('[data-newsletter-phone-number]').value; // const source = newsletterSMSForm.getAttribute('data-newsletter-form-sms-source')\n\n var options = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-SMSBump-Platform': 'shopify'\n },\n body: JSON.stringify({\n form_id: formID,\n phone: phoneNumber,\n country: 'US'\n })\n };\n fetch('https://api.smsbump.com/v2/formsPublic/subscribe', options).then(function (response) {\n return response.json();\n }).then(function (response) {\n newsletterControls.classList.remove('hide');\n newsletterMessageSuccess.classList.add('hide');\n newsletterMessageError.classList.add('hide');\n newsletterMessageErrorCustom.classList.add('hide');\n\n if (response.status === 'success') {\n newsletterControls.classList.add('hide');\n newsletterMessageSuccess.classList.remove('hide');\n } else if (response.status === 'error') {\n newsletterMessageErrorCustom.innerHTML = \"

Error: \".concat(response.message, \"

\");\n newsletterMessageErrorCustom.classList.remove('hide');\n } else {\n newsletterMessageError.classList.remove('hide');\n }\n })[\"catch\"](function (err) {\n return console.error(err);\n });\n });\n });\n\n if (newsletterInputMobilePlaceholders.length) {\n updateInputPlaceholder();\n window.addEventListener('resize', function () {\n updateInputPlaceholder();\n });\n }\n\n function updateInputPlaceholder() {\n newsletterInputMobilePlaceholders.forEach(function (newsletterInputMobilePlaceholder) {\n var mobilePlaceholder = newsletterInputMobilePlaceholder.getAttribute('data-newsletter-input-mobile-placeholder');\n var desktopPlaceholder = newsletterInputMobilePlaceholder.getAttribute('data-newsletter-input-placeholder');\n\n if (window.innerWidth >= 1025) {\n newsletterInputMobilePlaceholder.placeholder = desktopPlaceholder;\n } else {\n newsletterInputMobilePlaceholder.placeholder = mobilePlaceholder;\n }\n });\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n newsletterForm();\n});\n\n//# sourceURL=webpack://starter-theme/./src/scripts/snippets/newsletter-form.js?"); /***/ }), /***/ "./src/scripts/snippets/weglot-language-switcher.js": /*!**********************************************************!*\ !*** ./src/scripts/snippets/weglot-language-switcher.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\n\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\n\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2[\"default\"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2[\"default\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2[\"default\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n(function () {\n if (typeof window.customElements.get('weglot-language-switcher') !== 'undefined') {\n return;\n }\n\n window.customElements.define('weglot-language-switcher', /*#__PURE__*/function (_HTMLElement) {\n (0, _inherits2[\"default\"])(WeglotLanguageSwitcher, _HTMLElement);\n\n var _super = _createSuper(WeglotLanguageSwitcher);\n\n function WeglotLanguageSwitcher() {\n var _this;\n\n (0, _classCallCheck2[\"default\"])(this, WeglotLanguageSwitcher);\n _this = _super.call(this);\n _this.weglot = Weglot; // eslint-disable-line\n\n _this.weglot.on('initialized', function () {\n _this.init();\n });\n\n return _this;\n }\n\n (0, _createClass2[\"default\"])(WeglotLanguageSwitcher, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n this.availableLanguages = (this.weglot.options.languages || []).map(function (language) {\n return language.language_to;\n }).concat(this.weglot.options.language_from).sort();\n this.languageToggleButtons = this.buildWeglotToggles();\n this.weglot.on('languageChanged', function (newLang, prevLang) {\n _this2.updateDisplay(newLang, prevLang);\n });\n }\n }, {\n key: \"updateDisplay\",\n value: function updateDisplay(newLang, prevLang) {\n this.languageToggleButtons.forEach(function (button) {\n button.toggleAttribute('disabled', button.getAttribute('data-value') === newLang);\n });\n }\n }, {\n key: \"buildWeglotToggles\",\n value: function buildWeglotToggles() {\n var _this3 = this;\n\n var weglotToggleHolder = this.querySelector('[data-weglot-toggle-holder');\n\n if (!weglotToggleHolder) {\n return;\n }\n\n return this.availableLanguages.map(function (language) {\n var languageToggleButton = document.createElement('button');\n languageToggleButton.setAttribute('data-language-toggle-btn', '');\n languageToggleButton.setAttribute('data-value', language);\n languageToggleButton.toggleAttribute('disabled', language === _this3.weglot.getCurrentLang());\n languageToggleButton.innerHTML = language;\n languageToggleButton.addEventListener('click', function () {\n _this3.weglot.switchTo(language);\n });\n\n if (language === 'en') {\n languageToggleButton.setAttribute('aria-label', 'Switch to English');\n } else if (language === 'fr') {\n languageToggleButton.setAttribute('aria-label', 'Switch to French');\n }\n\n weglotToggleHolder.append(languageToggleButton);\n return languageToggleButton;\n });\n }\n }]);\n return WeglotLanguageSwitcher;\n }( /*#__PURE__*/(0, _wrapNativeSuper2[\"default\"])(HTMLElement)));\n})();\n\n//# sourceURL=webpack://starter-theme/./src/scripts/snippets/weglot-language-switcher.js?"); /***/ }), /***/ "./node_modules/dom7/dist/dom7.modular.js": /*!************************************************!*\ !*** ./node_modules/dom7/dist/dom7.modular.js ***! \************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ $: () => (/* binding */ $),\n/* harmony export */ add: () => (/* binding */ add),\n/* harmony export */ addClass: () => (/* binding */ addClass),\n/* harmony export */ animate: () => (/* binding */ animate),\n/* harmony export */ animationEnd: () => (/* binding */ animationEnd),\n/* harmony export */ append: () => (/* binding */ append),\n/* harmony export */ appendTo: () => (/* binding */ appendTo),\n/* harmony export */ attr: () => (/* binding */ attr),\n/* harmony export */ blur: () => (/* binding */ blur),\n/* harmony export */ change: () => (/* binding */ change),\n/* harmony export */ children: () => (/* binding */ children),\n/* harmony export */ click: () => (/* binding */ click),\n/* harmony export */ closest: () => (/* binding */ closest),\n/* harmony export */ css: () => (/* binding */ css),\n/* harmony export */ data: () => (/* binding */ data),\n/* harmony export */ dataset: () => (/* binding */ dataset),\n/* harmony export */ detach: () => (/* binding */ detach),\n/* harmony export */ each: () => (/* binding */ each),\n/* harmony export */ empty: () => (/* binding */ empty),\n/* harmony export */ eq: () => (/* binding */ eq),\n/* harmony export */ filter: () => (/* binding */ filter),\n/* harmony export */ find: () => (/* binding */ find),\n/* harmony export */ focus: () => (/* binding */ focus),\n/* harmony export */ focusin: () => (/* binding */ focusin),\n/* harmony export */ focusout: () => (/* binding */ focusout),\n/* harmony export */ forEach: () => (/* binding */ forEach),\n/* harmony export */ hasClass: () => (/* binding */ hasClass),\n/* harmony export */ height: () => (/* binding */ height),\n/* harmony export */ hide: () => (/* binding */ hide),\n/* harmony export */ html: () => (/* binding */ html),\n/* harmony export */ index: () => (/* binding */ index),\n/* harmony export */ indexOf: () => (/* binding */ indexOf),\n/* harmony export */ insertAfter: () => (/* binding */ insertAfter),\n/* harmony export */ insertBefore: () => (/* binding */ insertBefore),\n/* harmony export */ is: () => (/* binding */ is),\n/* harmony export */ keydown: () => (/* binding */ keydown),\n/* harmony export */ keypress: () => (/* binding */ keypress),\n/* harmony export */ keyup: () => (/* binding */ keyup),\n/* harmony export */ map: () => (/* binding */ map),\n/* harmony export */ mousedown: () => (/* binding */ mousedown),\n/* harmony export */ mouseenter: () => (/* binding */ mouseenter),\n/* harmony export */ mouseleave: () => (/* binding */ mouseleave),\n/* harmony export */ mousemove: () => (/* binding */ mousemove),\n/* harmony export */ mouseout: () => (/* binding */ mouseout),\n/* harmony export */ mouseover: () => (/* binding */ mouseover),\n/* harmony export */ mouseup: () => (/* binding */ mouseup),\n/* harmony export */ next: () => (/* binding */ next),\n/* harmony export */ nextAll: () => (/* binding */ nextAll),\n/* harmony export */ off: () => (/* binding */ off),\n/* harmony export */ offset: () => (/* binding */ offset),\n/* harmony export */ on: () => (/* binding */ on),\n/* harmony export */ once: () => (/* binding */ once),\n/* harmony export */ outerHeight: () => (/* binding */ outerHeight),\n/* harmony export */ outerWidth: () => (/* binding */ outerWidth),\n/* harmony export */ parent: () => (/* binding */ parent),\n/* harmony export */ parents: () => (/* binding */ parents),\n/* harmony export */ prepend: () => (/* binding */ prepend),\n/* harmony export */ prependTo: () => (/* binding */ prependTo),\n/* harmony export */ prev: () => (/* binding */ prev),\n/* harmony export */ prevAll: () => (/* binding */ prevAll),\n/* harmony export */ prop: () => (/* binding */ prop),\n/* harmony export */ remove: () => (/* binding */ remove),\n/* harmony export */ removeAttr: () => (/* binding */ removeAttr),\n/* harmony export */ removeClass: () => (/* binding */ removeClass),\n/* harmony export */ removeData: () => (/* binding */ removeData),\n/* harmony export */ resize: () => (/* binding */ resize),\n/* harmony export */ scroll: () => (/* binding */ scroll),\n/* harmony export */ scrollLeft: () => (/* binding */ scrollLeft),\n/* harmony export */ scrollTo: () => (/* binding */ scrollTo),\n/* harmony export */ scrollTop: () => (/* binding */ scrollTop),\n/* harmony export */ show: () => (/* binding */ show),\n/* harmony export */ siblings: () => (/* binding */ siblings),\n/* harmony export */ stop: () => (/* binding */ stop),\n/* harmony export */ styles: () => (/* binding */ styles),\n/* harmony export */ submit: () => (/* binding */ submit),\n/* harmony export */ text: () => (/* binding */ text),\n/* harmony export */ toArray: () => (/* binding */ toArray),\n/* harmony export */ toggleClass: () => (/* binding */ toggleClass),\n/* harmony export */ touchend: () => (/* binding */ touchend),\n/* harmony export */ touchmove: () => (/* binding */ touchmove),\n/* harmony export */ touchstart: () => (/* binding */ touchstart),\n/* harmony export */ transform: () => (/* binding */ transform),\n/* harmony export */ transition: () => (/* binding */ transition),\n/* harmony export */ transitionEnd: () => (/* binding */ transitionEnd),\n/* harmony export */ trigger: () => (/* binding */ trigger),\n/* harmony export */ val: () => (/* binding */ val),\n/* harmony export */ width: () => (/* binding */ width)\n/* harmony export */ });\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/dist/ssr-window.esm.js\");\n/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\n\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [ssr_window__WEBPACK_IMPORTED_MODULE_0__.document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || ssr_window__WEBPACK_IMPORTED_MODULE_0__.document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window || selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__.document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.requestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.requestAnimationFrame(callback);\n else if (ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.webkitRequestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.webkitRequestAnimationFrame(callback);\n return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.cancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.cancelAnimationFrame(id);\n else if (ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.webkitCancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.webkitCancelAnimationFrame(id);\n return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\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 }\n\n // Set attrs\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 // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\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 // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\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 return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\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 // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\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 return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\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 if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\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 function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\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 return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\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 return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = ssr_window__WEBPACK_IMPORTED_MODULE_0__.document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window) {\n return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window) {\n return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = ssr_window__WEBPACK_IMPORTED_MODULE_0__.document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window ? ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.scrollY : el.scrollTop;\n const scrollLeft = el === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window ? ssr_window__WEBPACK_IMPORTED_MODULE_0__.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}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_0__.window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__.document) return el === ssr_window__WEBPACK_IMPORTED_MODULE_0__.document;\n else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window) return el === ssr_window__WEBPACK_IMPORTED_MODULE_0__.window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_0__.document.createElement('div');\n tempDiv.innerHTML = newChild;\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// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_0__.document.createElement('div');\n tempDiv.innerHTML = newChild;\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 return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\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}\nfunction insertAfter(selector) {\n const after = $(selector);\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}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\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 return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\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 return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\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 el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\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 let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 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 if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\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 if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\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 /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\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 if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = ssr_window__WEBPACK_IMPORTED_MODULE_0__.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\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\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 { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\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 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 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(' ');\nfunction eventShortcut(name, ...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]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\n\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/dom7/dist/dom7.modular.js?"); /***/ }), /***/ "./node_modules/focus-within-polyfill/dist/focus-within-polyfill.js": /*!**************************************************************************!*\ !*** ./node_modules/focus-within-polyfill/dist/focus-within-polyfill.js ***! \**************************************************************************/ /***/ (() => { "use strict"; eval("(function(){(function(){function e(a){for(var b=[a];a=a.parentNode||a.host||a.defaultView;)b.push(a);return b}function f(a){return function(b){var c=\"undefined\"!==typeof b.getAttribute?b.getAttribute(\"class\")||\"\":void 0;\"undefined\"!==typeof c&&-1===c.indexOf(a)&&b.setAttribute(\"class\",c.concat(\" \",a).trim())}}function g(a){return function(b){var c=\"undefined\"!==typeof b.getAttribute?b.getAttribute(\"class\")||\"\":void 0;if(c){var d=c.indexOf(a);0<=d&&(0===d||0<=h.indexOf(c.charAt(d-1)))&&\n(c=c.replace(a,\"\").trim(),\"\"===c?b.removeAttribute(\"class\"):b.setAttribute(\"class\",c))}}}function k(){var a=function(a){function c(){b=!1;\"blur\"===a.type&&Array.prototype.slice.call(e(a.target)).forEach(g(\"focus-within\"));\"focus\"===a.type&&Array.prototype.slice.call(e(a.target)).forEach(f(\"focus-within\"))}if(!b){window.requestAnimationFrame(c);var b=!0}};document.addEventListener(\"focus\",a,!0);document.addEventListener(\"blur\",a,!0);f(\"js-focus-within\")(document.body);return!0}var h=[\"\\n\",\"\\t\",\" \",\n\"\\r\"];try{return\"undefined\"!==typeof window&&!document.querySelector(\":focus-within\")}catch(a){return k()}})()})()\n//# sourceMappingURL=focus-within-polyfill.js.map\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/focus-within-polyfill/dist/focus-within-polyfill.js?"); /***/ }), /***/ "./node_modules/js-cookie/src/js.cookie.js": /*!*************************************************!*\ !*** ./node_modules/js-cookie/src/js.cookie.js ***! \*************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (true) {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/js-cookie/src/js.cookie.js?"); /***/ }), /***/ "./node_modules/lazysizes/lazysizes.js": /*!*********************************************!*\ !*** ./node_modules/lazysizes/lazysizes.js ***! \*********************************************/ /***/ ((module) => { eval("(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif( true && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, function l(window, document, Date) { // Pass in the windoe Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes, lazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\tcfg: lazySizesCfg,\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/lazysizes.js?"); /***/ }), /***/ "./node_modules/lazysizes/plugins/bgset/ls.bgset.js": /*!**********************************************************!*\ !*** ./node_modules/lazysizes/plugins/bgset/ls.bgset.js ***! \**********************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif( true && module.exports){\n\t\tfactory(__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\"));\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}(window, function(window, document, lazySizes) {\n\t'use strict';\n\tif(!window.addEventListener){return;}\n\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar regWhite = /\\s+/g;\n\tvar regSplitSet = /\\s*\\|\\s+|\\s+\\|\\s*/g;\n\tvar regSource = /^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])(?:\\s+\\[\\s*(.+?)\\s*\\])?$/;\n\tvar regType = /^\\s*\\(*\\s*type\\s*:\\s*(.+?)\\s*\\)*\\s*$/;\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar allowedBackgroundSize = {contain: 1, cover: 1};\n\tvar proxyWidth = function(elem){\n\t\tvar width = lazySizes.gW(elem, elem.parentNode);\n\n\t\tif(!elem._lazysizesWidth || width > elem._lazysizesWidth){\n\t\t\telem._lazysizesWidth = width;\n\t\t}\n\t\treturn elem._lazysizesWidth;\n\t};\n\tvar getBgSize = function(elem){\n\t\tvar bgSize;\n\n\t\tbgSize = (getComputedStyle(elem) || {getPropertyValue: function(){}}).getPropertyValue('background-size');\n\n\t\tif(!allowedBackgroundSize[bgSize] && allowedBackgroundSize[elem.style.backgroundSize]){\n\t\t\tbgSize = elem.style.backgroundSize;\n\t\t}\n\n\t\treturn bgSize;\n\t};\n\tvar setTypeOrMedia = function(source, match){\n\t\tif(match){\n\t\t\tvar typeMatch = match.match(regType);\n\t\t\tif(typeMatch && typeMatch[1]){\n\t\t\t\tsource.setAttribute('type', typeMatch[1]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute('media', lazySizesCfg.customMedia[match] || match);\n\t\t\t}\n\t\t}\n\t};\n\tvar createPicture = function(sets, elem, img){\n\t\tvar picture = document.createElement('picture');\n\t\tvar sizes = elem.getAttribute(lazySizesCfg.sizesAttr);\n\t\tvar ratio = elem.getAttribute('data-ratio');\n\t\tvar optimumx = elem.getAttribute('data-optimumx');\n\n\t\tif(elem._lazybgset && elem._lazybgset.parentNode == elem){\n\t\t\telem.removeChild(elem._lazybgset);\n\t\t}\n\n\t\tObject.defineProperty(img, '_lazybgset', {\n\t\t\tvalue: elem,\n\t\t\twritable: true\n\t\t});\n\t\tObject.defineProperty(elem, '_lazybgset', {\n\t\t\tvalue: picture,\n\t\t\twritable: true\n\t\t});\n\n\t\tsets = sets.replace(regWhite, ' ').split(regSplitSet);\n\n\t\tpicture.style.display = 'none';\n\t\timg.className = lazySizesCfg.lazyClass;\n\n\t\tif(sets.length == 1 && !sizes){\n\t\t\tsizes = 'auto';\n\t\t}\n\n\t\tsets.forEach(function(set){\n\t\t\tvar match;\n\t\t\tvar source = document.createElement('source');\n\n\t\t\tif(sizes && sizes != 'auto'){\n\t\t\t\tsource.setAttribute('sizes', sizes);\n\t\t\t}\n\n\t\t\tif((match = set.match(regSource))){\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, match[1]);\n\n\t\t\t\tsetTypeOrMedia(source, match[2]);\n\t\t\t\tsetTypeOrMedia(source, match[3]);\n\t\t\t} else {\n\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, set);\n\t\t\t}\n\n\t\t\tpicture.appendChild(source);\n\t\t});\n\n\t\tif(sizes){\n\t\t\timg.setAttribute(lazySizesCfg.sizesAttr, sizes);\n\t\t\telem.removeAttribute(lazySizesCfg.sizesAttr);\n\t\t\telem.removeAttribute('sizes');\n\t\t}\n\t\tif(optimumx){\n\t\t\timg.setAttribute('data-optimumx', optimumx);\n\t\t}\n\t\tif(ratio) {\n\t\t\timg.setAttribute('data-ratio', ratio);\n\t\t}\n\n\t\tpicture.appendChild(img);\n\n\t\telem.appendChild(picture);\n\t};\n\n\tvar proxyLoad = function(e){\n\t\tif(!e.target._lazybgset){return;}\n\n\t\tvar image = e.target;\n\t\tvar elem = image._lazybgset;\n\t\tvar bg = image.currentSrc || image.src;\n\n\n\t\tif(bg){\n\t\t\tvar useSrc = regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg;\n\t\t\tvar event = lazySizes.fire(elem, 'bgsetproxy', {\n\t\t\t\tsrc: bg,\n\t\t\t\tuseSrc: useSrc,\n\t\t\t\tfullSrc: null,\n\t\t\t});\n\n\t\t\tif(!event.defaultPrevented){\n\t\t\t\telem.style.backgroundImage = event.detail.fullSrc || 'url(' + event.detail.useSrc + ')';\n\t\t\t}\n\t\t}\n\n\t\tif(image._lazybgsetLoading){\n\t\t\tlazySizes.fire(elem, '_lazyloaded', {}, false, true);\n\t\t\tdelete image._lazybgsetLoading;\n\t\t}\n\t};\n\n\taddEventListener('lazybeforeunveil', function(e){\n\t\tvar set, image, elem;\n\n\t\tif(e.defaultPrevented || !(set = e.target.getAttribute('data-bgset'))){return;}\n\n\t\telem = e.target;\n\t\timage = document.createElement('img');\n\n\t\timage.alt = '';\n\n\t\timage._lazybgsetLoading = true;\n\t\te.detail.firesLoad = true;\n\n\t\tcreatePicture(set, elem, image);\n\n\t\tsetTimeout(function(){\n\t\t\tlazySizes.loader.unveil(image);\n\n\t\t\tlazySizes.rAF(function(){\n\t\t\t\tlazySizes.fire(image, '_lazyloaded', {}, true, true);\n\t\t\t\tif(image.complete) {\n\t\t\t\t\tproxyLoad({target: image});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t});\n\n\tdocument.addEventListener('load', proxyLoad, true);\n\n\twindow.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.detail.instance != lazySizes){return;}\n\t\tif(e.target._lazybgset && e.detail.dataAttr){\n\t\t\tvar elem = e.target._lazybgset;\n\t\t\tvar bgSize = getBgSize(elem);\n\n\t\t\tif(allowedBackgroundSize[bgSize]){\n\t\t\t\te.target._lazysizesParentFit = bgSize;\n\n\t\t\t\tlazySizes.rAF(function(){\n\t\t\t\t\te.target.setAttribute('data-parent-fit', bgSize);\n\t\t\t\t\tif(e.target._lazysizesParentFit){\n\t\t\t\t\t\tdelete e.target._lazysizesParentFit;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, true);\n\n\tdocument.documentElement.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || !e.target._lazybgset || e.detail.instance != lazySizes){return;}\n\t\te.detail.width = proxyWidth(e.target._lazybgset);\n\t});\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/plugins/bgset/ls.bgset.js?"); /***/ }), /***/ "./node_modules/lazysizes/plugins/object-fit/ls.object-fit.js": /*!********************************************************************!*\ !*** ./node_modules/lazysizes/plugins/object-fit/ls.object-fit.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(initialEvent){\n\t\tfactory(window.lazySizes, initialEvent);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif( true && module.exports){\n\t\tfactory(__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\"));\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes, initialEvent) {\n\t'use strict';\n\tvar cloneElementClass;\n\tvar style = document.createElement('a').style;\n\tvar fitSupport = 'objectFit' in style;\n\tvar positionSupport = fitSupport && 'objectPosition' in style;\n\tvar regCssFit = /object-fit[\"']*\\s*:\\s*[\"']*(contain|cover)/;\n\tvar regCssPosition = /object-position[\"']*\\s*:\\s*[\"']*(.+?)(?=($|,|'|\"|;))/;\n\tvar blankSrc = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\tvar regBgUrlEscape = /\\(|\\)|'/;\n\tvar positionDefaults = {\n\t\tcenter: 'center',\n\t\t'50% 50%': 'center',\n\t};\n\n\tfunction getObject(element){\n\t\tvar css = (getComputedStyle(element, null) || {});\n\t\tvar content = css.fontFamily || '';\n\t\tvar objectFit = content.match(regCssFit) || '';\n\t\tvar objectPosition = objectFit && content.match(regCssPosition) || '';\n\n\t\tif(objectPosition){\n\t\t\tobjectPosition = objectPosition[1];\n\t\t}\n\n\t\treturn {\n\t\t\tfit: objectFit && objectFit[1] || '',\n\t\t\tposition: positionDefaults[objectPosition] || objectPosition || 'center',\n\t\t};\n\t}\n\n\tfunction generateStyleClass() {\n\t\tif (cloneElementClass) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar styleElement = document.createElement('style');\n\n\t\tcloneElementClass = lazySizes.cfg.objectFitClass || 'lazysizes-display-clone';\n\n\t\tdocument.querySelector('head').appendChild(styleElement);\n\t}\n\n\tfunction removePrevClone(element) {\n\t\tvar prev = element.previousElementSibling;\n\n\t\tif (prev && lazySizes.hC(prev, cloneElementClass)) {\n\t\t\tprev.parentNode.removeChild(prev);\n\t\t\telement.style.position = prev.getAttribute('data-position') || '';\n\t\t\telement.style.visibility = prev.getAttribute('data-visibility') || '';\n\t\t}\n\t}\n\n\tfunction initFix(element, config){\n\t\tvar switchClassesAdded, addedSrc, styleElement, styleElementStyle;\n\t\tvar lazysizesCfg = lazySizes.cfg;\n\n\t\tvar onChange = function(){\n\t\t\tvar src = element.currentSrc || element.src;\n\n\t\t\tif(src && addedSrc !== src){\n\t\t\t\taddedSrc = src;\n\t\t\t\tstyleElementStyle.backgroundImage = 'url(' + (regBgUrlEscape.test(src) ? JSON.stringify(src) : src ) + ')';\n\n\t\t\t\tif(!switchClassesAdded){\n\t\t\t\t\tswitchClassesAdded = true;\n\t\t\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadingClass);\n\t\t\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadedClass);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar rafedOnChange = function(){\n\t\t\tlazySizes.rAF(onChange);\n\t\t};\n\n\t\telement._lazysizesParentFit = config.fit;\n\n\t\telement.addEventListener('lazyloaded', rafedOnChange, true);\n\t\telement.addEventListener('load', rafedOnChange, true);\n\n\t\tlazySizes.rAF(function(){\n\n\t\t\tvar hideElement = element;\n\t\t\tvar container = element.parentNode;\n\n\t\t\tif(container.nodeName.toUpperCase() == 'PICTURE'){\n\t\t\t\thideElement = container;\n\t\t\t\tcontainer = container.parentNode;\n\t\t\t}\n\n\t\t\tremovePrevClone(hideElement);\n\n\t\t\tif (!cloneElementClass) {\n\t\t\t\tgenerateStyleClass();\n\t\t\t}\n\n\t\t\tstyleElement = element.cloneNode(false);\n\t\t\tstyleElementStyle = styleElement.style;\n\n\t\t\tstyleElement.addEventListener('load', function(){\n\t\t\t\tvar curSrc = styleElement.currentSrc || styleElement.src;\n\n\t\t\t\tif(curSrc && curSrc != blankSrc){\n\t\t\t\t\tstyleElement.src = blankSrc;\n\t\t\t\t\tstyleElement.srcset = '';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.loadedClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.lazyClass);\n\t\t\tlazySizes.rC(styleElement, lazysizesCfg.autosizesClass);\n\t\t\tlazySizes.aC(styleElement, lazysizesCfg.loadingClass);\n\t\t\tlazySizes.aC(styleElement, cloneElementClass);\n\n\t\t\t['data-parent-fit', 'data-parent-container', 'data-object-fit-polyfilled',\n\t\t\t\tlazysizesCfg.srcsetAttr, lazysizesCfg.srcAttr].forEach(function(attr) {\n\t\t\t\tstyleElement.removeAttribute(attr);\n\t\t\t});\n\n\t\t\tstyleElement.src = blankSrc;\n\t\t\tstyleElement.srcset = '';\n\n\t\t\tstyleElementStyle.backgroundRepeat = 'no-repeat';\n\t\t\tstyleElementStyle.backgroundPosition = config.position;\n\t\t\tstyleElementStyle.backgroundSize = config.fit;\n\n\t\t\tstyleElement.setAttribute('data-position', hideElement.style.position);\n\t\t\tstyleElement.setAttribute('data-visibility', hideElement.style.visibility);\n\n\t\t\thideElement.style.visibility = 'hidden';\n\t\t\thideElement.style.position = 'absolute';\n\n\t\t\telement.setAttribute('data-parent-fit', config.fit);\n\t\t\telement.setAttribute('data-parent-container', 'prev');\n\t\t\telement.setAttribute('data-object-fit-polyfilled', '');\n\t\t\telement._objectFitPolyfilledDisplay = styleElement;\n\n\t\t\tcontainer.insertBefore(styleElement, hideElement);\n\n\t\t\tif(element._lazysizesParentFit){\n\t\t\t\tdelete element._lazysizesParentFit;\n\t\t\t}\n\n\t\t\tif(element.complete){\n\t\t\t\tonChange();\n\t\t\t}\n\t\t});\n\t}\n\n\tif(!fitSupport || !positionSupport){\n\t\tvar onRead = function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar element = e.target;\n\t\t\tvar obj = getObject(element);\n\n\t\t\tif(obj.fit && (!fitSupport || (obj.position != 'center'))){\n\t\t\t\tinitFix(element, obj);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\twindow.addEventListener('lazybeforesizes', function(e) {\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\tvar element = e.target;\n\n\t\t\tif (element.getAttribute('data-object-fit-polyfilled') != null && !element._objectFitPolyfilledDisplay) {\n\t\t\t\tif(!onRead(e)){\n\t\t\t\t\tlazySizes.rAF(function () {\n\t\t\t\t\t\telement.removeAttribute('data-object-fit-polyfilled');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('lazyunveilread', onRead, true);\n\n\t\tif(initialEvent && initialEvent.detail){\n\t\t\tonRead(initialEvent);\n\t\t}\n\t}\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/plugins/object-fit/ls.object-fit.js?"); /***/ }), /***/ "./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js": /*!********************************************************************!*\ !*** ./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif( true && module.exports){\n\t\tfactory(__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\"));\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t'use strict';\n\n\tif(!window.addEventListener){return;}\n\n\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\tvar regCssFit = /parent-fit[\"']*\\s*:\\s*[\"']*(contain|cover|width)/;\n\tvar regCssObject = /parent-container[\"']*\\s*:\\s*[\"']*(.+?)(?=(\\s|$|,|'|\"|;))/;\n\tvar regPicture = /^picture$/i;\n\tvar cfg = lazySizes.cfg;\n\n\tvar getCSS = function (elem){\n\t\treturn (getComputedStyle(elem, null) || {});\n\t};\n\n\tvar parentFit = {\n\n\t\tgetParent: function(element, parentSel){\n\t\t\tvar parent = element;\n\t\t\tvar parentNode = element.parentNode;\n\n\t\t\tif((!parentSel || parentSel == 'prev') && parentNode && regPicture.test(parentNode.nodeName || '')){\n\t\t\t\tparentNode = parentNode.parentNode;\n\t\t\t}\n\n\t\t\tif(parentSel != 'self'){\n\t\t\t\tif(parentSel == 'prev'){\n\t\t\t\t\tparent = element.previousElementSibling;\n\t\t\t\t} else if(parentSel && (parentNode.closest || window.jQuery)){\n\t\t\t\t\tparent = (parentNode.closest ?\n\t\t\t\t\t\t\tparentNode.closest(parentSel) :\n\t\t\t\t\t\t\tjQuery(parentNode).closest(parentSel)[0]) ||\n\t\t\t\t\t\tparentNode\n\t\t\t\t\t;\n\t\t\t\t} else {\n\t\t\t\t\tparent = parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn parent;\n\t\t},\n\n\t\tgetFit: function(element){\n\t\t\tvar tmpMatch, parentObj;\n\t\t\tvar css = getCSS(element);\n\t\t\tvar content = css.content || css.fontFamily;\n\t\t\tvar obj = {\n\t\t\t\tfit: element._lazysizesParentFit || element.getAttribute('data-parent-fit')\n\t\t\t};\n\n\t\t\tif(!obj.fit && content && (tmpMatch = content.match(regCssFit))){\n\t\t\t\tobj.fit = tmpMatch[1];\n\t\t\t}\n\n\t\t\tif(obj.fit){\n\t\t\t\tparentObj = element._lazysizesParentContainer || element.getAttribute('data-parent-container');\n\n\t\t\t\tif(!parentObj && content && (tmpMatch = content.match(regCssObject))){\n\t\t\t\t\tparentObj = tmpMatch[1];\n\t\t\t\t}\n\n\t\t\t\tobj.parent = parentFit.getParent(element, parentObj);\n\n\n\t\t\t} else {\n\t\t\t\tobj.fit = css.objectFit;\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t},\n\n\t\tgetImageRatio: function(element){\n\t\t\tvar i, srcset, media, ratio, match, width, height;\n\t\t\tvar parent = element.parentNode;\n\t\t\tvar elements = parent && regPicture.test(parent.nodeName || '') ?\n\t\t\t\t\tparent.querySelectorAll('source, img') :\n\t\t\t\t\t[element]\n\t\t\t\t;\n\n\t\t\tfor(i = 0; i < elements.length; i++){\n\t\t\t\telement = elements[i];\n\t\t\t\tsrcset = element.getAttribute(cfg.srcsetAttr) || element.getAttribute('srcset') || element.getAttribute('data-pfsrcset') || element.getAttribute('data-risrcset') || '';\n\t\t\t\tmedia = element._lsMedia || element.getAttribute('media');\n\t\t\t\tmedia = cfg.customMedia[element.getAttribute('data-media') || media] || media;\n\n\t\t\t\tif(srcset && (!media || (window.matchMedia && matchMedia(media) || {}).matches )){\n\t\t\t\t\tratio = parseFloat(element.getAttribute('data-aspectratio'));\n\n\t\t\t\t\tif (!ratio) {\n\t\t\t\t\t\tmatch = srcset.match(regDescriptors);\n\n\t\t\t\t\t\tif (match) {\n\t\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\t\twidth = match[1];\n\t\t\t\t\t\t\t\theight = match[3];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twidth = match[3];\n\t\t\t\t\t\t\t\theight = match[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twidth = element.getAttribute('width');\n\t\t\t\t\t\t\theight = element.getAttribute('height');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tratio = width / height;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ratio;\n\t\t},\n\n\t\tcalculateSize: function(element, width){\n\t\t\tvar displayRatio, height, imageRatio, retWidth;\n\t\t\tvar fitObj = this.getFit(element);\n\t\t\tvar fit = fitObj.fit;\n\t\t\tvar fitElem = fitObj.parent;\n\n\t\t\tif(fit != 'width' && ((fit != 'contain' && fit != 'cover') || !(imageRatio = this.getImageRatio(element)))){\n\t\t\t\treturn width;\n\t\t\t}\n\n\t\t\tif(fitElem){\n\t\t\t\twidth = fitElem.clientWidth;\n\t\t\t} else {\n\t\t\t\tfitElem = element;\n\t\t\t}\n\n\t\t\tretWidth = width;\n\n\t\t\tif(fit == 'width'){\n\t\t\t\tretWidth = width;\n\t\t\t} else {\n\t\t\t\theight = fitElem.clientHeight;\n\n\t\t\t\tif((displayRatio = width / height) && ((fit == 'cover' && displayRatio < imageRatio) || (fit == 'contain' && displayRatio > imageRatio))){\n\t\t\t\t\tretWidth = width * (imageRatio / displayRatio);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn retWidth;\n\t\t}\n\t};\n\n\tlazySizes.parentFit = parentFit;\n\n\tdocument.addEventListener('lazybeforesizes', function(e){\n\t\tif(e.defaultPrevented || e.detail.instance != lazySizes){return;}\n\n\t\tvar element = e.target;\n\t\te.detail.width = parentFit.calculateSize(element, e.detail.width);\n\t});\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/plugins/parent-fit/ls.parent-fit.js?"); /***/ }), /***/ "./node_modules/lazysizes/plugins/respimg/ls.respimg.js": /*!**************************************************************!*\ !*** ./node_modules/lazysizes/plugins/respimg/ls.respimg.js ***! \**************************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(window, factory) {\n\tif(!window) {return;}\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif( true && module.exports){\n\t\tfactory(__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\"));\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}(typeof window != 'undefined' ?\n\twindow : 0, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\tvar polyfill;\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar img = document.createElement('img');\n\tvar supportSrcset = ('sizes' in img) && ('srcset' in img);\n\tvar regHDesc = /\\s+\\d+h/g;\n\tvar fixEdgeHDescriptor = (function(){\n\t\tvar regDescriptors = /\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/;\n\t\tvar forEach = Array.prototype.forEach;\n\n\t\treturn function(){\n\t\t\tvar img = document.createElement('img');\n\t\t\tvar removeHDescriptors = function(source){\n\t\t\t\tvar ratio, match;\n\t\t\t\tvar srcset = source.getAttribute(lazySizesCfg.srcsetAttr);\n\t\t\t\tif(srcset){\n\t\t\t\t\tif((match = srcset.match(regDescriptors))){\n\t\t\t\t\t\tif(match[2] == 'w'){\n\t\t\t\t\t\t\tratio = match[1] / match[3];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tratio = match[3] / match[1];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(ratio){\n\t\t\t\t\t\t\tsource.setAttribute('data-aspectratio', ratio);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsource.setAttribute(lazySizesCfg.srcsetAttr, srcset.replace(regHDesc, ''));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar handler = function(e){\n\t\t\t\tif(e.detail.instance != lazySizes){return;}\n\t\t\t\tvar picture = e.target.parentNode;\n\n\t\t\t\tif(picture && picture.nodeName == 'PICTURE'){\n\t\t\t\t\tforEach.call(picture.getElementsByTagName('source'), removeHDescriptors);\n\t\t\t\t}\n\t\t\t\tremoveHDescriptors(e.target);\n\t\t\t};\n\n\t\t\tvar test = function(){\n\t\t\t\tif(!!img.currentSrc){\n\t\t\t\t\tdocument.removeEventListener('lazybeforeunveil', handler);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdocument.addEventListener('lazybeforeunveil', handler);\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\n\t\t\timg.srcset = 'data:,a 1w 1h';\n\n\t\t\tif(img.complete){\n\t\t\t\ttest();\n\t\t\t}\n\t\t};\n\t})();\n\n\tif(!lazySizesCfg.supportsType){\n\t\tlazySizesCfg.supportsType = function(type/*, elem*/){\n\t\t\treturn !type;\n\t\t};\n\t}\n\n\tif (window.HTMLPictureElement && supportSrcset) {\n\t\tif(!lazySizes.hasHDescriptorFix && document.msElementsFromPoint){\n\t\t\tlazySizes.hasHDescriptorFix = true;\n\t\t\tfixEdgeHDescriptor();\n\t\t}\n\t\treturn;\n\t}\n\n\tif(window.picturefill || lazySizesCfg.pf){return;}\n\n\tlazySizesCfg.pf = function(options){\n\t\tvar i, len;\n\t\tif(window.picturefill){return;}\n\t\tfor(i = 0, len = options.elements.length; i < len; i++){\n\t\t\tpolyfill(options.elements[i]);\n\t\t}\n\t};\n\n\t// partial polyfill\n\tpolyfill = (function(){\n\t\tvar ascendingSort = function( a, b ) {\n\t\t\treturn a.w - b.w;\n\t\t};\n\t\tvar regPxLength = /^\\s*\\d+\\.*\\d*px\\s*$/;\n\t\tvar reduceCandidate = function (srces) {\n\t\t\tvar lowerCandidate, bonusFactor;\n\t\t\tvar len = srces.length;\n\t\t\tvar candidate = srces[len -1];\n\t\t\tvar i = 0;\n\n\t\t\tfor(i; i < len;i++){\n\t\t\t\tcandidate = srces[i];\n\t\t\t\tcandidate.d = candidate.w / srces.w;\n\n\t\t\t\tif(candidate.d >= srces.d){\n\t\t\t\t\tif(!candidate.cached && (lowerCandidate = srces[i - 1]) &&\n\t\t\t\t\t\tlowerCandidate.d > srces.d - (0.13 * Math.pow(srces.d, 2.2))){\n\n\t\t\t\t\t\tbonusFactor = Math.pow(lowerCandidate.d - 0.6, 1.6);\n\n\t\t\t\t\t\tif(lowerCandidate.cached) {\n\t\t\t\t\t\t\tlowerCandidate.d += 0.15 * bonusFactor;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(lowerCandidate.d + ((candidate.d - srces.d) * bonusFactor) > srces.d){\n\t\t\t\t\t\t\tcandidate = lowerCandidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn candidate;\n\t\t};\n\n\t\tvar parseWsrcset = (function(){\n\t\t\tvar candidates;\n\t\t\tvar regWCandidates = /(([^,\\s].[^\\s]+)\\s+(\\d+)w)/g;\n\t\t\tvar regMultiple = /\\s/;\n\t\t\tvar addCandidate = function(match, candidate, url, wDescriptor){\n\t\t\t\tcandidates.push({\n\t\t\t\t\tc: candidate,\n\t\t\t\t\tu: url,\n\t\t\t\t\tw: wDescriptor * 1\n\t\t\t\t});\n\t\t\t};\n\n\t\t\treturn function(input){\n\t\t\t\tcandidates = [];\n\t\t\t\tinput = input.trim();\n\t\t\t\tinput\n\t\t\t\t\t.replace(regHDesc, '')\n\t\t\t\t\t.replace(regWCandidates, addCandidate)\n\t\t\t\t;\n\n\t\t\t\tif(!candidates.length && input && !regMultiple.test(input)){\n\t\t\t\t\tcandidates.push({\n\t\t\t\t\t\tc: input,\n\t\t\t\t\t\tu: input,\n\t\t\t\t\t\tw: 99\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn candidates;\n\t\t\t};\n\t\t})();\n\n\t\tvar runMatchMedia = function(){\n\t\t\tif(runMatchMedia.init){return;}\n\n\t\t\trunMatchMedia.init = true;\n\t\t\taddEventListener('resize', (function(){\n\t\t\t\tvar timer;\n\t\t\t\tvar matchMediaElems = document.getElementsByClassName('lazymatchmedia');\n\t\t\t\tvar run = function(){\n\t\t\t\t\tvar i, len;\n\t\t\t\t\tfor(i = 0, len = matchMediaElems.length; i < len; i++){\n\t\t\t\t\t\tpolyfill(matchMediaElems[i]);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function(){\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = setTimeout(run, 66);\n\t\t\t\t};\n\t\t\t})());\n\t\t};\n\n\t\tvar createSrcset = function(elem, isImage){\n\t\t\tvar parsedSet;\n\t\t\tvar srcSet = elem.getAttribute('srcset') || elem.getAttribute(lazySizesCfg.srcsetAttr);\n\n\t\t\tif(!srcSet && isImage){\n\t\t\t\tsrcSet = !elem._lazypolyfill ?\n\t\t\t\t\t(elem.getAttribute(lazySizesCfg.srcAttr) || elem.getAttribute('src')) :\n\t\t\t\t\telem._lazypolyfill._set\n\t\t\t\t;\n\t\t\t}\n\n\t\t\tif(!elem._lazypolyfill || elem._lazypolyfill._set != srcSet){\n\n\t\t\t\tparsedSet = parseWsrcset( srcSet || '' );\n\t\t\t\tif(isImage && elem.parentNode){\n\t\t\t\t\tparsedSet.isPicture = elem.parentNode.nodeName.toUpperCase() == 'PICTURE';\n\n\t\t\t\t\tif(parsedSet.isPicture){\n\t\t\t\t\t\tif(window.matchMedia){\n\t\t\t\t\t\t\tlazySizes.aC(elem, 'lazymatchmedia');\n\t\t\t\t\t\t\trunMatchMedia();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tparsedSet._set = srcSet;\n\t\t\t\tObject.defineProperty(elem, '_lazypolyfill', {\n\t\t\t\t\tvalue: parsedSet,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tvar getX = function(elem){\n\t\t\tvar dpr = window.devicePixelRatio || 1;\n\t\t\tvar optimum = lazySizes.getX && lazySizes.getX(elem);\n\t\t\treturn Math.min(optimum || dpr, 2.5, dpr);\n\t\t};\n\n\t\tvar matchesMedia = function(media){\n\t\t\tif(window.matchMedia){\n\t\t\t\tmatchesMedia = function(media){\n\t\t\t\t\treturn !media || (matchMedia(media) || {}).matches;\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\treturn !media;\n\t\t\t}\n\n\t\t\treturn matchesMedia(media);\n\t\t};\n\n\t\tvar getCandidate = function(elem){\n\t\t\tvar sources, i, len, media, source, srces, src, width;\n\n\t\t\tsource = elem;\n\t\t\tcreateSrcset(source, true);\n\t\t\tsrces = source._lazypolyfill;\n\n\t\t\tif(srces.isPicture){\n\t\t\t\tfor(i = 0, sources = elem.parentNode.getElementsByTagName('source'), len = sources.length; i < len; i++){\n\t\t\t\t\tif( lazySizesCfg.supportsType(sources[i].getAttribute('type'), elem) && matchesMedia( sources[i].getAttribute('media')) ){\n\t\t\t\t\t\tsource = sources[i];\n\t\t\t\t\t\tcreateSrcset(source);\n\t\t\t\t\t\tsrces = source._lazypolyfill;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(srces.length > 1){\n\t\t\t\twidth = source.getAttribute('sizes') || '';\n\t\t\t\twidth = regPxLength.test(width) && parseInt(width, 10) || lazySizes.gW(elem, elem.parentNode);\n\t\t\t\tsrces.d = getX(elem);\n\t\t\t\tif(!srces.src || !srces.w || srces.w < width){\n\t\t\t\t\tsrces.w = width;\n\t\t\t\t\tsrc = reduceCandidate(srces.sort(ascendingSort));\n\t\t\t\t\tsrces.src = src;\n\t\t\t\t} else {\n\t\t\t\t\tsrc = srces.src;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsrc = srces[0];\n\t\t\t}\n\n\t\t\treturn src;\n\t\t};\n\n\t\tvar p = function(elem){\n\t\t\tif(supportSrcset && elem.parentNode && elem.parentNode.nodeName.toUpperCase() != 'PICTURE'){return;}\n\t\t\tvar candidate = getCandidate(elem);\n\n\t\t\tif(candidate && candidate.u && elem._lazypolyfill.cur != candidate.u){\n\t\t\t\telem._lazypolyfill.cur = candidate.u;\n\t\t\t\tcandidate.cached = true;\n\t\t\t\telem.setAttribute(lazySizesCfg.srcAttr, candidate.u);\n\t\t\t\telem.setAttribute('src', candidate.u);\n\t\t\t}\n\t\t};\n\n\t\tp.parse = parseWsrcset;\n\n\t\treturn p;\n\t})();\n\n\tif(lazySizesCfg.loadedClass && lazySizesCfg.loadingClass){\n\t\t(function(){\n\t\t\tvar sels = [];\n\t\t\t['img[sizes$=\"px\"][srcset].', 'picture > img:not([srcset]).'].forEach(function(sel){\n\t\t\t\tsels.push(sel + lazySizesCfg.loadedClass);\n\t\t\t\tsels.push(sel + lazySizesCfg.loadingClass);\n\t\t\t});\n\t\t\tlazySizesCfg.pf({\n\t\t\t\telements: document.querySelectorAll(sels.join(', '))\n\t\t\t});\n\t\t})();\n\n\t}\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/plugins/respimg/ls.respimg.js?"); /***/ }), /***/ "./node_modules/lazysizes/plugins/rias/ls.rias.js": /*!********************************************************!*\ !*** ./node_modules/lazysizes/plugins/rias/ls.rias.js ***! \********************************************************/ /***/ ((module, exports, __webpack_require__) => { eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(window, factory) {\n\tvar globalInstall = function(){\n\t\tfactory(window.lazySizes);\n\t\twindow.removeEventListener('lazyunveilread', globalInstall, true);\n\t};\n\n\tfactory = factory.bind(null, window, window.document);\n\n\tif( true && module.exports){\n\t\tfactory(__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\"));\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! lazysizes */ \"./node_modules/lazysizes/lazysizes.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}(window, function(window, document, lazySizes) {\n\t/*jshint eqnull:true */\n\t'use strict';\n\n\tvar config, riasCfg;\n\tvar lazySizesCfg = lazySizes.cfg;\n\tvar replaceTypes = {string: 1, number: 1};\n\tvar regNumber = /^\\-*\\+*\\d+\\.*\\d*$/;\n\tvar regPicture = /^picture$/i;\n\tvar regWidth = /\\s*\\{\\s*width\\s*\\}\\s*/i;\n\tvar regHeight = /\\s*\\{\\s*height\\s*\\}\\s*/i;\n\tvar regPlaceholder = /\\s*\\{\\s*([a-z0-9]+)\\s*\\}\\s*/ig;\n\tvar regObj = /^\\[.*\\]|\\{.*\\}$/;\n\tvar regAllowedSizes = /^(?:auto|\\d+(px)?)$/;\n\tvar anchor = document.createElement('a');\n\tvar img = document.createElement('img');\n\tvar buggySizes = ('srcset' in img) && !('sizes' in img);\n\tvar supportPicture = !!window.HTMLPictureElement && !buggySizes;\n\n\t(function(){\n\t\tvar prop;\n\t\tvar noop = function(){};\n\t\tvar riasDefaults = {\n\t\t\tprefix: '',\n\t\t\tpostfix: '',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tabsUrl: false,\n\t\t\tmodifyOptions: noop,\n\t\t\twidthmap: {},\n\t\t\tratio: false,\n\t\t\ttraditionalRatio: false,\n\t\t\taspectratio: false,\n\t\t};\n\n\t\tconfig = lazySizes && lazySizes.cfg;\n\n\t\tif(!config.supportsType){\n\t\t\tconfig.supportsType = function(type/*, elem*/){\n\t\t\t\treturn !type;\n\t\t\t};\n\t\t}\n\n\t\tif(!config.rias){\n\t\t\tconfig.rias = {};\n\t\t}\n\t\triasCfg = config.rias;\n\n\t\tif(!('widths' in riasCfg)){\n\t\t\triasCfg.widths = [];\n\t\t\t(function (widths){\n\t\t\t\tvar width;\n\t\t\t\tvar i = 0;\n\t\t\t\twhile(!width || width < 3000){\n\t\t\t\t\ti += 5;\n\t\t\t\t\tif(i > 30){\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t}\n\t\t\t\t\twidth = (36 * i);\n\t\t\t\t\twidths.push(width);\n\t\t\t\t}\n\t\t\t})(riasCfg.widths);\n\t\t}\n\n\t\tfor(prop in riasDefaults){\n\t\t\tif(!(prop in riasCfg)){\n\t\t\t\triasCfg[prop] = riasDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tfunction getElementOptions(elem, src, options){\n\t\tvar attr, parent, setOption, prop, opts;\n\t\tvar elemStyles = window.getComputedStyle(elem);\n\n\t\tif (!options) {\n\t\t\tparent = elem.parentNode;\n\n\t\t\toptions = {\n\t\t\t\tisPicture: !!(parent && regPicture.test(parent.nodeName || ''))\n\t\t\t};\n\t\t} else {\n\t\t\topts = {};\n\n\t\t\tfor (prop in options) {\n\t\t\t\topts[prop] = options[prop];\n\t\t\t}\n\n\t\t\toptions = opts;\n\t\t}\n\n\t\tsetOption = function(attr, run){\n\t\t\tvar attrVal = elem.getAttribute('data-'+ attr);\n\n\t\t\tif (!attrVal) {\n\t\t\t\t// no data- attr, get value from the CSS\n\t\t\t\tvar styles = elemStyles.getPropertyValue('--ls-' + attr);\n\t\t\t\t// at least Safari 9 returns null rather than\n\t\t\t\t// an empty string for getPropertyValue causing\n\t\t\t\t// .trim() to fail\n\t\t\t\tif (styles) {\n\t\t\t\t\tattrVal = styles.trim();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (attrVal) {\n\t\t\t\tif(attrVal == 'true'){\n\t\t\t\t\tattrVal = true;\n\t\t\t\t} else if(attrVal == 'false'){\n\t\t\t\t\tattrVal = false;\n\t\t\t\t} else if(regNumber.test(attrVal)){\n\t\t\t\t\tattrVal = parseFloat(attrVal);\n\t\t\t\t} else if(typeof riasCfg[attr] == 'function'){\n\t\t\t\t\tattrVal = riasCfg[attr](elem, attrVal);\n\t\t\t\t} else if(regObj.test(attrVal)){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tattrVal = JSON.parse(attrVal);\n\t\t\t\t\t} catch(e){}\n\t\t\t\t}\n\t\t\t\toptions[attr] = attrVal;\n\t\t\t} else if((attr in riasCfg) && typeof riasCfg[attr] != 'function' && !options[attr]){\n\t\t\t\toptions[attr] = riasCfg[attr];\n\t\t\t} else if(run && typeof riasCfg[attr] == 'function'){\n\t\t\t\toptions[attr] = riasCfg[attr](elem, attrVal);\n\t\t\t}\n\t\t};\n\n\t\tfor(attr in riasCfg){\n\t\t\tsetOption(attr);\n\t\t}\n\t\tsrc.replace(regPlaceholder, function(full, match){\n\t\t\tif(!(match in options)){\n\t\t\t\tsetOption(match, true);\n\t\t\t}\n\t\t});\n\n\t\treturn options;\n\t}\n\n\tfunction replaceUrlProps(url, options){\n\t\tvar candidates = [];\n\t\tvar replaceFn = function(full, match){\n\t\t\treturn (replaceTypes[typeof options[match]]) ? options[match] : full;\n\t\t};\n\t\tcandidates.srcset = [];\n\n\t\tif(options.absUrl){\n\t\t\tanchor.setAttribute('href', url);\n\t\t\turl = anchor.href;\n\t\t}\n\n\t\turl = ((options.prefix || '') + url + (options.postfix || '')).replace(regPlaceholder, replaceFn);\n\n\t\toptions.widths.forEach(function(width){\n\t\t\tvar widthAlias = options.widthmap[width] || width;\n\t\t\tvar ratio = options.aspectratio || options.ratio;\n\t\t\tvar traditionalRatio = !options.aspectratio && riasCfg.traditionalRatio;\n\t\t\tvar candidate = {\n\t\t\t\tu: url.replace(regWidth, widthAlias)\n\t\t\t\t\t\t.replace(regHeight, ratio ?\n\t\t\t\t\t\t\ttraditionalRatio ?\n\t\t\t\t\t\t\t\tMath.round(width * ratio) :\n\t\t\t\t\t\t\t\tMath.round(width / ratio)\n\t\t\t\t\t\t\t: ''),\n\t\t\t\tw: width\n\t\t\t};\n\n\t\t\tcandidates.push(candidate);\n\t\t\tcandidates.srcset.push( (candidate.c = candidate.u + ' ' + width + 'w') );\n\t\t});\n\t\treturn candidates;\n\t}\n\n\tfunction setSrc(src, opts, elem){\n\t\tvar elemW = 0;\n\t\tvar elemH = 0;\n\t\tvar sizeElement = elem;\n\n\t\tif(!src){return;}\n\n\t\tif (opts.ratio === 'container') {\n\t\t\t// calculate image or parent ratio\n\t\t\telemW = sizeElement.scrollWidth;\n\t\t\telemH = sizeElement.scrollHeight;\n\n\t\t\twhile ((!elemW || !elemH) && sizeElement !== document) {\n\t\t\t\tsizeElement = sizeElement.parentNode;\n\t\t\t\telemW = sizeElement.scrollWidth;\n\t\t\t\telemH = sizeElement.scrollHeight;\n\t\t\t}\n\t\t\tif (elemW && elemH) {\n\t\t\t\topts.ratio = opts.traditionalRatio ? elemH / elemW : elemW / elemH;\n\t\t\t}\n\t\t}\n\n\t\tsrc = replaceUrlProps(src, opts);\n\n\t\tsrc.isPicture = opts.isPicture;\n\n\t\tif(buggySizes && elem.nodeName.toUpperCase() == 'IMG'){\n\t\t\telem.removeAttribute(config.srcsetAttr);\n\t\t} else {\n\t\t\telem.setAttribute(config.srcsetAttr, src.srcset.join(', '));\n\t\t}\n\n\t\tObject.defineProperty(elem, '_lazyrias', {\n\t\t\tvalue: src,\n\t\t\twritable: true\n\t\t});\n\t}\n\n\tfunction createAttrObject(elem, src){\n\t\tvar opts = getElementOptions(elem, src);\n\n\t\triasCfg.modifyOptions.call(elem, {target: elem, details: opts, detail: opts});\n\n\t\tlazySizes.fire(elem, 'lazyriasmodifyoptions', opts);\n\t\treturn opts;\n\t}\n\n\tfunction getSrc(elem){\n\t\treturn elem.getAttribute( elem.getAttribute('data-srcattr') || riasCfg.srcAttr ) || elem.getAttribute(config.srcsetAttr) || elem.getAttribute(config.srcAttr) || elem.getAttribute('data-pfsrcset') || '';\n\t}\n\n\taddEventListener('lazybeforesizes', function(e){\n\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\tvar elem, src, elemOpts, sourceOpts, parent, sources, i, len, sourceSrc, sizes, detail, hasPlaceholder, modified, emptyList;\n\t\telem = e.target;\n\n\t\tif(!e.detail.dataAttr || e.defaultPrevented || riasCfg.disabled || !((sizes = elem.getAttribute(config.sizesAttr) || elem.getAttribute('sizes')) && regAllowedSizes.test(sizes))){return;}\n\n\t\tsrc = getSrc(elem);\n\n\t\telemOpts = createAttrObject(elem, src);\n\n\t\thasPlaceholder = regWidth.test(elemOpts.prefix) || regWidth.test(elemOpts.postfix);\n\n\t\tif(elemOpts.isPicture && (parent = elem.parentNode)){\n\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\tif ( hasPlaceholder || regWidth.test(sourceSrc = getSrc(sources[i])) ){\n\t\t\t\t\tsourceOpts = getElementOptions(sources[i], sourceSrc, elemOpts);\n\t\t\t\t\tsetSrc(sourceSrc, sourceOpts, sources[i]);\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( hasPlaceholder || regWidth.test(src) ){\n\t\t\tsetSrc(src, elemOpts, elem);\n\t\t\tmodified = true;\n\t\t} else if (modified) {\n\t\t\temptyList = [];\n\t\t\temptyList.srcset = [];\n\t\t\temptyList.isPicture = true;\n\t\t\tObject.defineProperty(elem, '_lazyrias', {\n\t\t\t\tvalue: emptyList,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\n\t\tif(modified){\n\t\t\tif(supportPicture){\n\t\t\t\telem.removeAttribute(config.srcAttr);\n\t\t\t} else if(sizes != 'auto') {\n\t\t\t\tdetail = {\n\t\t\t\t\twidth: parseInt(sizes, 10)\n\t\t\t\t};\n\t\t\t\tpolyfill({\n\t\t\t\t\ttarget: elem,\n\t\t\t\t\tdetail: detail\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, true);\n\t// partial polyfill\n\tvar polyfill = (function(){\n\t\tvar ascendingSort = function( a, b ) {\n\t\t\treturn a.w - b.w;\n\t\t};\n\n\t\tvar reduceCandidate = function (srces) {\n\t\t\tvar lowerCandidate, bonusFactor;\n\t\t\tvar len = srces.length;\n\t\t\tvar candidate = srces[len -1];\n\t\t\tvar i = 0;\n\n\t\t\tfor(i; i < len;i++){\n\t\t\t\tcandidate = srces[i];\n\t\t\t\tcandidate.d = candidate.w / srces.w;\n\t\t\t\tif(candidate.d >= srces.d){\n\t\t\t\t\tif(!candidate.cached && (lowerCandidate = srces[i - 1]) &&\n\t\t\t\t\t\tlowerCandidate.d > srces.d - (0.13 * Math.pow(srces.d, 2.2))){\n\n\t\t\t\t\t\tbonusFactor = Math.pow(lowerCandidate.d - 0.6, 1.6);\n\n\t\t\t\t\t\tif(lowerCandidate.cached) {\n\t\t\t\t\t\t\tlowerCandidate.d += 0.15 * bonusFactor;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(lowerCandidate.d + ((candidate.d - srces.d) * bonusFactor) > srces.d){\n\t\t\t\t\t\t\tcandidate = lowerCandidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn candidate;\n\t\t};\n\n\t\tvar getWSet = function(elem, testPicture){\n\t\t\tvar src;\n\t\t\tif(!elem._lazyrias && lazySizes.pWS && (src = lazySizes.pWS(elem.getAttribute(config.srcsetAttr || ''))).length){\n\t\t\t\tObject.defineProperty(elem, '_lazyrias', {\n\t\t\t\t\tvalue: src,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\t\t\t\tif(testPicture && elem.parentNode){\n\t\t\t\t\tsrc.isPicture = elem.parentNode.nodeName.toUpperCase() == 'PICTURE';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn elem._lazyrias;\n\t\t};\n\n\t\tvar getX = function(elem){\n\t\t\tvar dpr = window.devicePixelRatio || 1;\n\t\t\tvar optimum = lazySizes.getX && lazySizes.getX(elem);\n\t\t\treturn Math.min(optimum || dpr, 2.4, dpr);\n\t\t};\n\n\t\tvar getCandidate = function(elem, width){\n\t\t\tvar sources, i, len, media, srces, src;\n\n\t\t\tsrces = elem._lazyrias;\n\n\t\t\tif(srces.isPicture && window.matchMedia){\n\t\t\t\tfor(i = 0, sources = elem.parentNode.getElementsByTagName('source'), len = sources.length; i < len; i++){\n\t\t\t\t\tif(getWSet(sources[i]) && !sources[i].getAttribute('type') && ( !(media = sources[i].getAttribute('media')) || ((matchMedia(media) || {}).matches))){\n\t\t\t\t\t\tsrces = sources[i]._lazyrias;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!srces.w || srces.w < width){\n\t\t\t\tsrces.w = width;\n\t\t\t\tsrces.d = getX(elem);\n\t\t\t\tsrc = reduceCandidate(srces.sort(ascendingSort));\n\t\t\t}\n\n\t\t\treturn src;\n\t\t};\n\n\t\tvar polyfill = function(e){\n\t\t\tif(e.detail.instance != lazySizes){return;}\n\n\t\t\tvar candidate;\n\t\t\tvar elem = e.target;\n\n\t\t\tif(!buggySizes && (window.respimage || window.picturefill || lazySizesCfg.pf)){\n\t\t\t\tdocument.removeEventListener('lazybeforesizes', polyfill);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif(!('_lazyrias' in elem) && (!e.detail.dataAttr || !getWSet(elem, true))){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcandidate = getCandidate(elem, e.detail.width);\n\n\t\t\tif(candidate && candidate.u && elem._lazyrias.cur != candidate.u){\n\t\t\t\telem._lazyrias.cur = candidate.u;\n\t\t\t\tcandidate.cached = true;\n\t\t\t\tlazySizes.rAF(function(){\n\t\t\t\t\telem.setAttribute(config.srcAttr, candidate.u);\n\t\t\t\t\telem.setAttribute('src', candidate.u);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tif(!supportPicture){\n\t\t\taddEventListener('lazybeforesizes', polyfill);\n\t\t} else {\n\t\t\tpolyfill = function(){};\n\t\t}\n\n\t\treturn polyfill;\n\n\t})();\n\n}));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/lazysizes/plugins/rias/ls.rias.js?"); /***/ }), /***/ "./node_modules/regenerator-runtime/runtime.js": /*!*****************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime.js ***! \*****************************************************/ /***/ ((module) => { eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n true ? module.exports : 0\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/regenerator-runtime/runtime.js?"); /***/ }), /***/ "./node_modules/ssr-window/dist/ssr-window.esm.js": /*!********************************************************!*\ !*** ./node_modules/ssr-window/dist/ssr-window.esm.js ***! \********************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ document: () => (/* binding */ doc),\n/* harmony export */ extend: () => (/* binding */ extend),\n/* harmony export */ window: () => (/* binding */ win)\n/* harmony export */ });\n/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\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 if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (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\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar 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: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\n\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/ssr-window/dist/ssr-window.esm.js?"); /***/ }), /***/ "./node_modules/swiper/js/swiper.esm.bundle.js": /*!*****************************************************!*\ !*** ./node_modules/swiper/js/swiper.esm.bundle.js ***! \*****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7/dist/dom7.modular */ \"./node_modules/dom7/dist/dom7.modular.js\");\n/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ssr-window */ \"./node_modules/ssr-window/dist/ssr-window.esm.js\");\n/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\n\n\n\nconst Methods = {\n addClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.addClass,\n removeClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.removeClass,\n hasClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.hasClass,\n toggleClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.toggleClass,\n attr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.attr,\n removeAttr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.removeAttr,\n data: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.data,\n transform: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.transform,\n transition: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.transition,\n on: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.on,\n off: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.off,\n trigger: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.trigger,\n transitionEnd: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.transitionEnd,\n outerWidth: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.outerWidth,\n outerHeight: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.outerHeight,\n offset: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.offset,\n css: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.css,\n each: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.each,\n html: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.html,\n text: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.text,\n is: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.is,\n index: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.index,\n eq: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.eq,\n append: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.append,\n prepend: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.prepend,\n next: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.next,\n nextAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.nextAll,\n prev: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.prev,\n prevAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.prevAll,\n parent: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.parent,\n parents: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.parents,\n closest: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.closest,\n find: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.find,\n children: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.children,\n filter: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.filter,\n remove: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.remove,\n add: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.add,\n styles: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$.fn[methodName] = dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.getComputedStyle(el, null);\n\n if (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new ssr_window__WEBPACK_IMPORTED_MODULE_1__.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 (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n return {\n touch: !!((\"ontouchstart\" in ssr_window__WEBPACK_IMPORTED_MODULE_1__.window) || (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.DocumentTouch && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document instanceof ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.DocumentTouch)),\n\n pointerEvents: !!ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.PointerEvent && (\"maxTouchPoints\" in ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator) && ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return (\"MutationObserver\" in ssr_window__WEBPACK_IMPORTED_MODULE_1__.window || \"WebkitMutationObserver\" in ssr_window__WEBPACK_IMPORTED_MODULE_1__.window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return \"ongesturestart\" in ssr_window__WEBPACK_IMPORTED_MODULE_1__.window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\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 function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\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] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, 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\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\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\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\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 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 Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, 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) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\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 }\n swiper.visibleSlides = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\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 }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\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 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, 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 swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nfunction translateTo (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\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;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\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}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n\nfunction 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}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\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];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\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\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 if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.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\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\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 if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const platform = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.platform;\n const ua = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.cordova || ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.phonegap),\n phonegap: !!(ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.cordova || ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.phonegap),\n electron: false,\n };\n\n const screenWidth = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.screen.width;\n const screenHeight = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.standalone))\n || (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.matchMedia && ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\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;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\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;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement\n && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement).is(data.formElements)\n && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement !== $targetEl[0]\n ) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n 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 if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement) {\n if (e.target === ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\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 if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\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 }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.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 data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\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 (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n const increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\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 if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\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 }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener('mousemove', swiper.onTouchMove, capture);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\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 Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\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 }\n}\n\nfunction getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\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 = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\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\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // 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\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$;\n\n // Find el\n const $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\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 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 formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\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 let translated;\n if (swiper.params.freeMode) {\n setTranslate();\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 if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.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 get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.userAgent),\n };\n}());\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.removeEventListener('resize', swiper.resize.resizeHandler);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.MutationObserver || ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\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 swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.requestAnimationFrame) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.requestAnimationFrame(observerUpdate);\n } else {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.setTimeout(observerUpdate, 0);\n }\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\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(params.renderSlide.call(swiper, slide, index))\n : (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement.nodeName && (ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement.nodeName.toLowerCase() === 'input' || ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.innerWidth;\n const windowHeight = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in ssr_window__WEBPACK_IMPORTED_MODULE_1__.document;\n\n if (!isSupported) {\n const element = ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.implementation\n && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).is($prevEl)\n && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).is($nextEl)\n ) {\n let isHidden;\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 if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\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 }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\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}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar Pagination$1 = {\n name: 'pagination',\n params: {\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', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !(0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar Scrollbar$1 = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n};\n\nvar Zoom$1 = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, sourceEl) => {\n const $source = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slideEl).attr('data-swiper-slide-index');\n }\n return (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slideEl).attr('data-swiper-slide-index') : (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\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 if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar A11y = {\n name: 'a11y',\n params: {\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 },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history || !ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.replaceState({ value }, null, value);\n } else {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history && ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.replaceState) {\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = ssr_window__WEBPACK_IMPORTED_MODULE_1__.document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(ssr_window__WEBPACK_IMPORTED_MODULE_1__.window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar Autoplay$1 = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\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 if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append(shadowAfter);\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 $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\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 (swiper.params.flipEffect.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 if (shadowBefore.length === 0) {\n shadowBefore = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append(shadowAfter);\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 $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n let translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n let translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(`
`);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && (0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt((0,dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__.$)(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n Virtual$1,\n Keyboard$1,\n Mousewheel$1,\n Navigation$1,\n Pagination$1,\n Scrollbar$1,\n Parallax$1,\n Zoom$1,\n Lazy$1,\n Controller$1,\n A11y,\n History$1,\n HashNavigation$1,\n Autoplay$1,\n EffectFade,\n EffectCube,\n EffectFlip,\n EffectCoverflow,\n Thumbs$1\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Swiper);\n//# sourceMappingURL=swiper.esm.bundle.js.map\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/swiper/js/swiper.esm.bundle.js?"); /***/ }), /***/ "./node_modules/axios/dist/browser/axios.cjs": /*!***************************************************!*\ !*** ./node_modules/axios/dist/browser/axios.cjs ***! \***************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("// Axios v1.4.0 Copyright (c) 2023 Matt Zabriskie and contributors\n\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : __webpack_require__.g)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nvar utils = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nvar platform = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nvar cookies = platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nvar isURLSameOrigin = platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nconst VERSION = \"1.4.0\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/axios/dist/browser/axios.cjs?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/DateRangePicker.js": /*!*****************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/DateRangePicker.js ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DateRangePicker)\n/* harmony export */ });\n/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/event.js */ \"./node_modules/vanillajs-datepicker/js/lib/event.js\");\n/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/date-format.js */ \"./node_modules/vanillajs-datepicker/js/lib/date-format.js\");\n/* harmony import */ var _Datepicker_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Datepicker.js */ \"./node_modules/vanillajs-datepicker/js/Datepicker.js\");\n\n\n\n\n// filter out the config options inapproprite to pass to Datepicker\nfunction filterOptions(options) {\n const newOpts = Object.assign({}, options);\n\n delete newOpts.inputs;\n delete newOpts.allowOneSidedRange;\n delete newOpts.maxNumberOfDates; // to ensure each datepicker handles a single date\n\n return newOpts;\n}\n\nfunction setupDatepicker(rangepicker, changeDateListener, el, options) {\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_0__.registerListeners)(rangepicker, [\n [el, 'changeDate', changeDateListener],\n ]);\n new _Datepicker_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](el, options, rangepicker);\n}\n\nfunction onChangeDate(rangepicker, ev) {\n // to prevent both datepickers trigger the other side's update each other\n if (rangepicker._updating) {\n return;\n }\n rangepicker._updating = true;\n\n const target = ev.target;\n if (target.datepicker === undefined) {\n return;\n }\n\n const datepickers = rangepicker.datepickers;\n const [datepicker0, datepicker1] = datepickers;\n const setDateOptions = {render: false};\n const changedSide = rangepicker.inputs.indexOf(target);\n const otherSide = changedSide === 0 ? 1 : 0;\n const changedDate = datepickers[changedSide].dates[0];\n const otherDate = datepickers[otherSide].dates[0];\n\n if (changedDate !== undefined && otherDate !== undefined) {\n // if the start of the range > the end, swap them\n if (changedSide === 0 && changedDate > otherDate) {\n datepicker0.setDate(otherDate, setDateOptions);\n datepicker1.setDate(changedDate, setDateOptions);\n } else if (changedSide === 1 && changedDate < otherDate) {\n datepicker0.setDate(changedDate, setDateOptions);\n datepicker1.setDate(otherDate, setDateOptions);\n }\n } else if (!rangepicker.allowOneSidedRange) {\n // to prevent the range from becoming one-sided, copy changed side's\n // selection (no matter if it's empty) to the other side\n if (changedDate !== undefined || otherDate !== undefined) {\n setDateOptions.clear = true;\n datepickers[otherSide].setDate(datepickers[changedSide].dates, setDateOptions);\n }\n }\n datepickers.forEach((datepicker) => {\n datepicker.picker.update().render();\n });\n delete rangepicker._updating;\n}\n\n/**\n * Class representing a date range picker\n */\nclass DateRangePicker {\n /**\n * Create a date range picker\n * @param {Element} element - element to bind a date range picker\n * @param {Object} [options] - config options\n */\n constructor(element, options = {}) {\n let inputs = Array.isArray(options.inputs)\n ? options.inputs\n : Array.from(element.querySelectorAll('input'));\n if (inputs.length < 2) {\n return;\n }\n\n element.rangepicker = this;\n this.element = element;\n this.inputs = inputs = inputs.slice(0, 2);\n Object.freeze(inputs);\n this.allowOneSidedRange = !!options.allowOneSidedRange;\n\n const changeDateListener = onChangeDate.bind(null, this);\n const cleanOptions = filterOptions(options);\n // in order for initial date setup to work right when pcicLvel > 0,\n // let Datepicker constructor add the instance to the rangepicker\n const datepickers = this.datepickers = [];\n inputs.forEach((input) => {\n setupDatepicker(this, changeDateListener, input, cleanOptions);\n });\n Object.freeze(datepickers);\n Object.defineProperty(this, 'dates', {\n get() {\n return datepickers.map(datepicker => datepicker.dates[0]);\n },\n });\n // normalize the range if inital dates are given\n if (datepickers[0].dates.length > 0) {\n onChangeDate(this, {target: inputs[0]});\n } else if (datepickers[1].dates.length > 0) {\n onChangeDate(this, {target: inputs[1]});\n }\n }\n\n /**\n * Set new values to the config options\n * @param {Object} options - config options to update\n */\n setOptions(options) {\n this.allowOneSidedRange = !!options.allowOneSidedRange;\n\n const cleanOptions = filterOptions(options);\n this.datepickers.forEach((datepicker) => {\n datepicker.setOptions(cleanOptions);\n });\n }\n\n /**\n * Destroy the DateRangePicker instance\n * @return {DateRangePicker} - the instance destroyed\n */\n destroy() {\n this.datepickers.forEach((datepicker) => {\n datepicker.destroy();\n });\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_0__.unregisterListeners)(this);\n delete this.element.rangepicker;\n }\n\n /**\n * Get the start and end dates of the date range\n *\n * The method returns Date objects by default. If format string is passed,\n * it returns date strings formatted in given format.\n * The result array always contains 2 items (start date/end date) and\n * undefined is used for unselected side. (e.g. If none is selected,\n * the result will be [undefined, undefined]. If only the end date is set\n * when allowOneSidedRange config option is true, [undefined, endDate] will\n * be returned.)\n *\n * @param {String} [format] - Format string to stringify the dates\n * @return {Array} - Start and end dates\n */\n getDates(format = undefined) {\n const callback = format\n ? date => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__.formatDate)(date, format, this.datepickers[0].config.locale)\n : date => new Date(date);\n\n return this.dates.map(date => date === undefined ? date : callback(date));\n }\n\n /**\n * Set the start and end dates of the date range\n *\n * The method calls datepicker.setDate() internally using each of the\n * arguments in start→end order.\n *\n * When a clear: true option object is passed instead of a date, the method\n * clears the date.\n *\n * If an invalid date, the same date as the current one or an option object\n * without clear: true is passed, the method considers that argument as an\n * \"ineffective\" argument because calling datepicker.setDate() with those\n * values makes no changes to the date selection.\n *\n * When the allowOneSidedRange config option is false, passing {clear: true}\n * to clear the range works only when it is done to the last effective\n * argument (in other words, passed to rangeEnd or to rangeStart along with\n * ineffective rangeEnd). This is because when the date range is changed,\n * it gets normalized based on the last change at the end of the changing\n * process.\n *\n * @param {Date|Number|String|Object} rangeStart - Start date of the range\n * or {clear: true} to clear the date\n * @param {Date|Number|String|Object} rangeEnd - End date of the range\n * or {clear: true} to clear the date\n */\n setDates(rangeStart, rangeEnd) {\n const {\n datepickers: [datepicker0, datepicker1],\n inputs: [input0, input1],\n dates: [origDate0, origDate1],\n } = this;\n\n // If range normalization runs on every change, we can't set a new range\n // that starts after the end of the current range correctly because the\n // normalization process swaps start↔︎end right after setting the new start\n // date. To prevent this, the normalization process needs to run once after\n // both of the new dates are set.\n this._updating = true;\n datepicker0.setDate(rangeStart);\n datepicker1.setDate(rangeEnd);\n delete this._updating;\n\n if (datepicker1.dates[0] !== origDate1) {\n onChangeDate(this, {target: input1});\n } else if (datepicker0.dates[0] !== origDate0) {\n onChangeDate(this, {target: input0});\n }\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/DateRangePicker.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/Datepicker.js": /*!************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/Datepicker.js ***! \************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Datepicker)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/date-format.js */ \"./node_modules/vanillajs-datepicker/js/lib/date-format.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/event.js */ \"./node_modules/vanillajs-datepicker/js/lib/event.js\");\n/* harmony import */ var _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./i18n/base-locales.js */ \"./node_modules/vanillajs-datepicker/js/i18n/base-locales.js\");\n/* harmony import */ var _options_defaultOptions_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./options/defaultOptions.js */ \"./node_modules/vanillajs-datepicker/js/options/defaultOptions.js\");\n/* harmony import */ var _options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./options/processOptions.js */ \"./node_modules/vanillajs-datepicker/js/options/processOptions.js\");\n/* harmony import */ var _options_shortcutKeys_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./options/shortcutKeys.js */ \"./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js\");\n/* harmony import */ var _picker_Picker_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./picker/Picker.js */ \"./node_modules/vanillajs-datepicker/js/picker/Picker.js\");\n/* harmony import */ var _events_functions_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./events/functions.js */ \"./node_modules/vanillajs-datepicker/js/events/functions.js\");\n/* harmony import */ var _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./events/elementListeners.js */ \"./node_modules/vanillajs-datepicker/js/events/elementListeners.js\");\n/* harmony import */ var _events_otherListeners_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./events/otherListeners.js */ \"./node_modules/vanillajs-datepicker/js/events/otherListeners.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction stringifyDates(dates, config) {\n return dates\n .map(dt => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(dt, config.format, config.locale))\n .join(config.dateDelimiter);\n}\n\n// parse input dates and create an array of time values for selection\n// returns undefined if there are no valid dates in inputDates\n// when origDates (current selection) is passed, the function works to mix\n// the input dates into the current selection\nfunction processInputDates(datepicker, inputDates, clear = false) {\n if (inputDates.length === 0) {\n // empty input is considered valid unless origiDates is passed\n return clear ? [] : undefined;\n }\n\n const {config, dates: origDates, rangeSideIndex} = datepicker;\n const {pickLevel, maxNumberOfDates} = config;\n let newDates = inputDates.reduce((dates, dt) => {\n let date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dt, config.format, config.locale);\n if (date === undefined) {\n return dates;\n }\n // adjust to 1st of the month/Jan 1st of the year\n // or to the last day of the monh/Dec 31st of the year if the datepicker\n // is the range-end picker of a rangepicker\n date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(date, pickLevel, rangeSideIndex);\n if (\n (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)(date, config.minDate, config.maxDate)\n && !dates.includes(date)\n && !config.checkDisabled(date, pickLevel)\n && (pickLevel > 0 || !config.daysOfWeekDisabled.includes(new Date(date).getDay()))\n ) {\n dates.push(date);\n }\n return dates;\n }, []);\n if (newDates.length === 0) {\n return;\n }\n if (config.multidate && !clear) {\n // get the synmetric difference between origDates and newDates\n newDates = newDates.reduce((dates, date) => {\n if (!origDates.includes(date)) {\n dates.push(date);\n }\n return dates;\n }, origDates.filter(date => !newDates.includes(date)));\n }\n // do length check always because user can input multiple dates regardless of the mode\n return maxNumberOfDates && newDates.length > maxNumberOfDates\n ? newDates.slice(maxNumberOfDates * -1)\n : newDates;\n}\n\n// refresh the UI elements\n// modes: 1: input only, 2, picker only, 3 both\nfunction refreshUI(datepicker, mode = 3, quickRender = true, viewDate = undefined) {\n const {config, picker, inputField} = datepicker;\n if (mode & 2) {\n const newView = picker.active ? config.pickLevel : config.startView;\n picker.update(viewDate).changeView(newView).render(quickRender);\n }\n if (mode & 1 && inputField) {\n inputField.value = stringifyDates(datepicker.dates, config);\n }\n}\n\nfunction setDate(datepicker, inputDates, options) {\n const config = datepicker.config;\n let {clear, render, autohide, revert, forceRefresh, viewDate} = options;\n if (render === undefined) {\n render = true;\n }\n if (!render) {\n autohide = forceRefresh = false;\n } else if (autohide === undefined) {\n autohide = config.autohide;\n }\n viewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(viewDate, config.format, config.locale);\n\n const newDates = processInputDates(datepicker, inputDates, clear);\n if (!newDates && !revert) {\n return;\n }\n if (newDates && newDates.toString() !== datepicker.dates.toString()) {\n datepicker.dates = newDates;\n refreshUI(datepicker, render ? 3 : 1, true, viewDate);\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_10__.triggerDatepickerEvent)(datepicker, 'changeDate');\n } else {\n refreshUI(datepicker, forceRefresh ? 3 : 1, true, viewDate);\n }\n\n if (autohide) {\n datepicker.hide();\n }\n}\n\nfunction getOutputConverter(datepicker, format) {\n return format\n ? date => (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(date, format, datepicker.config.locale)\n : date => new Date(date);\n}\n\n/**\n * Class representing a date picker\n */\nclass Datepicker {\n /**\n * Create a date picker\n * @param {Element} element - element to bind a date picker\n * @param {Object} [options] - config options\n * @param {DateRangePicker} [rangepicker] - DateRangePicker instance the\n * date picker belongs to. Use this only when creating date picker as a part\n * of date range picker\n */\n constructor(element, options = {}, rangepicker = undefined) {\n element.datepicker = this;\n this.element = element;\n this.dates = [];\n\n // initialize config\n const config = this.config = Object.assign({\n buttonClass: (options.buttonClass && String(options.buttonClass)) || 'button',\n container: null,\n defaultViewDate: (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)(),\n maxDate: undefined,\n minDate: undefined,\n }, (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(_options_defaultOptions_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"], this));\n\n // configure by type\n let inputField;\n if (element.tagName === 'INPUT') {\n inputField = this.inputField = element;\n inputField.classList.add('datepicker-input');\n if (options.container) {\n // omit string type check because it doesn't guarantee to avoid errors\n // (invalid selector string causes abend with sytax error)\n config.container = options.container instanceof HTMLElement\n ? options.container\n : document.querySelector(options.container);\n }\n } else {\n config.container = element;\n }\n if (rangepicker) {\n // check validiry\n const index = rangepicker.inputs.indexOf(inputField);\n const datepickers = rangepicker.datepickers;\n if (index < 0 || index > 1 || !Array.isArray(datepickers)) {\n throw Error('Invalid rangepicker object.');\n }\n // attach itaelf to the rangepicker here so that processInputDates() can\n // determine if this is the range-end picker of the rangepicker while\n // setting inital values when pickLevel > 0\n datepickers[index] = this;\n this.rangepicker = rangepicker;\n this.rangeSideIndex = index;\n }\n\n // set up config\n this._options = options;\n Object.assign(config, (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(options, this));\n config.shortcutKeys = (0,_options_shortcutKeys_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(options.shortcutKeys || {});\n\n // process initial value\n const initialDates = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.stringToArray)(\n element.value || element.dataset.date,\n config.dateDelimiter\n );\n delete element.dataset.date;\n const inputDateValues = processInputDates(this, initialDates);\n if (inputDateValues && inputDateValues.length > 0) {\n this.dates = inputDateValues;\n }\n if (inputField) {\n inputField.value = stringifyDates(this.dates, config);\n }\n\n // set up picekr element\n const picker = this.picker = new _picker_Picker_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this);\n\n const keydownListener = [element, 'keydown', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onKeydown.bind(null, this)];\n if (inputField) {\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.registerListeners)(this, [\n keydownListener,\n [inputField, 'focus', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onFocus.bind(null, this)],\n [inputField, 'mousedown', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onMousedown.bind(null, this)],\n [inputField, 'click', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onClickInput.bind(null, this)],\n [inputField, 'paste', _events_elementListeners_js__WEBPACK_IMPORTED_MODULE_11__.onPaste.bind(null, this)],\n // To detect a click on outside, just listening to mousedown is enough,\n // no need to listen to touchstart.\n // Actually, listening to touchstart can be a problem because, while\n // mousedown is fired only on tapping but not on swiping/pinching,\n // touchstart is fired on swiping/pinching as well.\n // (issue #95)\n [document, 'mousedown', _events_otherListeners_js__WEBPACK_IMPORTED_MODULE_12__.onClickOutside.bind(null, this)],\n [window, 'resize', picker.place.bind(picker)]\n ]);\n } else {\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.registerListeners)(this, [keydownListener]);\n this.show();\n }\n }\n\n /**\n * Format Date object or time value in given format and language\n * @param {Date|Number} date - date or time value to format\n * @param {String|Object} format - format string or object that contains\n * toDisplay() custom formatter, whose signature is\n * - args:\n * - date: {Date} - Date instance of the date passed to the method\n * - format: {Object} - the format object passed to the method\n * - locale: {Object} - locale for the language specified by `lang`\n * - return:\n * {String} formatted date\n * @param {String} [lang=en] - language code for the locale to use\n * @return {String} formatted date\n */\n static formatDate(date, format, lang) {\n return (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.formatDate)(date, format, lang && _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][lang] || _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].en);\n }\n\n /**\n * Parse date string\n * @param {String|Date|Number} dateStr - date string, Date object or time\n * value to parse\n * @param {String|Object} format - format string or object that contains\n * toValue() custom parser, whose signature is\n * - args:\n * - dateStr: {String|Date|Number} - the dateStr passed to the method\n * - format: {Object} - the format object passed to the method\n * - locale: {Object} - locale for the language specified by `lang`\n * - return:\n * {Date|Number} parsed date or its time value\n * @param {String} [lang=en] - language code for the locale to use\n * @return {Number} time value of parsed date\n */\n static parseDate(dateStr, format, lang) {\n return (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dateStr, format, lang && _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"][lang] || _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].en);\n }\n\n /**\n * @type {Object} - Installed locales in `[languageCode]: localeObject` format\n * en`:_English (US)_ is pre-installed.\n */\n static get locales() {\n return _i18n_base_locales_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n }\n\n /**\n * @type {Boolean} - Whether the picker element is shown. `true` whne shown\n */\n get active() {\n return !!(this.picker && this.picker.active);\n }\n\n /**\n * @type {HTMLDivElement} - DOM object of picker element\n */\n get pickerElement() {\n return this.picker ? this.picker.element : undefined;\n }\n\n /**\n * Set new values to the config options\n * @param {Object} options - config options to update\n */\n setOptions(options) {\n const newOptions = (0,_options_processOptions_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(options, this);\n Object.assign(this._options, options);\n Object.assign(this.config, newOptions);\n this.picker.setOptions(newOptions);\n\n refreshUI(this, 3);\n }\n\n /**\n * Show the picker element\n */\n show() {\n if (this.inputField) {\n const {config, inputField} = this;\n if (inputField.disabled || (inputField.readOnly && !config.enableOnReadonly)) {\n return;\n }\n if (!(0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.isActiveElement)(inputField) && !config.disableTouchKeyboard) {\n this._showing = true;\n inputField.focus();\n delete this._showing;\n }\n }\n this.picker.show();\n }\n\n /**\n * Hide the picker element\n * Not available on inline picker\n */\n hide() {\n if (!this.inputField) {\n return;\n }\n this.picker.hide();\n this.picker.update().changeView(this.config.startView).render();\n }\n\n /**\n * Toggle the display of the picker element\n * Not available on inline picker\n *\n * Unlike hide(), the picker does not return to the start view when hiding.\n */\n toggle() {\n if (!this.picker.active) {\n this.show();\n } else if (this.inputField) {\n this.picker.hide();\n }\n }\n\n /**\n * Destroy the Datepicker instance\n * @return {Detepicker} - the instance destroyed\n */\n destroy() {\n this.hide();\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_4__.unregisterListeners)(this);\n this.picker.detach();\n const element = this.element;\n element.classList.remove('datepicker-input');\n delete element.datepicker;\n return this;\n }\n\n /**\n * Get the selected date(s)\n *\n * The method returns a Date object of selected date by default, and returns\n * an array of selected dates in multidate mode. If format string is passed,\n * it returns date string(s) formatted in given format.\n *\n * @param {String} [format] - format string to stringify the date(s)\n * @return {Date|String|Date[]|String[]} - selected date(s), or if none is\n * selected, empty array in multidate mode and undefined in sigledate mode\n */\n getDate(format = undefined) {\n const callback = getOutputConverter(this, format);\n\n if (this.config.multidate) {\n return this.dates.map(callback);\n }\n if (this.dates.length > 0) {\n return callback(this.dates[0]);\n }\n }\n\n /**\n * Set selected date(s)\n *\n * In multidate mode, you can pass multiple dates as a series of arguments\n * or an array. (Since each date is parsed individually, the type of the\n * dates doesn't have to be the same.)\n * The given dates are used to toggle the select status of each date. The\n * number of selected dates is kept from exceeding the length set to\n * maxNumberOfDates.\n *\n * With clear: true option, the method can be used to clear the selection\n * and to replace the selection instead of toggling in multidate mode.\n * If the option is passed with no date arguments or an empty dates array,\n * it works as \"clear\" (clear the selection then set nothing), and if the\n * option is passed with new dates to select, it works as \"replace\" (clear\n * the selection then set the given dates)\n *\n * When render: false option is used, the method omits re-rendering the\n * picker element. In this case, you need to call refresh() method later in\n * order for the picker element to reflect the changes. The input field is\n * refreshed always regardless of this option.\n *\n * When invalid (unparsable, repeated, disabled or out-of-range) dates are\n * passed, the method ignores them and applies only valid ones. In the case\n * that all the given dates are invalid, which is distinguished from passing\n * no dates, the method considers it as an error and leaves the selection\n * untouched. (The input field also remains untouched unless revert: true\n * option is used.)\n * Replacing the selection with the same date(s) also causes a similar\n * situation. In both cases, the method does not refresh the picker element\n * unless forceRefresh: true option is used.\n *\n * If viewDate option is used, the method changes the focused date to the\n * specified date instead of the last item of the selection.\n *\n * @param {...(Date|Number|String)|Array} [dates] - Date strings, Date\n * objects, time values or mix of those for new selection\n * @param {Object} [options] - function options\n * - clear: {boolean} - Whether to clear the existing selection\n * defualt: false\n * - render: {boolean} - Whether to re-render the picker element\n * default: true\n * - autohide: {boolean} - Whether to hide the picker element after re-render\n * Ignored when used with render: false\n * default: config.autohide\n * - revert: {boolean} - Whether to refresh the input field when all the\n * passed dates are invalid\n * default: false\n * - forceRefresh: {boolean} - Whether to refresh the picker element when\n * passed dates don't change the existing selection\n * default: false\n * - viewDate: {Date|Number|String} - Date to be focused after setiing date(s)\n * default: The last item of the resulting selection, or defaultViewDate\n * config option if none is selected\n */\n setDate(...args) {\n const dates = [...args];\n const opts = {};\n const lastArg = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.lastItemOf)(args);\n if (\n lastArg\n && typeof lastArg === 'object'\n && !Array.isArray(lastArg)\n && !(lastArg instanceof Date)\n ) {\n Object.assign(opts, dates.pop());\n }\n\n const inputDates = Array.isArray(dates[0]) ? dates[0] : dates;\n setDate(this, inputDates, opts);\n }\n\n /**\n * Update the selected date(s) with input field's value\n * Not available on inline picker\n *\n * The input field will be refreshed with properly formatted date string.\n *\n * In the case that all the entered dates are invalid (unparsable, repeated,\n * disabled or out-of-range), which is distinguished from empty input field,\n * the method leaves the input field untouched as well as the selection by\n * default. If revert: true option is used in this case, the input field is\n * refreshed with the existing selection.\n * The method also doesn't refresh the picker element in this case and when\n * the entered dates are the same as the existing selection. If\n * forceRefresh: true option is used, the picker element is refreshed in\n * these cases too.\n *\n * @param {Object} [options] - function options\n * - autohide: {boolean} - whether to hide the picker element after refresh\n * default: false\n * - revert: {boolean} - Whether to refresh the input field when all the\n * passed dates are invalid\n * default: false\n * - forceRefresh: {boolean} - Whether to refresh the picer element when\n * input field's value doesn't change the existing selection\n * default: false\n */\n update(options = undefined) {\n if (!this.inputField) {\n return;\n }\n\n const opts = Object.assign(options || {}, {clear: true, render: true, viewDate: undefined});\n const inputDates = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.stringToArray)(this.inputField.value, this.config.dateDelimiter);\n setDate(this, inputDates, opts);\n }\n\n /**\n * Get the focused date\n *\n * The method returns a Date object of focused date by default. If format\n * string is passed, it returns date string formatted in given format.\n *\n * @param {String} [format] - format string to stringify the date\n * @return {Date|String} - focused date (viewDate)\n */\n getFocusedDate(format = undefined) {\n return getOutputConverter(this, format)(this.picker.viewDate);\n }\n\n /**\n * Set focused date\n *\n * By default, the method updates the focus on the view shown at the time,\n * or the one set to the startView config option if the picker is hidden.\n * When resetView: true is passed, the view displayed is changed to the\n * pickLevel config option's if the picker is shown.\n *\n * @param {Date|Number|String} viewDate - date string, Date object, time\n * values of the date to focus\n * @param {Boolean} [resetView] - whether to change the view to pickLevel\n * config option's when the picker is shown. Ignored when the picker is\n * hidden\n */\n setFocusedDate(viewDate, resetView = false) {\n const {config, picker, active, rangeSideIndex} = this;\n const pickLevel = config.pickLevel;\n const newViewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(viewDate, config.format, config.locale);\n if (newViewDate === undefined) {\n return;\n }\n\n picker.changeFocus((0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(newViewDate, pickLevel, rangeSideIndex));\n if (active && resetView) {\n picker.changeView(pickLevel);\n }\n picker.render();\n }\n\n /**\n * Refresh the picker element and the associated input field\n * @param {String} [target] - target item when refreshing one item only\n * 'picker' or 'input'\n * @param {Boolean} [forceRender] - whether to re-render the picker element\n * regardless of its state instead of optimized refresh\n */\n refresh(target = undefined, forceRender = false) {\n if (target && typeof target !== 'string') {\n forceRender = target;\n target = undefined;\n }\n\n let mode;\n if (target === 'picker') {\n mode = 2;\n } else if (target === 'input') {\n mode = 1;\n } else {\n mode = 3;\n }\n refreshUI(this, mode, !forceRender);\n }\n\n /**\n * Enter edit mode\n * Not available on inline picker or when the picker element is hidden\n */\n enterEditMode() {\n const inputField = this.inputField;\n if (!inputField || inputField.readOnly || !this.picker.active || this.editMode) {\n return;\n }\n this.editMode = true;\n inputField.classList.add('in-edit');\n }\n\n /**\n * Exit from edit mode\n * Not available on inline picker\n * @param {Object} [options] - function options\n * - update: {boolean} - whether to call update() after exiting\n * If false, input field is revert to the existing selection\n * default: false\n */\n exitEditMode(options = undefined) {\n if (!this.inputField || !this.editMode) {\n return;\n }\n const opts = Object.assign({update: false}, options);\n delete this.editMode;\n this.inputField.classList.remove('in-edit');\n if (opts.update) {\n this.update(opts);\n }\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/Datepicker.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/events/elementListeners.js": /*!*************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/events/elementListeners.js ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ onClickInput: () => (/* binding */ onClickInput),\n/* harmony export */ onFocus: () => (/* binding */ onFocus),\n/* harmony export */ onKeydown: () => (/* binding */ onKeydown),\n/* harmony export */ onMousedown: () => (/* binding */ onMousedown),\n/* harmony export */ onPaste: () => (/* binding */ onPaste)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./functions.js */ \"./node_modules/vanillajs-datepicker/js/events/functions.js\");\n\n\n\n\n\n// Find the closest date that doesn't meet the condition for unavailable date\n// Returns undefined if no available date is found\n// addFn: function to calculate the next date\n// - args: time value, amount\n// increase: amount to pass to addFn\n// testFn: function to test the unavailability of the date\n// - args: time value; return: true if unavailable\nfunction findNextAvailableOne(date, addFn, increase, testFn, min, max) {\n if (!(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)(date, min, max)) {\n return;\n }\n if (testFn(date)) {\n const newDate = addFn(date, increase);\n return findNextAvailableOne(newDate, addFn, increase, testFn, min, max);\n }\n return date;\n}\n\n// direction: -1 (left/up), 1 (right/down)\n// vertical: true for up/down, false for left/right\nfunction moveByArrowKey(datepicker, direction, vertical) {\n const picker = datepicker.picker;\n const currentView = picker.currentView;\n const step = currentView.step || 1;\n let viewDate = picker.viewDate;\n let addFn;\n switch (currentView.id) {\n case 0:\n viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addDays)(viewDate, vertical ? direction * 7 : direction);\n addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addDays;\n break;\n case 1:\n viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addMonths)(viewDate, vertical ? direction * 4 : direction);\n addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addMonths;\n break;\n default:\n viewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addYears)(viewDate, direction * (vertical ? 4 : 1) * step);\n addFn = _lib_date_js__WEBPACK_IMPORTED_MODULE_2__.addYears;\n }\n viewDate = findNextAvailableOne(\n viewDate,\n addFn,\n direction < 0 ? -step : step,\n (date) => currentView.disabled.includes(date),\n currentView.minDate,\n currentView.maxDate\n );\n if (viewDate !== undefined) {\n picker.changeFocus(viewDate).render();\n }\n}\n\nfunction onKeydown(datepicker, ev) {\n const {config, picker, editMode} = datepicker;\n const active = picker.active;\n const {key, altKey, shiftKey} = ev;\n const ctrlOrMetaKey = ev.ctrlKey || ev.metaKey;\n const cancelEvent = () => {\n ev.preventDefault();\n ev.stopPropagation();\n };\n\n // tab/enter keys should not be taken by shortcut keys\n if (key === 'Tab') {\n (0,_functions_js__WEBPACK_IMPORTED_MODULE_3__.unfocus)(datepicker);\n return;\n }\n if (key === 'Enter') {\n if (!active) {\n datepicker.update();\n } else if (editMode) {\n datepicker.exitEditMode({update: true, autohide: config.autohide});\n } else {\n const currentView = picker.currentView;\n if (currentView.isMinView) {\n datepicker.setDate(picker.viewDate);\n } else {\n picker.changeView(currentView.id - 1).render();\n cancelEvent();\n }\n }\n return;\n }\n\n const shortcutKeys = config.shortcutKeys;\n const keyInfo = {key, ctrlOrMetaKey, altKey, shiftKey};\n const shortcut = Object.keys(shortcutKeys).find((item) => {\n const keyDef = shortcutKeys[item];\n return !Object.keys(keyDef).find(prop => keyDef[prop] !== keyInfo[prop]);\n });\n if (shortcut) {\n let action;\n if (shortcut === 'toggle') {\n action = shortcut;\n } else if (editMode) {\n if (shortcut === 'exitEditMode') {\n action = shortcut;\n }\n } else if (active) {\n if (shortcut === 'hide') {\n action = shortcut;\n } else if (shortcut === 'prevButton') {\n action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToPrevOrNext, [datepicker, -1]];\n } else if (shortcut === 'nextButton') {\n action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToPrevOrNext, [datepicker, 1]];\n } else if (shortcut === 'viewSwitch') {\n action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.switchView, [datepicker]];\n } else if (config.clearButton && shortcut === 'clearButton') {\n action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.clearSelection, [datepicker]];\n } else if (config.todayButton && shortcut === 'todayButton') {\n action = [_functions_js__WEBPACK_IMPORTED_MODULE_3__.goToOrSelectToday, [datepicker]];\n }\n } else if (shortcut === 'show') {\n action = shortcut;\n }\n if (action) {\n if (Array.isArray(action)) {\n action[0].apply(null, action[1]);\n } else {\n datepicker[action]();\n }\n cancelEvent();\n return;\n }\n }\n\n // perform as a regular when picker in hidden or in edit mode\n if (!active || editMode) {\n return;\n }\n\n const handleArrowKeyPress = (direction, vertical) => {\n if (shiftKey || ctrlOrMetaKey || altKey) {\n datepicker.enterEditMode();\n } else {\n moveByArrowKey(datepicker, direction, vertical);\n ev.preventDefault();\n }\n };\n\n if (key === 'ArrowLeft') {\n handleArrowKeyPress(-1, false);\n } else if (key === 'ArrowRight') {\n handleArrowKeyPress(1, false);\n } else if (key === 'ArrowUp') {\n handleArrowKeyPress(-1, true);\n } else if (key === 'ArrowDown') {\n handleArrowKeyPress(1, true);\n } else if (\n key === 'Backspace'\n || key === 'Delete'\n // When autofill is performed, Chromium-based browsers trigger fake\n // keydown/keyup events that don't have the `key` property (on Edge,\n // keyup only) in addition to the input event. Therefore, we need to\n // check the existence of `key`'s value before checking the length.\n // (issue #144)\n || (key && key.length === 1 && !ctrlOrMetaKey)\n ) {\n datepicker.enterEditMode();\n }\n}\n\nfunction onFocus(datepicker) {\n if (datepicker.config.showOnFocus && !datepicker._showing) {\n datepicker.show();\n }\n}\n\n// for the prevention for entering edit mode while getting focus on click\nfunction onMousedown(datepicker, ev) {\n const el = ev.target;\n if (datepicker.picker.active || datepicker.config.showOnClick) {\n el._active = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.isActiveElement)(el);\n el._clicking = setTimeout(() => {\n delete el._active;\n delete el._clicking;\n }, 2000);\n }\n}\n\nfunction onClickInput(datepicker, ev) {\n const el = ev.target;\n if (!el._clicking) {\n return;\n }\n clearTimeout(el._clicking);\n delete el._clicking;\n\n if (el._active) {\n datepicker.enterEditMode();\n }\n delete el._active;\n\n if (datepicker.config.showOnClick) {\n datepicker.show();\n }\n}\n\nfunction onPaste(datepicker, ev) {\n if (ev.clipboardData.types.includes('text/plain')) {\n datepicker.enterEditMode();\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/events/elementListeners.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/events/functions.js": /*!******************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/events/functions.js ***! \******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearSelection: () => (/* binding */ clearSelection),\n/* harmony export */ goToOrSelectToday: () => (/* binding */ goToOrSelectToday),\n/* harmony export */ goToPrevOrNext: () => (/* binding */ goToPrevOrNext),\n/* harmony export */ switchView: () => (/* binding */ switchView),\n/* harmony export */ triggerDatepickerEvent: () => (/* binding */ triggerDatepickerEvent),\n/* harmony export */ unfocus: () => (/* binding */ unfocus)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n\n\n\n\nfunction triggerDatepickerEvent(datepicker, type) {\n const options = {\n bubbles: true,\n cancelable: true,\n detail: {\n date: datepicker.getDate(),\n viewDate: new Date(datepicker.picker.viewDate),\n viewId: datepicker.picker.currentView.id,\n datepicker,\n },\n };\n datepicker.element.dispatchEvent(new CustomEvent(type, options));\n}\n\n// direction: -1 (to previous), 1 (to next)\nfunction goToPrevOrNext(datepicker, direction) {\n const {config, picker} = datepicker;\n const {currentView, viewDate} = picker;\n let newViewDate;\n switch (currentView.id) {\n case 0:\n newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addMonths)(viewDate, direction);\n break;\n case 1:\n newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addYears)(viewDate, direction);\n break;\n default:\n newViewDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.addYears)(viewDate, direction * currentView.navStep);\n }\n newViewDate = (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.limitToRange)(newViewDate, config.minDate, config.maxDate);\n picker.changeFocus(newViewDate).render();\n}\n\nfunction switchView(datepicker) {\n const viewId = datepicker.picker.currentView.id;\n if (viewId === datepicker.config.maxView) {\n return;\n }\n datepicker.picker.changeView(viewId + 1).render();\n}\n\nfunction clearSelection(datepicker) {\n datepicker.setDate({clear: true});\n}\n\nfunction goToOrSelectToday(datepicker) {\n const currentDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)();\n if (datepicker.config.todayButtonMode === 1) {\n datepicker.setDate(currentDate, {forceRefresh: true, viewDate: currentDate});\n } else {\n datepicker.setFocusedDate(currentDate, true);\n }\n}\n\nfunction unfocus(datepicker) {\n const onBlur = () => {\n if (datepicker.config.updateOnBlur) {\n datepicker.update({revert: true});\n } else {\n datepicker.refresh('input');\n }\n datepicker.hide();\n };\n const element = datepicker.element;\n\n if ((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.isActiveElement)(element)) {\n element.addEventListener('blur', onBlur, {once: true});\n } else {\n onBlur();\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/events/functions.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/events/otherListeners.js": /*!***********************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/events/otherListeners.js ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ onClickOutside: () => (/* binding */ onClickOutside)\n/* harmony export */ });\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/event.js */ \"./node_modules/vanillajs-datepicker/js/lib/event.js\");\n/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ \"./node_modules/vanillajs-datepicker/js/events/functions.js\");\n\n\n\n\n// for the `document` to delegate the events from outside the picker/input field\nfunction onClickOutside(datepicker, ev) {\n const {element, picker} = datepicker;\n // check both picker's and input's activeness to make updateOnBlur work in\n // the cases where...\n // - picker is hidden by ESC key press → input stays focused\n // - input is unfocused by closing mobile keyboard → piker is kept shown\n if (!picker.active && !(0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_0__.isActiveElement)(element)) {\n return;\n }\n const pickerElem = picker.element;\n if ((0,_lib_event_js__WEBPACK_IMPORTED_MODULE_1__.findElementInEventPath)(ev, el => el === element || el === pickerElem)) {\n return;\n }\n (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.unfocus)(datepicker);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/events/otherListeners.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/events/pickerListeners.js": /*!************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/events/pickerListeners.js ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ onClickNextButton: () => (/* binding */ onClickNextButton),\n/* harmony export */ onClickPrevButton: () => (/* binding */ onClickPrevButton),\n/* harmony export */ onClickView: () => (/* binding */ onClickView),\n/* harmony export */ onClickViewSwitch: () => (/* binding */ onClickViewSwitch),\n/* harmony export */ onMousedownPicker: () => (/* binding */ onMousedownPicker)\n/* harmony export */ });\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/event.js */ \"./node_modules/vanillajs-datepicker/js/lib/event.js\");\n/* harmony import */ var _functions_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./functions.js */ \"./node_modules/vanillajs-datepicker/js/events/functions.js\");\n\n\n\n\nfunction goToSelectedMonthOrYear(datepicker, selection) {\n const picker = datepicker.picker;\n const viewDate = new Date(picker.viewDate);\n const viewId = picker.currentView.id;\n const newDate = viewId === 1\n ? (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addMonths)(viewDate, selection - viewDate.getMonth())\n : (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addYears)(viewDate, selection - viewDate.getFullYear());\n\n picker.changeFocus(newDate).changeView(viewId - 1).render();\n}\n\nfunction onClickViewSwitch(datepicker) {\n (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.switchView)(datepicker);\n}\n\nfunction onClickPrevButton(datepicker) {\n (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.goToPrevOrNext)(datepicker, -1);\n}\n\nfunction onClickNextButton(datepicker) {\n (0,_functions_js__WEBPACK_IMPORTED_MODULE_2__.goToPrevOrNext)(datepicker, 1);\n}\n\n// For the picker's main block to delegete the events from `datepicker-cell`s\nfunction onClickView(datepicker, ev) {\n const target = (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_1__.findElementInEventPath)(ev, '.datepicker-cell');\n if (!target || target.classList.contains('disabled')) {\n return;\n }\n\n const {id, isMinView} = datepicker.picker.currentView;\n const data = target.dataset;\n if (isMinView) {\n datepicker.setDate(Number(data.date));\n } else if (id === 1) {\n goToSelectedMonthOrYear(datepicker, Number(data.month));\n } else {\n goToSelectedMonthOrYear(datepicker, Number(data.year));\n }\n}\n\nfunction onMousedownPicker(ev) {\n ev.preventDefault();\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/events/pickerListeners.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/i18n/base-locales.js": /*!*******************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/i18n/base-locales.js ***! \*******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// default locales\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n en: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n today: \"Today\",\n clear: \"Clear\",\n titleFormat: \"MM y\"\n }\n});\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/i18n/base-locales.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/lib/date-format.js": /*!*****************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/lib/date-format.js ***! \*****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatDate: () => (/* binding */ formatDate),\n/* harmony export */ parseDate: () => (/* binding */ parseDate),\n/* harmony export */ reFormatTokens: () => (/* binding */ reFormatTokens),\n/* harmony export */ reNonDateParts: () => (/* binding */ reNonDateParts)\n/* harmony export */ });\n/* harmony import */ var _date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n\n\n\n// pattern for format parts\nconst reFormatTokens = /dd?|DD?|mm?|MM?|yy?(?:yy)?/;\n// pattern for non date parts\nconst reNonDateParts = /[\\s!-/:-@[-`{-~年月日]+/;\n// cache for persed formats\nlet knownFormats = {};\n// parse funtions for date parts\nconst parseFns = {\n y(date, year) {\n return new Date(date).setFullYear(parseInt(year, 10));\n },\n m(date, month, locale) {\n const newDate = new Date(date);\n let monthIndex = parseInt(month, 10) - 1;\n\n if (isNaN(monthIndex)) {\n if (!month) {\n return NaN;\n }\n\n const monthName = month.toLowerCase();\n const compareNames = name => name.toLowerCase().startsWith(monthName);\n // compare with both short and full names because some locales have periods\n // in the short names (not equal to the first X letters of the full names)\n monthIndex = locale.monthsShort.findIndex(compareNames);\n if (monthIndex < 0) {\n monthIndex = locale.months.findIndex(compareNames);\n }\n if (monthIndex < 0) {\n return NaN;\n }\n }\n\n newDate.setMonth(monthIndex);\n return newDate.getMonth() !== normalizeMonth(monthIndex)\n ? newDate.setDate(0)\n : newDate.getTime();\n },\n d(date, day) {\n return new Date(date).setDate(parseInt(day, 10));\n },\n};\n// format functions for date parts\nconst formatFns = {\n d(date) {\n return date.getDate();\n },\n dd(date) {\n return padZero(date.getDate(), 2);\n },\n D(date, locale) {\n return locale.daysShort[date.getDay()];\n },\n DD(date, locale) {\n return locale.days[date.getDay()];\n },\n m(date) {\n return date.getMonth() + 1;\n },\n mm(date) {\n return padZero(date.getMonth() + 1, 2);\n },\n M(date, locale) {\n return locale.monthsShort[date.getMonth()];\n },\n MM(date, locale) {\n return locale.months[date.getMonth()];\n },\n y(date) {\n return date.getFullYear();\n },\n yy(date) {\n return padZero(date.getFullYear(), 2).slice(-2);\n },\n yyyy(date) {\n return padZero(date.getFullYear(), 4);\n },\n};\n\n// get month index in normal range (0 - 11) from any number\nfunction normalizeMonth(monthIndex) {\n return monthIndex > -1 ? monthIndex % 12 : normalizeMonth(monthIndex + 12);\n}\n\nfunction padZero(num, length) {\n return num.toString().padStart(length, '0');\n}\n\nfunction parseFormatString(format) {\n if (typeof format !== 'string') {\n throw new Error(\"Invalid date format.\");\n }\n if (format in knownFormats) {\n return knownFormats[format];\n }\n\n // sprit the format string into parts and seprators\n const separators = format.split(reFormatTokens);\n const parts = format.match(new RegExp(reFormatTokens, 'g'));\n if (separators.length === 0 || !parts) {\n throw new Error(\"Invalid date format.\");\n }\n\n // collect format functions used in the format\n const partFormatters = parts.map(token => formatFns[token]);\n\n // collect parse function keys used in the format\n // iterate over parseFns' keys in order to keep the order of the keys.\n const partParserKeys = Object.keys(parseFns).reduce((keys, key) => {\n const token = parts.find(part => part[0] !== 'D' && part[0].toLowerCase() === key);\n if (token) {\n keys.push(key);\n }\n return keys;\n }, []);\n\n return knownFormats[format] = {\n parser(dateStr, locale) {\n const dateParts = dateStr.split(reNonDateParts).reduce((dtParts, part, index) => {\n if (part.length > 0 && parts[index]) {\n const token = parts[index][0];\n if (token === 'M') {\n dtParts.m = part;\n } else if (token !== 'D') {\n dtParts[token] = part;\n }\n }\n return dtParts;\n }, {});\n\n // iterate over partParserkeys so that the parsing is made in the oder\n // of year, month and day to prevent the day parser from correcting last\n // day of month wrongly\n return partParserKeys.reduce((origDate, key) => {\n const newDate = parseFns[key](origDate, dateParts[key], locale);\n // ingnore the part failed to parse\n return isNaN(newDate) ? origDate : newDate;\n }, (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.today)());\n },\n formatter(date, locale) {\n let dateStr = partFormatters.reduce((str, fn, index) => {\n return str += `${separators[index]}${fn(date, locale)}`;\n }, '');\n // separators' length is always parts' length + 1,\n return dateStr += (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.lastItemOf)(separators);\n },\n };\n}\n\nfunction parseDate(dateStr, format, locale) {\n if (dateStr instanceof Date || typeof dateStr === 'number') {\n const date = (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.stripTime)(dateStr);\n return isNaN(date) ? undefined : date;\n }\n if (!dateStr) {\n return undefined;\n }\n if (dateStr === 'today') {\n return (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.today)();\n }\n\n if (format && format.toValue) {\n const date = format.toValue(dateStr, format, locale);\n return isNaN(date) ? undefined : (0,_date_js__WEBPACK_IMPORTED_MODULE_0__.stripTime)(date);\n }\n\n return parseFormatString(format).parser(dateStr, locale);\n}\n\nfunction formatDate(date, format, locale) {\n if (isNaN(date) || (!date && date !== 0)) {\n return '';\n }\n\n const dateObj = typeof date === 'number' ? new Date(date) : date;\n\n if (format.toDisplay) {\n return format.toDisplay(dateObj, format, locale);\n }\n\n return parseFormatString(format).formatter(dateObj, locale);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/lib/date-format.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/lib/date.js": /*!**********************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/lib/date.js ***! \**********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDays: () => (/* binding */ addDays),\n/* harmony export */ addMonths: () => (/* binding */ addMonths),\n/* harmony export */ addWeeks: () => (/* binding */ addWeeks),\n/* harmony export */ addYears: () => (/* binding */ addYears),\n/* harmony export */ dateValue: () => (/* binding */ dateValue),\n/* harmony export */ dayOfTheWeekOf: () => (/* binding */ dayOfTheWeekOf),\n/* harmony export */ getIsoWeek: () => (/* binding */ getIsoWeek),\n/* harmony export */ getMidEasternWeek: () => (/* binding */ getMidEasternWeek),\n/* harmony export */ getWesternTradWeek: () => (/* binding */ getWesternTradWeek),\n/* harmony export */ regularizeDate: () => (/* binding */ regularizeDate),\n/* harmony export */ startOfYearPeriod: () => (/* binding */ startOfYearPeriod),\n/* harmony export */ stripTime: () => (/* binding */ stripTime),\n/* harmony export */ today: () => (/* binding */ today)\n/* harmony export */ });\nfunction stripTime(timeValue) {\n return new Date(timeValue).setHours(0, 0, 0, 0);\n}\n\nfunction today() {\n return new Date().setHours(0, 0, 0, 0);\n}\n\n// Get the time value of the start of given date or year, month and day\nfunction dateValue(...args) {\n switch (args.length) {\n case 0:\n return today();\n case 1:\n return stripTime(args[0]);\n }\n\n // use setFullYear() to keep 2-digit year from being mapped to 1900-1999\n const newDate = new Date(0);\n newDate.setFullYear(...args);\n return newDate.setHours(0, 0, 0, 0);\n}\n\nfunction addDays(date, amount) {\n const newDate = new Date(date);\n return newDate.setDate(newDate.getDate() + amount);\n}\n\nfunction addWeeks(date, amount) {\n return addDays(date, amount * 7);\n}\n\nfunction addMonths(date, amount) {\n // If the day of the date is not in the new month, the last day of the new\n // month will be returned. e.g. Jan 31 + 1 month → Feb 28 (not Mar 03)\n const newDate = new Date(date);\n const monthsToSet = newDate.getMonth() + amount;\n let expectedMonth = monthsToSet % 12;\n if (expectedMonth < 0) {\n expectedMonth += 12;\n }\n\n const time = newDate.setMonth(monthsToSet);\n return newDate.getMonth() !== expectedMonth ? newDate.setDate(0) : time;\n}\n\nfunction addYears(date, amount) {\n // If the date is Feb 29 and the new year is not a leap year, Feb 28 of the\n // new year will be returned.\n const newDate = new Date(date);\n const expectedMonth = newDate.getMonth();\n const time = newDate.setFullYear(newDate.getFullYear() + amount);\n return expectedMonth === 1 && newDate.getMonth() === 2 ? newDate.setDate(0) : time;\n}\n\n// Calculate the distance bettwen 2 days of the week\nfunction dayDiff(day, from) {\n return (day - from + 7) % 7;\n}\n\n// Get the date of the specified day of the week of given base date\nfunction dayOfTheWeekOf(baseDate, dayOfWeek, weekStart = 0) {\n const baseDay = new Date(baseDate).getDay();\n return addDays(baseDate, dayDiff(dayOfWeek, weekStart) - dayDiff(baseDay, weekStart));\n}\n\nfunction calcWeekNum(dayOfTheWeek, sameDayOfFirstWeek) {\n return Math.round((dayOfTheWeek - sameDayOfFirstWeek) / 604800000) + 1;\n}\n\n// Get the ISO week number of a date\nfunction getIsoWeek(date) {\n // - Start of ISO week is Monday\n // - Use Thursday for culculation because the first Thursday of ISO week is\n // always in January\n const thuOfTheWeek = dayOfTheWeekOf(date, 4, 1);\n // - Week 1 in ISO week is the week including Jan 04\n // - Use the Thu of given date's week (instead of given date itself) to\n // calculate week 1 of the year so that Jan 01 - 03 won't be miscalculated\n // as week 0 when Jan 04 is Mon - Wed\n const firstThu = dayOfTheWeekOf(new Date(thuOfTheWeek).setMonth(0, 4), 4, 1);\n // return Math.round((thuOfTheWeek - firstThu) / 604800000) + 1;\n return calcWeekNum(thuOfTheWeek, firstThu);\n}\n\n// Calculate week number in traditional week number system\n// @see https://en.wikipedia.org/wiki/Week#Other_week_numbering_systems\nfunction calcTraditionalWeekNumber(date, weekStart) {\n // - Week 1 of traditional week is the week including the Jan 01\n // - Use Jan 01 of given date's year to calculate the start of week 1\n const startOfFirstWeek = dayOfTheWeekOf(new Date(date).setMonth(0, 1), weekStart, weekStart);\n const startOfTheWeek = dayOfTheWeekOf(date, weekStart, weekStart);\n const weekNum = calcWeekNum(startOfTheWeek, startOfFirstWeek);\n if (weekNum < 53) {\n return weekNum;\n }\n // If the 53rd week includes Jan 01, it's actually next year's week 1\n const weekOneOfNextYear = dayOfTheWeekOf(new Date(date).setDate(32), weekStart, weekStart);\n return startOfTheWeek === weekOneOfNextYear ? 1 : weekNum;\n}\n\n// Get the Western traditional week number of a date\nfunction getWesternTradWeek(date) {\n // Start of Western traditionl week is Sunday\n return calcTraditionalWeekNumber(date, 0);\n}\n\n// Get the Middle Eastern week number of a date\nfunction getMidEasternWeek(date) {\n // Start of Middle Eastern week is Saturday\n return calcTraditionalWeekNumber(date, 6);\n}\n\n// Get the start year of the period of years that includes given date\n// years: length of the year period\nfunction startOfYearPeriod(date, years) {\n /* @see https://en.wikipedia.org/wiki/Year_zero#ISO_8601 */\n const year = new Date(date).getFullYear();\n return Math.floor(year / years) * years;\n}\n\n// Convert date to the first/last date of the month/year of the date\nfunction regularizeDate(date, timeSpan, useLastDate) {\n if (timeSpan !== 1 && timeSpan !== 2) {\n return date;\n }\n const newDate = new Date(date);\n if (timeSpan === 1) {\n useLastDate\n ? newDate.setMonth(newDate.getMonth() + 1, 0)\n : newDate.setDate(1);\n } else {\n useLastDate\n ? newDate.setFullYear(newDate.getFullYear() + 1, 0, 0)\n : newDate.setMonth(0, 1);\n }\n return newDate.setHours(0, 0, 0, 0);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/lib/date.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/lib/dom.js": /*!*********************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/lib/dom.js ***! \*********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ emptyChildNodes: () => (/* binding */ emptyChildNodes),\n/* harmony export */ getParent: () => (/* binding */ getParent),\n/* harmony export */ hideElement: () => (/* binding */ hideElement),\n/* harmony export */ isActiveElement: () => (/* binding */ isActiveElement),\n/* harmony export */ isVisible: () => (/* binding */ isVisible),\n/* harmony export */ parseHTML: () => (/* binding */ parseHTML),\n/* harmony export */ replaceChildNodes: () => (/* binding */ replaceChildNodes),\n/* harmony export */ showElement: () => (/* binding */ showElement)\n/* harmony export */ });\nconst range = document.createRange();\n\nfunction parseHTML(html) {\n return range.createContextualFragment(html);\n}\n\nfunction getParent(el) {\n return el.parentElement\n || (el.parentNode instanceof ShadowRoot ? el.parentNode.host : undefined);\n}\n\nfunction isActiveElement(el) {\n return el.getRootNode().activeElement === el;\n}\n\n// equivalent to jQuery's :visble\nfunction isVisible(el) {\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n}\n\nfunction hideElement(el) {\n if (el.style.display === 'none') {\n return;\n }\n // back up the existing display setting in data-style-display\n if (el.style.display) {\n el.dataset.styleDisplay = el.style.display;\n }\n el.style.display = 'none';\n}\n\nfunction showElement(el) {\n if (el.style.display !== 'none') {\n return;\n }\n if (el.dataset.styleDisplay) {\n // restore backed-up dispay property\n el.style.display = el.dataset.styleDisplay;\n delete el.dataset.styleDisplay;\n } else {\n el.style.display = '';\n }\n}\n\nfunction emptyChildNodes(el) {\n if (el.firstChild) {\n el.removeChild(el.firstChild);\n emptyChildNodes(el);\n }\n}\n\nfunction replaceChildNodes(el, newChildNodes) {\n emptyChildNodes(el);\n if (newChildNodes instanceof DocumentFragment) {\n el.appendChild(newChildNodes);\n } else if (typeof newChildNodes === 'string') {\n el.appendChild(parseHTML(newChildNodes));\n } else if (typeof newChildNodes.forEach === 'function') {\n newChildNodes.forEach((node) => {\n el.appendChild(node);\n });\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/lib/dom.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/lib/event.js": /*!***********************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/lib/event.js ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findElementInEventPath: () => (/* binding */ findElementInEventPath),\n/* harmony export */ registerListeners: () => (/* binding */ registerListeners),\n/* harmony export */ unregisterListeners: () => (/* binding */ unregisterListeners)\n/* harmony export */ });\nconst listenerRegistry = new WeakMap();\nconst {addEventListener, removeEventListener} = EventTarget.prototype;\n\n// Register event listeners to a key object\n// listeners: array of listener definitions;\n// - each definition must be a flat array of event target and the arguments\n// used to call addEventListener() on the target\nfunction registerListeners(keyObj, listeners) {\n let registered = listenerRegistry.get(keyObj);\n if (!registered) {\n registered = [];\n listenerRegistry.set(keyObj, registered);\n }\n listeners.forEach((listener) => {\n addEventListener.call(...listener);\n registered.push(listener);\n });\n}\n\nfunction unregisterListeners(keyObj) {\n let listeners = listenerRegistry.get(keyObj);\n if (!listeners) {\n return;\n }\n listeners.forEach((listener) => {\n removeEventListener.call(...listener);\n });\n listenerRegistry.delete(keyObj);\n}\n\n// Event.composedPath() polyfill for Edge\n// based on https://gist.github.com/kleinfreund/e9787d73776c0e3750dcfcdc89f100ec\nif (!Event.prototype.composedPath) {\n const getComposedPath = (node, path = []) => {\n path.push(node);\n\n let parent;\n if (node.parentNode) {\n parent = node.parentNode;\n } else if (node.host) { // ShadowRoot\n parent = node.host;\n } else if (node.defaultView) { // Document\n parent = node.defaultView;\n }\n return parent ? getComposedPath(parent, path) : path;\n };\n\n Event.prototype.composedPath = function () {\n return getComposedPath(this.target);\n };\n}\n\nfunction findFromPath(path, criteria, currentTarget) {\n const [node, ...rest] = path;\n if (criteria(node)) {\n return node;\n }\n if (node === currentTarget || node.tagName === 'HTML' || rest.length === 0) {\n // stop when reaching currentTarget or \n return;\n }\n return findFromPath(rest, criteria, currentTarget);\n}\n\n// Search for the actual target of a delegated event\nfunction findElementInEventPath(ev, selector) {\n const criteria = typeof selector === 'function'\n ? selector\n : el => el instanceof Element && el.matches(selector);\n return findFromPath(ev.composedPath(), criteria, ev.currentTarget);\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/lib/event.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/lib/utils.js": /*!***********************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/lib/utils.js ***! \***********************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createTagRepeat: () => (/* binding */ createTagRepeat),\n/* harmony export */ isInRange: () => (/* binding */ isInRange),\n/* harmony export */ lastItemOf: () => (/* binding */ lastItemOf),\n/* harmony export */ limitToRange: () => (/* binding */ limitToRange),\n/* harmony export */ optimizeTemplateHTML: () => (/* binding */ optimizeTemplateHTML),\n/* harmony export */ pushUnique: () => (/* binding */ pushUnique),\n/* harmony export */ stringToArray: () => (/* binding */ stringToArray)\n/* harmony export */ });\nfunction lastItemOf(arr) {\n return arr[arr.length - 1];\n}\n\n// push only the items not included in the array\nfunction pushUnique(arr, ...items) {\n items.forEach((item) => {\n if (arr.includes(item)) {\n return;\n }\n arr.push(item);\n });\n return arr;\n}\n\nfunction stringToArray(str, separator) {\n // convert empty string to an empty array\n return str ? str.split(separator) : [];\n}\n\nfunction isInRange(testVal, min, max) {\n const minOK = min === undefined || testVal >= min;\n const maxOK = max === undefined || testVal <= max;\n return minOK && maxOK;\n}\n\nfunction limitToRange(val, min, max) {\n if (val < min) {\n return min;\n }\n if (val > max) {\n return max;\n }\n return val;\n}\n\nfunction createTagRepeat(tagName, repeat, attributes = {}, index = 0, html = '') {\n const openTagSrc = Object.keys(attributes).reduce((src, attr) => {\n let val = attributes[attr];\n if (typeof val === 'function') {\n val = val(index);\n }\n return `${src} ${attr}=\"${val}\"`;\n }, tagName);\n html += `<${openTagSrc}>`;\n\n const next = index + 1;\n return next < repeat\n ? createTagRepeat(tagName, repeat, attributes, next, html)\n : html;\n}\n\n// Remove the spacing surrounding tags for HTML parser not to create text nodes\n// before/after elements\nfunction optimizeTemplateHTML(html) {\n return html.replace(/>\\s+/g, '>').replace(/\\s+ { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DateRangePicker: () => (/* reexport safe */ _DateRangePicker_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ Datepicker: () => (/* reexport safe */ _Datepicker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _Datepicker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Datepicker.js */ \"./node_modules/vanillajs-datepicker/js/Datepicker.js\");\n/* harmony import */ var _DateRangePicker_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DateRangePicker.js */ \"./node_modules/vanillajs-datepicker/js/DateRangePicker.js\");\n\n\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/main.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/options/defaultOptions.js": /*!************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/options/defaultOptions.js ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// config options updatable by setOptions() and their default values\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n autohide: false,\n beforeShowDay: null,\n beforeShowDecade: null,\n beforeShowMonth: null,\n beforeShowYear: null,\n clearButton: false,\n dateDelimiter: ',',\n datesDisabled: [],\n daysOfWeekDisabled: [],\n daysOfWeekHighlighted: [],\n defaultViewDate: undefined, // placeholder, defaults to today() by the program\n disableTouchKeyboard: false,\n enableOnReadonly: true,\n format: 'mm/dd/yyyy',\n language: 'en',\n maxDate: null,\n maxNumberOfDates: 1,\n maxView: 3,\n minDate: null,\n nextArrow: '»',\n orientation: 'auto',\n pickLevel: 0,\n prevArrow: '«',\n showDaysOfWeek: true,\n showOnClick: true,\n showOnFocus: true,\n startView: 0,\n title: '',\n todayButton: false,\n todayButtonMode: 0,\n todayHighlight: false,\n updateOnBlur: true,\n weekNumbers: 0,\n weekStart: 0,\n});\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/options/defaultOptions.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/options/processOptions.js": /*!************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/options/processOptions.js ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ processOptions)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/date-format.js */ \"./node_modules/vanillajs-datepicker/js/lib/date-format.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultOptions.js */ \"./node_modules/vanillajs-datepicker/js/options/defaultOptions.js\");\n\n\n\n\n\n\nconst {\n language: defaultLang,\n format: defaultFormat,\n weekStart: defaultWeekStart,\n} = _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n\n// Reducer function to filter out invalid day-of-week from the input\nfunction sanitizeDOW(dow, day) {\n return dow.length < 6 && day >= 0 && day < 7\n ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(dow, day)\n : dow;\n}\n\nfunction determineGetWeekMethod(numberingMode, weekStart) {\n const methodId = numberingMode === 4\n ? (weekStart === 6 ? 3 : !weekStart + 1)\n : numberingMode;\n switch (methodId) {\n case 1:\n return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getIsoWeek;\n case 2:\n return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getWesternTradWeek;\n case 3:\n return _lib_date_js__WEBPACK_IMPORTED_MODULE_1__.getMidEasternWeek;\n }\n}\n\nfunction updateWeekStart(newValue, config, weekNumbers) {\n config.weekStart = newValue;\n config.weekEnd = (newValue + 6) % 7;\n if (weekNumbers === 4) {\n config.getWeekNumber = determineGetWeekMethod(4, newValue);\n }\n return newValue;\n}\n\n// validate input date. if invalid, fallback to the original value\nfunction validateDate(value, format, locale, origValue) {\n const date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(value, format, locale);\n return date !== undefined ? date : origValue;\n}\n\n// Validate viewId. if invalid, fallback to the original value\nfunction validateViewId(value, origValue, max = 3) {\n const viewId = parseInt(value, 10);\n return viewId >= 0 && viewId <= max ? viewId : origValue;\n}\n\nfunction replaceOptions(options, from, to, convert = undefined) {\n if (from in options) {\n if (!(to in options)) {\n options[to] = convert ? convert(options[from]) : options[from];\n }\n delete options[from];\n }\n}\n\n// Create Datepicker configuration to set\nfunction processOptions(options, datepicker) {\n const inOpts = Object.assign({}, options);\n const config = {};\n const locales = datepicker.constructor.locales;\n const rangeEnd = !!datepicker.rangeSideIndex;\n let {\n datesDisabled,\n format,\n language,\n locale,\n maxDate,\n maxView,\n minDate,\n pickLevel,\n startView,\n weekNumbers,\n weekStart,\n } = datepicker.config || {};\n\n // for backword compatibility\n replaceOptions(inOpts, 'calendarWeeks', 'weekNumbers', val => val ? 1 : 0);\n replaceOptions(inOpts, 'clearBtn', 'clearButton');\n replaceOptions(inOpts, 'todayBtn', 'todayButton');\n replaceOptions(inOpts, 'todayBtnMode', 'todayButtonMode');\n\n if (inOpts.language) {\n let lang;\n if (inOpts.language !== language) {\n if (locales[inOpts.language]) {\n lang = inOpts.language;\n } else {\n // Check if langauge + region tag can fallback to the one without\n // region (e.g. fr-CA → fr)\n lang = inOpts.language.split('-')[0];\n if (!locales[lang]) {\n lang = false;\n }\n }\n }\n delete inOpts.language;\n if (lang) {\n language = config.language = lang;\n\n // update locale as well when updating language\n const origLocale = locale || locales[defaultLang];\n // use default language's properties for the fallback\n locale = Object.assign({\n format: defaultFormat,\n weekStart: defaultWeekStart\n }, locales[defaultLang]);\n if (language !== defaultLang) {\n Object.assign(locale, locales[language]);\n }\n config.locale = locale;\n // if format and/or weekStart are the same as old locale's defaults,\n // update them to new locale's defaults\n if (format === origLocale.format) {\n format = config.format = locale.format;\n }\n if (weekStart === origLocale.weekStart) {\n weekStart = updateWeekStart(locale.weekStart, config, weekNumbers);\n }\n }\n }\n\n if (inOpts.format) {\n const hasToDisplay = typeof inOpts.format.toDisplay === 'function';\n const hasToValue = typeof inOpts.format.toValue === 'function';\n const validFormatString = _lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.reFormatTokens.test(inOpts.format);\n if ((hasToDisplay && hasToValue) || validFormatString) {\n format = config.format = inOpts.format;\n }\n delete inOpts.format;\n }\n\n //*** pick level ***//\n let newPickLevel = pickLevel;\n if ('pickLevel' in inOpts) {\n newPickLevel = validateViewId(inOpts.pickLevel, pickLevel, 2);\n delete inOpts.pickLevel;\n }\n if (newPickLevel !== pickLevel) {\n if (newPickLevel > pickLevel) {\n // complement current minDate/madDate so that the existing range will be\n // expanded to fit the new level later\n if (!('minDate' in inOpts)) {\n inOpts.minDate = minDate;\n }\n if (!('maxDate' in inOpts)) {\n inOpts.maxDate = maxDate;\n }\n }\n // complement datesDisabled so that it will be reset later\n if (datesDisabled && !inOpts.datesDisabled) {\n inOpts.datesDisabled = [];\n }\n pickLevel = config.pickLevel = newPickLevel;\n }\n\n //*** dates ***//\n // while min and maxDate for \"no limit\" in the options are better to be null\n // (especially when updating), the ones in the config have to be undefined\n // because null is treated as 0 (= unix epoch) when comparing with time value\n let minDt = minDate;\n let maxDt = maxDate;\n if ('minDate' in inOpts) {\n const defaultMinDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(0, 0, 1);\n minDt = inOpts.minDate === null\n ? defaultMinDt // set 0000-01-01 to prevent negative values for year\n : validateDate(inOpts.minDate, format, locale, minDt);\n if (minDt !== defaultMinDt) {\n minDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(minDt, pickLevel, false);\n }\n delete inOpts.minDate;\n }\n if ('maxDate' in inOpts) {\n maxDt = inOpts.maxDate === null\n ? undefined\n : validateDate(inOpts.maxDate, format, locale, maxDt);\n if (maxDt !== undefined) {\n maxDt = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(maxDt, pickLevel, true);\n }\n delete inOpts.maxDate;\n }\n if (maxDt < minDt) {\n minDate = config.minDate = maxDt;\n maxDate = config.maxDate = minDt;\n } else {\n if (minDate !== minDt) {\n minDate = config.minDate = minDt;\n }\n if (maxDate !== maxDt) {\n maxDate = config.maxDate = maxDt;\n }\n }\n\n if (inOpts.datesDisabled) {\n const dtsDisabled = inOpts.datesDisabled;\n if (typeof dtsDisabled === 'function') {\n config.datesDisabled = null;\n config.checkDisabled = (timeValue, viewId) => dtsDisabled(\n new Date(timeValue),\n viewId,\n rangeEnd\n );\n } else {\n const disabled = config.datesDisabled = dtsDisabled.reduce((dates, dt) => {\n const date = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(dt, format, locale);\n return date !== undefined\n ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(dates, (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(date, pickLevel, rangeEnd))\n : dates;\n }, []);\n config.checkDisabled = timeValue => disabled.includes(timeValue);\n }\n delete inOpts.datesDisabled;\n }\n if ('defaultViewDate' in inOpts) {\n const viewDate = (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_2__.parseDate)(inOpts.defaultViewDate, format, locale);\n if (viewDate !== undefined) {\n config.defaultViewDate = viewDate;\n }\n delete inOpts.defaultViewDate;\n }\n\n //*** days of week ***//\n if ('weekStart' in inOpts) {\n const wkStart = Number(inOpts.weekStart) % 7;\n if (!isNaN(wkStart)) {\n weekStart = updateWeekStart(wkStart, config, weekNumbers);\n }\n delete inOpts.weekStart;\n }\n if (inOpts.daysOfWeekDisabled) {\n config.daysOfWeekDisabled = inOpts.daysOfWeekDisabled.reduce(sanitizeDOW, []);\n delete inOpts.daysOfWeekDisabled;\n }\n if (inOpts.daysOfWeekHighlighted) {\n config.daysOfWeekHighlighted = inOpts.daysOfWeekHighlighted.reduce(sanitizeDOW, []);\n delete inOpts.daysOfWeekHighlighted;\n }\n\n //*** week numbers ***//\n if ('weekNumbers' in inOpts) {\n let method = inOpts.weekNumbers;\n if (method) {\n const getWeekNumber = typeof method === 'function'\n ? (timeValue, startOfWeek) => method(new Date(timeValue), startOfWeek)\n : determineGetWeekMethod((method = parseInt(method, 10)), weekStart);\n if (getWeekNumber) {\n weekNumbers = config.weekNumbers = method;\n config.getWeekNumber = getWeekNumber;\n }\n } else {\n weekNumbers = config.weekNumbers = 0;\n config.getWeekNumber = null;\n }\n delete inOpts.weekNumbers;\n }\n\n //*** multi date ***//\n if ('maxNumberOfDates' in inOpts) {\n const maxNumberOfDates = parseInt(inOpts.maxNumberOfDates, 10);\n if (maxNumberOfDates >= 0) {\n config.maxNumberOfDates = maxNumberOfDates;\n config.multidate = maxNumberOfDates !== 1;\n }\n delete inOpts.maxNumberOfDates;\n }\n if (inOpts.dateDelimiter) {\n config.dateDelimiter = String(inOpts.dateDelimiter);\n delete inOpts.dateDelimiter;\n }\n\n //*** view ***//\n let newMaxView = maxView;\n if ('maxView' in inOpts) {\n newMaxView = validateViewId(inOpts.maxView, maxView);\n delete inOpts.maxView;\n }\n // ensure max view >= pick level\n newMaxView = pickLevel > newMaxView ? pickLevel : newMaxView;\n if (newMaxView !== maxView) {\n maxView = config.maxView = newMaxView;\n }\n\n let newStartView = startView;\n if ('startView' in inOpts) {\n newStartView = validateViewId(inOpts.startView, newStartView);\n delete inOpts.startView;\n }\n // ensure pick level <= start view <= max view\n if (newStartView < pickLevel) {\n newStartView = pickLevel;\n } else if (newStartView > maxView) {\n newStartView = maxView;\n }\n if (newStartView !== startView) {\n config.startView = newStartView;\n }\n\n //*** template ***//\n if (inOpts.prevArrow) {\n const prevArrow = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.parseHTML)(inOpts.prevArrow);\n if (prevArrow.childNodes.length > 0) {\n config.prevArrow = prevArrow.childNodes;\n }\n delete inOpts.prevArrow;\n }\n if (inOpts.nextArrow) {\n const nextArrow = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_3__.parseHTML)(inOpts.nextArrow);\n if (nextArrow.childNodes.length > 0) {\n config.nextArrow = nextArrow.childNodes;\n }\n delete inOpts.nextArrow;\n }\n\n //*** misc ***//\n if ('disableTouchKeyboard' in inOpts) {\n config.disableTouchKeyboard = 'ontouchstart' in document && !!inOpts.disableTouchKeyboard;\n delete inOpts.disableTouchKeyboard;\n }\n if (inOpts.orientation) {\n const orientation = inOpts.orientation.toLowerCase().split(/\\s+/g);\n config.orientation = {\n x: orientation.find(x => (x === 'left' || x === 'right')) || 'auto',\n y: orientation.find(y => (y === 'top' || y === 'bottom')) || 'auto',\n };\n delete inOpts.orientation;\n }\n if ('todayButtonMode' in inOpts) {\n switch(inOpts.todayButtonMode) {\n case 0:\n case 1:\n config.todayButtonMode = inOpts.todayButtonMode;\n }\n delete inOpts.todayButtonMode;\n }\n\n //*** copy the rest ***//\n Object.entries(inOpts).forEach(([key, value]) => {\n if (value !== undefined && key in _defaultOptions_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]) {\n config[key] = value;\n }\n });\n\n return config;\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/options/processOptions.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js": /*!**********************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js ***! \**********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createShortcutKeyConfig)\n/* harmony export */ });\nconst defaultShortcutKeys = {\n show: {key: 'ArrowDown'},\n hide: null,\n toggle: {key: 'Escape'},\n prevButton: {key: 'ArrowLeft', ctrlOrMetaKey: true},\n nextButton: {key: 'ArrowRight', ctrlOrMetaKey: true},\n viewSwitch: {key: 'ArrowUp', ctrlOrMetaKey: true},\n clearButton: {key: 'Backspace', ctrlOrMetaKey: true},\n todayButton: {key: '.', ctrlOrMetaKey: true},\n exitEditMode: {key: 'ArrowDown', ctrlOrMetaKey: true},\n};\n\nfunction createShortcutKeyConfig(options) {\n return Object.keys(defaultShortcutKeys).reduce((keyDefs, shortcut) => {\n const keyDef = options[shortcut] === undefined\n ? defaultShortcutKeys[shortcut]\n : options[shortcut];\n const key = keyDef && keyDef.key;\n if (!key || typeof key !== 'string') {\n return keyDefs;\n }\n\n const normalizedDef = {\n key,\n ctrlOrMetaKey: !!(keyDef.ctrlOrMetaKey || keyDef.ctrlKey || keyDef.metaKey),\n };\n if (key.length > 1) {\n normalizedDef.altKey = !!keyDef.altKey;\n normalizedDef.shiftKey = !!keyDef.shiftKey;\n }\n keyDefs[shortcut] = normalizedDef;\n return keyDefs;\n }, {});\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/options/shortcutKeys.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/Picker.js": /*!***************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/Picker.js ***! \***************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Picker)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _lib_event_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/event.js */ \"./node_modules/vanillajs-datepicker/js/lib/event.js\");\n/* harmony import */ var _templates_pickerTemplate_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./templates/pickerTemplate.js */ \"./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js\");\n/* harmony import */ var _views_DaysView_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./views/DaysView.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js\");\n/* harmony import */ var _views_MonthsView_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./views/MonthsView.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js\");\n/* harmony import */ var _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./views/YearsView.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js\");\n/* harmony import */ var _events_functions_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../events/functions.js */ \"./node_modules/vanillajs-datepicker/js/events/functions.js\");\n/* harmony import */ var _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../events/pickerListeners.js */ \"./node_modules/vanillajs-datepicker/js/events/pickerListeners.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst orientClasses = ['left', 'top', 'right', 'bottom'].reduce((obj, key) => {\n obj[key] = `datepicker-orient-${key}`;\n return obj;\n}, {});\nconst toPx = num => num ? `${num}px` : num;\n\nfunction processPickerOptions(picker, options) {\n if ('title' in options) {\n if (options.title) {\n picker.controls.title.textContent = options.title;\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.title);\n } else {\n picker.controls.title.textContent = '';\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.title);\n }\n }\n if (options.prevArrow) {\n const prevButton = picker.controls.prevButton;\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.emptyChildNodes)(prevButton);\n options.prevArrow.forEach((node) => {\n prevButton.appendChild(node.cloneNode(true));\n });\n }\n if (options.nextArrow) {\n const nextButton = picker.controls.nextButton;\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.emptyChildNodes)(nextButton);\n options.nextArrow.forEach((node) => {\n nextButton.appendChild(node.cloneNode(true));\n });\n }\n if (options.locale) {\n picker.controls.todayButton.textContent = options.locale.today;\n picker.controls.clearButton.textContent = options.locale.clear;\n }\n if ('todayButton' in options) {\n if (options.todayButton) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.todayButton);\n } else {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.todayButton);\n }\n }\n if ('minDate' in options || 'maxDate' in options) {\n const {minDate, maxDate} = picker.datepicker.config;\n picker.controls.todayButton.disabled = !(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.isInRange)((0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.today)(), minDate, maxDate);\n }\n if ('clearButton' in options) {\n if (options.clearButton) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(picker.controls.clearButton);\n } else {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(picker.controls.clearButton);\n }\n }\n}\n\n// Compute view date to reset, which will be...\n// - the last item of the selected dates or defaultViewDate if no selection\n// - limitted to minDate or maxDate if it exceeds the range\nfunction computeResetViewDate(datepicker) {\n const {dates, config, rangeSideIndex} = datepicker;\n const viewDate = dates.length > 0\n ? (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.lastItemOf)(dates)\n : (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(config.defaultViewDate, config.pickLevel, rangeSideIndex);\n return (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.limitToRange)(viewDate, config.minDate, config.maxDate);\n}\n\n// Change current view's view date\nfunction setViewDate(picker, newDate) {\n if (!('_oldViewDate' in picker) && newDate !== picker.viewDate) {\n picker._oldViewDate = picker.viewDate;\n }\n picker.viewDate = newDate;\n\n // return whether the new date is in different period on time from the one\n // displayed in the current view\n // when true, the view needs to be re-rendered on the next UI refresh.\n const {id, year, first, last} = picker.currentView;\n const viewYear = new Date(newDate).getFullYear();\n switch (id) {\n case 0:\n return newDate < first || newDate > last;\n case 1:\n return viewYear !== year;\n default:\n return viewYear < first || viewYear > last;\n }\n}\n\nfunction getTextDirection(el) {\n return window.getComputedStyle(el).direction;\n}\n\n// find the closet scrollable ancestor elemnt under the body\nfunction findScrollParents(el) {\n const parent = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.getParent)(el);\n if (parent === document.body || !parent) {\n return;\n }\n\n // checking overflow only is enough because computed overflow cannot be\n // visible or a combination of visible and other when either axis is set\n // to other than visible.\n // (Setting one axis to other than 'visible' while the other is 'visible'\n // results in the other axis turning to 'auto')\n return window.getComputedStyle(parent).overflow !== 'visible'\n ? parent\n : findScrollParents(parent);\n}\n\n// Class representing the picker UI\nclass Picker {\n constructor(datepicker) {\n const {config, inputField} = this.datepicker = datepicker;\n\n const template = _templates_pickerTemplate_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].replace(/%buttonClass%/g, config.buttonClass);\n const element = this.element = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(template).firstChild;\n const [header, main, footer] = element.firstChild.children;\n const title = header.firstElementChild;\n const [prevButton, viewSwitch, nextButton] = header.lastElementChild.children;\n const [todayButton, clearButton] = footer.firstChild.children;\n const controls = {\n title,\n prevButton,\n viewSwitch,\n nextButton,\n todayButton,\n clearButton,\n };\n this.main = main;\n this.controls = controls;\n\n const elementClass = inputField ? 'dropdown' : 'inline';\n element.classList.add(`datepicker-${elementClass}`);\n\n processPickerOptions(this, config);\n this.viewDate = computeResetViewDate(datepicker);\n\n // set up event listeners\n (0,_lib_event_js__WEBPACK_IMPORTED_MODULE_3__.registerListeners)(datepicker, [\n [element, 'mousedown', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onMousedownPicker],\n [main, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickView.bind(null, datepicker)],\n [controls.viewSwitch, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickViewSwitch.bind(null, datepicker)],\n [controls.prevButton, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickPrevButton.bind(null, datepicker)],\n [controls.nextButton, 'click', _events_pickerListeners_js__WEBPACK_IMPORTED_MODULE_9__.onClickNextButton.bind(null, datepicker)],\n [controls.todayButton, 'click', _events_functions_js__WEBPACK_IMPORTED_MODULE_8__.goToOrSelectToday.bind(null, datepicker)],\n [controls.clearButton, 'click', _events_functions_js__WEBPACK_IMPORTED_MODULE_8__.clearSelection.bind(null, datepicker)],\n ]);\n\n // set up views\n this.views = [\n new _views_DaysView_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](this),\n new _views_MonthsView_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this),\n new _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this, {id: 2, name: 'years', cellClass: 'year', step: 1}),\n new _views_YearsView_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this, {id: 3, name: 'decades', cellClass: 'decade', step: 10}),\n ];\n this.currentView = this.views[config.startView];\n\n this.currentView.render();\n this.main.appendChild(this.currentView.element);\n if (config.container) {\n config.container.appendChild(this.element);\n } else {\n inputField.after(this.element);\n }\n }\n\n setOptions(options) {\n processPickerOptions(this, options);\n this.views.forEach((view) => {\n view.init(options, false);\n });\n this.currentView.render();\n }\n\n detach() {\n this.element.remove();\n }\n\n show() {\n if (this.active) {\n return;\n }\n\n const {datepicker, element} = this;\n const inputField = datepicker.inputField;\n if (inputField) {\n // ensure picker's direction matches input's\n const inputDirection = getTextDirection(inputField);\n if (inputDirection !== getTextDirection((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.getParent)(element))) {\n element.dir = inputDirection;\n } else if (element.dir) {\n element.removeAttribute('dir');\n }\n\n // Determine the picker's position first to prevent `orientation: 'auto'`\n // from being miscalculated to 'bottom' after the picker temporarily\n // shown below the input field expands the document height if the field\n // is at the bottom edge of the document\n this.place();\n element.classList.add('active');\n\n if (datepicker.config.disableTouchKeyboard) {\n inputField.blur();\n }\n } else {\n element.classList.add('active');\n }\n this.active = true;\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'show');\n }\n\n hide() {\n if (!this.active) {\n return;\n }\n this.datepicker.exitEditMode();\n this.element.classList.remove('active');\n this.active = false;\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(this.datepicker, 'hide');\n }\n\n place() {\n const {classList, style} = this.element;\n // temporarily display the picker to get its size and offset parent\n style.display = 'block';\n\n const {\n width: calendarWidth,\n height: calendarHeight,\n } = this.element.getBoundingClientRect();\n const offsetParent = this.element.offsetParent;\n // turn the picker back to hidden so that the position is determined with\n // the state before it is shown.\n style.display = '';\n\n const {config, inputField} = this.datepicker;\n const {\n left: inputLeft,\n top: inputTop,\n right: inputRight,\n bottom: inputBottom,\n width: inputWidth,\n height: inputHeight\n } = inputField.getBoundingClientRect();\n let {x: orientX, y: orientY} = config.orientation;\n let left = inputLeft;\n let top = inputTop;\n\n // caliculate offsetLeft/Top of inputField\n if (offsetParent === document.body || !offsetParent) {\n left += window.scrollX;\n top += window.scrollY;\n } else {\n const offsetParentRect = offsetParent.getBoundingClientRect();\n left -= offsetParentRect.left - offsetParent.scrollLeft;\n top -= offsetParentRect.top - offsetParent.scrollTop;\n }\n\n // caliculate the boundaries of the visible area that contains inputField\n const scrollParent = findScrollParents(inputField);\n let scrollAreaLeft = 0;\n let scrollAreaTop = 0;\n let {\n clientWidth: scrollAreaRight,\n clientHeight: scrollAreaBottom,\n } = document.documentElement;\n\n if (scrollParent) {\n const scrollParentRect = scrollParent.getBoundingClientRect();\n if (scrollParentRect.top > 0) {\n scrollAreaTop = scrollParentRect.top;\n }\n if (scrollParentRect.left > 0) {\n scrollAreaLeft = scrollParentRect.left;\n }\n if (scrollParentRect.right < scrollAreaRight) {\n scrollAreaRight = scrollParentRect.right;\n }\n if (scrollParentRect.bottom < scrollAreaBottom) {\n scrollAreaBottom = scrollParentRect.bottom;\n }\n }\n\n // determine the horizontal orientation and left position\n let adjustment = 0;\n if (orientX === 'auto') {\n if (inputLeft < scrollAreaLeft) {\n orientX = 'left';\n adjustment = scrollAreaLeft - inputLeft;\n } else if (inputLeft + calendarWidth > scrollAreaRight) {\n orientX = 'right';\n if (scrollAreaRight < inputRight) {\n adjustment = scrollAreaRight - inputRight;\n }\n } else if (getTextDirection(inputField) === 'rtl') {\n orientX = inputRight - calendarWidth < scrollAreaLeft ? 'left' : 'right';\n } else {\n orientX = 'left';\n }\n }\n if (orientX === 'right') {\n left += inputWidth - calendarWidth;\n }\n left += adjustment;\n\n // determine the vertical orientation and top position\n if (orientY === 'auto') {\n if (inputTop - calendarHeight > scrollAreaTop) {\n orientY = inputBottom + calendarHeight > scrollAreaBottom ? 'top' : 'bottom';\n } else {\n orientY = 'bottom';\n }\n }\n if (orientY === 'top') {\n top -= calendarHeight;\n } else {\n top += inputHeight;\n }\n\n classList.remove(...Object.values(orientClasses));\n classList.add(orientClasses[orientX], orientClasses[orientY]);\n\n style.left = toPx(left);\n style.top = toPx(top);\n }\n\n setViewSwitchLabel(labelText) {\n this.controls.viewSwitch.textContent = labelText;\n }\n\n setPrevButtonDisabled(disabled) {\n this.controls.prevButton.disabled = disabled;\n }\n\n setNextButtonDisabled(disabled) {\n this.controls.nextButton.disabled = disabled;\n }\n\n changeView(viewId) {\n const currentView = this.currentView;\n if (viewId !== currentView.id) {\n if (!this._oldView) {\n this._oldView = currentView;\n }\n this.currentView = this.views[viewId];\n this._renderMethod = 'render';\n }\n return this;\n }\n\n // Change the focused date (view date)\n changeFocus(newViewDate) {\n this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refreshFocus';\n this.views.forEach((view) => {\n view.updateFocus();\n });\n return this;\n }\n\n // Apply the change of the selected dates\n update(viewDate = undefined) {\n const newViewDate = viewDate === undefined\n ? computeResetViewDate(this.datepicker)\n : viewDate;\n this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refresh';\n this.views.forEach((view) => {\n view.updateFocus();\n view.updateSelection();\n });\n return this;\n }\n\n // Refresh the picker UI\n render(quickRender = true) {\n const {currentView, datepicker, _oldView: oldView} = this;\n const oldViewDate = new Date(this._oldViewDate);\n const renderMethod = (quickRender && this._renderMethod) || 'render';\n delete this._oldView;\n delete this._oldViewDate;\n delete this._renderMethod;\n\n currentView[renderMethod]();\n if (oldView) {\n this.main.replaceChild(currentView.element, oldView.element);\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeView');\n }\n if (!isNaN(oldViewDate)) {\n const newViewDate = new Date(this.viewDate);\n if (newViewDate.getFullYear() !== oldViewDate.getFullYear()) {\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeYear');\n }\n if (newViewDate.getMonth() !== oldViewDate.getMonth()) {\n (0,_events_functions_js__WEBPACK_IMPORTED_MODULE_8__.triggerDatepickerEvent)(datepicker, 'changeMonth');\n }\n }\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/Picker.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js": /*!*******************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js ***! \*******************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`
\n
${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 7, {class: 'dow'})}
\n
${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 42)}
\n
`));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js": /*!*********************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js ***! \*********************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n\n\nconst getButtons = buttonList => buttonList\n .map(classes => ``)\n .join('');\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`
\n
\n
\n
\n
\n ${getButtons([\n 'prev-button prev-btn',\n 'view-switch',\n 'next-button next-btn',\n ])}\n
\n
\n
\n
\n
\n ${getButtons([\n 'today-button today-btn',\n 'clear-button clear-btn',\n ])}\n
\n
\n
\n
`));\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js": /*!**************************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js ***! \**************************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.optimizeTemplateHTML)(`
\n
\n
${(0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 6, {class: 'week'})}
\n
`));\n\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js": /*!***********************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js ***! \***********************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DaysView)\n/* harmony export */ });\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date-format.js */ \"./node_modules/vanillajs-datepicker/js/lib/date-format.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _templates_daysTemplate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../templates/daysTemplate.js */ \"./node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js\");\n/* harmony import */ var _templates_weekNumbersTemplate_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../templates/weekNumbersTemplate.js */ \"./node_modules/vanillajs-datepicker/js/picker/templates/weekNumbersTemplate.js\");\n/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./View.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/View.js\");\n\n\n\n\n\n\n\nclass DaysView extends _View_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"] {\n constructor(picker) {\n super(picker, {\n id: 0,\n name: 'days',\n cellClass: 'day',\n });\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n const inner = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(_templates_daysTemplate_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]).firstChild;\n this.dow = inner.firstChild;\n this.grid = inner.lastChild;\n this.element.appendChild(inner);\n }\n super.init(options);\n }\n\n setOptions(options) {\n let updateDOW;\n\n if ('minDate' in options) {\n this.minDate = options.minDate;\n }\n if ('maxDate' in options) {\n this.maxDate = options.maxDate;\n }\n if (options.checkDisabled) {\n this.checkDisabled = options.checkDisabled;\n }\n if (options.daysOfWeekDisabled) {\n this.daysOfWeekDisabled = options.daysOfWeekDisabled;\n updateDOW = true;\n }\n if (options.daysOfWeekHighlighted) {\n this.daysOfWeekHighlighted = options.daysOfWeekHighlighted;\n }\n if ('todayHighlight' in options) {\n this.todayHighlight = options.todayHighlight;\n }\n if ('weekStart' in options) {\n this.weekStart = options.weekStart;\n this.weekEnd = options.weekEnd;\n updateDOW = true;\n }\n if (options.locale) {\n const locale = this.locale = options.locale;\n this.dayNames = locale.daysMin;\n this.switchLabelFormat = locale.titleFormat;\n updateDOW = true;\n }\n if ('beforeShowDay' in options) {\n this.beforeShow = typeof options.beforeShowDay === 'function'\n ? options.beforeShowDay\n : undefined;\n }\n\n if ('weekNumbers' in options) {\n if (options.weekNumbers && !this.weekNumbers) {\n const weeksElem = (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)(_templates_weekNumbersTemplate_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]).firstChild;\n this.weekNumbers = {\n element: weeksElem,\n dow: weeksElem.firstChild,\n weeks: weeksElem.lastChild,\n };\n this.element.insertBefore(weeksElem, this.element.firstChild);\n } else if (this.weekNumbers && !options.weekNumbers) {\n this.element.removeChild(this.weekNumbers.element);\n this.weekNumbers = null;\n }\n }\n\n if ('getWeekNumber' in options) {\n this.getWeekNumber = options.getWeekNumber;\n }\n\n if ('showDaysOfWeek' in options) {\n if (options.showDaysOfWeek) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(this.dow);\n if (this.weekNumbers) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.showElement)(this.weekNumbers.dow);\n }\n } else {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(this.dow);\n if (this.weekNumbers) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.hideElement)(this.weekNumbers.dow);\n }\n }\n }\n\n // update days-of-week when locale, daysOfweekDisabled or weekStart is changed\n if (updateDOW) {\n Array.from(this.dow.children).forEach((el, index) => {\n const dow = (this.weekStart + index) % 7;\n el.textContent = this.dayNames[dow];\n el.className = this.daysOfWeekDisabled.includes(dow) ? 'dow disabled' : 'dow';\n });\n }\n }\n\n // Apply update on the focused date to view's settings\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n const firstOfMonth = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dateValue)(viewYear, viewMonth, 1);\n const start = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dayOfTheWeekOf)(firstOfMonth, this.weekStart, this.weekStart);\n\n this.first = firstOfMonth;\n this.last = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dateValue)(viewYear, viewMonth + 1, 0);\n this.start = start;\n this.focused = this.picker.viewDate;\n }\n\n // Apply update on the selected dates to view's settings\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates;\n if (rangepicker) {\n this.range = rangepicker.dates;\n }\n }\n\n // Update the entire view UI\n render() {\n // update today marker on ever render\n this.today = this.todayHighlight ? (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.today)() : undefined;\n\n this.prepareForRender(\n (0,_lib_date_format_js__WEBPACK_IMPORTED_MODULE_1__.formatDate)(this.focused, this.switchLabelFormat, this.locale),\n this.first <= this.minDate,\n this.last >= this.maxDate\n );\n\n if (this.weekNumbers) {\n const weekStart = this.weekStart;\n const startOfWeek = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.dayOfTheWeekOf)(this.first, weekStart, weekStart);\n Array.from(this.weekNumbers.weeks.children).forEach((el, index) => {\n const dateOfWeekStart = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addWeeks)(startOfWeek, index);\n el.textContent = this.getWeekNumber(dateOfWeekStart, weekStart);\n if (index > 3) {\n el.classList[dateOfWeekStart > this.last ? 'add' : 'remove']('next');\n }\n });\n }\n Array.from(this.grid.children).forEach((el, index) => {\n const current = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_0__.addDays)(this.start, index);\n const dateObj = new Date(current);\n const day = dateObj.getDay();\n const extraClasses = [];\n\n if (this.today === current) {\n extraClasses.push('today');\n }\n if (this.daysOfWeekHighlighted.includes(day)) {\n extraClasses.push('highlighted');\n }\n\n this.renderCell(\n el,\n dateObj.getDate(),\n current,\n current,\n this,\n current < this.minDate\n || current > this.maxDate\n || this.daysOfWeekDisabled.includes(day),\n extraClasses\n );\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const range = this.range || [];\n Array.from(this.grid.children).forEach((el) => {\n this.refreshCell(el, Number(el.dataset.date), this.selected, range);\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n this.changeFocusedCell(Math.round((this.focused - this.start) / 86400000));\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/views/DaysView.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js": /*!*************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js ***! \*************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MonthsView)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./View.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/View.js\");\n\n\n\n\n\nfunction computeMonthRange(range, thisYear) {\n if (!range || !range[0] || !range[1]) {\n return;\n }\n\n const [[startY, startM], [endY, endM]] = range;\n if (startY > thisYear || endY < thisYear) {\n return;\n }\n return [\n startY === thisYear ? startM : -1,\n endY === thisYear ? endM : 12,\n ];\n}\n\nclass MonthsView extends _View_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n constructor(picker) {\n super(picker, {\n id: 1,\n name: 'months',\n cellClass: 'month',\n });\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n this.grid = this.element;\n this.element.classList.add('months', 'datepicker-grid');\n this.grid.appendChild((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 12, {'data-month': ix => ix})));\n this.first = 0;\n this.last = 11;\n }\n super.init(options);\n }\n\n setOptions(options) {\n if (options.locale) {\n this.monthNames = options.locale.monthsShort;\n }\n if ('minDate' in options) {\n if (options.minDate === undefined) {\n this.minYear = this.minMonth = this.minDate = undefined;\n } else {\n const minDateObj = new Date(options.minDate);\n this.minYear = minDateObj.getFullYear();\n this.minMonth = minDateObj.getMonth();\n this.minDate = minDateObj.setDate(1);\n }\n }\n if ('maxDate' in options) {\n if (options.maxDate === undefined) {\n this.maxYear = this.maxMonth = this.maxDate = undefined;\n } else {\n const maxDateObj = new Date(options.maxDate);\n this.maxYear = maxDateObj.getFullYear();\n this.maxMonth = maxDateObj.getMonth();\n this.maxDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.maxYear, this.maxMonth + 1, 0);\n }\n }\n if (options.checkDisabled) {\n this.checkDisabled = this.isMinView || options.datesDisabled === null\n ? options.checkDisabled\n : () => false;\n }\n if ('beforeShowMonth' in options) {\n this.beforeShow = typeof options.beforeShowMonth === 'function'\n ? options.beforeShowMonth\n : undefined;\n }\n }\n\n // Update view's settings to reflect the viewDate set on the picker\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n this.year = viewDate.getFullYear();\n this.focused = viewDate.getMonth();\n }\n\n // Update view's settings to reflect the selected dates\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates.reduce((selected, timeValue) => {\n const date = new Date(timeValue);\n const year = date.getFullYear();\n const month = date.getMonth();\n if (selected[year] === undefined) {\n selected[year] = [month];\n } else {\n (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(selected[year], month);\n }\n return selected;\n }, {});\n if (rangepicker && rangepicker.dates) {\n this.range = rangepicker.dates.map(timeValue => {\n const date = new Date(timeValue);\n return isNaN(date) ? undefined : [date.getFullYear(), date.getMonth()];\n });\n }\n }\n\n // Update the entire view UI\n render() {\n this.prepareForRender(\n this.year,\n this.year <= this.minYear,\n this.year >= this.maxYear\n );\n\n const selected = this.selected[this.year] || [];\n const yrOutOfRange = this.year < this.minYear || this.year > this.maxYear;\n const isMinYear = this.year === this.minYear;\n const isMaxYear = this.year === this.maxYear;\n const range = computeMonthRange(this.range, this.year);\n\n Array.from(this.grid.children).forEach((el, index) => {\n const date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(new Date(this.year, index, 1), 1, this.isRangeEnd);\n\n this.renderCell(\n el,\n this.monthNames[index],\n index,\n date,\n {selected, range},\n yrOutOfRange\n || isMinYear && index < this.minMonth\n || isMaxYear && index > this.maxMonth\n );\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const selected = this.selected[this.year] || [];\n const range = computeMonthRange(this.range, this.year) || [];\n Array.from(this.grid.children).forEach((el, index) => {\n this.refreshCell(el, index, selected, range);\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n this.changeFocusedCell(this.focused);\n }\n}\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/views/View.js": /*!*******************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/views/View.js ***! \*******************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ View)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n\n\n\n// Base class of the view classes\nclass View {\n constructor(picker, config) {\n Object.assign(this, config, {\n picker,\n element: (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.parseHTML)(`
`).firstChild,\n selected: [],\n isRangeEnd: !!picker.datepicker.rangeSideIndex,\n });\n this.init(this.picker.datepicker.config);\n }\n\n init(options) {\n if ('pickLevel' in options) {\n this.isMinView = this.id === options.pickLevel;\n }\n this.setOptions(options);\n this.updateFocus();\n this.updateSelection();\n }\n\n prepareForRender(switchLabel, prevButtonDisabled, nextButtonDisabled) {\n // refresh disabled years on every render in order to clear the ones added\n // by beforeShow hook at previous render\n this.disabled = [];\n\n const picker = this.picker;\n picker.setViewSwitchLabel(switchLabel);\n picker.setPrevButtonDisabled(prevButtonDisabled);\n picker.setNextButtonDisabled(nextButtonDisabled);\n }\n\n setDisabled(date, classList) {\n classList.add('disabled');\n (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(this.disabled, date);\n }\n\n // Execute beforeShow() callback and apply the result to the element\n // args:\n performBeforeHook(el, timeValue) {\n let result = this.beforeShow(new Date(timeValue));\n switch (typeof result) {\n case 'boolean':\n result = {enabled: result};\n break;\n case 'string':\n result = {classes: result};\n }\n\n if (result) {\n const classList = el.classList;\n if (result.enabled === false) {\n this.setDisabled(timeValue, classList);\n }\n if (result.classes) {\n const extraClasses = result.classes.split(/\\s+/);\n classList.add(...extraClasses);\n if (extraClasses.includes('disabled')) {\n this.setDisabled(timeValue, classList);\n }\n }\n if (result.content) {\n (0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_1__.replaceChildNodes)(el, result.content);\n }\n }\n }\n\n renderCell(el, content, cellVal, date, {selected, range}, outOfScope, extraClasses = []) {\n el.textContent = content;\n if (this.isMinView) {\n el.dataset.date = date;\n }\n\n const classList = el.classList;\n el.className = `datepicker-cell ${this.cellClass}`;\n if (cellVal < this.first) {\n classList.add('prev');\n } else if (cellVal > this.last) {\n classList.add('next');\n }\n classList.add(...extraClasses);\n if (outOfScope || this.checkDisabled(date, this.id)) {\n this.setDisabled(date, classList);\n }\n if (range) {\n const [rangeStart, rangeEnd] = range;\n if (cellVal > rangeStart && cellVal < rangeEnd) {\n classList.add('range');\n }\n if (cellVal === rangeStart) {\n classList.add('range-start');\n }\n if (cellVal === rangeEnd) {\n classList.add('range-end');\n }\n }\n if (selected.includes(cellVal)) {\n classList.add('selected');\n }\n if (cellVal === this.focused) {\n classList.add('focused');\n }\n\n if (this.beforeShow) {\n this.performBeforeHook(el, date);\n }\n }\n\n refreshCell(el, cellVal, selected, [rangeStart, rangeEnd]) {\n const classList = el.classList;\n classList.remove('range', 'range-start', 'range-end', 'selected', 'focused');\n if (cellVal > rangeStart && cellVal < rangeEnd) {\n classList.add('range');\n }\n if (cellVal === rangeStart) {\n classList.add('range-start');\n }\n if (cellVal === rangeEnd) {\n classList.add('range-end');\n }\n if (selected.includes(cellVal)) {\n classList.add('selected');\n }\n if (cellVal === this.focused) {\n classList.add('focused');\n }\n }\n\n changeFocusedCell(cellIndex) {\n this.grid.querySelectorAll('.focused').forEach((el) => {\n el.classList.remove('focused');\n });\n this.grid.children[cellIndex].classList.add('focused');\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/views/View.js?"); /***/ }), /***/ "./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js": /*!************************************************************************!*\ !*** ./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js ***! \************************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ YearsView)\n/* harmony export */ });\n/* harmony import */ var _lib_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../lib/utils.js */ \"./node_modules/vanillajs-datepicker/js/lib/utils.js\");\n/* harmony import */ var _lib_date_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/date.js */ \"./node_modules/vanillajs-datepicker/js/lib/date.js\");\n/* harmony import */ var _lib_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../lib/dom.js */ \"./node_modules/vanillajs-datepicker/js/lib/dom.js\");\n/* harmony import */ var _View_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./View.js */ \"./node_modules/vanillajs-datepicker/js/picker/views/View.js\");\n\n\n\n\n\nfunction toTitleCase(word) {\n return [...word].reduce((str, ch, ix) => str += ix ? ch : ch.toUpperCase(), '');\n}\n\n// Class representing the years and decades view elements\nclass YearsView extends _View_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {\n constructor(picker, config) {\n super(picker, config);\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n this.navStep = this.step * 10;\n this.beforeShowOption = `beforeShow${toTitleCase(this.cellClass)}`;\n this.grid = this.element;\n this.element.classList.add(this.name, 'datepicker-grid');\n this.grid.appendChild((0,_lib_dom_js__WEBPACK_IMPORTED_MODULE_2__.parseHTML)((0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.createTagRepeat)('span', 12)));\n }\n super.init(options);\n }\n\n setOptions(options) {\n if ('minDate' in options) {\n if (options.minDate === undefined) {\n this.minYear = this.minDate = undefined;\n } else {\n this.minYear = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(options.minDate, this.step);\n this.minDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.minYear, 0, 1);\n }\n }\n if ('maxDate' in options) {\n if (options.maxDate === undefined) {\n this.maxYear = this.maxDate = undefined;\n } else {\n this.maxYear = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(options.maxDate, this.step);\n this.maxDate = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.dateValue)(this.maxYear, 11, 31);\n }\n }\n if (options.checkDisabled) {\n this.checkDisabled = this.isMinView || options.datesDisabled === null\n ? options.checkDisabled\n : () => false;\n }\n if (this.beforeShowOption in options) {\n const beforeShow = options[this.beforeShowOption];\n this.beforeShow = typeof beforeShow === 'function' ? beforeShow : undefined;\n }\n }\n\n // Update view's settings to reflect the viewDate set on the picker\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n const first = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(viewDate, this.navStep);\n const last = first + 9 * this.step;\n\n this.first = first;\n this.last = last;\n this.start = first - this.step;\n this.focused = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(viewDate, this.step);\n }\n\n // Update view's settings to reflect the selected dates\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates.reduce((years, timeValue) => {\n return (0,_lib_utils_js__WEBPACK_IMPORTED_MODULE_0__.pushUnique)(years, (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(timeValue, this.step));\n }, []);\n if (rangepicker && rangepicker.dates) {\n this.range = rangepicker.dates.map(timeValue => {\n if (timeValue !== undefined) {\n return (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.startOfYearPeriod)(timeValue, this.step);\n }\n });\n }\n }\n\n // Update the entire view UI\n render() {\n this.prepareForRender(\n `${this.first}-${this.last}`,\n this.first <= this.minYear,\n this.last >= this.maxYear\n );\n\n Array.from(this.grid.children).forEach((el, index) => {\n const current = this.start + (index * this.step);\n const date = (0,_lib_date_js__WEBPACK_IMPORTED_MODULE_1__.regularizeDate)(new Date(current, 0, 1), 2, this.isRangeEnd);\n\n el.dataset.year = current;\n this.renderCell(\n el,\n current,\n current,\n date,\n this,\n current < this.minYear || current > this.maxYear\n );\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const range = this.range || [];\n Array.from(this.grid.children).forEach((el) => {\n this.refreshCell(el, Number(el.textContent), this.selected, range);\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n this.changeFocusedCell(Math.round((this.focused - this.start) / this.step));\n }\n}\n\n\n//# sourceURL=webpack://starter-theme/./node_modules/vanillajs-datepicker/js/picker/views/YearsView.js?"); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/global */ /******/ (() => { /******/ __webpack_require__.g = (function() { /******/ if (typeof globalThis === 'object') return globalThis; /******/ try { /******/ return this || new Function('return this')(); /******/ } catch (e) { /******/ if (typeof window === 'object') return window; /******/ } /******/ })(); /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ /******/ /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module can't be inlined because the eval devtool is used. /******/ var __webpack_exports__ = __webpack_require__("./src/scripts/layout/theme.js"); /******/ /******/ })() ;