{"version":3,"file":"js/app.2368288d82c84782eafe.js","mappings":"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AAW,6BACZ,CAACC,GAAQ,0DACT,CAACC,GAAY,4DACb,CAACC,GAAiB,0GAClB,CAACC,GAAiB,qDAClB,CAACC,GAAiB,sDAClB,CAACC,GAAS,6CACV,CAACC,GAAQ,kDACT,CAACC,GAAY,sCACb,CAACC,GAAe,4CAChB,CAACC,GAAe,iCAChB,CAACC,GAAgB,mDACjB,CAACC,GAAU,8CACX,CAACC,GAAa,mDACd,CAACC,GAAa,iCACd,CAACC,GAAa,iCACd,CAACC,GAAW,iFACZ,CAACC,GAAS,mCACV,CAACC,GAAQ,wCACT,CAACC,GAAW,2BACZ,CAACC,GAAc,oCACf,CAACC,GAAS,4BA4BN8G,GAxBS,CACb,CAACnI,GAAW,oCACZ,CAACC,GAAQ,gDACT,CAACC,GAAY,kDACb,CAACC,GAAiB,iFAClB,CAACC,GAAiB,iDAClB,CAACC,GAAiB,mDAClB,CAACC,GAAS,2CACV,CAACC,GAAQ,kDACT,CAACC,GAAY,+BACb,CAACC,GAAe,iCAChB,CAACC,GAAe,+BAChB,CAACC,GAAgB,+DACjB,CAACC,GAAU,2CACX,CAACC,GAAa,gEACd,CAACC,GAAa,wBACd,CAACC,GAAa,0BACd,CAACC,GAAW,iEACZ,CAACC,GAAS,wCACV,CAACC,GAAQ,+CACT,CAACC,GAAW,+BACZ,CAACC,GAAc,kCACf,CAACC,GAAS,uBA4BN+G,GAxBS,CACb,CAACpI,GAAW,qCACZ,CAACC,GAAQ,qCACT,CAACC,GAAY,uCACb,CAACC,GAAiB,kEAClB,CAACC,GAAiB,uDAClB,CAACC,GAAiB,0CAClB,CAACC,GAAS,8CACV,CAACC,GAAQ,sCACT,CAACC,GAAY,oCACb,CAACC,GAAe,uCAChB,CAACC,GAAe,oCAChB,CAACC,GAAgB,6CACjB,CAACC,GAAU,gDACX,CAACC,GAAa,0CACd,CAACC,GAAa,4BACd,CAACC,GAAa,2BACd,CAACC,GAAW,iDACZ,CAACC,GAAS,4BACV,CAACC,GAAQ,uCACT,CAACC,GAAW,8BACZ,CAACC,GAAc,mCACf,CAACC,GAAS,4BA4BNgH,GAxBS,CACb,CAACrI,GAAW,SACZ,CAACC,GAAQ,WACT,CAACC,GAAY,aACb,CAACC,GAAiB,qBAClB,CAACC,GAAiB,mBAClB,CAACC,GAAiB,wBAClB,CAACC,GAAS,cACV,CAACC,GAAQ,eACT,CAACC,GAAY,aACb,CAACC,GAAe,cAChB,CAACC,GAAe,WAChB,CAACC,GAAgB,oBACjB,CAACC,GAAU,eACX,CAACC,GAAa,oBACd,CAACC,GAAa,WACd,CAACC,GAAa,WACd,CAACC,GAAW,iBACZ,CAACC,GAAS,aACV,CAACC,GAAQ,WACT,CAACC,GAAW,UACZ,CAACC,GAAc,aACf,CAACC,GAAS,QA4BNiH,GAxBS,CACb,CAACtI,GAAW,qBACZ,CAACC,GAAQ,+BACT,CAACC,GAAY,oCACb,CAACC,GAAiB,0DAClB,CAACC,GAAiB,kCAClB,CAACC,GAAiB,4BAClB,CAACC,GAAS,wCACV,CAACC,GAAQ,mCACT,CAACC,GAAY,iCACb,CAACC,GAAe,4BAChB,CAACC,GAAe,4BAChB,CAACC,GAAgB,oCACjB,CAACC,GAAU,qCACX,CAACC,GAAa,oCACd,CAACC,GAAa,wBACd,CAACC,GAAa,wBACd,CAACC,GAAW,yCACZ,CAACC,GAAS,uBACV,CAACC,GAAQ,2BACT,CAACC,GAAW,uBACZ,CAACC,GAAc,kCACf,CAACC,GAAS,wBA4BNkH,GAxBS,CACb,CAACvI,GAAW,4BACZ,CAACC,GAAQ,qCACT,CAACC,GAAY,oCACb,CAACC,GAAiB,gEAClB,CAACC,GAAiB,+CAClB,CAACC,GAAiB,oCAClB,CAACC,GAAS,8CACV,CAACC,GAAQ,iCACT,CAACC,GAAY,kCACb,CAACC,GAAe,uCAChB,CAACC,GAAe,oCAChB,CAACC,GAAgB,uDACjB,CAACC,GAAU,8CACX,CAACC,GAAa,wDACd,CAACC,GAAa,oBACd,CAACC,GAAa,oBACd,CAACC,GAAW,iDACZ,CAACC,GAAS,2BACV,CAACC,GAAQ,8CACT,CAACC,GAAW,wBACZ,CAACC,GAAc,mCACf,CAACC,GAAS,wBAMZ/nK,EAAQkX,UAAYm2J,EACpBrtK,EAAQkvK,WAHY/3J,G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","sources":["webpack:///webpack/runtime/load script","webpack:///./node_modules/@flashpointbv/solar-service-container/dist/ComponentRegister.js","webpack:///./node_modules/@flashpointbv/solar-service-container/dist/Index.js","webpack:///./node_modules/@flashpointbv/solar-service-container/dist/ServiceContainer.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/shared/helpers/url-query-bag/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/stores/modules/views/catalog/category/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/stores/modules/views/catalog/product/bundle/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/stores/modules/views/catalog/product/configurable/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/stores/modules/views/catalog/product/grouped/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/stores/modules/views/catalog/product/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreBlazeSlider.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreCookies.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreDrillDown.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreDropDown.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreFormValidator.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreMatchHeight.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreOffCanvas.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/components/UICoreSticky.js","webpack:///./node_modules/@flashpointbv/solar-ui-core/dist/index.js","webpack:///./node_modules/@flashpointbv/solar-ui-environment/dist/EnvironmentContainer.js","webpack:///./node_modules/@flashpointbv/solar-ui-environment/dist/Index.js","webpack:///./node_modules/@flashpointbv/solar-ui-environment/dist/Register.js","webpack:///./node_modules/@flashpointbv/solar-ui-http-client/dist/index.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/custom-event-polyfill/polyfill.js","webpack:///./node_modules/fullpage.js/dist/fullpage.js","webpack:///./node_modules/gmap-vue/dist/main.js","webpack:///./node_modules/img-comparison-slider/dist/index.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@flashpointbv/solar-ui-catalog/src/index.ts","webpack:///./resources/area/web/default/js/components/search/AutocompleteForm.vue?5565","webpack:///./resources/area/web/default/js/app.ts","webpack:///./resources/area/web/default/js/core.ts","webpack:///./resources/area/web/default/js/prototypes.ts","webpack:///./resources/area/web/default/js/shared/helpers/intersection-observer/index.ts","webpack:///./resources/area/web/default/js/shared/helpers/mobile-detect/index.ts","webpack:///./resources/area/web/default/js/stores/checkout/index.ts","webpack:///./resources/area/web/default/js/stores/checkout/services/app-storage/index.ts","webpack:///./resources/area/web/default/js/stores/checkout/services/index.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/address.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/global.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/payment.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/quote.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/shipping.ts","webpack:///./resources/area/web/default/js/stores/checkout/stores/totals.ts","webpack:///./resources/area/web/default/js/stores/customer/index.ts","webpack:///./resources/area/web/default/js/stores/customer/invoice-copy/index.ts","webpack:///./resources/area/web/default/js/stores/customer/pre-orders/index.ts","webpack:///./resources/area/web/default/js/stores/customer/pre-orders/logs.ts","webpack:///./resources/area/web/default/js/stores/customer/quick-buy/index.ts","webpack:///./resources/area/web/default/js/stores/customer/report/index.ts","webpack:///./resources/area/web/default/js/stores/customer/service/index.ts","webpack:///./resources/area/web/default/js/stores/messages/index.ts","webpack:///./resources/area/web/default/js/stores/product/quick-buy/index.ts","webpack:///./resources/area/web/default/js/stores/products-by-bike/index.ts","webpack:///./resources/area/web/default/js/ui/fullpage.ts","webpack:///./resources/area/web/splashdesign/js/app.ts","webpack:///./resources/area/web/splashdesign/js/core.ts","webpack:///./node_modules/url-search-params-polyfill/index.js","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack:///./resources/area/web/default/js/components/search/AutocompleteForm.vue?a182","webpack:///./resources/area/web/default/js/components/search/AutocompleteForm.vue?1277","webpack:///./resources/area/web/default/js/components/search/AutocompleteForm.vue","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Emit.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Inject.js","webpack:///./node_modules/vue-property-decorator/lib/helpers/provideInject.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/InjectReactive.js","webpack:///./node_modules/vue-property-decorator/lib/helpers/metadata.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Model.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/ModelSync.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Prop.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/PropSync.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Provide.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/ProvideReactive.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Ref.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/VModel.js","webpack:///./node_modules/vue-property-decorator/lib/decorators/Watch.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./resources/area/web/default/js/shared/helpers/url-query-bag/index.js","webpack:///./resources/area/web/default/js/shared/services/app-storage/index.js","webpack:///./node_modules/@upjs/facile-validator/dist/index.cjs","webpack:///./node_modules/@flashpointbv/blaze-slider/dist/blaze-slider.esm.js","webpack:///./node_modules/swiper/modules/virtual.mjs","webpack:///./node_modules/swiper/modules/keyboard.mjs","webpack:///./node_modules/swiper/modules/mousewheel.mjs","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack:///./node_modules/swiper/modules/navigation.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/pagination.mjs","webpack:///./node_modules/swiper/modules/scrollbar.mjs","webpack:///./node_modules/swiper/modules/parallax.mjs","webpack:///./node_modules/swiper/modules/zoom.mjs","webpack:///./node_modules/swiper/modules/controller.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/history.mjs","webpack:///./node_modules/swiper/modules/hash-navigation.mjs","webpack:///./node_modules/swiper/modules/autoplay.mjs","webpack:///./node_modules/swiper/modules/thumbs.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./node_modules/swiper/modules/grid.mjs","webpack:///./node_modules/swiper/modules/manipulation.mjs","webpack:///./node_modules/swiper/shared/effect-init.mjs","webpack:///./node_modules/swiper/shared/effect-target.mjs","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack:///./node_modules/swiper/modules/effect-fade.mjs","webpack:///./node_modules/swiper/modules/effect-cube.mjs","webpack:///./node_modules/swiper/shared/create-shadow.mjs","webpack:///./node_modules/swiper/modules/effect-flip.mjs","webpack:///./node_modules/swiper/modules/effect-coverflow.mjs","webpack:///./node_modules/swiper/modules/effect-creative.mjs","webpack:///./node_modules/swiper/modules/effect-cards.mjs","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/css loading","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {};\n//# sourceMappingURL=ComponentRegister.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ServiceContainer_1 = __importDefault(require(\"./ServiceContainer\"));\nexports.default = ServiceContainer_1.default;\n//# sourceMappingURL=Index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ComponentRegister_1 = __importDefault(require(\"./ComponentRegister\"));\nvar ServiceContainer = /** @class */ (function () {\n /**\n * ServiceContainer constructor.\n */\n function ServiceContainer() {\n }\n /**\n * Retrieve the ServiceContainer instance from memory.\n */\n ServiceContainer.initialize = function () {\n if (!ServiceContainer.instance) {\n ServiceContainer.instance = new ServiceContainer();\n for (var key in ComponentRegister_1.default) {\n ServiceContainer.instance.addComponent(key, ComponentRegister_1.default[key]);\n }\n }\n return ServiceContainer.instance;\n };\n /**\n * Add a new binding to the ServiceContainer.\n */\n ServiceContainer.prototype.addComponent = function (key, object) {\n ServiceContainer.containerObjects[key] = object;\n return this;\n };\n /**\n * Add multiple new bindings to the ServiceContainer.\n *\n * @param components\n */\n ServiceContainer.prototype.addComponents = function (components) {\n var _this = this;\n components.forEach(function (component) {\n _this.addComponent(component['key'], component['concrete']);\n });\n return this;\n };\n /**\n * Get a component from the ServiceContainer.\n *\n * @param key\n */\n ServiceContainer.prototype.getComponent = function (key) {\n var _this = this;\n return function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, ServiceContainer.containerObjects[key]];\n case 1: return [2 /*return*/, _a.sent()];\n }\n }); }); };\n };\n /**\n * Get all available components from the ServiceContainer.\n */\n ServiceContainer.prototype.getComponents = function () {\n // @ts-ignore\n return ServiceContainer.containerObjects;\n };\n /**\n * List of registered components.\n */\n ServiceContainer.containerObjects = {};\n return ServiceContainer;\n}());\nexports.ServiceContainer = ServiceContainer;\nvar serviceContainer = function () {\n return ServiceContainer.initialize();\n};\nexports.default = serviceContainer;\n//# sourceMappingURL=ServiceContainer.js.map","const queryBag = new URLSearchParams(window.location.search);\n\nconst queryList = {};\n\nqueryBag.forEach((v, k) => {\n queryList[k] = v;\n});\n\nexport { queryBag, queryList };\n","import {queryList} from '../../../../../shared/helpers/url-query-bag';\n\nconst initialState = () => {\n return {\n searchedQuery: '',\n categoryId: null,\n apiResponse: null,\n apiResponsePending: false,\n pageQueries: {}\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_CATEGORY_ID(state, categoryId) {\n state.categoryId = categoryId;\n },\n SET_SEARCHED_QUERY(state, searchedQuery) {\n state.searchedQuery = searchedQuery;\n },\n SET_API_RESPONSE_PENDING(state, status) {\n state.apiResponsePending = status;\n },\n SET_API_RESPONSE(state, response) {\n state.apiResponse = response;\n }\n};\n\nconst actions = {\n setCategoryId({commit}, categoryId) {\n commit('SET_CATEGORY_ID', categoryId);\n },\n setSearchedQuery({commit}, searchedQuery) {\n commit('SET_SEARCHED_QUERY', searchedQuery);\n },\n setApiResponse({commit}, response) {\n commit('SET_API_RESPONSE', response);\n },\n updatePage({dispatch}, page) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {page: page})\n });\n },\n inCategorySearch({dispatch}, query) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {query: query})\n });\n },\n updatePageSize({dispatch}, pageSize) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {page_size: pageSize, page: 1})\n });\n },\n updatePriceFilter({dispatch}, payload) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {minPrice: payload.minPrice, maxPrice: payload.maxPrice, page: 1})\n });\n },\n updatePageSort({dispatch}, sort) {\n let sortString = '';\n Object.entries(sort || {}).forEach(([key, value]) => {\n sortString = `${key} ${value}`\n });\n\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {sort: sortString, page: 1})\n });\n },\n filterAction({dispatch, getters}, payload) {\n dispatch('fetchCatalog', {\n filters: getters.filterList.map(filter => {\n if (filter['code'] === payload.filterCode) {\n filter['options'].forEach(option => {\n if (option['label'] === payload.optionLabel) {\n switch (payload.actionType) {\n case 'toggle':\n option['active'] = ! option['active'];\n break;\n case 'activate':\n option['active'] = true;\n break;\n case 'deactivate':\n option['active'] = false;\n break;\n }\n }\n });\n }\n return filter;\n }),\n pageQueries: {\n page: 1\n }\n });\n },\n toggleFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'toggle',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n activateFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'activate',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n deactivateFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'deactivate',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n singleValueFilter({dispatch, getters}, payload) {\n dispatch('fetchCatalog', {\n filters: getters.filterList.map(filter => {\n if (filter['code'] === payload.filter['code']) {\n filter.options.forEach(o => {\n o['active'] = o['label'] === payload.option['label']\n });\n }\n return filter;\n })\n });\n },\n fetchCatalog({state, commit}, payload) {\n commit('SET_API_RESPONSE_PENDING', true);\n\n const categoryId = payload['categoryId'] || state.categoryId;\n const filters = payload.filters || (state.apiResponse.filters || []);\n\n let params = {};\n let queryParams = Object.assign(state.pageQueries, (payload.pageQueries || {}));\n\n // if ('undefined' === typeof queryParams['page_size']) {\n // queryParams['page_size'] = getters.pageSize(state);\n // }\n\n if ('undefined' === typeof queryParams['query'] && state.searchedQuery !== '') {\n queryParams['query'] = state.searchedQuery;\n }\n\n if ('undefined' === typeof queryParams['query'] && state.searchedQuery !== '') {\n queryParams['query'] = state.searchedQuery;\n }\n\n if (getters.priceFilters(state).length) {\n if ('undefined' === typeof queryParams['minPrice'] && getters.priceFilters(state)[0]['MinimumValue'] > 0) {\n queryParams['minPrice'] = getters.priceFilters(state)[0]['MinimumValue'];\n }\n\n if ('undefined' === typeof queryParams['maxPrice'] && getters.priceFilters(state)[0]['MaximumValue'] > 0) {\n queryParams['maxPrice'] = getters.priceFilters(state)[0]['MaximumValue'];\n }\n }\n\n if ('undefined' === typeof queryParams['sort'] && null !== getters.currentSort(state)) {\n let sortString = '';\n Object.entries(getters.currentSort(state) || {}).forEach(([key, value]) => {\n sortString = `${key} ${value}`\n });\n\n queryParams['sort'] = sortString;\n }\n\n if (filters.length) {\n let activeFilters = filters.filter(item => {\n if (item.type !== 'attribute') {\n return false;\n }\n\n let activeOptions = item.options.filter(option => {\n return option.active;\n });\n\n return activeOptions.length;\n });\n\n let filterSegments = {};\n activeFilters.forEach(filter => {\n filter.options.forEach(option => {\n if (option.active) {\n if ( ! filterSegments.hasOwnProperty(filter['facet_code'])) {\n filterSegments[filter['facet_code']] = [];\n }\n\n filterSegments[filter['facet_code']].push(\n `${option.label}`\n );\n }\n });\n });\n params = Object.assign(filterSegments, params);\n }\n\n const apiUrl = state.searchedQuery !== '' ? `/api/catalog/search/product/list` : `/api/catalog/category/${categoryId}/product/list`;\n\n this.$solarClient.get(\n apiUrl, {\n params: Object.assign(params, queryParams)\n }).then(({data}) => {\n commit('SET_API_RESPONSE', data);\n\n const urlFilters = data.filters.filter(\n filter => filter['is_active']\n ).map(filter => {\n return filter['options'].filter(\n filterOption => filterOption['active']\n ).map(filterOption => {\n return (filter['has_duplicate_values'] ? `${filter['url_key']}-` : '') + `${filterOption['label']}`.replace(/\\s/g, '-');\n }).join('_');\n });\n\n let urlSegments = window.location.pathname.split('/').filter(segment => segment);\n const urlHasFilterSegment = urlSegments.filter(segment => segment[0] === '_').length > 0;\n if (urlHasFilterSegment && ! urlFilters.length) {\n urlSegments = urlSegments.filter(segment => segment[0] !== '_');\n }\n\n if (urlFilters.length) {\n const encodedActiveFilterValues = urlFilters.map(v => encodeURIComponent(v));\n\n if (urlHasFilterSegment) {\n urlSegments = urlSegments.map(segment => {\n return segment[0] === '_' && urlSegments.length ? `_${encodedActiveFilterValues.join('_')}` : segment;\n });\n } else {\n urlSegments.push(`_${encodedActiveFilterValues.join('_')}`);\n }\n }\n\n let queryString = '';\n if (Object.keys(queryParams).length) {\n Object.entries(queryParams).forEach(([key, value]) => {\n queryString += `&${key}=${value}`;\n });\n\n queryString = `?${queryString.substr(1)}`;\n }\n\n window.history.pushState({\n categoryId: categoryId,\n catalogData: data\n },\n window.document.querySelector('title').value,\n window.location.origin + '/' + urlSegments.join('/') + queryString\n );\n }).finally(() => {\n commit('SET_API_RESPONSE_PENDING', false);\n });\n }\n};\n\nconst getters = {\n isLoading: state => {\n return state.apiResponsePending;\n },\n currentPage: state => {\n return state.apiResponse ? state.apiResponse['current_page'] : 1;\n },\n currentSort: state => {\n return state.apiResponse ? state.apiResponse['sorting'] : null;\n },\n totalPages: state => {\n return state.apiResponse ? state.apiResponse['last_page'] : 1;\n },\n pageSize: state => {\n return state.apiResponse ? state.apiResponse['page_size'] : 24;\n },\n productList: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('items') ? state.apiResponse['items'] : []) : [];\n },\n filterList: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('filters') ? state.apiResponse['filters'] : []) : [];\n },\n priceFilters: state => {\n if (state.apiResponse && state.apiResponse.hasOwnProperty('filters')) {\n return state.apiResponse.filters.filter(o => {\n return o.type === 'price'\n });\n }\n },\n activeFilters: (state, getters) => {\n return getters.filterList.filter(filter => {\n return filter['type'] !== 'attribute' ? false : filter['is_active'];\n });\n },\n activeCrawlableFilters: (state, getters) => {\n return getters.activeFilters.filter(filter => filter['is_crawlable']);\n },\n totalItemCount: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('total_items') ? state.apiResponse['total_items'] : 0) : 0;\n }\n};\n\nconst CatalogCategory = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogCategory;\n","const initialState = () => {\n return {\n availableOptions: [],\n selectedOptions: []\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_AVAILABLE_OPTIONS(state, payload) {\n state.availableOptions = payload;\n },\n SET_SELECTED_OPTIONS(state, payload) {\n state.selectedOptions = state.selectedOptions.filter(o => o.product_id !== payload.product_id);\n state.selectedOptions.push(payload);\n }\n};\n\nconst actions = {\n getAvailableOptions({state, commit}, payload) {\n commit('SET_AVAILABLE_OPTIONS', payload);\n },\n updateSelectedOption({state, commit}, payload) {\n if (payload.hasOwnProperty('type')) {\n if (payload['type'] === 'radio') {\n const sameOptionGroupSelected = state.selectedOptions.findIndex(s => s['option_id'] === payload['option_id']);\n if (sameOptionGroupSelected >= 0) {\n state.selectedOptions.splice(sameOptionGroupSelected, 1);\n }\n }\n }\n commit('SET_SELECTED_OPTIONS', payload);\n }\n};\n\nconst getters = {\n availableOptions: state => {\n return state.availableOptions;\n },\n requiredOptions: (state, getters) => {\n return getters.availableOptions.filter(o => {\n return o.required === 1;\n });\n },\n totalPrices: state => {\n let prices = {\n priceInclTax: 0,\n priceExclTax: 0,\n totalPriceInclTax: 0,\n totalPriceExclTax: 0\n };\n state.selectedOptions.forEach(o => {\n prices.priceInclTax += (o.price * o.qty);\n prices.priceExclTax += (o.price * o.qty);\n prices.totalPriceInclTax += (o.price * o.qty);\n prices.totalPriceExclTax += (o.price * o.qty);\n });\n return prices;\n },\n isSaleable: (state, getters) => {\n let selectedRequiredOptions = [];\n getters.requiredOptions.forEach(o => {\n selectedRequiredOptions.push(state.selectedOptions.filter(r => {\n return r.option_id === o.option_id && r.qty > 0;\n }).length > 0);\n });\n return selectedRequiredOptions.every(Boolean);\n }\n};\n\nconst CatalogBundleProduct = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogBundleProduct;\n","const initialState = () => {\n return {\n checkSingleProductState: false,\n selectedOptions: [],\n prices: {\n priceInclTax: 0,\n priceExclTax: 0,\n totalPriceInclTax: 0,\n totalPriceExclTax: 0\n },\n step: 0\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_SELECTED_OPTION(state, payload) {\n state.selectedOptions.push(payload);\n },\n UPDATE_SELECTED_OPTION(state, {payload, selectedOptionIndex}) {\n state.selectedOptions[selectedOptionIndex] = payload;\n },\n UPDATE_SELECTED_ATTRIBUTES(state, startIndex) {\n state.selectedOptions.splice(startIndex);\n },\n UPDATE_CURRENT_STEP(state, currentStep) {\n state.step = currentStep;\n },\n SET_SINGLE_PRODUCT_STATE(state, isSingleProduct) {\n state.checkSingleProductState = isSingleProduct;\n },\n SET_PRICES(state, product) {\n state.prices = {\n priceInclTax: product.price_incl_tax,\n priceExclTax: product.price_excl_tax,\n totalPriceInclTax: product.final_price_incl_tax,\n totalPriceExclTax: product.final_price_excl_tax\n };\n }\n};\n\nconst actions = {\n setSelectedOption({state, commit, dispatch, getters}, payload) {\n const attributeIndex = getters.availableAttributes.findIndex(o => o.code === payload.attributeCode);\n const selectedOptionIndex = state.selectedOptions.findIndex(o => o.attributeCode === payload.attributeCode);\n\n if (selectedOptionIndex === -1) {\n commit('SET_SELECTED_OPTION', payload);\n } else {\n commit('UPDATE_SELECTED_OPTION', {payload, selectedOptionIndex});\n }\n\n if ((attributeIndex + 1) <= getters.availableAttributes.length) {\n commit('UPDATE_SELECTED_ATTRIBUTES', attributeIndex + 1);\n }\n\n //If we are in the final step we update the price if necessary\n if (getters.selectedProducts.length === 1) {\n commit('SET_PRICES', getters.selectedProducts[0]);\n }\n },\n updateStep({state, commit}, currentStep) {\n commit('UPDATE_CURRENT_STEP', currentStep);\n },\n getAttributeOptionsByCode({state, rootState, commit, dispatch, getters}, attributeCode) {\n const productsBySelectedAttributes = getters.selectedProducts;\n // If there is only one product available\n if (productsBySelectedAttributes.length === 1) {\n commit('SET_SINGLE_PRODUCT_STATE', true);\n }\n\n //Set the base price\n commit('SET_PRICES', rootState.CatalogProduct.productData);\n\n return productsBySelectedAttributes.reduce((result, currentValue) => {\n (result[currentValue[attributeCode]] = result[currentValue[attributeCode]] || []).push(\n currentValue\n );\n return result;\n }, {});\n }\n};\n\nconst getters = {\n virtualProducts: (state, getters, rootState) => {\n return rootState.CatalogProduct.productData.hasOwnProperty('virtual_products') ? rootState.CatalogProduct.productData.virtual_products : [];\n },\n availableAttributes: (state, getters, rootState) => {\n return rootState.CatalogProduct.productData.hasOwnProperty('configurable_data') ? rootState.CatalogProduct.productData.configurable_data : [];\n },\n currentStep: state => {\n return state.step;\n },\n selectedOptions: state => {\n return state.selectedOptions;\n },\n checkSingleProduct: state => {\n return state.checkSingleProductState;\n },\n isSaleable: (state, getters) => {\n return getters.currentStep === getters.availableAttributes.length;\n },\n totalPrices: state => {\n return state.prices;\n },\n selectedProducts: (state, getters) => {\n return getters.virtualProducts.filter(p => {\n return state.selectedOptions.every(o => p[`${o.attributeCode}_option_id`] === parseInt(o.selectedValue)) && p.status;\n });\n }\n};\n\nconst CatalogConfigurableProduct = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogConfigurableProduct;\n","const initialState = () => {\n return {\n selectedProducts: [],\n slideToImage: null\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_SELECTED_PRODUCTS(state, payload) {\n state.selectedProducts = state.selectedProducts.filter(o => o.product_id !== payload.product_id);\n state.selectedProducts.push(payload);\n },\n UPDATE_ACTIVE_GALLERY_IMAGE(state, payload) {\n state.slideToImage = payload;\n }\n};\n\nconst actions = {\n updateSelectedProduct({state, commit}, payload) {\n commit('SET_SELECTED_PRODUCTS', payload);\n },\n slideToGalleryImage({state, commit}, payload) {\n commit('UPDATE_ACTIVE_GALLERY_IMAGE', payload);\n }\n};\n\nconst getters = {\n availableProducts: (state, getters, rootState) => {\n return rootState.CatalogProduct.productData.hasOwnProperty('child_products') ? rootState.CatalogProduct.productData.child_products : [];\n },\n slideToGalleryImage: state => {\n return state.slideToImage;\n },\n fromPrices: (state, getters) => {\n let prices = {\n totalPriceInclTax: 0,\n totalPriceExclTax: 0\n };\n if (getters.availableProducts.length > 0) {\n const lowestPrice = getters.availableProducts.reduce((a, b) => a.final_price_incl_tax < b.final_price_incl_tax ? a : b);\n prices.totalPriceInclTax = lowestPrice.final_price_incl_tax;\n prices.totalPriceExclTax = lowestPrice.final_price_excl_tax;\n }\n return prices;\n },\n totalPrices: state => {\n let prices = {\n priceInclTax: 0,\n priceExclTax: 0,\n totalPriceInclTax: 0,\n totalPriceExclTax: 0\n };\n state.selectedProducts.forEach(o => {\n prices.priceInclTax += (o.price_incl_tax * o.qty);\n prices.priceExclTax += (o.price_excl_tax * o.qty);\n prices.totalPriceInclTax += (o.final_price_incl_tax * o.qty);\n prices.totalPriceExclTax += (o.final_price_excl_tax * o.qty);\n });\n return prices;\n },\n isSaleable: state => {\n let totalQty = 0;\n state.selectedProducts.forEach(o => {\n totalQty += o.qty;\n });\n return Boolean(totalQty);\n }\n};\n\nconst CatalogGroupedProduct = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogGroupedProduct;\n","const initialState = () => {\n return {\n productData: []\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_PRODUCT_DATA(state, payload) {\n state.productData = payload;\n }\n};\n\nconst actions = {\n getProductData({state, commit}, payload) {\n commit('SET_PRODUCT_DATA', payload);\n }\n};\n\nconst getters = {\n isSaleable: (state, getters, rootState, rootGetters) => {\n switch (state.productData.product_type) {\n case 'grouped':\n return rootGetters['CatalogGroupedProduct/isSaleable'];\n case 'bundle':\n return rootGetters['CatalogBundleProduct/isSaleable'];\n case 'configurable':\n return rootGetters['CatalogConfigurableProduct/isSaleable'];\n default:\n return state.productData.in_stock;\n }\n },\n totalPrices: (state, getters, rootState, rootGetters) => {\n switch (state.productData.product_type) {\n case 'grouped':\n return rootGetters['CatalogGroupedProduct/totalPrices'];\n case 'bundle':\n return rootGetters['CatalogBundleProduct/totalPrices'];\n case 'configurable':\n return rootGetters['CatalogConfigurableProduct/totalPrices'];\n default:\n return {\n priceInclTax: state.productData.price_incl_tax,\n priceExclTax: state.productData.price_excl_tax,\n totalPriceInclTax: state.productData.final_price_incl_tax,\n totalPriceExclTax: state.productData.final_price_excl_tax\n };\n }\n }\n};\n\nconst CatalogProduct = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogProduct;\n","\"use strict\";\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _UICoreBlazeSlider_instances, _UICoreBlazeSlider_breakpointMap, _UICoreBlazeSlider_configBuilderObject, _UICoreBlazeSlider_defineSlider, _UICoreBlazeSlider_mergeObjects, _UICoreBlazeSlider_getConfigObject, _UICoreBlazeSlider_getValueReturnType, _UICoreBlazeSlider_validateAttributeSegments, _UICoreBlazeSlider_getConfigKey;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreBlazeSlider = void 0;\nconst blaze_slider_esm_1 = __importDefault(require(\"@flashpointbv/blaze-slider/dist/blaze-slider.esm\"));\nrequire(\"@flashpointbv/blaze-slider/dist/blaze.css\");\nclass UICoreBlazeSlider {\n constructor(config) {\n _UICoreBlazeSlider_instances.add(this);\n _UICoreBlazeSlider_breakpointMap.set(this, Object.freeze({\n mobile: 'all',\n tablet: UICoreBlazeSlider.breakPointKeys['tabletBreakpoint'],\n desktop: UICoreBlazeSlider.breakPointKeys['desktopBreakpoint'],\n }));\n _UICoreBlazeSlider_configBuilderObject.set(this, {\n all: {},\n [UICoreBlazeSlider.breakPointKeys['tabletBreakpoint']]: {},\n [UICoreBlazeSlider.breakPointKeys['desktopBreakpoint']]: {}\n });\n const defaultConfig = Object.assign(Object.assign({}, UICoreBlazeSlider.config), config);\n document.addEventListener('DOMContentLoaded', () => {\n const sliderElements = document.querySelectorAll('.blaze-slider');\n sliderElements.forEach((slider) => {\n __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_defineSlider).call(this, slider);\n });\n });\n }\n}\nexports.UICoreBlazeSlider = UICoreBlazeSlider;\n_UICoreBlazeSlider_breakpointMap = new WeakMap(), _UICoreBlazeSlider_configBuilderObject = new WeakMap(), _UICoreBlazeSlider_instances = new WeakSet(), _UICoreBlazeSlider_defineSlider = function _UICoreBlazeSlider_defineSlider(sliderEl) {\n const mergedConfigurations = __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_mergeObjects).call(this, UICoreBlazeSlider.blazeConfig, __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_getConfigObject).call(this, sliderEl));\n new blaze_slider_esm_1.default(sliderEl, mergedConfigurations);\n}, _UICoreBlazeSlider_mergeObjects = function _UICoreBlazeSlider_mergeObjects(obj1, obj2) {\n let merged = Object.assign(Object.assign({}, obj1), obj2);\n for (let [key, value] of Object.entries(merged)) {\n if (typeof obj1[key] === 'object' && typeof obj2[key] === 'object') {\n merged[key] = __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_mergeObjects).call(this, obj1[key], obj2[key]);\n }\n }\n return merged;\n}, _UICoreBlazeSlider_getConfigObject = function _UICoreBlazeSlider_getConfigObject(sliderEl) {\n const elementAttributes = sliderEl.getAttributeNames();\n let configObject = __classPrivateFieldGet(this, _UICoreBlazeSlider_configBuilderObject, \"f\");\n elementAttributes.forEach((attribute) => {\n if (attribute.indexOf('data') === 0) {\n const attributeSegments = attribute.split('-');\n if (__classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_validateAttributeSegments).call(this, attributeSegments)) {\n const breakpointKey = attributeSegments[1];\n const configKey = __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_getConfigKey).call(this, attributeSegments);\n const configValue = sliderEl.getAttribute(attribute);\n configObject[__classPrivateFieldGet(this, _UICoreBlazeSlider_breakpointMap, \"f\")[breakpointKey]][configKey] = __classPrivateFieldGet(this, _UICoreBlazeSlider_instances, \"m\", _UICoreBlazeSlider_getValueReturnType).call(this, configValue);\n }\n }\n });\n return configObject;\n}, _UICoreBlazeSlider_getValueReturnType = function _UICoreBlazeSlider_getValueReturnType(value = '') {\n if (value === 'true')\n return true;\n if (value === 'false')\n return false;\n if (value === 'null')\n return null;\n if (value === 'undefined')\n return undefined;\n if (value === 'NaN')\n return NaN;\n if (!isNaN(Number(value)))\n return Number(value);\n return value;\n}, _UICoreBlazeSlider_validateAttributeSegments = function _UICoreBlazeSlider_validateAttributeSegments(attributeSegments) {\n if (attributeSegments.length < 3) {\n console.debug('Invalid attribute segment length (3 minimum)');\n return false;\n }\n if (UICoreBlazeSlider.breakpointAttributeKeys.indexOf(attributeSegments[1]) === -1) {\n console.debug(`Invalid breakpoint attribute key \"${attributeSegments[1]}\"`);\n console.debug(`Valid breakpoint attribute keys: ${UICoreBlazeSlider.breakpointAttributeKeys.join(', ')}`);\n return false;\n }\n return true;\n}, _UICoreBlazeSlider_getConfigKey = function _UICoreBlazeSlider_getConfigKey(attributeSegments) {\n return attributeSegments.slice(2).map((segment, index) => index > 0\n ? `${segment.charAt(0).toUpperCase()}${segment.slice(1)}`\n : segment)\n .join('');\n};\nUICoreBlazeSlider.breakpointAttributeKeys = [\n 'mobile',\n 'tablet',\n 'desktop',\n];\nUICoreBlazeSlider.config = {\n tabletBreakpoint: 576,\n desktopBreakpoint: 920,\n};\nUICoreBlazeSlider.breakPointKeys = {\n tabletBreakpoint: `(min-width: ${UICoreBlazeSlider.config['tabletBreakpoint']}px)`,\n desktopBreakpoint: `(min-width: ${UICoreBlazeSlider.config['desktopBreakpoint']}px)`\n};\nUICoreBlazeSlider.blazeConfig = {\n all: {\n slidesToShow: 1,\n fixedSlides: true,\n loop: false,\n slideGap: '10px',\n },\n [UICoreBlazeSlider.breakPointKeys['tabletBreakpoint']]: {\n slidesToShow: 3,\n },\n [UICoreBlazeSlider.breakPointKeys['desktopBreakpoint']]: {\n slidesToShow: 4,\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreCookies = void 0;\nclass UICoreCookies {\n setCookie(name, val, time = 7) {\n const date = new Date();\n date.setTime(date.getTime() + (time * 24 * 60 * 60 * 1000));\n document.cookie = name + \"=\" + val + \"; expires=\" + date.toUTCString() + \"; path=/\";\n }\n getCookie(name) {\n const value = \"; \" + document.cookie;\n const parts = value.split(\"; \" + name + \"=\");\n if (parts.length == 2) {\n return parts.pop().split(\";\").shift();\n }\n }\n deleteCookie(name) {\n const date = new Date();\n date.setTime(date.getTime() + (-1 * 24 * 60 * 60 * 1000));\n document.cookie = name + \"=; expires=\" + date.toUTCString() + \"; path=/\";\n }\n}\nexports.UICoreCookies = UICoreCookies;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreDrillDown = void 0;\nclass UICoreDrillDown {\n generateDrillDown() {\n this.menuItems = document.querySelectorAll('.drilldown>ul>li');\n this.backButton = null !== document.querySelector('[data-drilldown]') ? document.querySelector('[data-drilldown]').getAttribute('data-back-button') : '';\n for (let i = 0; i < this.menuItems.length; i++) {\n if (this.menuItems[i].getElementsByTagName('ul').length > 0) {\n //Add back button in nested menu\n let backLi = document.createElement('li');\n backLi.innerHTML = this.backButton;\n this.menuItems[i].querySelector('ul').insertBefore(backLi, this.menuItems[i].querySelector('ul').children[0]);\n this.menuItems[i].getElementsByTagName('ul')[0].classList.add('invisible');\n this.menuItems[i].classList.add('is-drilldown-submenu-parent');\n }\n }\n this._handleEvents();\n }\n _handleEvents() {\n document.addEventListener('click', e => {\n const clickElement = e.target;\n const parentNode = clickElement.parentNode;\n if (parentNode && 'getAttribute' in parentNode) {\n if (parentNode.classList.contains('is-drilldown-submenu-parent')) {\n e.stopPropagation();\n e.preventDefault();\n parentNode.getElementsByTagName('ul')[0].classList.remove('invisible');\n const animationTimeout = setTimeout(() => {\n parentNode.getElementsByTagName('ul')[0].classList.add('is-active');\n clearTimeout(animationTimeout);\n }, 10);\n }\n if (parentNode.classList.contains('js-drilldown-back')) {\n parentNode.closest('ul').classList.remove('is-active');\n const animationTimeout = setTimeout(() => {\n parentNode.closest('ul').classList.add('invisible');\n clearTimeout(animationTimeout);\n }, 150);\n }\n }\n });\n }\n}\nexports.UICoreDrillDown = UICoreDrillDown;\n","\"use strict\";\nconst dropDown = function (handlerIn, handlerOut, interval = 150) {\n document.addEventListener('DOMContentLoaded', () => {\n const menuNode = document.querySelectorAll(this)[0];\n if ('undefined' !== typeof menuNode) {\n for (let i = 0; i < menuNode.children.length; i++) {\n let menuItem = menuNode.children[i];\n _handleEvents(menuItem, interval, handlerIn, handlerOut);\n }\n }\n });\n};\nString.prototype.dropDown = dropDown;\nfunction _handleEvents(el, interval, handlerIn, handlerOut) {\n let setOpenInterval;\n el.addEventListener('mouseenter', () => {\n setOpenInterval = window.setTimeout(() => {\n handlerIn(el);\n clearTimeout(setOpenInterval);\n }, interval);\n });\n el.addEventListener('mouseleave', () => {\n clearTimeout(setOpenInterval);\n const intervalTimeout = setTimeout(() => {\n handlerOut(el);\n clearTimeout(intervalTimeout);\n }, 50);\n });\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _UICoreFormValidator_instances, _UICoreFormValidator_importTranslations;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreFormValidator = void 0;\nconst facile_validator_1 = require(\"@upjs/facile-validator\");\nclass UICoreFormValidator {\n constructor(config) {\n _UICoreFormValidator_instances.add(this);\n const defaultConfig = Object.assign(Object.assign({}, UICoreFormValidator.config), config);\n const translations = __classPrivateFieldGet(this, _UICoreFormValidator_instances, \"m\", _UICoreFormValidator_importTranslations).call(this, defaultConfig);\n document.addEventListener('DOMContentLoaded', () => {\n const formElements = document.querySelectorAll('form[data-validation=true]');\n formElements.forEach((form) => {\n const v = new facile_validator_1.Validator(form, {\n lang: translations[UICoreFormValidator.currentLocale],\n onFieldChangeValidation: true,\n on: {\n 'validation:success': () => {\n form.submit();\n },\n 'field:error': (container, element, errors) => {\n errors.forEach((error) => {\n if (element.hasAttribute('data-message') && error.cause === 'regex') {\n error.message = element.getAttribute('data-message');\n }\n });\n },\n }\n });\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n v.validate();\n });\n });\n });\n }\n}\nexports.UICoreFormValidator = UICoreFormValidator;\n_UICoreFormValidator_instances = new WeakSet(), _UICoreFormValidator_importTranslations = function _UICoreFormValidator_importTranslations(defaultConfig) {\n let translations = [];\n Promise.resolve().then(() => __importStar(require('@upjs/facile-validator'))).then((module) => {\n defaultConfig['translations'].forEach((locale) => {\n const localeString = locale.substr(0, 2);\n translations[locale] = module[`${localeString}Lang`];\n });\n });\n return translations;\n};\nUICoreFormValidator.config = {\n translations: [\n 'nl_NL',\n ],\n};\nUICoreFormValidator.currentLocale = window['Locale'] || 'nl_NL';\n","\"use strict\";\nconst matchHeight = function (equalizeByRow = true) {\n let _throttle;\n let throttleMatchHeight = () => {\n clearTimeout(_throttle);\n _throttle = window.setTimeout(() => {\n const matchElements = document.querySelectorAll(this);\n _resetHeight(matchElements);\n _setMatchedHeight(matchElements, equalizeByRow);\n }, 500);\n };\n window.addEventListener('orientationchange', throttleMatchHeight.bind(document), false);\n window.addEventListener('resize', throttleMatchHeight.bind(document), false);\n if (document.readyState === 'complete') {\n const matchElements = document.querySelectorAll(this);\n _setMatchedHeight(matchElements, equalizeByRow);\n return;\n }\n window.addEventListener('load', () => {\n const matchElements = document.querySelectorAll(this);\n _setMatchedHeight(matchElements, equalizeByRow);\n }, false);\n};\nfunction _resetHeight(matchElements) {\n Array.from(matchElements).forEach(el => {\n el.style.height = 'auto';\n });\n}\nfunction _calculateTopOffset(el) {\n return el.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop);\n}\nfunction _setMatchedHeight(matchElements, equalizeByRow) {\n if (!equalizeByRow) {\n const elements = Array.from(matchElements);\n const maxHeight = elements.reduce((prev, current) => (prev.clientHeight > current.clientHeight) ? prev : current).clientHeight;\n elements.forEach(el => {\n el.style.height = `${maxHeight}px`;\n });\n return;\n }\n let elObject = [];\n let rowObject = [];\n Array.from(matchElements).forEach(el => {\n const offsetTop = _calculateTopOffset(el);\n if (rowObject.indexOf(offsetTop) === -1) {\n rowObject.push(offsetTop);\n }\n elObject.push({\n el: el,\n height: el.clientHeight,\n offsetTop: offsetTop\n });\n });\n rowObject.forEach(r => {\n const rowElements = elObject.filter(e => e.offsetTop === r);\n const maxHeight = rowElements.reduce((prev, current) => (prev.height > current.height) ? prev : current).height;\n rowElements.forEach(e => {\n e.el.style.height = `${maxHeight}px`;\n });\n });\n}\nString.prototype.matchHeight = matchHeight;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreOffCanvas = void 0;\nconst UICoreDrillDown_1 = require(\"./UICoreDrillDown\");\nclass UICoreOffCanvas {\n /**\n * Add off-canvas menu functionality\n * @param {Boolean} useDrillDown - Add drilldown functionality\n */\n offCanvas(useDrillDown = false) {\n document.addEventListener('DOMContentLoaded', () => {\n try {\n this.nodeList = document.getElementsByClassName('off-canvas');\n }\n catch (e) {\n console.log(e);\n return;\n }\n for (let i = 0; i < this.nodeList.length; i++) {\n //Close on init\n document.getElementsByClassName('off-canvas')[i].classList.add('is-closed');\n // Add overlay div if the menu is fixed (only first element)\n if (getComputedStyle(document.getElementsByClassName('off-canvas')[i]).position === 'fixed') {\n document.getElementsByClassName('off-canvas')[0].outerHTML += '
';\n }\n }\n this._handleEvents();\n this._handleKeyboardEvents();\n if (useDrillDown) {\n new UICoreDrillDown_1.UICoreDrillDown().generateDrillDown();\n }\n });\n }\n _handleEvents() {\n document.addEventListener('click', (e) => {\n const clickElement = e.target;\n const parentNode = clickElement.parentNode;\n const bodyElement = document.getElementsByTagName('body')[0];\n const overlayElement = document.getElementsByClassName('js-off-canvas-overlay')[0];\n if (parentNode && 'getAttribute' in parentNode) {\n if (null !== parentNode.getAttribute('data-close')) {\n bodyElement.classList.remove('no-scroll');\n const canvasElement = clickElement.closest('[data-off-canvas]');\n if (canvasElement.classList.contains('is-open')) {\n if (overlayElement.classList.contains('is-visible')) {\n overlayElement.classList.remove('is-visible');\n }\n canvasElement.classList.remove('is-open');\n const animationTimeout = setTimeout(() => {\n canvasElement.classList.add('is-closed');\n clearTimeout(animationTimeout);\n }, 500);\n }\n }\n else if (null !== clickElement.getAttribute('data-toggle') || null !== clickElement.getAttribute('data-open')) {\n if (bodyElement.classList.contains('no-scroll')) {\n bodyElement.classList.remove('no-scroll');\n }\n else {\n bodyElement.classList.add('no-scroll');\n }\n const canvasElement = null !== document.getElementById(clickElement.getAttribute('data-open')) ? document.getElementById(clickElement.getAttribute('data-open')) : document.getElementById(clickElement.getAttribute('data-toggle'));\n if (null !== canvasElement) {\n overlayElement.classList.add('is-visible');\n canvasElement.classList.add('is-open');\n canvasElement.classList.remove('is-closed');\n }\n }\n }\n // Close the off-canvas menu when overlay is clicked\n if (clickElement.classList.contains('js-off-canvas-overlay')) {\n clickElement.classList.remove('is-visible');\n bodyElement.classList.remove('no-scroll');\n for (let i = 0; i < this.nodeList.length; i++) {\n const canvasElement = document.getElementsByClassName('off-canvas')[i];\n if (canvasElement.classList.contains('is-open')) {\n canvasElement.classList.remove('is-open');\n const animationTimeout = setTimeout(() => {\n canvasElement.classList.add('is-closed');\n clearTimeout(animationTimeout);\n }, 500);\n }\n }\n }\n }, false);\n }\n _handleKeyboardEvents() {\n document.addEventListener('keydown', e => {\n if (e.which === 27 || e.keyCode === 27) {\n const bodyElement = document.getElementsByTagName('body')[0];\n for (let i = 0; i < this.nodeList.length; i++) {\n if (document.getElementsByClassName('off-canvas')[i].classList.contains('is-open')) {\n const overlayElement = document.getElementsByClassName('js-off-canvas-overlay')[0];\n bodyElement.classList.remove('no-scroll');\n overlayElement.classList.remove('is-visible');\n document.getElementsByClassName('off-canvas')[i].classList.remove('is-open');\n const animationTimeout = setTimeout(() => {\n document.getElementsByClassName('off-canvas')[i].classList.add('is-closed');\n clearTimeout(animationTimeout);\n }, 500);\n }\n }\n }\n }, false);\n }\n}\nexports.UICoreOffCanvas = UICoreOffCanvas;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreSticky = void 0;\nclass UICoreSticky {\n sticky(dataAttribute = 'data-sticky') {\n try {\n this.nodeList = document.querySelectorAll(`[${dataAttribute}]`);\n }\n catch (e) {\n console.log(e);\n return;\n }\n for (let i = 0; i < this.nodeList.length; i++) {\n const randomId = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);\n const dataAnchor = this.nodeList[i].getAttribute('data-top-anchor');\n if (Number(dataAnchor)) {\n this.scrollOffset = Number(dataAnchor) || 0;\n }\n else {\n const dataAnchorEl = document.querySelectorAll(dataAnchor);\n this.scrollOffset = dataAnchorEl.length > 0 ? dataAnchorEl[0].clientHeight : 0;\n }\n //Create sticky container\n const stickyContent = this.nodeList[i].outerHTML;\n document.querySelectorAll(`[${dataAttribute}]`)[i].outerHTML = `
${stickyContent}
`;\n window.addEventListener('scroll', () => {\n this.scrollPosition = window.pageYOffset;\n if (this.scrollPosition >= (this.scrollOffset + 1)) {\n document.querySelectorAll(`[${dataAttribute}]`)[i].classList.add('is-stuck');\n document.querySelectorAll(`[${dataAttribute}]`)[i].parentElement.style.height = document.querySelectorAll(`[${dataAttribute}]`)[i].clientHeight + 'px';\n return;\n }\n document.querySelectorAll(`[${dataAttribute}]`)[i].classList.remove('is-stuck');\n document.querySelectorAll(`[${dataAttribute}]`)[i].parentElement.style.height = 'auto';\n });\n }\n }\n}\nexports.UICoreSticky = UICoreSticky;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UICoreFormValidator = exports.UICoreBlazeSlider = exports.UICoreCookies = exports.UICoreOffCanvas = exports.UICoreSticky = void 0;\nrequire(\"./components/UICoreDropDown\");\nrequire(\"./components/UICoreMatchHeight\");\nvar UICoreSticky_1 = require(\"./components/UICoreSticky\");\nObject.defineProperty(exports, \"UICoreSticky\", { enumerable: true, get: function () { return UICoreSticky_1.UICoreSticky; } });\nvar UICoreOffCanvas_1 = require(\"./components/UICoreOffCanvas\");\nObject.defineProperty(exports, \"UICoreOffCanvas\", { enumerable: true, get: function () { return UICoreOffCanvas_1.UICoreOffCanvas; } });\nvar UICoreCookies_1 = require(\"./components/UICoreCookies\");\nObject.defineProperty(exports, \"UICoreCookies\", { enumerable: true, get: function () { return UICoreCookies_1.UICoreCookies; } });\nvar UICoreBlazeSlider_1 = require(\"./components/UICoreBlazeSlider\");\nObject.defineProperty(exports, \"UICoreBlazeSlider\", { enumerable: true, get: function () { return UICoreBlazeSlider_1.UICoreBlazeSlider; } });\nvar UICoreFormValidator_1 = require(\"./components/UICoreFormValidator\");\nObject.defineProperty(exports, \"UICoreFormValidator\", { enumerable: true, get: function () { return UICoreFormValidator_1.UICoreFormValidator; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Register_1 = __importDefault(require(\"./Register\"));\nvar EnvironmentContainer = /** @class */ (function () {\n function EnvironmentContainer() {\n }\n EnvironmentContainer.initialize = function () {\n if (!EnvironmentContainer.instance) {\n EnvironmentContainer.instance = new EnvironmentContainer;\n for (var key in Register_1.default)\n EnvironmentContainer.instance.set(key, Register_1.default[key]);\n }\n return EnvironmentContainer.instance;\n };\n EnvironmentContainer.prototype.set = function (key, value) {\n EnvironmentContainer.environment[key] = value;\n return this;\n };\n EnvironmentContainer.prototype.setMany = function (vars) {\n for (var key in vars)\n EnvironmentContainer.instance.set(key, vars[key]);\n return this;\n };\n EnvironmentContainer.prototype.get = function (key) {\n return EnvironmentContainer.environment[key] || null;\n };\n EnvironmentContainer.prototype.getMany = function (keys) {\n var result = {};\n for (var key in keys)\n result[key] = EnvironmentContainer.environment[key] || null;\n return result;\n };\n EnvironmentContainer.prototype.getAll = function () {\n return EnvironmentContainer.environment;\n };\n EnvironmentContainer.environment = {};\n return EnvironmentContainer;\n}());\nexports.EnvironmentContainer = EnvironmentContainer;\nvar environment = function () {\n return EnvironmentContainer.initialize();\n};\nexports.default = environment;\n//# sourceMappingURL=EnvironmentContainer.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EnvironmentContainer_1 = __importDefault(require(\"./EnvironmentContainer\"));\nexports.default = EnvironmentContainer_1.default;\n//# sourceMappingURL=Index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = {};\n//# sourceMappingURL=Register.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpClientFactory = exports.HttpClient = void 0;\nvar axios_1 = __importDefault(require(\"axios\"));\nvar defaultConfig = function () { return ({\n timeout: 10000\n}); };\nvar HttpClient = /** @class */ (function () {\n function HttpClient() {\n }\n HttpClient.initialize = function (config) {\n if (config === void 0) { config = {}; }\n if (!HttpClient.instance) {\n HttpClient.instance = HttpClientFactory.makeInstance(config);\n }\n return HttpClient.instance;\n };\n return HttpClient;\n}());\nexports.HttpClient = HttpClient;\nvar HttpClientFactory = /** @class */ (function () {\n function HttpClientFactory() {\n }\n HttpClientFactory.makeInstance = function (config) {\n if (config === void 0) { config = {}; }\n return axios_1.default.create(__assign(__assign({}, (defaultConfig())), config));\n };\n return HttpClientFactory;\n}());\nexports.HttpClientFactory = HttpClientFactory;\nvar httpClient = function (config) {\n if (config === void 0) { config = {}; }\n return HttpClient.initialize(config);\n};\nexports.default = httpClient;\n//# sourceMappingURL=index.js.map","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\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 var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\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 (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\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', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var 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 var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\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 */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: 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 */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.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 response.data,\n response.headers,\n config.transformResponse\n );\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 reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\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 * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(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 function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\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 */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\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\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n 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 setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\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 validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\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\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\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 * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\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 * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.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 var 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 var 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","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function 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","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.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 var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var 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 var 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 var 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);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\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 * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !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 * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\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 && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\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 */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\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 */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\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 * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n 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 * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\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 * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*!\n* fullPage 4.0.20\n* https://github.com/alvarotrigo/fullPage.js\n*\n* @license GPLv3 for open source use only\n* or Fullpage Commercial License for commercial use\n* http://alvarotrigo.com/fullPage/pricing/\n*\n* Copyright (C) 2018 http://alvarotrigo.com/fullPage - A project by Alvaro Trigo\n*/\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.fullpage = factory());\n})(this, (function () { 'use strict';\n\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n if (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, 'find', {\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var o = Object(this); // 2. Let len be ? ToLength(? Get(O, \"length\")).\n\n var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\n\n var thisArg = arguments[1]; // 5. Let k be 0.\n\n var k = 0; // 6. Repeat, while k < len\n\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n } // e. Increase k by 1.\n\n\n k++;\n } // 7. Return undefined.\n\n\n return undefined;\n }\n });\n }\n\n // Production steps of ECMA-262, Edition 6, 22.1.2.1\n if (!Array.from) {\n Array.from = function () {\n var toStr = Object.prototype.toString;\n\n var isCallable = function isCallable(fn) {\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n };\n\n var toInteger = function toInteger(value) {\n var number = Number(value);\n\n if (isNaN(number)) {\n return 0;\n }\n\n if (number === 0 || !isFinite(number)) {\n return number;\n }\n\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n var toLength = function toLength(value) {\n var len = toInteger(value);\n return Math.min(Math.max(len, 0), maxSafeInteger);\n }; // The length property of the from method is 1.\n\n\n return function from(arrayLike\n /*, mapFn, thisArg */\n ) {\n // 1. Let C be the this value.\n var C = this; // 2. Let items be ToObject(arrayLike).\n\n var items = Object(arrayLike); // 3. ReturnIfAbrupt(items).\n\n if (arrayLike == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n } // 4. If mapfn is undefined, then let mapping be false.\n\n\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n var T;\n\n if (typeof mapFn !== 'undefined') {\n // 5. else\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n if (!isCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n } // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\n\n if (arguments.length > 2) {\n T = arguments[2];\n }\n } // 10. Let lenValue be Get(items, \"length\").\n // 11. Let len be ToLength(lenValue).\n\n\n var len = toLength(items.length); // 13. If IsConstructor(C) is true, then\n // 13. a. Let A be the result of calling the [[Construct]] internal method\n // of C with an argument list containing the single item len.\n // 14. a. Else, Let A be ArrayCreate(len).\n\n var A = isCallable(C) ? Object(new C(len)) : new Array(len); // 16. Let k be 0.\n\n var k = 0; // 17. Repeat, while k < len… (also steps a - h)\n\n var kValue;\n\n while (k < len) {\n kValue = items[k];\n\n if (mapFn) {\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n } else {\n A[k] = kValue;\n }\n\n k += 1;\n } // 18. Let putStatus be Put(A, \"length\", len, true).\n\n\n A.length = len; // 20. Return A.\n\n return A;\n };\n }();\n }\n\n var win = window;\n var doc = document;\n var isTouchDevice = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/);\n var isMacDevice = /(Mac|iPhone|iPod|iPad)/i.test(win.navigator.userAgent); // @ts-ignore\n\n var isTouch = 'ontouchstart' in win || navigator.msMaxTouchPoints > 0 || navigator.maxTouchPoints;\n var isIE11 = !!window.MSInputMethodContext && !!document.documentMode; // taken from https://github.com/udacity/ud891/blob/gh-pages/lesson2-focus/07-modals-and-keyboard-traps/solution/modal.js\n\n var focusableElementsString = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]'; // cache common elements\n\n var FP = {\n test: {},\n shared: {}\n };\n var extensions = ['parallax', 'scrollOverflowReset', 'dragAndMove', 'offsetSections', 'fadingEffect', 'responsiveSlides', 'continuousHorizontal', 'interlockedSlides', 'scrollHorizontally', 'resetSliders', 'cards', 'dropEffect', 'waterEffect'];\n\n /**\n * forEach polyfill for IE\n * https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#Browser_Compatibility\n */\n\n if (win.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = function (callback, thisArg) {\n thisArg = thisArg || window;\n\n for (var i = 0; i < this.length; i++) {\n callback.call(thisArg, this[i], i, this);\n }\n };\n }\n\n if (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n value: function assign(target, varArgs) {\n\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n\n return to;\n },\n writable: true,\n configurable: true\n });\n }\n\n // https://stackoverflow.com/questions/51719553/padstart-not-working-in-ie11\n // https://github.com/behnammodi/polyfill/blob/master/string.polyfill.js\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\n if (!String.prototype.padStart) {\n String.prototype.padStart = function padStart(targetLength, padString) {\n targetLength = targetLength >> 0; //truncate if number or convert non-number to 0;\n\n padString = String(typeof padString !== 'undefined' ? padString : ' ');\n\n if (this.length > targetLength) {\n return String(this);\n } else {\n targetLength = targetLength - this.length;\n\n if (targetLength > padString.length) {\n padString += Array.apply(null, Array(targetLength)).map(function () {\n return padString;\n }).join(\"\");\n }\n\n return padString.slice(0, targetLength) + String(this);\n }\n };\n }\n\n //utils\n /**\n * Shows a message in the console of the given type.\n */\n\n function showError(type, text) {\n win.console && win.console[type] && win.console[type]('fullPage: ' + text);\n }\n function isVisible(el) {\n var style = win.getComputedStyle(el);\n return style.display !== 'none';\n }\n function getVisible(elements) {\n return Array.from(elements).filter(function (e) {\n return isVisible(e);\n });\n }\n /**\n * Equivalent of jQuery function $().\n */\n\n function $(selector, context) {\n context = arguments.length > 1 ? context : document;\n return context ? context.querySelectorAll(selector) : null;\n }\n /**\n * Extends a given Object properties and its childs.\n */\n\n function deepExtend(out) {\n out = out || {};\n\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var obj = arguments[i];\n\n if (!obj) {\n continue;\n }\n\n for (var key in obj) {\n if (!obj.hasOwnProperty(key) || key == '__proto__' || key == 'constructor') {\n continue;\n } // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/\n\n\n if (Object.prototype.toString.call(obj[key]) === '[object Object]') {\n out[key] = deepExtend(out[key], obj[key]);\n continue;\n }\n\n out[key] = obj[key];\n }\n }\n\n return out;\n }\n /**\n * Checks if the passed element contains the passed class.\n */\n\n function hasClass(el, className) {\n if (el == null) {\n return false;\n }\n\n return el.classList.contains(className);\n }\n /**\n * Gets the window height. Crossbrowser.\n */\n\n function getWindowHeight() {\n return 'innerHeight' in win ? win.innerHeight : doc.documentElement.offsetHeight;\n }\n /**\n * Gets the window width.\n */\n\n function getWindowWidth() {\n return win.innerWidth;\n }\n /**\n * Set's the CSS properties for the passed item/s.\n * @param {NodeList|HTMLElement|Object} items\n * @param {Object} props css properties and values.\n */\n\n function css(items, props) {\n items = getList(items);\n var key;\n\n for (key in props) {\n if (props.hasOwnProperty(key)) {\n if (key !== null) {\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n item.style[key] = props[key];\n }\n }\n }\n }\n\n return items;\n }\n /**\n * Gets the previous element to the passed element.\n */\n\n function prev(item) {\n return item.previousElementSibling;\n }\n /**\n * Gets the next element to the passed element.\n */\n\n function next(item) {\n return item.nextElementSibling;\n }\n /**\n * Gets the last element from the passed list of elements.\n */\n\n function last(item) {\n return item[item.length - 1];\n }\n /**\n * Gets index from the passed element.\n * @param {String} selector is optional.\n */\n\n function index(item, selector) {\n item = isArrayOrList(item) ? item[0] : item;\n var children = selector != null ? $(selector, item.parentNode) : item.parentNode.childNodes;\n var num = 0;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i] == item) return num;\n if (children[i].nodeType == 1) num++;\n }\n\n return -1;\n }\n /**\n * Gets an iterable element for the passed element/s\n */\n\n function getList(item) {\n return !isArrayOrList(item) ? [item] : item;\n }\n /**\n * Adds the display=none property for the passed element/s\n */\n\n function hide(el) {\n el = getList(el);\n\n for (var i = 0; i < el.length; i++) {\n el[i].style.display = 'none';\n }\n\n return el;\n }\n /**\n * Adds the display=block property for the passed element/s\n */\n\n function show(el) {\n el = getList(el);\n\n for (var i = 0; i < el.length; i++) {\n el[i].style.display = 'block';\n }\n\n return el;\n }\n /**\n * Checks if the passed element is an iterable element or not\n */\n\n function isArrayOrList(el) {\n return Object.prototype.toString.call(el) === '[object Array]' || Object.prototype.toString.call(el) === '[object NodeList]';\n }\n /**\n * Adds the passed class to the passed element/s\n */\n\n function addClass(el, className) {\n el = getList(el);\n\n for (var i = 0; i < el.length; i++) {\n var item = el[i];\n item.classList.add(className);\n }\n\n return el;\n }\n /**\n * Removes the passed class to the passed element/s\n * @param {String} `className` can be multiple classnames separated by whitespace\n */\n\n function removeClass(el, className) {\n el = getList(el);\n var classNames = className.split(' ');\n\n for (var a = 0; a < classNames.length; a++) {\n className = classNames[a];\n\n for (var i = 0; i < el.length; i++) {\n var item = el[i];\n item.classList.remove(className);\n }\n }\n\n return el;\n }\n /**\n * Appends the given element ot the given parent.\n */\n\n function appendTo(el, parent) {\n parent.appendChild(el);\n }\n /**\n Usage:\n\n var wrapper = document.createElement('div');\n wrapper.className = 'fp-slides';\n wrap($('.slide'), wrapper);\n\n https://jsfiddle.net/qwzc7oy3/15/ (vanilla)\n https://jsfiddle.net/oya6ndka/1/ (jquery equivalent)\n */\n\n function wrap(toWrap, wrapper, isWrapAll) {\n var newParent;\n wrapper = wrapper || doc.createElement('div');\n\n for (var i = 0; i < toWrap.length; i++) {\n var item = toWrap[i];\n\n if (isWrapAll && !i || !isWrapAll) {\n newParent = wrapper.cloneNode(true);\n item.parentNode.insertBefore(newParent, item);\n }\n\n newParent.appendChild(item);\n }\n\n return toWrap;\n }\n /**\n Usage:\n var wrapper = document.createElement('div');\n wrapper.className = 'fp-slides';\n wrap($('.slide'), wrapper);\n\n https://jsfiddle.net/qwzc7oy3/27/ (vanilla)\n https://jsfiddle.net/oya6ndka/4/ (jquery equivalent)\n */\n\n function wrapAll(toWrap, wrapper) {\n wrap(toWrap, wrapper, true);\n }\n /**\n * Usage:\n * wrapInner(document.querySelector('#pepe'), '
afdas
');\n * wrapInner(document.querySelector('#pepe'), element);\n *\n * https://jsfiddle.net/zexxz0tw/6/\n *\n * https://stackoverflow.com/a/21817590/1081396\n */\n\n function wrapInner(parent, wrapper) {\n parent.appendChild(wrapper);\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild);\n }\n }\n /**\n * Usage:\n * unwrap(document.querySelector('#pepe'));\n * unwrap(element);\n *\n * https://jsfiddle.net/szjt0hxq/1/\n *\n */\n\n function unwrap(wrapper) {\n var wrapperContent = doc.createDocumentFragment();\n\n while (wrapper.firstChild) {\n wrapperContent.appendChild(wrapper.firstChild);\n }\n\n wrapper.parentNode.replaceChild(wrapperContent, wrapper);\n }\n /**\n * http://stackoverflow.com/questions/22100853/dom-pure-javascript-solution-to-jquery-closest-implementation\n * Returns the element or `false` if there's none\n */\n\n function closest(el, selector) {\n if (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n\n return closest(el.parentNode, selector);\n }\n\n return null;\n }\n /**\n * Places one element (rel) after another one or group of them (reference).\n * @param {HTMLElement} reference\n * @param {HTMLElement|NodeList|String|Array} el\n * https://jsfiddle.net/9s97hhzv/1/\n */\n\n function after(reference, el) {\n insertBefore(reference, reference.nextSibling, el);\n }\n /**\n * Places one element (rel) before another one or group of them (reference).\n * @param {HTMLElement} reference\n * @param {HTMLElement|NodeList|String|Array} el\n * https://jsfiddle.net/9s97hhzv/1/\n */\n\n function before(reference, el) {\n insertBefore(reference, reference, el);\n }\n /**\n * Based in https://stackoverflow.com/a/19316024/1081396\n * and https://stackoverflow.com/a/4793630/1081396\n */\n\n function insertBefore(reference, beforeElement, el) {\n if (!isArrayOrList(el)) {\n if (typeof el == 'string') {\n el = createElementFromHTML(el);\n }\n\n el = [el];\n }\n\n for (var i = 0; i < el.length; i++) {\n reference.parentNode.insertBefore(el[i], beforeElement);\n }\n } //http://stackoverflow.com/questions/3464876/javascript-get-window-x-y-position-for-scroll\n\n function getScrollTop() {\n var docElement = doc.documentElement;\n return (win.pageYOffset || docElement.scrollTop) - (docElement.clientTop || 0);\n }\n /**\n * Gets the siblings of the passed element\n */\n\n function siblings(el) {\n return Array.prototype.filter.call(el.parentNode.children, function (child) {\n return child !== el;\n });\n }\n function preventDefault(event) {\n event.preventDefault();\n }\n function getAttr(el, attr) {\n return el.getAttribute(attr);\n }\n function docAddEvent(event, callback, options) {\n doc.addEventListener(event, callback, options === 'undefined' ? null : options);\n }\n function windowAddEvent(event, callback, options) {\n win.addEventListener(event, callback, options === 'undefined' ? null : options);\n }\n function docRemoveEvent(event, callback, options) {\n doc.removeEventListener(event, callback, options === 'undefined' ? null : options);\n }\n function windowRemoveEvent(event, callback, options) {\n win.removeEventListener(event, callback, options === 'undefined' ? null : options);\n }\n /**\n * Determines whether the passed item is of function type.\n */\n\n function isFunction(item) {\n if (typeof item === 'function') {\n return true;\n }\n\n var type = Object.prototype.toString.call(item);\n return type === '[object Function]' || type === '[object GeneratorFunction]';\n }\n /**\n * Trigger custom events\n */\n\n function trigger(el, eventName, data) {\n var event;\n data = typeof data === 'undefined' ? {} : data; // Native\n\n if (typeof win.CustomEvent === \"function\") {\n event = new CustomEvent(eventName, {\n detail: data\n });\n } else {\n event = doc.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, data);\n }\n\n el.dispatchEvent(event);\n }\n /**\n * Polyfill of .matches()\n */\n\n function matches(el, selector) {\n return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector);\n }\n /**\n * Toggles the visibility of the passed element el.\n */\n\n function toggle(el, value) {\n if (typeof value === \"boolean\") {\n for (var i = 0; i < el.length; i++) {\n el[i].style.display = value ? 'block' : 'none';\n }\n } //we don't use it in other way, so no else :)\n\n\n return el;\n }\n /**\n * Creates a HTMLElement from the passed HTML string.\n * https://stackoverflow.com/a/494348/1081396\n */\n\n function createElementFromHTML(htmlString) {\n var div = doc.createElement('div');\n div.innerHTML = htmlString.trim(); // Change this to div.childNodes to support multiple top-level nodes\n\n return div.firstChild;\n }\n /**\n * Removes the passed item/s from the DOM.\n */\n\n function remove(items) {\n items = getList(items);\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n\n if (item && item.parentElement) {\n item.parentNode.removeChild(item);\n }\n }\n } //https://jsfiddle.net/w1rktecz/\n\n function untilAll(item, selector, fn) {\n var sibling = item[fn];\n var siblings = [];\n\n while (sibling) {\n if (matches(sibling, selector) || selector == null) {\n siblings.push(sibling);\n }\n\n sibling = sibling[fn];\n }\n\n return siblings;\n }\n /**\n * Gets all next elements matching the passed selector.\n */\n\n function nextAll(item, selector) {\n return untilAll(item, selector, 'nextElementSibling');\n }\n /**\n * Gets all previous elements matching the passed selector.\n */\n\n function prevAll(item, selector) {\n return untilAll(item, selector, 'previousElementSibling');\n }\n /**\n * Converts an object to an array.\n */\n\n function toArray(objectData) {\n return Object.keys(objectData).map(function (key) {\n return objectData[key];\n });\n }\n function getLast(items) {\n return items[items.length - 1];\n }\n /**\n * Gets the average of the last `number` elements of the given array.\n */\n\n function getAverage(elements, number) {\n var sum = 0; //taking `number` elements from the end to make the average, if there are not enought, 1\n\n var lastElements = elements.slice(Math.max(elements.length - number, 1));\n\n for (var i = 0; i < lastElements.length; i++) {\n sum = sum + lastElements[i];\n }\n\n return Math.ceil(sum / number);\n }\n /**\n * Sets the value for the given attribute from the `data-` attribute with the same suffix\n * ie: data-srcset ==> srcset | data-src ==> src\n */\n\n function setSrc(element, attribute) {\n element.setAttribute(attribute, getAttr(element, 'data-' + attribute));\n element.removeAttribute('data-' + attribute);\n }\n function getParentsUntil(item, topParentSelector) {\n var parents = [item];\n\n do {\n item = item.parentNode;\n parents.push(item);\n } while (!matches(item, topParentSelector));\n\n return parents;\n }\n function isInsideInput() {\n var activeElement = doc.activeElement;\n return matches(activeElement, 'textarea') || matches(activeElement, 'input') || matches(activeElement, 'select') || getAttr(activeElement, 'contentEditable') == \"true\" || getAttr(activeElement, 'contentEditable') == '';\n } //utils are public, so we can use it wherever we want\n // @ts-ignore\n\n window[\"fp_utils\"] = {\n \"$\": $,\n \"deepExtend\": deepExtend,\n \"hasClass\": hasClass,\n \"getWindowHeight\": getWindowHeight,\n \"css\": css,\n \"prev\": prev,\n \"next\": next,\n \"last\": last,\n \"index\": index,\n \"getList\": getList,\n \"hide\": hide,\n \"show\": show,\n \"isArrayOrList\": isArrayOrList,\n \"addClass\": addClass,\n \"removeClass\": removeClass,\n \"appendTo\": appendTo,\n \"wrap\": wrap,\n \"wrapAll\": wrapAll,\n \"unwrap\": unwrap,\n \"closest\": closest,\n \"after\": after,\n \"before\": before,\n \"insertBefore\": insertBefore,\n \"getScrollTop\": getScrollTop,\n \"siblings\": siblings,\n \"preventDefault\": preventDefault,\n \"isFunction\": isFunction,\n \"trigger\": trigger,\n \"matches\": matches,\n \"toggle\": toggle,\n \"createElementFromHTML\": createElementFromHTML,\n \"remove\": remove,\n // \"filter\": filter,\n \"untilAll\": untilAll,\n \"nextAll\": nextAll,\n \"prevAll\": prevAll,\n \"showError\": showError\n };\n\n var utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n showError: showError,\n isVisible: isVisible,\n getVisible: getVisible,\n $: $,\n deepExtend: deepExtend,\n hasClass: hasClass,\n getWindowHeight: getWindowHeight,\n getWindowWidth: getWindowWidth,\n css: css,\n prev: prev,\n next: next,\n last: last,\n index: index,\n getList: getList,\n hide: hide,\n show: show,\n isArrayOrList: isArrayOrList,\n addClass: addClass,\n removeClass: removeClass,\n appendTo: appendTo,\n wrap: wrap,\n wrapAll: wrapAll,\n wrapInner: wrapInner,\n unwrap: unwrap,\n closest: closest,\n after: after,\n before: before,\n insertBefore: insertBefore,\n getScrollTop: getScrollTop,\n siblings: siblings,\n preventDefault: preventDefault,\n getAttr: getAttr,\n docAddEvent: docAddEvent,\n windowAddEvent: windowAddEvent,\n docRemoveEvent: docRemoveEvent,\n windowRemoveEvent: windowRemoveEvent,\n isFunction: isFunction,\n trigger: trigger,\n matches: matches,\n toggle: toggle,\n createElementFromHTML: createElementFromHTML,\n remove: remove,\n untilAll: untilAll,\n nextAll: nextAll,\n prevAll: prevAll,\n toArray: toArray,\n getLast: getLast,\n getAverage: getAverage,\n setSrc: setSrc,\n getParentsUntil: getParentsUntil,\n isInsideInput: isInsideInput\n });\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var EventEmitter = {\n events: {},\n on: function on(event, listener) {\n var _this = this;\n\n if (_typeof(this.events[event]) !== 'object') {\n this.events[event] = [];\n }\n\n this.events[event].push(listener);\n return function () {\n return _this.removeListener(event, listener);\n };\n },\n removeListener: function removeListener(event, listener) {\n if (_typeof(this.events[event]) === 'object') {\n var idx = this.events[event].indexOf(listener);\n\n if (idx > -1) {\n this.events[event].splice(idx, 1);\n }\n }\n },\n emit: function emit(event) {\n var _this2 = this;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (_typeof(this.events[event]) === 'object') {\n this.events[event].forEach(function (listener) {\n return listener.apply(_this2, args);\n });\n }\n },\n once: function once(event, listener) {\n var _this3 = this;\n\n var remove = this.on(event, function () {\n remove();\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(_this3, args);\n });\n }\n };\n\n var state = {\n numSections: 0,\n numSlides: 0,\n slides: [],\n sections: [],\n activeSection: null,\n scrollTrigger: null,\n isBeyondFullpage: false,\n aboutToScrollToFullPage: false,\n slideMoving: false,\n isResizing: false,\n isScrolling: false,\n lastScrolledDestiny: undefined,\n lastScrolledSlide: undefined,\n activeAnimation: false,\n canScroll: true,\n touchDirection: 'none',\n wheelDirection: 'none',\n isGrabbing: false,\n isUsingWheel: false,\n isWindowFocused: true,\n previousDestTop: 0,\n windowsHeight: getWindowHeight(),\n isDoingContinousVertical: false,\n timeouts: {},\n scrollY: 0,\n scrollX: 0\n }; // @ts-ignore\n\n win.state = state;\n function setState(props) {\n Object.assign(state, props);\n }\n function getState() {\n return state;\n }\n function getActivePanel() {\n return state.activeSection && state.activeSection.activeSlide ? state.activeSection.activeSlide : state.activeSection;\n }\n\n var events = {\n onAfterRenderNoAnchor: 'onAfterRenderNoAnchor',\n onClickOrTouch: 'onClickOrTouch',\n moveSlideLeft: 'moveSlideLeft',\n moveSlideRight: 'moveSlideRight',\n onInitialise: 'onInitialise',\n beforeInit: 'beforeInit',\n bindEvents: 'bindEvents',\n onDestroy: 'onDestroy',\n contentChanged: 'contentChanged',\n onScrollOverflowScrolled: 'onScrollOverflowScrolled',\n onScrollPageAndSlide: 'onScrollPageAndSlide',\n onKeyDown: 'onKeyDown',\n onMenuClick: 'onMenuClick',\n scrollPage: 'scrollPage',\n landscapeScroll: 'landscapeScroll',\n scrollBeyondFullpage: 'scrollBeyondFullpage',\n onPerformMovement: 'onPerformMovement',\n onSlideLeave: 'onSlideLeave',\n onLeave: 'onLeave',\n afterSectionLoads: 'afterSectionLoads',\n afterSlideLoads: 'afterSlideLoads'\n };\n\n EventEmitter.on(events.bindEvents, bindEvents$c);\n\n function bindEvents$c() {\n //Scrolls to the section when clicking the navigation bullet\n //simulating the jQuery .on('click') event using delegation\n ['click', 'touchstart'].forEach(function (eventName) {\n docAddEvent(eventName, delegatedEvents);\n });\n windowAddEvent('focus', focusHandler);\n internalEvents();\n }\n\n function internalEvents() {\n EventEmitter.on(events.onDestroy, onDestroy$9);\n }\n\n function delegatedEvents(e) {\n EventEmitter.emit(events.onClickOrTouch, {\n e: e,\n target: e.target\n });\n }\n\n function onDestroy$9() {\n ['click', 'touchstart'].forEach(function (eventName) {\n docRemoveEvent(eventName, delegatedEvents);\n });\n } // changing isWindowFocused to true on focus event\n\n\n function focusHandler() {\n setState({\n isWindowFocused: true\n });\n }\n\n // keeping central set of classnames and selectors\n var WRAPPER = 'fullpage-wrapper';\n var WRAPPER_SEL = '.' + WRAPPER; // slimscroll\n\n var SCROLLABLE = 'fp-scrollable';\n\n var RESPONSIVE = 'fp-responsive';\n var NO_TRANSITION = 'fp-notransition';\n var DESTROYED = 'fp-destroyed';\n var ENABLED = 'fp-enabled';\n var VIEWING_PREFIX = 'fp-viewing';\n var ACTIVE = 'active';\n var ACTIVE_SEL = '.' + ACTIVE;\n var COMPLETELY = 'fp-completely';\n var COMPLETELY_SEL = '.' + COMPLETELY; // section\n\n var SECTION_DEFAULT_SEL = '.section';\n var SECTION = 'fp-section';\n var SECTION_SEL = '.' + SECTION;\n var SECTION_ACTIVE_SEL = SECTION_SEL + ACTIVE_SEL;\n var TABLE_CELL = 'fp-tableCell';\n var TABLE_CELL_SEL = '.' + TABLE_CELL;\n var AUTO_HEIGHT = 'fp-auto-height';\n var AUTO_HEIGHT_SEL = '.' + AUTO_HEIGHT;\n var AUTO_HEIGHT_RESPONSIVE = 'fp-auto-height-responsive';\n var AUTO_HEIGHT_RESPONSIVE_SEL = '.' + AUTO_HEIGHT_RESPONSIVE;\n var NORMAL_SCROLL = 'fp-normal-scroll';\n\n var SECTION_NAV = 'fp-nav';\n var SECTION_NAV_SEL = '#' + SECTION_NAV;\n var SECTION_NAV_TOOLTIP = 'fp-tooltip';\n var SECTION_NAV_TOOLTIP_SEL = '.' + SECTION_NAV_TOOLTIP;\n var SHOW_ACTIVE_TOOLTIP = 'fp-show-active'; // slide\n\n var SLIDE_DEFAULT_SEL = '.slide';\n var SLIDE = 'fp-slide';\n var SLIDE_SEL = '.' + SLIDE;\n var SLIDE_ACTIVE_SEL = SLIDE_SEL + ACTIVE_SEL;\n var SLIDES_WRAPPER = 'fp-slides';\n var SLIDES_WRAPPER_SEL = '.' + SLIDES_WRAPPER;\n var SLIDES_CONTAINER = 'fp-slidesContainer';\n var SLIDES_CONTAINER_SEL = '.' + SLIDES_CONTAINER;\n var TABLE = 'fp-table';\n var OVERFLOW = 'fp-overflow';\n var OVERFLOW_SEL = '.' + OVERFLOW;\n var IS_OVERFLOW = 'fp-is-overflow'; // slide nav\n\n var SLIDES_NAV = 'fp-slidesNav';\n var SLIDES_NAV_SEL = '.' + SLIDES_NAV;\n var SLIDES_NAV_LINK_SEL = SLIDES_NAV_SEL + ' a';\n var SLIDES_STYLED_ARROW = 'fp-arrow';\n var SLIDES_ARROW = 'fp-controlArrow';\n var SLIDES_ARROW_SEL = '.' + SLIDES_ARROW;\n var SLIDES_PREV = 'fp-prev';\n var SLIDES_PREV_SEL = '.' + SLIDES_PREV;\n var SLIDES_ARROW_PREV_SEL = SLIDES_ARROW_SEL + SLIDES_PREV_SEL;\n var SLIDES_NEXT = 'fp-next';\n var SLIDES_NEXT_SEL = '.' + SLIDES_NEXT;\n var SLIDES_ARROW_NEXT_SEL = SLIDES_ARROW_SEL + SLIDES_NEXT_SEL;\n\n var defaultOptions = {\n //navigation\n menu: false,\n anchors: [],\n lockAnchors: false,\n navigation: false,\n navigationPosition: 'right',\n navigationTooltips: [],\n showActiveTooltip: false,\n slidesNavigation: false,\n slidesNavPosition: 'bottom',\n scrollBar: false,\n hybrid: false,\n licenseKey: '',\n credits: {\n \"enabled\": true,\n \"label\": 'Made with fullPage.js',\n \"position\": 'right'\n },\n //scrolling\n css3: true,\n scrollingSpeed: 700,\n autoScrolling: true,\n fitToSection: true,\n fitToSectionDelay: 600,\n easing: 'easeInOutCubic',\n easingcss3: 'ease',\n loopBottom: false,\n loopTop: false,\n loopHorizontal: true,\n continuousVertical: false,\n continuousHorizontal: false,\n scrollHorizontally: false,\n interlockedSlides: false,\n dragAndMove: false,\n offsetSections: false,\n resetSliders: false,\n fadingEffect: false,\n normalScrollElements: null,\n scrollOverflow: true,\n scrollOverflowReset: false,\n touchSensitivity: 5,\n touchWrapper: null,\n bigSectionsDestination: null,\n //Accessibility\n keyboardScrolling: true,\n animateAnchor: true,\n recordHistory: true,\n allowCorrectDirection: false,\n //design\n scrollOverflowMacStyle: true,\n controlArrows: true,\n controlArrowsHTML: ['
', '
'],\n controlArrowColor: '#fff',\n verticalCentered: true,\n sectionsColor: [],\n paddingTop: 0,\n paddingBottom: 0,\n fixedElements: null,\n responsive: 0,\n //backwards compabitility with responsiveWiddth\n responsiveWidth: 0,\n responsiveHeight: 0,\n responsiveSlides: false,\n parallax: false,\n parallaxOptions: {\n type: 'reveal',\n percentage: 62,\n property: 'translate'\n },\n cards: false,\n cardsOptions: {\n perspective: 100,\n fadeContent: true,\n fadeBackground: true\n },\n //Custom selectors\n sectionSelector: SECTION_DEFAULT_SEL,\n slideSelector: SLIDE_DEFAULT_SEL,\n //events\n afterLoad: null,\n beforeLeave: null,\n onLeave: null,\n afterRender: null,\n afterResize: null,\n afterReBuild: null,\n afterSlideLoad: null,\n onSlideLeave: null,\n afterResponsive: null,\n onScrollOverflow: null,\n lazyLoading: true,\n observer: true,\n scrollBeyondFullpage: true\n };\n\n var container = null;\n var g_initialAnchorsInDom = false;\n var originals = deepExtend({}, defaultOptions); //deep copy\n\n var g_options = null;\n function getInitialAnchorsInDom() {\n return g_initialAnchorsInDom;\n }\n function setContainer(value) {\n container = value;\n }\n function getContainer(value) {\n return container;\n }\n function getOptions() {\n return g_options || defaultOptions;\n }\n function setOptions(options) {\n g_options = deepExtend({}, defaultOptions, options);\n originals = Object.assign({}, g_options);\n }\n function getOriginals() {\n return originals;\n }\n function setOption(name, value) {\n defaultOptions[name] = value;\n }\n /*\n * Sets the state for a variable with multiple states (original, and temporal)\n * Some variables such as `autoScrolling` or `recordHistory` might change automatically its state when using `responsive` or `autoScrolling:false`.\n * This function is used to keep track of both states, the original and the temporal one.\n * If type is not 'internal', then we assume the user is globally changing the variable.\n */\n\n function setVariableState(variable, value, type) {\n g_options[variable] = value;\n\n if (type !== 'internal') {\n originals[variable] = value;\n }\n }\n /**\n * Setting options from DOM elements if they are not provided.\n */\n\n function setOptionsFromDOM() {\n //no anchors option? Checking for them in the DOM attributes\n if (!getOptions().anchors.length) {\n var anchorsAttribute = '[data-anchor]';\n var anchors = $(getOptions().sectionSelector.split(',').join(anchorsAttribute + ',') + anchorsAttribute, container);\n\n if (anchors.length && anchors.length === $(getOptions().sectionSelector, container).length) {\n g_initialAnchorsInDom = true;\n anchors.forEach(function (item) {\n getOptions().anchors.push(getAttr(item, 'data-anchor').toString());\n });\n }\n } //no tooltips option? Checking for them in the DOM attributes\n\n\n if (!getOptions().navigationTooltips.length) {\n var tooltipsAttribute = '[data-tooltip]';\n var tooltips = $(getOptions().sectionSelector.split(',').join(tooltipsAttribute + ',') + tooltipsAttribute, container);\n\n if (tooltips.length) {\n tooltips.forEach(function (item) {\n getOptions().navigationTooltips.push(getAttr(item, 'data-tooltip').toString());\n });\n }\n }\n }\n\n var plainItem = function plainItem(panel) {\n this.anchor = panel.anchor;\n this.item = panel.item;\n this.index = panel.index();\n this.isLast = this.index === panel.item.parentElement.querySelectorAll(panel.selector).length - 1;\n this.isFirst = !this.index;\n this.isActive = panel.isActive;\n };\n /**\n * Item. Slide or Section objects share the same properties.\n */\n\n var Item = function Item(el, selector) {\n this.parent = this.parent || null;\n this.selector = selector;\n this.anchor = getAttr(el, 'data-anchor') || getOptions().anchors[index(el, getOptions().sectionSelector)];\n this.item = el;\n this.isVisible = isVisible(el);\n this.isActive = hasClass(el, ACTIVE);\n this.hasScroll = hasClass(el, OVERFLOW) || $(OVERFLOW_SEL, el)[0] != null;\n this.isSection = selector === getOptions().sectionSelector;\n this.container = closest(el, SLIDES_CONTAINER_SEL) || closest(el, WRAPPER_SEL);\n\n this.index = function () {\n return this.siblings().indexOf(this);\n };\n };\n\n Item.prototype.siblings = function () {\n if (this.isSection) {\n if (this.isVisible) {\n return state.sections;\n } else {\n return state.sectionsIncludingHidden;\n }\n }\n\n return this.parent ? this.parent.slides : 0;\n };\n\n Item.prototype.prev = function () {\n var siblings = this.siblings();\n var currentIndex = this.isSection ? siblings.indexOf(this) : this.parent.slides.indexOf(this);\n var prevIndex = currentIndex - 1;\n\n if (prevIndex >= 0) {\n return siblings[prevIndex];\n }\n\n return null;\n };\n\n Item.prototype.next = function () {\n var siblings = this.siblings();\n var currentIndex = this.isSection ? siblings.indexOf(this) : this.parent.slides.indexOf(this);\n var nextIndex = currentIndex + 1;\n\n if (nextIndex < siblings.length) {\n return siblings[nextIndex];\n }\n\n return null;\n };\n\n Item.prototype[\"prevPanel\"] = function () {\n return this.prev() || (this.parent ? this.parent.prev() : null);\n };\n\n Item.prototype[\"nextPanel\"] = function () {\n return this.next() || (this.parent ? this.parent.next() : null);\n };\n\n Item.prototype.getSiblings = function () {\n if (this.isSection) {\n return state.sections;\n }\n\n return state.panels;\n };\n\n function getNodes(panels) {\n return panels.map(function (panel) {\n return panel.item;\n });\n }\n function getPanelByElement(panels, el) {\n return panels.find(function (panel) {\n return panel.item === el;\n });\n }\n var Section = function Section(el) {\n plainItem.call(this, el);\n };\n var Slide = function Slide(el) {\n plainItem.call(this, el);\n };\n\n /**\n * Gets the active slide (or section) for the given section\n */\n\n function getSlideOrSection(destiny) {\n var slide = $(SLIDE_ACTIVE_SEL, destiny);\n\n if (slide.length) {\n destiny = slide[0];\n }\n\n return destiny;\n }\n function getSlideOrSectionPanel(panel) {\n if (!panel) {\n return null;\n }\n\n return panel.activeSlide ? panel.activeSlide : panel;\n }\n function isFullPageAbove() {\n return getContainer().getBoundingClientRect().bottom >= 0;\n }\n /**\n * Gets the scrolling settings depending on the plugin autoScrolling option\n */\n\n function getScrollSettings(top) {\n var options = getOptions();\n var position;\n var element; //top property animation\n\n if (options.autoScrolling && !options.scrollBar) {\n position = -top;\n element = $(WRAPPER_SEL)[0];\n } //window real scrolling\n else {\n position = top;\n element = window;\n }\n\n return {\n options: position,\n element: element\n };\n }\n /**\n * Scrolls the page / slider the given number of pixels.\n * It will do it one or another way dependiong on the library's config.\n */\n\n function setScrolling(element, val) {\n if (!getOptions().autoScrolling || getOptions().scrollBar || element.self != window && hasClass(element, SLIDES_WRAPPER)) {\n //scrolling horizontally through the slides?\n if (element.self != window && hasClass(element, SLIDES_WRAPPER)) {\n element.scrollLeft = val;\n } //vertical scroll\n else {\n element.scrollTo(0, val);\n }\n } else {\n element.style.top = val + 'px';\n }\n }\n /**\n * Adds transition animations for the given element\n */\n\n function addAnimation(element) {\n var transition = 'transform ' + getOptions().scrollingSpeed + 'ms ' + getOptions().easingcss3;\n removeClass(element, NO_TRANSITION);\n return css(element, {\n '-webkit-transition': transition,\n 'transition': transition\n });\n }\n /**\n * Retuns `up` or `down` depending on the scrolling movement to reach its destination\n * from the current section.\n */\n\n function getYmovement(activeSection, destiny) {\n var fromIndex = activeSection.index();\n var toIndex = index(destiny, SECTION_SEL);\n\n if (fromIndex == toIndex) {\n return 'none';\n }\n\n if (fromIndex > toIndex) {\n return 'up';\n }\n\n return 'down';\n }\n /**\n * Remove transition animations for the given element\n */\n\n function removeAnimation(element) {\n return addClass(element, NO_TRANSITION);\n }\n /**\n * Returns the cross-browser transform string.\n */\n\n function getTransforms(translate3d) {\n return {\n '-webkit-transform': translate3d,\n '-moz-transform': translate3d,\n '-ms-transform': translate3d,\n 'transform': translate3d\n };\n }\n\n var silentScrollId;\n /**\n * Adds a css3 transform property to the container class with or without animation depending on the animated param.\n */\n\n function transformContainer(translate3d, animated) {\n if (animated) {\n addAnimation(getContainer());\n } else {\n removeAnimation(getContainer());\n }\n\n clearTimeout(silentScrollId);\n css(getContainer(), getTransforms(translate3d));\n FP.test.translate3d = translate3d; //syncronously removing the class after the animation has been applied.\n\n silentScrollId = setTimeout(function () {\n removeClass(getContainer(), NO_TRANSITION);\n }, 10);\n }\n\n /**\n * Scrolls silently (with no animation) the page to the given Y position.\n */\n\n function silentScroll(top) {\n // The first section can have a negative value in iOS 10. Not quite sure why: -0.0142822265625\n // that's why we round it to 0.\n var roundedTop = Math.round(top);\n\n if (getOptions().css3 && getOptions().autoScrolling && !getOptions().scrollBar) {\n var translate3d = 'translate3d(0px, -' + roundedTop + 'px, 0px)';\n transformContainer(translate3d, false);\n } else if (getOptions().autoScrolling && !getOptions().scrollBar) {\n css(getContainer(), {\n 'top': -roundedTop + 'px'\n });\n FP.test.top = -roundedTop + 'px';\n } else {\n var scrollSettings = getScrollSettings(roundedTop);\n setScrolling(scrollSettings.element, scrollSettings.options);\n }\n }\n\n FP.setScrollingSpeed = setScrollingSpeed;\n /**\n * Defines the scrolling speed\n */\n\n function setScrollingSpeed(value, type) {\n setVariableState('scrollingSpeed', value, type);\n }\n\n var $body = null;\n var $html = null;\n var $htmlBody = null; // caching common elements\n\n function setCache() {\n $body = $('body')[0];\n $html = $('html')[0];\n $htmlBody = $('html, body');\n }\n\n //@ts-check\n\n var _g_animateScroll;\n /**\n * Simulates the animated scrollTop of jQuery. Used when css3:false or scrollBar:true or autoScrolling:false\n * http://stackoverflow.com/a/16136789/1081396\n */\n\n\n function scrollTo(element, to, duration, callback) {\n var start = getScrolledPosition(element);\n var change = to - start;\n var isCallbackFired = false;\n var startTime;\n var wasAnimationActive = state.activeAnimation;\n setState({\n activeAnimation: true\n }); // Cancelling any possible previous animations (io: clicking on nav dots very fast)\n\n if (_g_animateScroll) {\n window.cancelAnimationFrame(_g_animateScroll);\n }\n\n _g_animateScroll = function g_animateScroll(timestamp) {\n if (!startTime) {\n startTime = timestamp;\n }\n\n var currentTime = Math.floor(timestamp - startTime);\n\n if (state.activeAnimation) {\n //in order to stope it from other function whenever we want\n var val = to;\n\n if (duration) {\n // @ts-ignore\n val = win.fp_easings[getOptions().easing](currentTime, start, change, duration);\n }\n\n if (currentTime <= duration) {\n setScrolling(element, val);\n }\n\n if (currentTime < duration) {\n window.requestAnimationFrame(_g_animateScroll);\n } else if (typeof callback !== 'undefined' && !isCallbackFired) {\n callback();\n setState({\n activeAnimation: false\n });\n isCallbackFired = true;\n }\n } else if (!isCallbackFired && !wasAnimationActive) {\n callback();\n setState({\n activeAnimation: false\n });\n isCallbackFired = true;\n }\n };\n\n window.requestAnimationFrame(_g_animateScroll);\n }\n /**\n * Getting the position of the element to scroll when using jQuery animations\n */\n\n function getScrolledPosition(element) {\n var position; //is not the window element and is a slide?\n\n if (element.self != win && hasClass(element, SLIDES_WRAPPER)) {\n position = element.scrollLeft;\n } else if (!getOptions().autoScrolling || getOptions().scrollBar) {\n position = getScrollTop();\n } else {\n position = element.offsetTop;\n } //gets the top property of the wrapper\n\n\n return position;\n }\n\n /**\n * Makes sure to only create a Panel object if the element exist\n */\n\n function nullOrSection(el) {\n if (el && !el.item) {\n return new Section(new SectionPanel(el));\n }\n\n return el ? new Section(el) : null;\n }\n\n function nullOrSlide(el) {\n return el ? new Slide(el) : null;\n }\n\n /**\n * Dispatch events & callbacks\n */\n\n function fireCallback(eventName, v) {\n var eventData = getEventData(eventName, v);\n trigger(getContainer(), eventName, eventData);\n\n if (getOptions()[eventName].apply(eventData[Object.keys(eventData)[0]], toArray(eventData)) === false) {\n return false;\n }\n\n return true;\n }\n /**\n * Gets the event's data for the given event on the right format.\n */\n\n function getEventData(eventName, v) {\n //using functions to run only the necessary bits within the object\n var paramsPerEvent = {\n afterRender: function afterRender() {\n return {\n section: nullOrSection(getState().activeSection),\n slide: nullOrSlide(getState().activeSection.activeSlide)\n };\n },\n onLeave: function onLeave() {\n return {\n origin: nullOrSection(v.items.origin),\n destination: nullOrSection(v.items.destination),\n direction: v.direction,\n trigger: getState().scrollTrigger\n };\n },\n afterLoad: function afterLoad() {\n return paramsPerEvent.onLeave();\n },\n afterSlideLoad: function afterSlideLoad() {\n return {\n section: nullOrSection(v.items.section),\n origin: nullOrSection(v.items.origin),\n destination: nullOrSection(v.items.destination),\n direction: v.direction,\n trigger: getState().scrollTrigger\n };\n },\n onSlideLeave: function onSlideLeave() {\n return paramsPerEvent.afterSlideLoad();\n },\n beforeLeave: function beforeLeave() {\n return paramsPerEvent.onLeave();\n },\n onScrollOverflow: function onScrollOverflow() {\n return {\n section: nullOrSection(getState().activeSection),\n slide: nullOrSlide(getState().activeSection.activeSlide),\n position: v.position,\n direction: v.direction\n };\n }\n };\n return paramsPerEvent[eventName]();\n }\n\n /**\n * Plays video and audio elements.\n */\n\n function playMedia(destiny) {\n var panel = getSlideOrSection(destiny); //playing HTML5 media elements\n\n $('video, audio', panel).forEach(function (element) {\n if (element.hasAttribute('data-autoplay') && typeof element.play === 'function') {\n element.play();\n }\n }); //youtube videos\n\n $('iframe[src*=\"youtube.com/embed/\"]', panel).forEach(function (element) {\n if (element.hasAttribute('data-autoplay')) {\n playYoutube(element);\n } //in case the URL was not loaded yet. On page load we need time for the new URL (with the API string) to load.\n\n\n element.onload = function () {\n if (element.hasAttribute('data-autoplay')) {\n playYoutube(element);\n }\n };\n });\n }\n /**\n * Plays a youtube video\n */\n\n function playYoutube(element) {\n element.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*');\n }\n /**\n * Stops video and audio elements.\n */\n\n\n function stopMedia(destiny) {\n var panel = getSlideOrSection(destiny); //stopping HTML5 media elements\n\n $('video, audio', panel).forEach(function (element) {\n if (!element.hasAttribute('data-keepplaying') && typeof element.pause === 'function') {\n element.pause();\n }\n }); //youtube videos\n\n $('iframe[src*=\"youtube.com/embed/\"]', panel).forEach(function (element) {\n if (/youtube\\.com\\/embed\\//.test(getAttr(element, 'src')) && !element.hasAttribute('data-keepplaying')) {\n element.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*');\n }\n });\n }\n /*\n * Enables the Youtube videos API so we can control their flow if necessary.\n */\n\n function enableYoutubeAPI() {\n $('iframe[src*=\"youtube.com/embed/\"]', getContainer()).forEach(function (item) {\n addURLParam(item, 'enablejsapi=1');\n });\n }\n /**\n * Adds a new parameter and its value to the `src` of a given element\n */\n\n function addURLParam(element, newParam) {\n var originalSrc = getAttr(element, 'src');\n element.setAttribute('src', originalSrc + getUrlParamSign(originalSrc) + newParam);\n }\n /*\n * Returns the prefix sign to use for a new parameter in an existen URL.\n *\n * @return {String} ? | &\n */\n\n\n function getUrlParamSign(url) {\n return !/\\?/.test(url) ? '?' : '&';\n }\n\n /**\n * Lazy loads image, video and audio elements.\n */\n\n function lazyLoad(destiny) {\n if (!getOptions().lazyLoading) {\n return;\n }\n\n var panel = getSlideOrSection(destiny);\n $('img[data-src], img[data-srcset], source[data-src], source[data-srcset], video[data-src], audio[data-src], iframe[data-src]', panel).forEach(function (element) {\n ['src', 'srcset'].forEach(function (type) {\n var attribute = getAttr(element, 'data-' + type);\n\n if (attribute != null && attribute) {\n setSrc(element, type);\n element.addEventListener('load', function () {\n });\n }\n });\n\n if (matches(element, 'source')) {\n var elementToPlay = closest(element, 'video, audio');\n\n if (elementToPlay) {\n elementToPlay.load();\n\n elementToPlay.onloadeddata = function () {\n };\n }\n }\n });\n }\n\n /**\n * Sets a class for the body of the page depending on the active section / slide\n */\n\n function setBodyClass() {\n var section = getState().activeSection.item;\n var slide = getState().activeSection.activeSlide;\n var sectionAnchor = getAnchor(section);\n var text = String(sectionAnchor);\n\n if (slide) {\n var slideAnchor = getAnchor(slide.item);\n text = text + '-' + slideAnchor;\n } //changing slash for dash to make it a valid CSS style\n\n\n text = text.replace('/', '-').replace('#', ''); //removing previous anchor classes\n\n var classRe = new RegExp('\\\\b\\\\s?' + VIEWING_PREFIX + '-[^\\\\s]+\\\\b', \"g\");\n $body.className = $body.className.replace(classRe, ''); //adding the current anchor\n\n addClass($body, VIEWING_PREFIX + '-' + text);\n }\n /**\n * Gets the anchor for the given slide / section. Its index will be used if there's none.\n */\n\n function getAnchor(element) {\n if (!element) {\n return null;\n }\n\n var anchor = getAttr(element, 'data-anchor');\n var elementIndex = index(element); //Slide without anchor link? We take the index instead.\n\n if (anchor == null) {\n anchor = elementIndex;\n }\n\n return anchor;\n }\n\n /**\n * Sets the state of the website depending on the active section/slide.\n * It changes the URL hash when needed and updates the body class.\n */\n\n function setPageStatus(slideIndex, slideAnchor, anchorLink) {\n var sectionHash = '';\n\n if (getOptions().anchors.length && !getOptions().lockAnchors) {\n //isn't it the first slide?\n if (slideIndex) {\n if (anchorLink != null) {\n sectionHash = anchorLink;\n } //slide without anchor link? We take the index instead.\n\n\n if (slideAnchor == null) {\n slideAnchor = slideIndex;\n }\n\n setState({\n lastScrolledSlide: slideAnchor\n });\n setUrlHash(sectionHash + '/' + slideAnchor); //first slide won't have slide anchor, just the section one\n } else if (slideIndex != null) {\n setState({\n lastScrolledSlide: slideAnchor\n });\n setUrlHash(anchorLink);\n } //section without slides\n else {\n setUrlHash(anchorLink);\n }\n }\n\n setBodyClass();\n }\n /**\n * Sets the URL hash.\n */\n\n function setUrlHash(url) {\n if (getOptions().recordHistory) {\n location.hash = url;\n } else {\n //Mobile Chrome doesn't work the normal way, so... lets use HTML5 for phones :)\n if (isTouchDevice || isTouch) {\n win.history.replaceState(undefined, undefined, '#' + url);\n } else {\n var baseUrl = win.location.href.split('#')[0];\n win.location.replace(baseUrl + '#' + url);\n }\n }\n }\n\n /**\n * Gets the name for screen readers for a section/slide navigation bullet.\n */\n\n function getBulletLinkName(i, defaultName, item) {\n var anchor = defaultName === 'Section' ? getOptions().anchors[i] : getAttr(item, 'data-anchor');\n return encodeURI(getOptions().navigationTooltips[i] || anchor || defaultName + ' ' + (i + 1));\n }\n\n function slideBulletHandler(e) {\n // not all events are cancellable \n // https://www.uriports.com/blog/easy-fix-for-intervention-ignored-attempt-to-cancel-a-touchmove-event-with-cancelable-false/\n if (e.cancelable) {\n preventDefault(e);\n }\n\n setState({\n scrollTrigger: 'horizontalNav'\n });\n /*jshint validthis:true */\n\n var sectionElem = closest(this, SECTION_SEL);\n var slides = $(SLIDES_WRAPPER_SEL, closest(this, SECTION_SEL))[0];\n var section = getPanelByElement(getState().sections, sectionElem);\n var destiny = section.slides[index(closest(this, 'li'))];\n EventEmitter.emit(events.landscapeScroll, {\n slides: slides,\n destination: destiny.item\n });\n }\n /**\n * Sets the state for the horizontal bullet navigations.\n */\n\n function activeSlidesNavigation(slidesNav, slideIndex) {\n if (getOptions().slidesNavigation && slidesNav != null) {\n removeClass($(ACTIVE_SEL, slidesNav), ACTIVE);\n addClass($('a', $('li', slidesNav)[slideIndex]), ACTIVE);\n }\n }\n /**\n * Creates a landscape navigation bar with dots for horizontal sliders.\n */\n\n function addSlidesNavigation(section) {\n var sectionElem = section.item;\n var numSlides = section.slides.length;\n appendTo(createElementFromHTML('
'), sectionElem);\n var nav = $(SLIDES_NAV_SEL, sectionElem)[0]; //top or bottom\n\n addClass(nav, 'fp-' + getOptions().slidesNavPosition);\n\n for (var i = 0; i < numSlides; i++) {\n var slide = $(SLIDE_SEL, sectionElem)[i];\n appendTo(createElementFromHTML('
  • ' + getBulletLinkName(i, 'Slide', slide) + '
  • '), $('ul', nav)[0]);\n } //centering it\n\n\n css(nav, {\n 'margin-left': '-' + nav.innerWidth / 2 + 'px'\n });\n var activeSlideIndex = section.activeSlide ? section.activeSlide.index() : 0;\n addClass($('a', $('li', nav)[activeSlideIndex]), ACTIVE);\n }\n\n var isScrollAllowed = {};\n isScrollAllowed.m = {\n 'up': true,\n 'down': true,\n 'left': true,\n 'right': true\n };\n isScrollAllowed.k = deepExtend({}, isScrollAllowed.m);\n /**\n * Allowing or disallowing the mouse/swipe scroll in a given direction. (not for keyboard)\n * @param type m (mouse) or k (keyboard)\n */\n\n function setIsScrollAllowed(value, direction, type) {\n //up, down, left, right\n if (direction !== 'all') {\n isScrollAllowed[type][direction] = value;\n } //all directions?\n else {\n Object.keys(isScrollAllowed[type]).forEach(function (key) {\n isScrollAllowed[type][key] = value;\n });\n }\n }\n function getIsScrollAllowed() {\n return isScrollAllowed;\n }\n\n EventEmitter.on(events.onClickOrTouch, onClickOrTouch$2);\n\n function onClickOrTouch$2(params) {\n var target = params.target;\n\n if (matches(target, SLIDES_ARROW_SEL) || closest(target, SLIDES_ARROW_SEL)) {\n slideArrowHandler.call(target, params);\n }\n } //Scrolling horizontally when clicking on the slider controls.\n\n\n function slideArrowHandler() {\n /*jshint validthis:true */\n var section = closest(this, SECTION_SEL);\n /*jshint validthis:true */\n\n if (hasClass(this, SLIDES_PREV)) {\n if (getIsScrollAllowed().m.left) {\n setState({\n scrollTrigger: 'slideArrow'\n });\n EventEmitter.emit(events.moveSlideLeft, {\n section: section\n });\n }\n } else {\n if (getIsScrollAllowed().m.right) {\n setState({\n scrollTrigger: 'slideArrow'\n });\n EventEmitter.emit(events.moveSlideRight, {\n section: section\n });\n }\n }\n }\n /**\n * Creates the control arrows for the given section\n */\n\n\n function createSlideArrows(section) {\n var sectionElem = section.item;\n var arrows = [createElementFromHTML(getOptions().controlArrowsHTML[0]), createElementFromHTML(getOptions().controlArrowsHTML[1])];\n after($(SLIDES_WRAPPER_SEL, sectionElem)[0], arrows);\n addClass(arrows, SLIDES_ARROW);\n addClass(arrows[0], SLIDES_PREV);\n addClass(arrows[1], SLIDES_NEXT);\n\n if (getOptions().controlArrowColor !== '#fff') {\n css($(SLIDES_ARROW_NEXT_SEL, sectionElem), {\n 'border-color': 'transparent transparent transparent ' + getOptions().controlArrowColor\n });\n css($(SLIDES_ARROW_PREV_SEL, sectionElem), {\n 'border-color': 'transparent ' + getOptions().controlArrowColor + ' transparent transparent'\n });\n }\n\n if (!getOptions().loopHorizontal) {\n hide($(SLIDES_ARROW_PREV_SEL, sectionElem));\n }\n }\n function toggleControlArrows(v) {\n if (!getOptions().loopHorizontal && getOptions().controlArrows) {\n //hidding it for the fist slide, showing for the rest\n toggle($(SLIDES_ARROW_PREV_SEL, v.section), v.slideIndex !== 0); //hidding it for the last slide, showing for the rest\n\n toggle($(SLIDES_ARROW_NEXT_SEL, v.section), next(v.destiny) != null);\n }\n }\n\n FP.setRecordHistory = setRecordHistory;\n /**\n * Defines wheter to record the history for each hash change in the URL.\n */\n\n function setRecordHistory(value, type) {\n setVariableState('recordHistory', value, type);\n }\n\n FP.setAutoScrolling = setAutoScrolling;\n FP.test.setAutoScrolling = setAutoScrolling;\n /**\n * Sets the autoScroll option.\n * It changes the scroll bar visibility and the history of the site as a result.\n */\n\n function setAutoScrolling(value, type) {\n //removing the transformation\n if (!value) {\n silentScroll(0);\n }\n\n setVariableState('autoScrolling', value, type);\n var element = getState().activeSection.item;\n\n if (getOptions().autoScrolling && !getOptions().scrollBar) {\n css($htmlBody, {\n 'overflow': 'hidden',\n 'height': '100%'\n });\n removeClass($body, 'fp-scrollable');\n setRecordHistory(getOriginals().recordHistory, 'internal'); //for IE touch devices\n\n css(getContainer(), {\n '-ms-touch-action': 'none',\n 'touch-action': 'none'\n });\n\n if (element != null) {\n //moving the container up\n silentScroll(element.offsetTop);\n }\n } else {\n css($htmlBody, {\n 'overflow': 'visible',\n 'height': 'initial'\n });\n addClass($body, 'fp-scrollable');\n var recordHistory = !getOptions().autoScrolling ? false : getOriginals().recordHistory;\n setRecordHistory(recordHistory, 'internal'); //for IE touch devices\n\n css(getContainer(), {\n '-ms-touch-action': '',\n 'touch-action': ''\n }); //scrolling the page to the section with no animation\n\n if (element != null) {\n var scrollSettings = getScrollSettings(element.offsetTop);\n scrollSettings.element.scrollTo(0, scrollSettings.options);\n }\n }\n }\n\n //@ts-check\n /**\n * Adds sections before or after the current one to create the infinite effect.\n */\n\n function createInfiniteSections(v) {\n setState({\n isDoingContinousVertical: true\n });\n var activeSectionItem = getState().activeSection.item; // Scrolling down\n\n if (!v.isMovementUp) {\n // Move all previous sections to after the active section\n after(activeSectionItem, prevAll(activeSectionItem, SECTION_SEL).reverse());\n } else {\n // Scrolling up\n // Move all next sections to before the active section\n before(activeSectionItem, nextAll(activeSectionItem, SECTION_SEL));\n } // Maintain the displayed position (now that we changed the element order)\n\n\n silentScroll(getState().activeSection.item.offsetTop); // Maintain the active slides visible in the viewport\n\n keepSlidesPosition$1(); // save for later the elements that still need to be reordered\n\n v.wrapAroundElements = activeSectionItem; // Recalculate animation variables\n\n v.dtop = v.element.offsetTop;\n v.yMovement = getYmovement(getState().activeSection, v.element);\n return v;\n }\n /**\n * Maintains the active slides in the viewport\n * (Because the `scroll` animation might get lost with some actions, such as when using continuousVertical)\n */\n\n function keepSlidesPosition$1() {\n var activeSlides = $(SLIDE_ACTIVE_SEL);\n\n for (var i = 0; i < activeSlides.length; i++) {\n silentLandscapeScroll(activeSlides[i], 'internal');\n }\n }\n\n //@ts-check\n /**\n * Maintains the active slides in the viewport\n * (Because the `scroll` animation might get lost with some actions, such as when using continuousVertical)\n */\n\n function keepSlidesPosition() {\n var activeSlides = $(SLIDE_ACTIVE_SEL);\n\n for (var i = 0; i < activeSlides.length; i++) {\n silentLandscapeScroll(activeSlides[i], 'internal');\n }\n }\n /**\n * Fix section order after continuousVertical changes have been animated\n */\n\n\n function continuousVerticalFixSectionOrder(v) {\n // If continuousVertical is in effect (and autoScrolling would also be in effect then),\n // finish moving the elements around so the direct navigation will function more simply\n if (v.wrapAroundElements == null) {\n return;\n }\n\n if (v.isMovementUp) {\n before($(SECTION_SEL)[0], v.wrapAroundElements);\n } else {\n after($(SECTION_SEL)[getState().sections.length - 1], v.wrapAroundElements);\n }\n\n silentScroll(getState().activeSection.item.offsetTop); // Maintain the active slides visible in the viewport\n\n keepSlidesPosition();\n setState({\n isDoingContinousVertical: false\n });\n }\n\n /**\n * Makes sure lazyload is done for other sections in the viewport that are not the\n * active one. \n */\n\n function lazyLoadOthers() {\n var hasAutoHeightSections = $(AUTO_HEIGHT_SEL)[0] || isResponsiveMode() && $(AUTO_HEIGHT_RESPONSIVE_SEL)[0]; //quitting when it doesn't apply\n\n if (!getOptions().lazyLoading || !hasAutoHeightSections) {\n return;\n } //making sure to lazy load auto-height sections that are in the viewport\n\n\n $(SECTION_SEL + ':not(' + ACTIVE_SEL + ')').forEach(function (section) {\n if (isSectionInViewport(section)) {\n lazyLoad(section);\n }\n });\n }\n /**\n * Determines whether a section is in the viewport or not.\n */\n\n function isSectionInViewport(el) {\n var rect = el.getBoundingClientRect();\n var top = rect.top;\n var bottom = rect.bottom; //sometimes there's a 1px offset on the bottom of the screen even when the \n //section's height is the window.innerHeight one. I guess because pixels won't allow decimals.\n //using this prevents from lazyLoading the section that is not yet visible \n //(only 1 pixel offset is)\n\n var pixelOffset = 2;\n var isTopInView = top + pixelOffset < state.windowsHeight && top > 0;\n var isBottomInView = bottom > pixelOffset && bottom < state.windowsHeight;\n return isTopInView || isBottomInView;\n }\n\n function tooltipTextHandler() {\n /*jshint validthis:true */\n trigger(prev(this), 'click');\n }\n /**\n * Activating the vertical navigation bullets according to the given slide name.\n */\n\n function activateNavDots(name, sectionIndex) {\n var nav = $(SECTION_NAV_SEL)[0];\n\n if (getOptions().navigation && nav != null && nav.style.display !== 'none') {\n removeClass($(ACTIVE_SEL, nav), ACTIVE);\n\n if (name) {\n addClass($('a[href=\"#' + name + '\"]', nav), ACTIVE);\n } else {\n addClass($('a', $('li', nav)[sectionIndex]), ACTIVE);\n }\n }\n }\n /**\n * Creates a vertical navigation bar.\n */\n\n function addVerticalNavigation() {\n remove($(SECTION_NAV_SEL));\n var navigation = doc.createElement('div');\n navigation.setAttribute('id', SECTION_NAV);\n var divUl = doc.createElement('ul');\n navigation.appendChild(divUl);\n appendTo(navigation, $body);\n var nav = $(SECTION_NAV_SEL)[0];\n addClass(nav, 'fp-' + getOptions().navigationPosition);\n\n if (getOptions().showActiveTooltip) {\n addClass(nav, SHOW_ACTIVE_TOOLTIP);\n }\n\n var li = '';\n\n for (var i = 0; i < getState().sections.length; i++) {\n var section = getState().sections[i];\n var link = '';\n\n if (getOptions().anchors.length) {\n link = section.anchor;\n }\n\n li += '
  • ' + getBulletLinkName(section.index(), 'Section') + ''; // Only add tooltip if needed (defined by user)\n\n var tooltip = getOptions().navigationTooltips[section.index()];\n\n if (typeof tooltip !== 'undefined' && tooltip !== '') {\n li += '
    ' + tooltip + '
    ';\n }\n\n li += '
  • ';\n }\n\n $('ul', nav)[0].innerHTML = li; //activating the current active section\n\n var bullet = $('li', $(SECTION_NAV_SEL)[0])[getState().activeSection.index()];\n addClass($('a', bullet), ACTIVE);\n } //Scrolls to the section when clicking the navigation bullet\n\n function sectionBulletHandler(e) {\n if (e.preventDefault) {\n preventDefault(e);\n }\n\n setState({\n scrollTrigger: 'verticalNav'\n });\n /*jshint validthis:true */\n // @ts-ignore\n\n var indexBullet = index(closest(this, SECTION_NAV_SEL + ' li'));\n EventEmitter.emit(events.scrollPage, {\n destination: getState().sections[indexBullet]\n });\n }\n\n /**\n * Sets to active the current menu and vertical nav items.\n */\n\n function activateMenuAndNav(anchor, index) {\n activateMenuElement(anchor);\n activateNavDots(anchor, index);\n }\n /**\n * Activating the website main menu elements according to the given slide name.\n */\n\n function activateMenuElement(name) {\n if (getOptions().menu && getOptions().menu.length) {\n $(getOptions().menu).forEach(function (menu) {\n if (menu != null) {\n removeClass($(ACTIVE_SEL, menu), ACTIVE);\n addClass($('[data-menuanchor=\"' + name + '\"]', menu), ACTIVE);\n }\n });\n }\n }\n\n new Date().getTime();\n /**\n * Triggers the callback once per scroll wheel action.\n * Based on scrolling speed delay.\n */\n\n var oncePerScroll = function () {\n var canTriggerEvent = true;\n var prevWheelTime = new Date().getTime();\n var result;\n var isScrollingOnInit = !win.fullpage_api;\n return function (scrollTrigger, callback) {\n var currentTime = new Date().getTime();\n var timeThreshold = scrollTrigger === 'wheel' ? getOptions().scrollingSpeed : 100;\n canTriggerEvent = isScrollingOnInit || currentTime - prevWheelTime >= timeThreshold;\n isScrollingOnInit = !win.fullpage_api;\n\n if (canTriggerEvent) {\n result = callback();\n prevWheelTime = currentTime;\n }\n\n return typeof result !== 'undefined' ? result : true;\n };\n }();\n\n /**\n * Fires the wheel event once per mouse wheel trigger.\n */\n\n function fireCallbackOncePerScroll(callbackName, params) {\n if (!isFunction(getOptions().beforeLeave)) {\n return;\n }\n\n var result = oncePerScroll(getState().scrollTrigger, function () {\n return fireCallback(callbackName, params);\n });\n return result;\n }\n\n FP.moveTo = moveTo;\n\n FP.getScrollY = function () {\n return state.scrollY;\n };\n\n var g_afterSectionLoadsId;\n var g_transitionLapseId;\n EventEmitter.on(events.onDestroy, onDestroy$8);\n /**\n * Scrolls the site to the given element and scrolls to the slide if a callback is given.\n */\n\n function scrollPage(section, callback, isMovementUp) {\n var element = section.item;\n\n if (element == null) {\n return;\n } //there's no element to scroll, leaving the function\n\n\n var dtop = getDestinationPosition(element);\n var slideAnchorLink;\n var slideIndex; //local variables\n\n var v = {\n \"element\": element,\n \"callback\": callback,\n \"isMovementUp\": isMovementUp,\n \"dtop\": dtop,\n \"yMovement\": getYmovement(getState().activeSection, element),\n \"anchorLink\": section.anchor,\n \"sectionIndex\": section.index(),\n \"activeSlide\": section.activeSlide ? section.activeSlide.item : null,\n \"leavingSection\": getState().activeSection.index() + 1,\n //caching the value of isResizing at the momment the function is called\n //because it will be checked later inside a setTimeout and the value might change\n \"localIsResizing\": state.isResizing,\n \"items\": {\n \"origin\": getState().activeSection,\n \"destination\": section\n },\n \"direction\": null\n }; //quiting when destination scroll is the same as the current one\n\n if (getState().activeSection.item == element && !state.isResizing || getOptions().scrollBar && getScrollTop() === v.dtop && !hasClass(element, AUTO_HEIGHT)) {\n return;\n }\n\n if (v.activeSlide != null) {\n slideAnchorLink = getAttr(v.activeSlide, 'data-anchor');\n slideIndex = index(v.activeSlide, null);\n } //callback (onLeave) if the site is not just resizing and readjusting the slides\n\n\n if (!v.localIsResizing) {\n var direction = v.yMovement; //required for continousVertical\n\n if (typeof isMovementUp !== 'undefined') {\n direction = isMovementUp ? 'up' : 'down';\n } //for the callback\n\n\n v.direction = direction;\n\n if (isFunction(getOptions().beforeLeave)) {\n if (fireCallbackOncePerScroll('beforeLeave', v) === false) {\n return;\n }\n }\n\n if (isFunction(getOptions().onLeave)) {\n if (!fireCallback('onLeave', v)) {\n return;\n }\n }\n } // If continuousVertical && we need to wrap around\n\n\n if (getOptions().autoScrolling && getOptions().continuousVertical && typeof v.isMovementUp !== \"undefined\" && (!v.isMovementUp && v.yMovement == 'up' || // Intending to scroll down but about to go up or\n v.isMovementUp && v.yMovement == 'down')) {\n // intending to scroll up but about to go down\n v = createInfiniteSections(v);\n } //pausing media of the leaving section (if we are not just resizing, as destinatino will be the same one)\n\n\n if (!v.localIsResizing) {\n stopMedia(getState().activeSection.item);\n }\n\n addClass(element, ACTIVE);\n removeClass(siblings(element), ACTIVE);\n updateState();\n lazyLoad(element); //preventing from activating the MouseWheelHandler event\n //more than once if the page is scrolling\n\n setState({\n canScroll: FP.test.isTesting\n });\n setPageStatus(slideIndex, slideAnchorLink, v.anchorLink);\n EventEmitter.emit(events.onLeave, v);\n performMovement(v); //flag to avoid callingn `scrollPage()` twice in case of using anchor links\n\n setState({\n lastScrolledDestiny: v.anchorLink\n }); //avoid firing it twice (as it does also on scroll)\n\n activateMenuAndNav(v.anchorLink, v.sectionIndex);\n }\n\n function onDestroy$8() {\n clearTimeout(g_afterSectionLoadsId);\n clearTimeout(g_transitionLapseId);\n }\n /**\n * Returns the destination Y position based on the scrolling direction and\n * the height of the section.\n */\n\n\n function getDestinationPosition(element) {\n var elementHeight = element.offsetHeight;\n var elementTop = element.offsetTop; //top of the desination will be at the top of the viewport\n\n var position = elementTop;\n var isScrollingDown = elementTop > state.previousDestTop;\n var sectionBottom = position - getWindowHeight() + elementHeight;\n var bigSectionsDestination = getOptions().bigSectionsDestination; //is the destination element bigger than the viewport?\n\n if (elementHeight > getWindowHeight()) {\n //scrolling up?\n if (!isScrollingDown && !bigSectionsDestination || bigSectionsDestination === 'bottom') {\n position = sectionBottom;\n }\n } //sections equal or smaller than the viewport height && scrolling down? || is resizing and its in the last section\n else if (isScrollingDown || state.isResizing && next(element) == null) {\n //The bottom of the destination will be at the bottom of the viewport\n position = sectionBottom;\n }\n /*\n Keeping record of the last scrolled position to determine the scrolling direction.\n No conventional methods can be used as the scroll bar might not be present\n AND the section might not be active if it is auto-height and didnt reach the middle\n of the viewport.\n */\n\n\n setState({\n previousDestTop: position\n });\n return position;\n }\n /**\n * Performs the vertical movement (by CSS3 or by jQuery)\n */\n\n\n function performMovement(v) {\n var isFastSpeed = getOptions().scrollingSpeed < 700;\n var transitionLapse = isFastSpeed ? 700 : getOptions().scrollingSpeed;\n setState({\n touchDirection: 'none',\n scrollY: Math.round(v.dtop)\n });\n EventEmitter.emit(events.onPerformMovement); // using CSS3 translate functionality\n\n if (getOptions().css3 && getOptions().autoScrolling && !getOptions().scrollBar) {\n // The first section can have a negative value in iOS 10. Not quite sure why: -0.0142822265625\n // that's why we round it to 0.\n var translate3d = 'translate3d(0px, -' + Math.round(v.dtop) + 'px, 0px)';\n transformContainer(translate3d, true); //even when the scrollingSpeed is 0 there's a little delay, which might cause the\n //scrollingSpeed to change in case of using silentMoveTo();ç\n\n if (getOptions().scrollingSpeed) {\n clearTimeout(g_afterSectionLoadsId);\n g_afterSectionLoadsId = setTimeout(function () {\n afterSectionLoads$1(v); //disabling canScroll when using fastSpeed\n\n setState({\n canScroll: !isFastSpeed || FP.test.isTesting\n });\n }, getOptions().scrollingSpeed);\n } else {\n afterSectionLoads$1(v);\n }\n } // using JS to animate\n else {\n var scrollSettings = getScrollSettings(v.dtop);\n FP.test.top = -v.dtop + 'px';\n clearTimeout(g_afterSectionLoadsId);\n scrollTo(scrollSettings.element, scrollSettings.options, getOptions().scrollingSpeed, function () {\n if (getOptions().scrollBar) {\n /* Hack!\n The timeout prevents setting the most dominant section in the viewport as \"active\" when the user\n scrolled to a smaller section by using the mousewheel (auto scrolling) rather than draging the scroll bar.\n When using scrollBar:true It seems like the scroll events still getting propagated even after the scrolling animation has finished.\n */\n g_afterSectionLoadsId = setTimeout(function () {\n afterSectionLoads$1(v);\n }, 30);\n } else {\n afterSectionLoads$1(v); //disabling canScroll when using fastSpeed\n\n setState({\n canScroll: !isFastSpeed || FP.test.isTesting\n });\n }\n });\n } // enabling canScroll after the minimum transition laps\n\n\n if (isFastSpeed) {\n clearTimeout(g_transitionLapseId);\n g_transitionLapseId = setTimeout(function () {\n setState({\n canScroll: true\n });\n }, transitionLapse);\n }\n }\n /**\n * Actions to do once the section is loaded.\n */\n\n\n function afterSectionLoads$1(v) {\n setState({\n isBeyondFullpage: false\n });\n continuousVerticalFixSectionOrder(v); //callback (afterLoad) if the site is not just resizing and readjusting the slides\n\n if (isFunction(getOptions().afterLoad) && !v.localIsResizing) {\n fireCallback('afterLoad', v);\n }\n\n updateState();\n\n if (!v.localIsResizing) {\n playMedia(v.element);\n }\n\n addClass(v.element, COMPLETELY);\n removeClass(siblings(v.element), COMPLETELY);\n lazyLoadOthers();\n setState({\n canScroll: true\n });\n EventEmitter.emit(events.afterSectionLoads, v);\n\n if (isFunction(v.callback)) {\n v.callback();\n }\n }\n\n FP.setFitToSection = setFitToSection;\n FP.fitToSection = fitToSection;\n /**\n * Sets fitToSection\n */\n\n function setFitToSection(value, type) {\n setVariableState('fitToSection', value, type);\n }\n /**\n * Fits the site to the nearest active section\n */\n\n function fitToSection() {\n //checking fitToSection again in case it was set to false before the timeout delay\n if (state.canScroll) {\n //allows to scroll to an active section and\n //if the section is already active, we prevent firing callbacks\n setState({\n isResizing: true\n });\n scrollPage(state.activeSection);\n setState({\n isResizing: false\n });\n }\n }\n\n FP.setResponsive = setResponsive;\n /**\n * Checks if the site needs to get responsive and disables autoScrolling if so.\n * A class `fp-responsive` is added to the plugin's container in case the user wants to use it for his own responsive CSS.\n */\n\n function responsive() {\n var widthLimit = getOptions().responsive || getOptions().responsiveWidth; //backwards compatiblity\n\n var heightLimit = getOptions().responsiveHeight; //only calculating what we need. Remember its called on the resize event.\n\n var isBreakingPointWidth = widthLimit && win.innerWidth < widthLimit;\n var isBreakingPointHeight = heightLimit && win.innerHeight < heightLimit;\n\n if (widthLimit && heightLimit) {\n setResponsive(isBreakingPointWidth || isBreakingPointHeight);\n } else if (widthLimit) {\n setResponsive(isBreakingPointWidth);\n } else if (heightLimit) {\n setResponsive(isBreakingPointHeight);\n }\n }\n /**\n * Turns fullPage.js to normal scrolling mode when the viewport `width` or `height`\n * are smaller than the set limit values.\n */\n\n function setResponsive(active) {\n var isResponsive = isResponsiveMode();\n\n if (active) {\n if (!isResponsive) {\n setAutoScrolling(false, 'internal');\n setFitToSection(false, 'internal');\n hide($(SECTION_NAV_SEL));\n addClass($body, RESPONSIVE);\n\n if (isFunction(getOptions().afterResponsive)) {\n getOptions().afterResponsive.call(getContainer(), active);\n }\n }\n } else if (isResponsive) {\n setAutoScrolling(getOriginals().autoScrolling, 'internal');\n setFitToSection(getOriginals().autoScrolling, 'internal');\n show($(SECTION_NAV_SEL));\n removeClass($body, RESPONSIVE);\n\n if (isFunction(getOptions().afterResponsive)) {\n getOptions().afterResponsive.call(getContainer(), active);\n }\n }\n }\n /**\n * Determines whether fullpage.js is in responsive mode or not.\n */\n\n\n function isResponsiveMode() {\n return hasClass($body, RESPONSIVE);\n }\n\n function addTableClass(element) {\n if (!getOptions().verticalCentered) {\n return;\n } // Overflowing sections when scrollOverflow is disabled will be autoHeight\n // and won't require vertical aligment\n\n\n if (!getOptions().scrollOverflow && scrollOverflowHandler.shouldBeScrollable(element.item)) {\n return;\n }\n\n if (!scrollOverflowHandler.isScrollable(element)) {\n //In case we are styling for the 2nd time as in with reponsiveSlides\n if (!hasClass(element.item, TABLE)) {\n addClass(element.item, TABLE);\n }\n }\n }\n\n var startingSection = null;\n FP.getActiveSection = getActiveSection;\n function getStartingSection() {\n return startingSection;\n }\n /**\n * Styling vertical sections\n */\n\n function styleSection(section) {\n var sectionElem = section.item;\n var hasSlides = section.allSlidesItems.length;\n var index = section.index(); //if no active section is defined, the 1st one will be the default one\n\n if (!getState().activeSection && section.isVisible) {\n addClass(sectionElem, ACTIVE);\n updateState();\n startingSection = getState().activeSection.item;\n }\n\n if (getOptions().paddingTop) {\n css(sectionElem, {\n 'padding-top': getOptions().paddingTop\n });\n }\n\n if (getOptions().paddingBottom) {\n css(sectionElem, {\n 'padding-bottom': getOptions().paddingBottom\n });\n }\n\n if (typeof getOptions().sectionsColor[index] !== 'undefined') {\n css(sectionElem, {\n 'background-color': getOptions().sectionsColor[index]\n });\n }\n\n if (typeof getOptions().anchors[index] !== 'undefined') {\n sectionElem.setAttribute('data-anchor', section.anchor);\n }\n\n if (!hasSlides) {\n addTableClass(section);\n }\n }\n /**\n * Gets the active section.\n */\n\n function getActiveSection() {\n return getState().activeSection;\n }\n\n function getSectionFromPanel(panel) {\n return panel.isSection ? panel : panel.parent;\n }\n\n var g_focusScrollableId;\n EventEmitter.on(events.bindEvents, bindEvents$b);\n\n function bindEvents$b() {\n // We can't focus scrollOverflow before scrolling\n // to the anchor (if we need to)\n EventEmitter.on(events.onAfterRenderNoAnchor, afterRender);\n EventEmitter.on(events.onLeave, scrollOverflowHandler.onLeave);\n EventEmitter.on(events.onSlideLeave, scrollOverflowHandler.onLeave);\n EventEmitter.on(events.afterSlideLoads, scrollOverflowHandler.afterLoad);\n EventEmitter.on(events.afterSectionLoads, scrollOverflowHandler.afterLoad);\n EventEmitter.on(events.onDestroy, onDestroy$7);\n docAddEvent('keyup', scrollOverflowHandler.keyUpHandler);\n }\n\n function afterRender() {\n if (getOptions().scrollOverflow && !getOptions().scrollBar) {\n scrollOverflowHandler.makeScrollable();\n scrollOverflowHandler.focusScrollable();\n }\n }\n\n function onDestroy$7() {\n EventEmitter.removeListener(events.onAfterRenderNoAnchor, afterRender);\n docRemoveEvent('keyup', scrollOverflowHandler.keyUpHandler);\n }\n\n var scrollOverflowHandler = {\n focusedElem: null,\n shouldFocusScrollable: true,\n isInnerScrollAllowed: true,\n timeBeforeReachingLimit: null,\n timeLastScroll: null,\n preventScrollWithMouseWheel: function preventScrollWithMouseWheel(e) {\n if (!state.canScroll) {\n preventDefault(e);\n return false;\n }\n },\n preventScrollWithKeyboard: function preventScrollWithKeyboard(e) {\n if (!isInsideInput() && getOptions().keyboardScrolling) {\n var directionKeys = [38, 33, 32, 40, 34, 36, 35];\n\n if (directionKeys.indexOf(e.keyCode) > -1 && !scrollOverflowHandler.isInnerScrollAllowed) {\n preventDefault(e);\n return false;\n }\n }\n },\n keyUpHandler: function keyUpHandler() {\n scrollOverflowHandler.shouldFocusScrollable = state.canScroll;\n },\n // Leaving sections or slides\n onLeave: function onLeave() {\n clearTimeout(g_focusScrollableId);\n scrollOverflowHandler.isInnerScrollAllowed = false;\n },\n // Loading sections or slides\n afterLoad: function afterLoad() {\n scrollOverflowHandler.isInnerScrollAllowed = false; // Delaying it to avoid issues on Safari when focusing elements #4484 & #4493\n\n clearTimeout(g_focusScrollableId);\n g_focusScrollableId = setTimeout(function () {\n scrollOverflowHandler.shouldFocusScrollable = state.canScroll;\n }, 200);\n },\n // Unfocusing the scrollable element from the orgin section/slide\n unfocusScrollable: function unfocusScrollable() {\n if (doc.activeElement === this.focusedElem) {\n // @ts-ignore\n this.focusedElem.blur();\n scrollOverflowHandler.isInnerScrollAllowed = false;\n }\n },\n focusScrollable: function focusScrollable() {\n if (!getOptions().scrollOverflow || !scrollOverflowHandler.shouldFocusScrollable) {\n return;\n }\n\n scrollOverflowHandler.unfocusScrollable();\n var scrollableItem = scrollOverflowHandler.getScrollableItem(getState().activeSection.item); // On desktop we focus the scrollable to be able to use the mouse wheel\n // We avoid it on mobile due to a bug in iOS Safari\n\n if (scrollableItem && !isTouchDevice && !isTouch) {\n this.focusedElem = scrollableItem; // Forcing the focus on the next paint \n // to avoid issue #4484 & #4493 on Safari\n\n requestAnimationFrame(function () {\n scrollableItem.focus();\n scrollOverflowHandler.isInnerScrollAllowed = true;\n });\n }\n\n scrollOverflowHandler.shouldFocusScrollable = false;\n },\n makeScrollable: function makeScrollable() {\n if (getOptions().scrollOverflowMacStyle && !isMacDevice) {\n addClass($body, 'fp-scroll-mac');\n }\n\n getState().panels.forEach(function (el) {\n if (el.slides && el.slides.length) {\n return;\n }\n\n if (hasClass(el.item, AUTO_HEIGHT_RESPONSIVE) && isResponsiveMode()) {\n return;\n } else {\n var item = getSlideOrSection(el.item);\n var shouldBeScrollable = scrollOverflowHandler.shouldBeScrollable(el.item);\n var section = getSectionFromPanel(el);\n\n if (isIE11) {\n var toggleAction = shouldBeScrollable ? 'addClass' : 'removeClass';\n utils[toggleAction](section.item, IS_OVERFLOW);\n utils[toggleAction](el.item, IS_OVERFLOW);\n } else {\n addClass(section.item, IS_OVERFLOW);\n addClass(el.item, IS_OVERFLOW);\n }\n\n if (!el.hasScroll) {\n scrollOverflowHandler.createWrapper(item);\n scrollOverflowHandler.bindEvents(item);\n } // updating the state now in case \n // this is executed on page load (after images load)\n\n\n el.hasScroll = true;\n }\n });\n },\n bindEvents: function bindEvents(item) {\n scrollOverflowHandler.getScrollableItem(item).addEventListener('scroll', scrollOverflowHandler.onPanelScroll);\n item.addEventListener('wheel', scrollOverflowHandler.preventScrollWithMouseWheel, {\n passive: false\n });\n item.addEventListener('keydown', scrollOverflowHandler.preventScrollWithKeyboard, {\n passive: false\n });\n },\n createWrapper: function createWrapper(item) {\n var overflowWrapper = document.createElement('div');\n overflowWrapper.className = OVERFLOW;\n wrapInner(item, overflowWrapper);\n overflowWrapper.setAttribute('tabindex', '-1');\n },\n destroyWrapper: function destroyWrapper(item) {\n var overflowWrapper = $(OVERFLOW_SEL, item)[0];\n\n if (overflowWrapper) {\n unwrap(overflowWrapper);\n item.removeAttribute('tabindex');\n }\n },\n getScrollableItem: function getScrollableItem(sectionItem) {\n var panel = getSlideOrSection(sectionItem);\n return $(OVERFLOW_SEL, panel)[0] || panel;\n },\n hasScroll: function hasScroll(panelItem) {\n return hasClass(panelItem, OVERFLOW) || $(OVERFLOW_SEL, panelItem)[0] != null;\n },\n isScrollable: function isScrollable(panel) {\n return panel.isSection && panel.activeSlide ? panel.activeSlide.hasScroll : panel.hasScroll;\n },\n shouldBeScrollable: function shouldBeScrollable(item) {\n var scrollable = scrollOverflowHandler.getScrollableItem(item);\n return scrollable.scrollHeight > win.innerHeight;\n },\n isScrolled: function isScrolled(direction, el) {\n if (!state.canScroll) {\n return false;\n } // we won't allow scrolloverflow on scrollBar:true\n\n\n if (getOptions().scrollBar) {\n return true;\n }\n\n var scrollableItem = scrollOverflowHandler.getScrollableItem(el);\n\n if (!getOptions().scrollOverflow || !hasClass(scrollableItem, OVERFLOW) || // Checking the section first \n // In case they apply to both section + slide #4505\n hasClass(el, 'fp-noscroll') || // Checking the slide (in case it has)\n hasClass(getSlideOrSection(el), 'fp-noscroll')) {\n return true;\n } // ie11 wrongly calculates scrollHeight when using the CSS style\n // overflow: auto It adds 1 more pixel compared to offsetHeight\n\n\n var ie11offset = isIE11 ? 1 : 0;\n var positionY = scrollableItem.scrollTop;\n var isTopReached = direction === 'up' && positionY <= 0;\n var isBottomReached = direction === 'down' && scrollableItem.scrollHeight <= Math.ceil(scrollableItem.offsetHeight + positionY) + ie11offset;\n var isScrolled = isTopReached || isBottomReached;\n\n if (!isScrolled) {\n this.timeBeforeReachingLimit = new Date().getTime();\n }\n\n return isScrolled;\n },\n shouldMovePage: function shouldMovePage() {\n this.timeLastScroll = new Date().getTime();\n var timeDiff = this.timeLastScroll - scrollOverflowHandler.timeBeforeReachingLimit;\n var isUsingTouch = isTouchDevice || isTouch;\n var isGrabbing = isUsingTouch && state.isGrabbing;\n var isNotFirstTimeReachingLimit = state.isUsingWheel && timeDiff > 600;\n return isGrabbing && timeDiff > 400 || isNotFirstTimeReachingLimit;\n },\n onPanelScroll: function () {\n var prevPosition = 0;\n return function (e) {\n var currentPosition = e.target.scrollTop;\n var direction = state.touchDirection !== 'none' ? state.touchDirection : prevPosition < currentPosition ? 'down' : 'up';\n prevPosition = currentPosition;\n\n if (isFunction(getOptions().onScrollOverflow)) {\n fireCallback('onScrollOverflow', {\n position: currentPosition,\n direction: direction\n });\n }\n\n if (hasClass(e.target, OVERFLOW) && state.canScroll) {\n if (scrollOverflowHandler.isScrolled(direction, e.target) && scrollOverflowHandler.shouldMovePage()) {\n // Checking again if we have a scrollable content\n // To avoid issues like #4479 where the scroll event gets\n // triggered after removing/hidding content if this was scrolled\n if (scrollOverflowHandler.shouldBeScrollable(getState().activeSection.item)) {\n EventEmitter.emit(events.onScrollOverflowScrolled, {\n direction: direction\n });\n }\n }\n }\n };\n }()\n };\n\n var g_afterSlideLoadsId;\n FP.landscapeScroll = landscapeScroll;\n EventEmitter.on(events.bindEvents, bindEvents$a);\n\n function bindEvents$a() {\n EventEmitter.on(events.onPerformMovement, onPerformMovement);\n }\n\n function onPerformMovement() {\n clearTimeout(g_afterSlideLoadsId);\n setState({\n slideMoving: false\n });\n }\n /**\n * Scrolls horizontal sliders.\n */\n\n\n function landscapeScroll(slides, destiny, direction) {\n var sectionElem = closest(slides, SECTION_SEL);\n var section = getState().sections.filter(function (section) {\n return section.item == sectionElem;\n })[0];\n var slide = section.slides.filter(function (slide) {\n return slide.item == destiny;\n })[0];\n var v = {\n \"slides\": slides,\n \"destiny\": destiny,\n \"direction\": direction,\n \"destinyPos\": {\n \"left\": destiny.offsetLeft\n },\n \"slideIndex\": slide.index(),\n \"section\": sectionElem,\n \"sectionIndex\": section.index(),\n \"anchorLink\": section.anchor,\n \"slidesNav\": $(SLIDES_NAV_SEL, sectionElem)[0],\n \"slideAnchor\": slide.anchor,\n \"prevSlide\": section.activeSlide.item,\n \"prevSlideIndex\": section.activeSlide.index(),\n \"items\": {\n \"section\": section,\n \"origin\": section.activeSlide,\n \"destination\": slide\n },\n //caching the value of isResizing at the momment the function is called\n //because it will be checked later inside a setTimeout and the value might change\n \"localIsResizing\": state.isResizing\n };\n v.xMovement = getXmovement(v.prevSlideIndex, v.slideIndex);\n v.direction = v.direction ? v.direction : v.xMovement; //important!! Only do it when not resizing\n\n if (!v.localIsResizing) {\n //preventing from scrolling to the next/prev section when using scrollHorizontally\n setState({\n canScroll: false\n });\n }\n\n if (getOptions().onSlideLeave) {\n //if the site is not just resizing and readjusting the slides\n if (!v.localIsResizing && v.xMovement !== 'none') {\n if (isFunction(getOptions().onSlideLeave)) {\n if (fireCallback('onSlideLeave', v) === false) {\n setState({\n slideMoving: false\n });\n return;\n }\n }\n }\n }\n\n addClass(destiny, ACTIVE);\n removeClass(siblings(destiny), ACTIVE);\n updateState();\n\n if (!v.localIsResizing) {\n stopMedia(v.prevSlide);\n lazyLoad(destiny);\n }\n\n toggleControlArrows(v); //only changing the URL if the slides are in the current section (not for resize re-adjusting)\n\n if (section.isActive && !v.localIsResizing) {\n setPageStatus(v.slideIndex, v.slideAnchor, v.anchorLink);\n }\n\n EventEmitter.emit(events.onSlideLeave, v);\n performHorizontalMove(slides, v, true);\n }\n /**\n * Performs the horizontal movement. (CSS3 or jQuery)\n *\n * @param fireCallback {Boolean} - determines whether or not to fire the callback\n */\n\n function performHorizontalMove(slides, v, fireCallback) {\n var destinyPos = v.destinyPos;\n activeSlidesNavigation(v.slidesNav, v.slideIndex);\n setState({\n scrollX: Math.round(destinyPos.left)\n });\n\n if (getOptions().css3) {\n var translate3d = 'translate3d(-' + Math.round(destinyPos.left) + 'px, 0px, 0px)';\n FP.test.translate3dH[v.sectionIndex] = translate3d;\n css(addAnimation($(SLIDES_CONTAINER_SEL, slides)), getTransforms(translate3d));\n clearTimeout(g_afterSlideLoadsId);\n g_afterSlideLoadsId = setTimeout(function () {\n if (fireCallback) {\n afterSlideLoads(v);\n }\n }, getOptions().scrollingSpeed);\n } else {\n FP.test.left[v.sectionIndex] = Math.round(destinyPos.left);\n scrollTo(slides, Math.round(destinyPos.left), getOptions().scrollingSpeed, function () {\n if (fireCallback) {\n afterSlideLoads(v);\n }\n });\n }\n }\n /**\n * Retuns `right` or `left` depending on the scrolling movement to reach its destination\n * from the current slide.\n */\n\n\n function getXmovement(fromIndex, toIndex) {\n if (fromIndex == toIndex) {\n return 'none';\n }\n\n if (fromIndex > toIndex) {\n return 'left';\n }\n\n return 'right';\n }\n\n function onDestroy$6() {\n clearTimeout(g_afterSlideLoadsId);\n }\n\n function afterSlideLoads(v) {\n //if the site is not just resizing and readjusting the slides\n if (!v.localIsResizing) {\n if (isFunction(getOptions().afterSlideLoad)) {\n fireCallback('afterSlideLoad', v);\n } //needs to be inside the condition to prevent problems with continuousVertical and scrollHorizontally\n //and to prevent double scroll right after a windows resize\n\n\n setState({\n canScroll: true\n });\n playMedia(v.destiny);\n EventEmitter.emit(events.afterSlideLoads, v);\n } //letting them slide again\n\n\n setState({\n slideMoving: false\n });\n }\n\n /**\n * Slides silently (with no animation) the active slider to the given slide.\n * @param noCallback {bool} true or defined -> no callbacks\n */\n\n function silentLandscapeScroll(activeSlide, noCallbacks) {\n setScrollingSpeed(0, 'internal');\n\n if (typeof noCallbacks !== 'undefined') {\n //preventing firing callbacks afterSlideLoad etc.\n setState({\n isResizing: true\n });\n }\n\n landscapeScroll(closest(activeSlide, SLIDES_WRAPPER_SEL), activeSlide);\n\n if (typeof noCallbacks !== 'undefined') {\n setState({\n isResizing: false\n });\n }\n\n setScrollingSpeed(getOriginals().scrollingSpeed, 'internal');\n }\n\n var g_prevActiveSectionIndex = null;\n var g_prevActiveSlideIndex = null;\n /** \n * Updates the state of the app.\n */\n\n function updateState() {\n state.activeSection = null;\n state.sections.map(function (section) {\n var isActive = hasClass(section.item, ACTIVE);\n section.isActive = isActive;\n section.hasScroll = scrollOverflowHandler.hasScroll(section.item);\n\n if (isActive) {\n state.activeSection = section;\n }\n\n if (section.slides.length) {\n section.activeSlide = null;\n section.slides.map(function (slide) {\n var isActiveSlide = hasClass(slide.item, ACTIVE);\n slide.hasScroll = scrollOverflowHandler.hasScroll(section.item);\n slide.isActive = isActiveSlide;\n\n if (isActiveSlide) {\n section.activeSlide = slide;\n }\n });\n }\n });\n scrollToNewActivePanel();\n }\n function updateStructuralState() {\n var allSectionItems = $(getOptions().sectionSelector, getContainer());\n var sectionsItems = getVisible(allSectionItems);\n var allSections = Array.from(allSectionItems).map(function (item) {\n return new SectionPanel(item);\n });\n var sections = allSections.filter(function (item) {\n return item.isVisible;\n });\n var slides = sections.reduce(function (acc, section) {\n return acc.concat(section.slides);\n }, []); // keeping track of the previously active section\n\n g_prevActiveSectionIndex = getPrevActivePanelIndex(state.activeSection);\n g_prevActiveSlideIndex = getPrevActivePanelIndex(state.activeSection ? state.activeSection.activeSlide : null);\n state.numSections = sectionsItems.length;\n state.numSlides = sections.reduce(function (acc, section) {\n return acc + section.slides.length;\n }, 0);\n state.sections = sections;\n state.sectionsIncludingHidden = allSections;\n state.slides = slides;\n state.panels = state.sections.concat(state.slides);\n }\n\n function getPrevActivePanelIndex(activePanel) {\n if (!activePanel) {\n return null;\n }\n\n var prevActivePanelItem = activePanel ? activePanel.item : null;\n var hiddenPanels = activePanel.isSection ? state.sectionsIncludingHidden : state.activeSection.slidesIncludingHidden;\n\n if (prevActivePanelItem) {\n var panel = getPanelByElement(hiddenPanels, prevActivePanelItem);\n return panel ? panel.index() : null;\n }\n\n return null;\n }\n /**\n * When changes in the DOM take place there's a change \n * the active section is now hidden or removed. \n * fullPage.js will scroll to the closest section nearby.\n */\n\n\n function scrollToNewActivePanel() {\n var activeSection = state.activeSection;\n var activeSectionHasSlides = state.activeSection ? state.activeSection.slides.length : false;\n var activeSlide = state.activeSection ? state.activeSection.activeSlide : null; // Hidding / removing the active section ?\n\n if (!activeSection && state.sections.length && !getState().isBeyondFullpage && g_prevActiveSectionIndex) {\n var newActiveSection = getNewActivePanel(g_prevActiveSectionIndex, state.sections);\n\n if (newActiveSection) {\n state.activeSection = newActiveSection;\n state.activeSection.isActive = true;\n addClass(state.activeSection.item, ACTIVE);\n }\n\n if (state.activeSection) {\n silentScroll(state.activeSection.item.offsetTop);\n }\n }\n\n if (activeSectionHasSlides && !activeSlide && g_prevActiveSlideIndex) {\n var newActiveSlide = getNewActivePanel(g_prevActiveSlideIndex, state.activeSection.slides);\n\n if (newActiveSlide) {\n state.activeSection.activeSlide = newActiveSlide;\n state.activeSection.activeSlide.isActive = true;\n addClass(state.activeSection.activeSlide.item, ACTIVE);\n }\n\n if (state.activeSection.activeSlide) {\n silentLandscapeScroll(state.activeSection.activeSlide.item, 'internal');\n }\n }\n }\n\n function getNewActivePanel(prevActivePanelIndex, siblings) {\n var newActiveSection;\n var prevIndex = prevActivePanelIndex - 1;\n var nextIndex = prevActivePanelIndex;\n\n do {\n newActiveSection = siblings[prevIndex] || siblings[nextIndex];\n\n if (newActiveSection) {\n break;\n }\n\n prevIndex = prevIndex - 1;\n nextIndex = nextIndex + 1;\n } while (prevIndex >= 0 || nextIndex < siblings.length);\n\n return newActiveSection;\n }\n /**\n * Section object\n */\n\n\n var SectionPanel = function SectionPanel(el) {\n var _this = this;\n\n [].push.call(arguments, getOptions().sectionSelector);\n Item.apply(this, arguments);\n this.allSlidesItems = $(getOptions().slideSelector, el);\n this.slidesIncludingHidden = Array.from(this.allSlidesItems).map(function (item) {\n return new SlidePanel(item, _this);\n });\n this.slides = this.slidesIncludingHidden.filter(function (slidePanel) {\n return slidePanel.isVisible;\n });\n this.activeSlide = this.slides.length ? this.slides.filter(function (slide) {\n return slide.isActive;\n })[0] || this.slides[0] : null;\n };\n SectionPanel.prototype = Item.prototype;\n SectionPanel.prototype.constructor = SectionPanel;\n /**\n * Slide object\n */\n\n var SlidePanel = function SlidePanel(el, section) {\n this.parent = section;\n Item.call(this, el, getOptions().slideSelector);\n };\n\n SlidePanel.prototype = Item.prototype;\n SlidePanel.prototype.constructor = SectionPanel;\n\n /**\n * Adds internal classes to be able to provide customizable selectors\n * keeping the link with the style sheet.\n */\n\n function addInternalSelectors() {\n addClass($(getOptions().sectionSelector, getContainer()), SECTION);\n addClass($(getOptions().slideSelector, getContainer()), SLIDE);\n }\n\n /**\n * Styles the horizontal slides for a section.\n */\n\n function styleSlides(section) {\n var numSlides = section.slides.length;\n var slidesElems = section.allSlidesItems;\n var slides = section.slides;\n var sliderWidth = numSlides * 100;\n var slideWidth = 100 / numSlides;\n\n if (!$(SLIDES_WRAPPER_SEL, section.item)[0]) {\n var slidesWrapper = doc.createElement('div');\n slidesWrapper.className = SLIDES_WRAPPER; //fp-slides\n\n wrapAll(slidesElems, slidesWrapper);\n var slidesContainer = doc.createElement('div');\n slidesContainer.className = SLIDES_CONTAINER; //fp-slidesContainer\n\n wrapAll(slidesElems, slidesContainer);\n }\n\n css($(SLIDES_CONTAINER_SEL, section.item), {\n 'width': sliderWidth + '%'\n });\n\n if (numSlides > 1) {\n if (getOptions().controlArrows) {\n createSlideArrows(section);\n }\n\n if (getOptions().slidesNavigation) {\n addSlidesNavigation(section);\n }\n }\n\n slides.forEach(function (slide) {\n css(slide.item, {\n 'width': slideWidth + '%'\n });\n\n if (getOptions().verticalCentered) {\n addTableClass(slide);\n }\n });\n var startingSlide = section.activeSlide || null; //if the slide won't be an starting point, the default will be the first one\n //the active section isn't the first one? Is not the first slide of the first section? Then we load that section/slide by default.\n\n if (startingSlide != null && state.activeSection && (state.activeSection.index() !== 0 || state.activeSection.index() === 0 && startingSlide.index() !== 0)) {\n silentLandscapeScroll(startingSlide.item, 'internal');\n } else {\n addClass(slidesElems[0], ACTIVE);\n }\n }\n\n var g_wrapperObserver;\n var g_wrapperObserveConfig = {\n attributes: false,\n subtree: true,\n childList: true,\n characterData: true\n };\n EventEmitter.on(events.bindEvents, bindEvents$9);\n FP[\"render\"] = onContentChange;\n\n function bindEvents$9() {\n if (getOptions().observer && \"MutationObserver\" in window && $(WRAPPER_SEL)[0]) {\n g_wrapperObserver = createObserver($(WRAPPER_SEL)[0], onContentChange, g_wrapperObserveConfig);\n }\n\n EventEmitter.on(events.contentChanged, onContentChange);\n }\n /**\n * Creates a Mutation observer.\n */\n\n\n function createObserver(target, callback, config) {\n var observer = new MutationObserver(callback);\n observer.observe(target, config);\n return observer;\n }\n\n function didSlidesChange() {\n return getVisible($(getOptions().slideSelector, getContainer())).length !== getState().numSlides;\n }\n\n function didSectionsChange() {\n return getVisible($(getOptions().sectionSelector, getContainer())).length !== getState().numSections;\n }\n\n function didSectionsOrSlidesChange() {\n return didSlidesChange() || didSectionsChange();\n }\n /**\n * Listen to changes on sections and fires reBuild\n * when those changes affect the section height.\n */\n\n\n function onContentChange(mutations) {\n var _didSlidesChange = didSlidesChange();\n\n if (didSectionsOrSlidesChange() && !state.isDoingContinousVertical) {\n if (getOptions().observer && g_wrapperObserver) {\n // Temporally disabling the observer while \n // we modidy the DOM again\n g_wrapperObserver.disconnect();\n }\n\n updateStructuralState();\n updateState(); // Removing navs and anchors options\n\n getOptions().anchors = [];\n remove($(SECTION_NAV_SEL));\n addInternalSelectors();\n setOptionsFromDOM();\n\n if (getOptions().navigation) {\n addVerticalNavigation();\n }\n\n if (_didSlidesChange) {\n remove($(SLIDES_NAV_SEL));\n remove($(SLIDES_ARROW_SEL));\n }\n\n getState().sections.forEach(function (section) {\n if (section.slides.length) {\n if (_didSlidesChange) {\n styleSlides(section);\n }\n } else {\n styleSection(section);\n }\n });\n }\n\n if (getOptions().observer && g_wrapperObserver && $(WRAPPER_SEL)[0]) {\n g_wrapperObserver.observe($(WRAPPER_SEL)[0], g_wrapperObserveConfig);\n }\n }\n\n var supportsPassiveEvents = function () {\n //cheks for passive event support\n var g_supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n g_supportsPassive = true;\n }\n });\n windowAddEvent(\"testPassive\", null, opts);\n windowRemoveEvent(\"testPassive\", null, opts);\n } catch (e) {}\n\n return function () {\n return g_supportsPassive;\n };\n }();\n\n function getPassiveOptionsIfPossible() {\n return supportsPassiveEvents() ? {\n passive: false\n } : false;\n }\n\n var wheelDataHandler = function () {\n var _prevTime = new Date().getTime();\n\n var _scrollings = [];\n var isScrollingVertically;\n var direction;\n return {\n registerEvent: function registerEvent(e) {\n e = e || win.event;\n var value = e.wheelDelta || -e.deltaY || -e.detail;\n var delta = Math.max(-1, Math.min(1, value));\n var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\n isScrollingVertically = Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta) || Math.abs(e.deltaX) < Math.abs(e.deltaY) || !horizontalDetection;\n var curTime = new Date().getTime();\n direction = delta < 0 ? 'down' : 'up'; //Limiting the array to 150 (lets not waste memory!)\n\n if (_scrollings.length > 149) {\n _scrollings.shift();\n } //keeping record of the previous scrollings\n\n\n _scrollings.push(Math.abs(value)); //time difference between the last scroll and the current one\n\n\n var timeDiff = curTime - _prevTime;\n _prevTime = curTime; //haven't they scrolled in a while?\n //(enough to be consider a different scrolling action to scroll another section)\n\n if (timeDiff > 200) {\n //emptying the array, we dont care about old scrollings for our averages\n _scrollings = [];\n }\n },\n isAccelerating: function isAccelerating() {\n var averageEnd = getAverage(_scrollings, 10);\n var averageMiddle = getAverage(_scrollings, 70);\n var isAccelerating = averageEnd >= averageMiddle;\n return _scrollings.length ? isAccelerating && isScrollingVertically : false;\n },\n getDirection: function getDirection() {\n return direction;\n }\n };\n }();\n\n function scrollBeyondFullPage() {\n var dtop = getDestinationOffset();\n var scrollSettings = getScrollSettings(dtop);\n FP.test.top = -dtop + 'px';\n setState({\n canScroll: false\n });\n scrollTo(scrollSettings.element, scrollSettings.options, getOptions().scrollingSpeed, function () {\n setTimeout(function () {\n setState({\n isBeyondFullpage: true\n });\n setState({\n canScroll: true\n });\n }, 30);\n });\n }\n function onKeyDown() {\n if (!isFullPageAbove()) {\n return;\n } else {\n scrollUpToFullpage();\n }\n }\n function scrollUpToFullpage() {\n var scrollSettings = getScrollSettings(getLast(getState().sections).item.offsetTop);\n setState({\n canScroll: false\n });\n scrollTo(scrollSettings.element, scrollSettings.options, getOptions().scrollingSpeed, function () {\n setState({\n canScroll: true\n });\n setState({\n isBeyondFullpage: false\n });\n setState({\n isAboutToScrollToFullPage: false\n });\n });\n }\n\n function getDestinationOffset() {\n if (!getOptions().css3) {\n return getLast(getState().sections).item.offsetTop + getLast(getState().sections).item.offsetHeight;\n }\n\n return getScrollTop() + getWindowHeight();\n }\n\n function beyondFullPageHandler(container, e) {\n new Date().getTime();\n var pauseScroll = getState().isBeyondFullpage && container.getBoundingClientRect().bottom >= 0 && wheelDataHandler.getDirection() === 'up';\n var g_isAboutToScrollToFullPage = getState().isAboutToScrollToFullPage;\n\n if (g_isAboutToScrollToFullPage) {\n preventDefault(e);\n return false;\n }\n\n if (getState().isBeyondFullpage) {\n if (!pauseScroll) {\n keyframeTime('set', 'beyondFullpage', 1000);\n } else {\n var shouldSetFixedPosition = !g_isAboutToScrollToFullPage && (!keyframeTime('isNewKeyframe', 'beyondFullpage') || !wheelDataHandler.isAccelerating());\n var scrollSettings;\n\n if (shouldSetFixedPosition) {\n scrollSettings = getScrollSettings(getLast(getState().sections).item.offsetTop + getLast(getState().sections).item.offsetHeight);\n scrollSettings.element.scrollTo(0, scrollSettings.options);\n setState({\n isAboutToScrollToFullPage: false\n });\n preventDefault(e);\n return false;\n } else if (wheelDataHandler.isAccelerating()) {\n pauseScroll = false;\n setState({\n isAboutToScrollToFullPage: true\n });\n setState({\n scrollTrigger: 'wheel'\n });\n scrollUpToFullpage();\n preventDefault(e);\n return false;\n }\n }\n\n if (!g_isAboutToScrollToFullPage) {\n // allow normal scrolling, but quitting\n if (!pauseScroll) {\n return true;\n }\n }\n }\n }\n\n var keyframeTime = function () {\n var isNew = false;\n var frames = {};\n var timeframes = {};\n return function (action, name, timeframe) {\n switch (action) {\n case 'set':\n frames[name] = new Date().getTime();\n timeframes[name] = timeframe;\n break;\n\n case 'isNewKeyframe':\n var current = new Date().getTime();\n isNew = current - frames[name] > timeframes[name];\n break;\n }\n\n return isNew;\n };\n }();\n\n FP.moveSectionDown = moveSectionDown;\n /**\n * Moves the page down one section.\n */\n\n function moveSectionDown() {\n var next = getState().activeSection.next(); //looping to the top if there's no more sections below\n\n if (!next && (getOptions().loopBottom || getOptions().continuousVertical)) {\n next = getState().sections[0];\n }\n\n if (next != null) {\n scrollPage(next, null, false);\n } else if (hasContentBeyondFullPage()) {\n EventEmitter.emit(events.scrollBeyondFullpage);\n }\n }\n\n function hasContentBeyondFullPage() {\n return getContainer().scrollHeight < $body.scrollHeight && getOptions().scrollBar && getOptions().scrollBeyondFullpage;\n }\n\n FP.moveSectionUp = moveSectionUp;\n /**\n * Moves the page up one section.\n */\n\n function moveSectionUp() {\n var prev = getState().activeSection.prev(); //looping to the bottom if there's no more sections above\n\n if (!prev && (getOptions().loopTop || getOptions().continuousVertical)) {\n prev = getLast(getState().sections);\n }\n\n if (prev != null) {\n scrollPage(prev, null, true);\n }\n }\n\n var oldPageY = 0;\n /**\n * Detecting the direction of the mouse movement.\n * Used only for the middle button of the mouse.\n */\n\n function mouseMoveHandler(e) {\n if (!getOptions().autoScrolling) {\n return;\n }\n\n if (state.canScroll) {\n // moving up\n if (e.pageY < oldPageY && getIsScrollAllowed().m.up) {\n moveSectionUp();\n } // moving down\n else if (e.pageY > oldPageY && getIsScrollAllowed().m.down) {\n moveSectionDown();\n }\n }\n\n oldPageY = e.pageY;\n }\n function setOldPageY(value) {\n oldPageY = value;\n }\n\n /**\n * Determines the way of scrolling up or down:\n * by 'automatically' scrolling a section or by using the default and normal scrolling.\n */\n\n function scrolling(type) {\n if (!getIsScrollAllowed().m[type]) {\n return;\n }\n\n var scrollSection = type === 'down' ? moveSectionDown : moveSectionUp;\n\n if (getOptions().scrollOverflow && scrollOverflowHandler.isScrollable(getState().activeSection)) {\n //is the scrollbar at the start/end of the scroll?\n if (scrollOverflowHandler.isScrolled(type, getState().activeSection.item) && scrollOverflowHandler.shouldMovePage()) {\n scrollSection();\n }\n } else {\n scrollSection();\n }\n }\n\n var touchStartY = 0;\n var touchStartX = 0;\n var touchEndY = 0;\n var touchEndX = 0;\n var MSPointer = getMSPointer();\n var pointers = {\n touchmove: 'ontouchmove' in window ? 'touchmove' : MSPointer ? MSPointer.move : null,\n touchstart: 'ontouchstart' in window ? 'touchstart' : MSPointer ? MSPointer.down : null\n };\n /**\n * Adds the possibility to auto scroll through sections on touch devices.\n */\n\n function addTouchHandler() {\n if (!pointers.touchmove) {\n return;\n }\n\n if (isTouchDevice || isTouch) {\n if (getOptions().autoScrolling) {\n $body.removeEventListener(pointers.touchmove, preventBouncing, {\n passive: false\n });\n $body.addEventListener(pointers.touchmove, preventBouncing, {\n passive: false\n });\n }\n\n var touchWrapper = getOptions().touchWrapper;\n touchWrapper.removeEventListener(pointers.touchstart, touchStartHandler);\n touchWrapper.removeEventListener(pointers.touchmove, touchMoveHandler, {\n passive: false\n });\n touchWrapper.addEventListener(pointers.touchstart, touchStartHandler);\n touchWrapper.addEventListener(pointers.touchmove, touchMoveHandler, {\n passive: false\n });\n }\n }\n /**\n * Removes the auto scrolling for touch devices.\n */\n\n function removeTouchHandler() {\n if (!pointers.touchmove) {\n return;\n }\n\n if (isTouchDevice || isTouch) {\n // normalScrollElements requires it off #2691\n if (getOptions().autoScrolling) {\n $body.removeEventListener(pointers.touchmove, touchMoveHandler, {\n passive: false\n });\n $body.removeEventListener(pointers.touchmove, preventBouncing, {\n passive: false\n });\n }\n\n var touchWrapper = getOptions().touchWrapper;\n touchWrapper.removeEventListener(pointers.touchstart, touchStartHandler);\n touchWrapper.removeEventListener(pointers.touchmove, touchMoveHandler, {\n passive: false\n });\n }\n }\n /* Detecting touch events\n\n * As we are changing the top property of the page on scrolling, we can not use the traditional way to detect it.\n * This way, the touchstart and the touch moves shows an small difference between them which is the\n * used one to determine the direction.\n */\n\n function touchMoveHandler(e) {\n var activeSection = closest(e.target, SECTION_SEL) || getState().activeSection.item;\n var hasActiveSectionOverflow = scrollOverflowHandler.isScrollable(getState().activeSection);\n\n if (isReallyTouch(e)) {\n setState({\n isGrabbing: true,\n isUsingWheel: false\n });\n\n if (getOptions().autoScrolling) {\n if (hasActiveSectionOverflow && !state.canScroll || getOptions().scrollBar) {\n //preventing the easing on iOS devices\n preventDefault(e);\n }\n }\n\n var touchEvents = getEventsPage(e);\n touchEndY = touchEvents.y;\n touchEndX = touchEvents.x;\n var isVerticalMovementEnough = Math.abs(touchStartY - touchEndY) > win.innerHeight / 100 * getOptions().touchSensitivity;\n var isHorizontalMovementEnough = Math.abs(touchStartX - touchEndX) > getWindowWidth() / 100 * getOptions().touchSensitivity;\n var isHorizontalPredominantMove = $(SLIDES_WRAPPER_SEL, activeSection).length && Math.abs(touchStartX - touchEndX) > Math.abs(touchStartY - touchEndY);\n var directionH = touchStartX > touchEndX ? 'right' : 'left';\n var directionV = touchStartY > touchEndY ? 'down' : 'up';\n var direction = isHorizontalPredominantMove ? directionH : directionV;\n setState({\n touchDirection: direction\n }); //if movement in the X axys is greater than in the Y and the currect section has slides...\n\n if (isHorizontalPredominantMove) {\n //is the movement greater than the minimum resistance to scroll?\n if (!state.slideMoving && isHorizontalMovementEnough) {\n if (touchStartX > touchEndX) {\n if (getIsScrollAllowed().m.right) {\n EventEmitter.emit(events.moveSlideRight, {\n section: activeSection\n });\n }\n } else {\n if (getIsScrollAllowed().m.left) {\n EventEmitter.emit(events.moveSlideLeft, {\n section: activeSection\n });\n }\n }\n }\n } //vertical scrolling (only when autoScrolling is enabled)\n else if (getOptions().autoScrolling && state.canScroll) {\n //is the movement greater than the minimum resistance to scroll?\n if (isVerticalMovementEnough) {\n scrolling(directionV);\n }\n }\n }\n }\n /**\n * As IE >= 10 fires both touch and mouse events when using a mouse in a touchscreen\n * this way we make sure that is really a touch event what IE is detecting.\n */\n\n\n function isReallyTouch(e) {\n //if is not IE || IE is detecting `touch` or `pen`\n return typeof e.pointerType === 'undefined' || e.pointerType != 'mouse';\n }\n /**\n * Handler for the touch start event.\n */\n\n\n function touchStartHandler(e) {\n //stopping the auto scroll to adjust to a section\n if (getOptions().fitToSection) {\n setState({\n activeAnimation: false\n });\n }\n\n if (isReallyTouch(e)) {\n var touchEvents = getEventsPage(e);\n touchStartY = touchEvents.y;\n touchStartX = touchEvents.x;\n }\n\n windowAddEvent('touchend', touchEndHandler);\n }\n /**\n * Handler for the touch end event.\n */\n\n\n function touchEndHandler() {\n windowRemoveEvent('touchend', touchEndHandler);\n setState({\n isGrabbing: false\n });\n }\n /**\n * Gets the pageX and pageY properties depending on the browser.\n * https://github.com/alvarotrigo/fullPage.js/issues/194#issuecomment-34069854\n */\n\n\n function getEventsPage(e) {\n var events = {};\n events.y = typeof e.pageY !== 'undefined' && (e.pageY || e.pageX) ? e.pageY : e.touches[0].pageY;\n events.x = typeof e.pageX !== 'undefined' && (e.pageY || e.pageX) ? e.pageX : e.touches[0].pageX; //in touch devices with scrollBar:true, e.pageY is detected, but we have to deal with touch events. #1008\n\n if (isTouch && isReallyTouch(e) && getOptions().scrollBar && typeof e.touches !== 'undefined') {\n events.y = e.touches[0].pageY;\n events.x = e.touches[0].pageX;\n }\n\n return events;\n }\n /*\n * Returns and object with Microsoft pointers (for IE<11 and for IE >= 11)\n * http://msdn.microsoft.com/en-us/library/ie/dn304886(v=vs.85).aspx\n */\n\n\n function getMSPointer() {\n var pointer; //IE >= 11 & rest of browsers\n\n if (win.PointerEvent) {\n pointer = {\n down: 'pointerdown',\n move: 'pointermove'\n };\n }\n\n return pointer;\n }\n /*\n * Preventing bouncing in iOS #2285\n */\n\n\n function preventBouncing(e) {\n if (getOptions().autoScrolling && isReallyTouch(e) && getIsScrollAllowed().m.up) {\n //preventing the easing on iOS devices\n if (!state.canScroll) {\n preventDefault(e);\n }\n }\n }\n\n FP.moveSlideLeft = moveSlideLeft;\n FP.moveSlideRight = moveSlideRight;\n /**\n * Slides a slider to the given direction.\n * Optional `section` param.\n */\n\n function moveSlide(direction, section) {\n var activeSectionItem = section == null ? getState().activeSection.item : section;\n var activeSection = getPanelByElement(state.sections, activeSectionItem);\n var slides = $(SLIDES_WRAPPER_SEL, activeSectionItem)[0]; // more than one slide needed and nothing should be sliding\n\n if (slides == null || state.slideMoving || activeSection.slides.length < 2) {\n return;\n }\n\n var currentSlide = activeSection.activeSlide;\n var destiny = direction === 'left' ? currentSlide.prev() : currentSlide.next(); //isn't there a next slide in the secuence?\n\n if (!destiny) {\n //respect loopHorizontal setting\n if (!getOptions().loopHorizontal) return;\n destiny = direction === 'left' ? getLast(activeSection.slides) : activeSection.slides[0];\n }\n\n setState({\n slideMoving: !FP.test.isTesting\n });\n landscapeScroll(slides, destiny.item, direction);\n }\n /**\n * Slides left the slider of the active section.\n * Optional `section` param.\n */\n\n function moveSlideLeft(section) {\n moveSlide('left', section);\n }\n /**\n * Slides right the slider of the active section.\n * Optional `section` param.\n */\n\n function moveSlideRight(section) {\n moveSlide('right', section);\n }\n\n /**\n * Gets a section by its anchor / index\n */\n\n function getSectionByAnchor(sectionAnchor) {\n var section = getState().sections.filter(function (section) {\n return section.anchor === sectionAnchor;\n })[0];\n\n if (!section) {\n var sectionIndex = typeof sectionAnchor !== 'undefined' ? sectionAnchor - 1 : 0;\n section = getState().sections[sectionIndex];\n }\n\n return section;\n }\n\n /**\n * Scrolls the slider to the given slide destination for the given section\n */\n\n function scrollSlider(slideElem) {\n if (slideElem != null) {\n landscapeScroll(closest(slideElem, SLIDES_WRAPPER_SEL), slideElem);\n }\n }\n\n /**\n * Scrolls to the given section and slide anchors\n */\n\n function scrollPageAndSlide(sectionAnchor, slideAnchor) {\n var section = getSectionByAnchor(sectionAnchor); //do nothing if there's no section with the given anchor name\n\n if (section == null) return;\n var slideElem = getSlideByAnchor(slideAnchor, section); //we need to scroll to the section and then to the slide\n\n if ((!section.anchor || section.anchor !== state.lastScrolledDestiny) && !hasClass(section.item, ACTIVE)) {\n scrollPage(section, function () {\n scrollSlider(slideElem);\n });\n } //if we were already in the section\n else {\n scrollSlider(slideElem);\n }\n }\n /**\n * Gets a slide inside a given section by its anchor / index\n */\n\n function getSlideByAnchor(slideAnchor, section) {\n var slide = section.slides.filter(function (slide) {\n return slide.anchor === slideAnchor;\n })[0];\n\n if (slide == null) {\n slideAnchor = typeof slideAnchor !== 'undefined' ? slideAnchor : 0;\n slide = section.slides[slideAnchor];\n }\n\n return slide ? slide.item : null;\n }\n\n FP.moveTo = moveTo$1;\n /**\n * Moves the page to the given section and slide.\n * Anchors or index positions can be used as params.\n */\n\n function moveTo$1(sectionAnchor, slideAnchor) {\n var destiny = getSectionByAnchor(sectionAnchor);\n\n if (typeof slideAnchor !== 'undefined') {\n scrollPageAndSlide(sectionAnchor, slideAnchor);\n } else if (destiny != null) {\n scrollPage(destiny);\n }\n }\n\n //@ts-check\n var g_controlPressed;\n var g_keydownId;\n var g_elToFocus;\n EventEmitter.on(events.bindEvents, bindEvents$8);\n\n function bindEvents$8() {\n //when opening a new tab (ctrl + t), `control` won't be pressed when coming back.\n windowAddEvent('blur', blurHandler); //Sliding with arrow keys, both, vertical and horizontal\n\n docAddEvent('keydown', keydownHandler); //to prevent scrolling while zooming\n\n docAddEvent('keyup', keyUpHandler);\n EventEmitter.on(events.onDestroy, onDestroy$5);\n EventEmitter.on(events.afterSlideLoads, onAfterSlideLoads);\n EventEmitter.on(events.afterSectionLoads, afterSectionLoads);\n }\n\n function onDestroy$5() {\n clearTimeout(g_keydownId);\n docRemoveEvent('keydown', keydownHandler);\n docRemoveEvent('keyup', keyUpHandler);\n } //Sliding with arrow keys, both, vertical and horizontal\n\n\n function keydownHandler(e) {\n clearTimeout(g_keydownId);\n var keyCode = e.keyCode;\n var isPressingHorizontalArrows = [37, 39].indexOf(keyCode) > -1;\n var canScrollWithKeyboard = getOptions().autoScrolling || getOptions().fitToSection || isPressingHorizontalArrows; //tab?\n\n if (keyCode === 9) {\n onTab(e);\n } else if (!isInsideInput() && getOptions().keyboardScrolling && canScrollWithKeyboard) {\n g_controlPressed = e.ctrlKey;\n g_keydownId = setTimeout(function () {\n onkeydown(e);\n }, 0);\n }\n }\n /**\n * Keydown event\n */\n\n\n function onkeydown(e) {\n var shiftPressed = e.shiftKey;\n var activeElement = doc.activeElement;\n var isMediaFocused = matches(activeElement, 'video') || matches(activeElement, 'audio');\n var isScrolled = {\n up: scrollOverflowHandler.isScrolled('up', getState().activeSection.item),\n down: scrollOverflowHandler.isScrolled('down', getState().activeSection.item)\n };\n var isUsingHorizontalArrowKeys = [37, 39].indexOf(e.keyCode) > -1;\n cancelDirectionKeyEvents(e); //do nothing if we can not scroll or we are not using horizotnal key arrows.\n\n if (!state.canScroll && !isUsingHorizontalArrowKeys) {\n return;\n }\n\n setState({\n scrollTrigger: 'keydown'\n });\n\n switch (e.keyCode) {\n //up\n case 38:\n case 33:\n if (getIsScrollAllowed().k.up && isScrolled.up) {\n if (state.isBeyondFullpage) {\n EventEmitter.emit(events.onKeyDown, {\n e: e\n });\n } else {\n moveSectionUp();\n }\n } else {\n scrollOverflowHandler.focusScrollable();\n }\n\n break;\n //down\n\n case 32:\n //spacebar\n if (shiftPressed && getIsScrollAllowed().k.up && !isMediaFocused && isScrolled.up) {\n moveSectionUp();\n break;\n }\n\n /* falls through */\n\n case 40:\n case 34:\n if (getIsScrollAllowed().k.down && isScrolled.down) {\n if (state.isBeyondFullpage) {\n return;\n } // space bar?\n\n\n if (e.keyCode !== 32 || !isMediaFocused) {\n moveSectionDown();\n }\n } else {\n scrollOverflowHandler.focusScrollable();\n }\n\n break;\n //Home\n\n case 36:\n if (getIsScrollAllowed().k.up) {\n moveTo$1(1);\n }\n\n break;\n //End\n\n case 35:\n if (getIsScrollAllowed().k.down) {\n moveTo$1(getState().sections.length);\n }\n\n break;\n //left\n\n case 37:\n if (getIsScrollAllowed().k.left) {\n moveSlideLeft();\n }\n\n break;\n //right\n\n case 39:\n if (getIsScrollAllowed().k.right) {\n moveSlideRight();\n }\n\n break;\n\n default:\n return;\n // exit this handler for other keys\n }\n } //to prevent scrolling while zooming\n\n\n function keyUpHandler(e) {\n if (state.isWindowFocused) {\n //the keyup gets fired on new tab ctrl + t in Firefox\n g_controlPressed = e.ctrlKey;\n }\n } //when opening a new tab (ctrl + t), `control` won't be pressed when coming back.\n\n\n function blurHandler() {\n setState({\n isWindowFocused: false\n });\n g_controlPressed = false;\n }\n /**\n * Makes sure the tab key will only focus elements within the current section/slide\n * preventing this way from breaking the page.\n * Based on \"Modals and keyboard traps\"\n * from https://developers.google.com/web/fundamentals/accessibility/focus/using-tabindex\n */\n\n\n function onTab(e) {\n var isShiftPressed = e.shiftKey;\n var activeElement = doc.activeElement;\n var focusableElements = getFocusables(getSlideOrSection(getState().activeSection.item));\n\n function preventAndFocusFirst(e) {\n preventDefault(e);\n return focusableElements[0] ? focusableElements[0].focus() : null;\n } // deactivating tab while scrolling #4550\n\n\n if (!state.canScroll) {\n preventDefault(e);\n return;\n } //outside any section or slide? Let's not hijack the tab!\n\n\n if (isFocusOutside(e)) {\n return;\n } //is there an element with focus?\n\n\n if (activeElement) {\n if (closest(activeElement, SECTION_ACTIVE_SEL + ',' + SECTION_ACTIVE_SEL + ' ' + SLIDE_ACTIVE_SEL) == null) {\n activeElement = preventAndFocusFirst(e);\n }\n } //no element if focused? Let's focus the first one of the section/slide\n else {\n preventAndFocusFirst(e);\n } //when reached the first or last focusable element of the section/slide\n //we prevent the tab action to keep it in the last focusable element\n\n\n var isFirstFocusableInSection = activeElement == focusableElements[0];\n var isLastFocusableInSection = activeElement == focusableElements[focusableElements.length - 1];\n var isNextItem = !isShiftPressed && isLastFocusableInSection;\n var isPrevItem = isShiftPressed && isFirstFocusableInSection;\n\n if (isPrevItem || isNextItem) {\n preventDefault(e);\n var focusInfo = getPanelWithFocusable(isPrevItem);\n var destinationPanel = focusInfo ? focusInfo.panel : null;\n\n if (destinationPanel) {\n var destinationSection = destinationPanel.isSection ? destinationPanel : destinationPanel.parent;\n EventEmitter.emit(events.onScrollPageAndSlide, {\n sectionAnchor: destinationSection.index() + 1,\n slideAnchor: destinationPanel.isSection ? 0 : destinationPanel.index()\n });\n g_elToFocus = focusInfo.itemToFocus;\n preventDefault(e);\n }\n }\n }\n\n function onAfterSlideLoads(v) {\n focusItem();\n }\n\n function afterSectionLoads(v) {\n if (!closest(g_elToFocus, SLIDE_SEL) || closest(g_elToFocus, SLIDE_ACTIVE_SEL)) {\n focusItem();\n }\n }\n\n function focusItem() {\n if (g_elToFocus) {\n g_elToFocus.focus();\n g_elToFocus = null;\n }\n }\n /**\n * Get's the panel containing the element to focus.\n *\n */\n\n\n function getPanelWithFocusable(isPrevItem) {\n var action = isPrevItem ? 'prevPanel' : 'nextPanel';\n var focusableElements = [];\n var panelWithFocusables;\n var currentPanel = getSlideOrSectionPanel(getActivePanel()[action]());\n\n do {\n focusableElements = getFocusables(currentPanel.item);\n\n if (focusableElements.length) {\n panelWithFocusables = {\n panel: currentPanel,\n itemToFocus: focusableElements[isPrevItem ? focusableElements.length - 1 : 0]\n };\n }\n\n currentPanel = getSlideOrSectionPanel(currentPanel[action]());\n } while (currentPanel && focusableElements.length === 0);\n\n return panelWithFocusables;\n }\n /**\n * Gets all the focusable elements inside the passed element.\n */\n\n\n function getFocusables(el) {\n return [].slice.call($(focusableElementsString, el)).filter(function (item) {\n return getAttr(item, 'tabindex') !== '-1' && //are also not hidden elements (or with hidden parents)\n item.offsetParent !== null;\n });\n }\n /**\n * Determines whether the focus is outside fullpage.js sections/slides or not.\n */\n\n\n function isFocusOutside(e) {\n var allFocusables = getFocusables(doc);\n var currentFocusIndex = allFocusables.indexOf(doc.activeElement);\n var focusDestinationIndex = e.shiftKey ? currentFocusIndex - 1 : currentFocusIndex + 1;\n var focusDestination = allFocusables[focusDestinationIndex];\n var destinationItemSlide = closest(focusDestination, SLIDE_SEL);\n var destinationItemSection = closest(focusDestination, SECTION_SEL);\n return !destinationItemSlide && !destinationItemSection;\n }\n\n function shouldCancelKeyboardNavigation(e) {\n // https://keycode.info/for/34\n // 40 = arrow down\n // 38 = arrow up\n // 32 = spacebar\n // 33 = PageUp\n // 34 = PageDown\n var keyControls = [40, 38, 32, 33, 34];\n return keyControls.indexOf(e.keyCode) > -1 && !state.isBeyondFullpage;\n } //preventing the scroll with arrow keys & spacebar & Page Up & Down keys\n\n\n function cancelDirectionKeyEvents(e) {\n if (shouldCancelKeyboardNavigation(e) && !closest(e.target, OVERFLOW_SEL)) {\n e.preventDefault();\n }\n }\n\n function getControlPressed() {\n return g_controlPressed;\n }\n\n var prevTime = new Date().getTime();\n var scrollings = [];\n FP.setMouseWheelScrolling = setMouseWheelScrolling;\n /**\n * Adds or remove the possibility of scrolling through sections by using the mouse wheel or the trackpad.\n */\n\n function setMouseWheelScrolling(value) {\n if (value) {\n addMouseWheelHandler();\n addMiddleWheelHandler();\n } else {\n removeMouseWheelHandler();\n removeMiddleWheelHandler();\n }\n }\n /**\n * Adds the auto scrolling action for the mouse wheel and trackpad.\n * After this function is called, the mousewheel and trackpad movements will scroll through sections\n * https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n */\n\n\n function addMouseWheelHandler() {\n var prefix = '';\n\n var _addEventListener;\n\n if (win.addEventListener) {\n _addEventListener = \"addEventListener\";\n } else {\n _addEventListener = \"attachEvent\";\n prefix = 'on';\n } // detect available wheel event\n\n\n var support = 'onwheel' in doc.createElement('div') ? 'wheel' : // Modern browsers support \"wheel\"\n // @ts-ignore\n doc.onmousewheel !== undefined ? 'mousewheel' : // Webkit and IE support at least \"mousewheel\"\n 'DOMMouseScroll'; // let's assume that remaining browsers are older Firefox\n\n var passiveEvent = getPassiveOptionsIfPossible();\n\n if (support == 'DOMMouseScroll') {\n doc[_addEventListener](prefix + 'MozMousePixelScroll', MouseWheelHandler, passiveEvent);\n } //handle MozMousePixelScroll in older Firefox\n else {\n doc[_addEventListener](prefix + support, MouseWheelHandler, passiveEvent);\n }\n }\n /**\n * Binding the mousemove when the mouse's middle button is pressed\n */\n\n\n function addMiddleWheelHandler() {\n getContainer().addEventListener('mousedown', mouseDownHandler);\n getContainer().addEventListener('mouseup', mouseUpHandler);\n }\n /**\n * Removes the auto scrolling action fired by the mouse wheel and trackpad.\n * After this function is called, the mousewheel and trackpad movements won't scroll through sections.\n */\n\n\n function removeMouseWheelHandler() {\n if (doc.addEventListener) {\n docRemoveEvent('mousewheel', MouseWheelHandler, false); //IE9, Chrome, Safari, Oper\n\n docRemoveEvent('wheel', MouseWheelHandler, false); //Firefox\n\n docRemoveEvent('MozMousePixelScroll', MouseWheelHandler, false); //old Firefox\n } else {\n // @ts-ignore\n doc.detachEvent('onmousewheel', MouseWheelHandler); //IE 6/7/8\n }\n }\n /**\n * Unbinding the mousemove when the mouse's middle button is released\n */\n\n\n function removeMiddleWheelHandler() {\n getContainer().removeEventListener('mousedown', mouseDownHandler);\n getContainer().removeEventListener('mouseup', mouseUpHandler);\n }\n /**\n * Detecting mousewheel scrolling\n *\n * http://blogs.sitepointstatic.com/examples/tech/mouse-wheel/index.html\n * http://www.sitepoint.com/html5-javascript-mouse-wheel/\n */\n\n\n function MouseWheelHandler(e) {\n var curTime = new Date().getTime();\n var isNormalScroll = hasClass($(COMPLETELY_SEL)[0], NORMAL_SCROLL);\n var isScrollAllowedBeyondFullPage = beyondFullPageHandler(getContainer(), e);\n\n if (!state.isUsingWheel) {\n setState({\n isGrabbing: false,\n isUsingWheel: true,\n touchDirection: 'none'\n });\n } //is scroll allowed?\n\n\n if (!getIsScrollAllowed().m.down && !getIsScrollAllowed().m.up) {\n preventDefault(e);\n return false;\n }\n\n if (isScrollAllowedBeyondFullPage) {\n return true;\n } else if (isScrollAllowedBeyondFullPage === false) {\n preventDefault(e);\n return false;\n } //autoscrolling and not zooming?\n\n\n if (getOptions().autoScrolling && !getControlPressed() && !isNormalScroll) {\n // cross-browser wheel delta\n e = e || win.event;\n var value = e.wheelDelta || -e.deltaY || -e.detail;\n var delta = Math.max(-1, Math.min(1, value));\n var horizontalDetection = typeof e.wheelDeltaX !== 'undefined' || typeof e.deltaX !== 'undefined';\n var isScrollingVertically = Math.abs(e.wheelDeltaX) < Math.abs(e.wheelDelta) || Math.abs(e.deltaX) < Math.abs(e.deltaY) || !horizontalDetection;\n var direction = delta < 0 ? 'down' : delta > 0 ? 'up' : 'none'; //Limiting the array to 150 (lets not waste memory!)\n\n if (scrollings.length > 149) {\n scrollings.shift();\n } //keeping record of the previous scrollings\n\n\n scrollings.push(Math.abs(value)); //preventing to scroll the site on mouse wheel when scrollbar is present\n\n if (getOptions().scrollBar) {\n preventDefault(e);\n } //time difference between the last scroll and the current one\n\n\n var timeDiff = curTime - prevTime;\n prevTime = curTime; //haven't they scrolled in a while?\n //(enough to be consider a different scrolling action to scroll another section)\n\n if (timeDiff > 200) {\n //emptying the array, we dont care about old scrollings for our averages\n scrollings = [];\n }\n\n setState({\n wheelDirection: direction\n });\n\n if (state.canScroll) {\n var averageEnd = getAverage(scrollings, 10);\n var averageMiddle = getAverage(scrollings, 70);\n var isAccelerating = averageEnd >= averageMiddle; //to avoid double swipes...\n\n if (isAccelerating && isScrollingVertically) {\n setState({\n scrollTrigger: 'wheel'\n }); //scrolling down?\n\n if (delta < 0) {\n scrolling('down');\n } //scrolling up?\n else {\n scrolling('up');\n }\n }\n }\n\n return false;\n }\n\n if (getOptions().fitToSection) {\n //stopping the auto scroll to adjust to a section\n setState({\n activeAnimation: false\n });\n }\n } //binding the mousemove when the mouse's middle button is released\n\n\n function mouseDownHandler(e) {\n //middle button\n if (e.which == 2) {\n setOldPageY(e.pageY);\n getContainer().addEventListener('mousemove', mouseMoveHandler);\n }\n } //unbinding the mousemove when the mouse's middle button is released\n\n\n function mouseUpHandler(e) {\n //middle button\n if (e.which == 2) {\n getContainer().removeEventListener('mousemove', mouseMoveHandler);\n }\n }\n /**\n * Adds or remove the mouse wheel hijacking\n */\n\n\n function setMouseHijack(value) {\n if (value) {\n setMouseWheelScrolling(true);\n addTouchHandler();\n } else {\n setMouseWheelScrolling(false);\n removeTouchHandler();\n }\n }\n\n var g_canFireMouseEnterNormalScroll = true;\n EventEmitter.on(events.bindEvents, bindEvents$7);\n\n function bindEvents$7() {\n /**\n * Applying normalScroll elements.\n * Ignoring the scrolls over the specified selectors.\n */\n if (getOptions().normalScrollElements) {\n ['mouseenter', 'touchstart'].forEach(function (eventName) {\n forMouseLeaveOrTouch(eventName, false);\n });\n ['mouseleave', 'touchend'].forEach(function (eventName) {\n forMouseLeaveOrTouch(eventName, true);\n });\n }\n\n EventEmitter.on(events.onDestroy, onDestroy$4);\n }\n\n function onDestroy$4() {\n ['mouseenter', 'touchstart', 'mouseleave', 'touchend'].forEach(function (eventName) {\n docRemoveEvent(eventName, onMouseEnterOrLeave, true); //true is required!\n });\n }\n\n function forMouseLeaveOrTouch(eventName, allowScrolling) {\n //a way to pass arguments to the onMouseEnterOrLeave function\n document['fp_' + eventName] = allowScrolling;\n docAddEvent(eventName, onMouseEnterOrLeave, true); //capturing phase\n }\n\n function onMouseEnterOrLeave(e) {\n var type = e.type;\n var isInsideOneNormalScroll = false; //onMouseLeave will use the destination target, not the one we are moving away from\n\n var target = type === 'mouseleave' ? e.toElement || e.relatedTarget : e.target; //coming from closing a normalScrollElements modal or moving outside viewport?\n\n if (target == document || !target) {\n setMouseHijack(true);\n return;\n }\n\n if (type === 'touchend') {\n g_canFireMouseEnterNormalScroll = false;\n setTimeout(function () {\n g_canFireMouseEnterNormalScroll = true;\n }, 800);\n } //preventing mouseenter event to do anything when coming from a touchEnd event\n //fixing issue #3576\n\n\n if (type === 'mouseenter' && !g_canFireMouseEnterNormalScroll) {\n return;\n }\n\n var normalSelectors = getOptions().normalScrollElements.split(',');\n normalSelectors.forEach(function (normalSelector) {\n if (!isInsideOneNormalScroll) {\n var isNormalScrollTarget = matches(target, normalSelector); //leaving a child inside the normalScoll element is not leaving the normalScroll #3661\n\n var isNormalScrollChildFocused = closest(target, normalSelector);\n\n if (isNormalScrollTarget || isNormalScrollChildFocused) {\n if (!FP.shared.isNormalScrollElement) {\n setMouseHijack(false);\n }\n\n FP.shared.isNormalScrollElement = true;\n isInsideOneNormalScroll = true;\n }\n }\n }); //not inside a single normal scroll element anymore?\n\n if (!isInsideOneNormalScroll && FP.shared.isNormalScrollElement) {\n setMouseHijack(true);\n FP.shared.isNormalScrollElement = false;\n }\n }\n\n FP.silentMoveTo = silentMoveTo;\n /**\n * Moves the page to the given section and slide with no animation.\n * Anchors or index positions can be used as params.\n */\n\n function silentMoveTo(sectionAnchor, slideAnchor) {\n setScrollingSpeed(0, 'internal');\n moveTo$1(sectionAnchor, slideAnchor);\n setScrollingSpeed(getOriginals().scrollingSpeed, 'internal');\n }\n\n var previousHeight = getWindowHeight();\n var windowsWidth = getWindowWidth();\n var g_resizeId;\n var g_isConsecutiveResize = false;\n var g_resizeMobileHandlerId;\n FP.reBuild = reBuild;\n EventEmitter.on(events.bindEvents, bindEvents$6);\n\n function bindEvents$6() {\n // Setting VH correctly in mobile devices\n resizeHandler(); //when resizing the site, we adjust the heights of the sections, slimScroll...\n\n windowAddEvent('resize', resizeHandler);\n EventEmitter.on(events.onDestroy, onDestroy$3);\n }\n\n function onDestroy$3() {\n clearTimeout(g_resizeId);\n clearTimeout(g_resizeMobileHandlerId);\n windowRemoveEvent('resize', resizeHandler);\n }\n /*\n * Resize event handler.\n */\n\n\n function resizeHandler() {\n if (!g_isConsecutiveResize) {\n if (getOptions().autoScrolling && !getOptions().scrollBar || !getOptions().fitToSection) {\n setSectionsHeight(getWindowHeight());\n }\n }\n\n fitToActiveSection();\n g_isConsecutiveResize = true; //in order to call the functions only when the resize is finished\n //http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing \n\n clearTimeout(g_resizeId);\n g_resizeId = setTimeout(function () {\n //issue #3336 \n //(some apps or browsers, like Chrome/Firefox for Mobile take time to report the real height)\n //so we check it 3 times with intervals in that case\n // for(var i = 0; i< 4; i++){\n resizeActions();\n g_isConsecutiveResize = false; // }\n }, 400);\n }\n\n function fitToActiveSection() {\n if (isTouchDevice) {\n // Issue #4393 and previously in v3, #3336\n // (some apps or browsers, like Chrome/Firefox will delay a bit to scroll \n // to the focused input\n for (var i = 0; i < 4; i++) {\n g_resizeMobileHandlerId = setTimeout(function () {\n window.requestAnimationFrame(function () {\n // on Android devices the browser scrolls to the focused element\n // messing up the whole page structure. So we need to update the\n // translate3d value when the keyboard shows/hides\n if (getOptions().autoScrolling && !getOptions().scrollBar) {\n setState({\n isResizing: true\n });\n silentMoveTo(state.activeSection.index() + 1);\n setState({\n isResizing: false\n });\n }\n });\n }, 200 * i);\n }\n }\n }\n /**\n * When resizing the site, we adjust the heights of the sections, slimScroll...\n */\n\n\n function resizeActions() {\n setState({\n isResizing: true\n });\n setSectionsHeight('');\n\n if (!getOptions().autoScrolling && !state.isBeyondFullpage) {\n setVhUnits();\n }\n\n EventEmitter.emit(events.contentChanged);\n updateState(); //checking if it needs to get responsive\n\n responsive(); // rebuild immediately on touch devices\n\n if (isTouchDevice) {\n var activeElement = doc.activeElement; //if the keyboard is NOT visible\n\n if (!matches(activeElement, 'textarea') && !matches(activeElement, 'input') && !matches(activeElement, 'select')) {\n var currentHeight = getWindowHeight(); //making sure the change in the viewport size is enough to force a rebuild. (20 % of the window to avoid problems when hidding scroll bars)\n\n if (Math.abs(currentHeight - previousHeight) > 20 * Math.max(previousHeight, currentHeight) / 100) {\n reBuild(true);\n previousHeight = currentHeight;\n }\n }\n } else {\n adjustToNewViewport();\n }\n\n setState({\n isResizing: false\n });\n }\n /**\n * When resizing is finished, we adjust the slides sizes and positions\n */\n\n\n function reBuild(resizing) {\n if (hasClass(getContainer(), DESTROYED)) {\n return;\n } //nothing to do if the plugin was destroyed\n //updating global vars\n\n\n setState({\n isResizing: true,\n windowsHeight: getWindowHeight(),\n windowsWidth: getWindowWidth()\n });\n var sections = getState().sections;\n\n for (var i = 0; i < sections.length; ++i) {\n var section = sections[i];\n var slidesWrap = $(SLIDES_WRAPPER_SEL, section.item)[0];\n var slides = section.slides; //adjusting the position fo the FULL WIDTH slides...\n\n if (slides.length > 1) {\n landscapeScroll(slidesWrap, section.activeSlide.item);\n }\n }\n\n if (getOptions().scrollOverflow) {\n scrollOverflowHandler.makeScrollable();\n }\n\n var sectionIndex = getState().activeSection.index();\n\n if (!state.isBeyondFullpage) {\n //isn't it the first section?\n if (sectionIndex) {\n //adjusting the position for the current section\n silentMoveTo(sectionIndex + 1);\n }\n }\n\n setState({\n isResizing: false\n });\n\n if (isFunction(getOptions().afterResize) && resizing) {\n getOptions().afterResize.call(getContainer(), win.innerWidth, win.innerHeight);\n }\n\n if (isFunction(getOptions().afterReBuild) && !resizing) {\n getOptions().afterReBuild.call(getContainer());\n }\n\n trigger(getContainer(), 'afterRebuild');\n }\n /**\n * Adjusts a section to the viewport if it has changed.\n */\n\n\n function adjustToNewViewport() {\n var newWindowHeight = getWindowHeight();\n var newWindowWidth = getWindowWidth();\n\n if (state.windowsHeight !== newWindowHeight || windowsWidth !== newWindowWidth) {\n setState({\n windowsHeight: newWindowHeight\n });\n windowsWidth = newWindowWidth;\n reBuild(true);\n }\n }\n\n function setSectionsHeight(value) {\n var propertyValue = value === '' ? '' : value + 'px';\n getState().sections.forEach(function (section) {\n css(section.item, {\n 'height': propertyValue\n });\n });\n }\n /**\n * Defining the value in px of a VH unit. (Used for autoScrolling: false)\n * To fix the height issue on mobile devices when using VH units.\n * https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n */\n\n\n function setVhUnits() {\n if (!getOptions().autoScrolling || getOptions().scrollBar) {\n // First we get the viewport height and we multiple it by 1% to get a value for a vh unit\n var vh = win.innerHeight * 0.01; // Then we set the value in the --vh custom property to the root of the document\n\n doc.documentElement.style.setProperty('--vh', \"\".concat(vh, \"px\"));\n }\n }\n\n function getAnchorsURL() {\n var section;\n var slide;\n var hash = win.location.hash;\n\n if (hash.length) {\n //getting the anchor link in the URL and deleting the `#`\n var anchorsParts = hash.replace('#', '').split('/'); //using / for visual reasons and not as a section/slide separator #2803\n\n var isFunkyAnchor = hash.indexOf('#/') > -1;\n section = isFunkyAnchor ? '/' + anchorsParts[1] : decodeURIComponent(anchorsParts[0]);\n var slideAnchor = isFunkyAnchor ? anchorsParts[2] : anchorsParts[1];\n\n if (slideAnchor && slideAnchor.length) {\n slide = decodeURIComponent(slideAnchor);\n }\n }\n\n return {\n section: section,\n slide: slide\n };\n }\n\n FP.setLockAnchors = setLockAnchors;\n EventEmitter.on(events.bindEvents, bindEvents$5);\n\n function bindEvents$5() {\n //detecting any change on the URL to scroll to the given anchor link\n //(a way to detect back history button as we play with the hashes on the URL)\n windowAddEvent('hashchange', hashChangeHandler);\n EventEmitter.on(events.onDestroy, onDestroy$2);\n }\n\n function onDestroy$2() {\n windowRemoveEvent('hashchange', hashChangeHandler);\n }\n /**\n * Sets lockAnchors\n */\n\n\n function setLockAnchors(value) {\n getOptions().lockAnchors = value;\n }\n /**\n * Detecting any change on the URL to scroll to the given anchor link\n * (a way to detect back history button as we play with the hashes on the URL)\n */\n\n\n function hashChangeHandler() {\n if (!state.isScrolling && !getOptions().lockAnchors) {\n var anchors = getAnchorsURL();\n var sectionAnchor = anchors.section;\n var slideAnchor = anchors.slide; //when moving to a slide in the first section for the first time (first time to add an anchor to the URL)\n\n var isFirstSlideMove = typeof state.lastScrolledDestiny === 'undefined';\n var isFirstScrollMove = typeof state.lastScrolledDestiny === 'undefined' && typeof slideAnchor === 'undefined' && !state.slideMoving;\n\n if (sectionAnchor && sectionAnchor.length) {\n /*in order to call scrollpage() only once for each destination at a time\n It is called twice for each scroll otherwise, as in case of using anchorlinks `hashChange`\n event is fired on every scroll too.*/\n if (sectionAnchor && sectionAnchor !== state.lastScrolledDestiny && !isFirstSlideMove || isFirstScrollMove || !state.slideMoving && state.lastScrolledSlide != slideAnchor) {\n EventEmitter.emit(events.onScrollPageAndSlide, {\n sectionAnchor: sectionAnchor,\n slideAnchor: slideAnchor\n });\n }\n }\n }\n }\n\n EventEmitter.on(events.bindEvents, bindEvents$4);\n\n function bindEvents$4() {\n docAddEvent('wheel', wheelDataHandler.registerEvent, getPassiveOptionsIfPossible());\n EventEmitter.on(events.scrollBeyondFullpage, scrollBeyondFullPage);\n EventEmitter.on(events.onKeyDown, onKeyDown);\n }\n\n EventEmitter.on(events.bindEvents, bindEvents$3);\n\n function bindEvents$3() {\n EventEmitter.on(events.onClickOrTouch, onClickOrTouch$1);\n }\n\n function onClickOrTouch$1(params) {\n var target = params.target;\n\n if (closest(target, getOptions().menu + ' [data-menuanchor]')) {\n menuItemsHandler.call(target, params);\n }\n } //Menu item handler when not using anchors or using lockAnchors:true\n\n\n function menuItemsHandler(e) {\n setState({\n scrollTrigger: 'menu'\n });\n\n if ($(getOptions().menu)[0] && (getOptions().lockAnchors || !getOptions().anchors.length)) {\n preventDefault(e);\n /*jshint validthis:true */\n\n EventEmitter.emit(events.onMenuClick, {\n anchor: getAttr(this, 'data-menuanchor')\n });\n }\n }\n\n EventEmitter.on(events.bindEvents, bindEvents$2);\n\n function bindEvents$2() {\n EventEmitter.on(events.onClickOrTouch, onClickOrTouch);\n }\n\n function onClickOrTouch(params) {\n var target = params.target;\n\n if (target && closest(target, SECTION_NAV_SEL + ' a')) {\n sectionBulletHandler.call(target, params.e);\n } else if (matches(target, SECTION_NAV_TOOLTIP_SEL)) {\n tooltipTextHandler.call(target);\n } else if (matches(target, SLIDES_NAV_LINK_SEL) || closest(target, SLIDES_NAV_LINK_SEL) != null) {\n slideBulletHandler.call(target, params.e);\n }\n }\n\n var lastScroll = 0;\n var g_scrollId;\n var g_scrollId2;\n EventEmitter.on(events.onDestroy, onDestroy$1); //when scrolling...\n\n function scrollHandler(e) {\n var currentSection;\n var currentSectionElem;\n\n if (state.isResizing || !getState().activeSection) {\n return;\n }\n\n getLast(getState().sections);\n\n if (getState().isBeyondFullpage || getState().isAboutToScrollToFullPage) {\n return;\n }\n\n if (!getOptions().autoScrolling || getOptions().scrollBar) {\n var currentScroll = getScrollTop();\n var scrollDirection = getScrollDirection(currentScroll);\n var visibleSectionIndex = 0;\n var screen_mid = currentScroll + getWindowHeight() / 2.0;\n var isAtBottom = $body.scrollHeight - getWindowHeight() === currentScroll;\n var sections = getState().sections;\n setState({\n scrollY: currentScroll\n }); //when using `auto-height` for a small last section it won't be centered in the viewport\n\n if (isAtBottom) {\n visibleSectionIndex = sections.length - 1;\n } //is at top? when using `auto-height` for a small first section it won't be centered in the viewport\n else if (!currentScroll) {\n visibleSectionIndex = 0;\n } //taking the section which is showing more content in the viewport\n else {\n for (var i = 0; i < sections.length; ++i) {\n var section = sections[i].item; // Pick the the last section which passes the middle line of the screen.\n\n if (section.offsetTop <= screen_mid) {\n visibleSectionIndex = i;\n }\n }\n }\n\n if (isCompletelyInViewPort(scrollDirection)) {\n if (!hasClass(getState().activeSection.item, COMPLETELY)) {\n addClass(getState().activeSection.item, COMPLETELY);\n removeClass(siblings(getState().activeSection.item), COMPLETELY);\n }\n } //geting the last one, the current one on the screen\n\n\n currentSection = sections[visibleSectionIndex];\n currentSectionElem = currentSection.item; //setting the visible section as active when manually scrolling\n //executing only once the first time we reach the section\n\n if (!currentSection.isActive) {\n setState({\n isScrolling: true\n });\n var leavingSection = getState().activeSection.item;\n var leavingSectionIndex = getState().activeSection.index() + 1;\n var yMovement = getYmovement(getState().activeSection, currentSectionElem);\n var anchorLink = currentSection.anchor;\n var sectionIndex = currentSection.index() + 1;\n var activeSlide = currentSection.activeSlide;\n var slideIndex;\n var slideAnchorLink;\n var callbacksParams = {\n activeSection: leavingSection,\n sectionIndex: sectionIndex - 1,\n anchorLink: anchorLink,\n element: currentSectionElem,\n leavingSection: leavingSectionIndex,\n direction: yMovement,\n items: {\n origin: getState().activeSection,\n destination: currentSection\n }\n };\n\n if (activeSlide) {\n slideAnchorLink = activeSlide.anchor;\n slideIndex = activeSlide.index();\n }\n\n if (state.canScroll) {\n addClass(currentSectionElem, ACTIVE);\n removeClass(siblings(currentSectionElem), ACTIVE);\n\n if (isFunction(getOptions().beforeLeave)) {\n fireCallbackOncePerScroll('beforeLeave', callbacksParams);\n }\n\n if (isFunction(getOptions().onLeave)) {\n fireCallback('onLeave', callbacksParams);\n }\n\n if (isFunction(getOptions().afterLoad)) {\n fireCallback('afterLoad', callbacksParams);\n }\n\n stopMedia(leavingSection);\n lazyLoad(currentSectionElem);\n playMedia(currentSectionElem);\n activateMenuAndNav(anchorLink, sectionIndex - 1);\n\n if (getOptions().anchors.length) {\n //needed to enter in hashChange event when using the menu with anchor links\n setState({\n lastScrolledDestiny: anchorLink\n });\n }\n\n updateState();\n setPageStatus(slideIndex, slideAnchorLink, anchorLink);\n } //small timeout in order to avoid entering in hashChange event when scrolling is not finished yet\n\n\n clearTimeout(g_scrollId);\n g_scrollId = setTimeout(function () {\n setState({\n isScrolling: false\n });\n }, 100);\n }\n\n if (getOptions().fitToSection && state.canScroll) {\n clearTimeout(g_scrollId2);\n g_scrollId2 = setTimeout(function () {\n var fixedSections = state.sections.filter(function (section) {\n var sectionValues = section.item.getBoundingClientRect();\n return Math.round(sectionValues.bottom) === Math.round(getWindowHeight()) || Math.round(sectionValues.top) === 0;\n }); // No section is fitting the viewport? Let's fix that!\n\n if (!fixedSections.length) {\n fitToSection();\n }\n }, getOptions().fitToSectionDelay);\n }\n }\n }\n\n function onDestroy$1() {\n clearTimeout(g_scrollId);\n clearTimeout(g_scrollId2);\n }\n /**\n * Gets the directon of the the scrolling fired by the scroll event.\n */\n\n\n function getScrollDirection(currentScroll) {\n var direction = currentScroll > lastScroll ? 'down' : 'up';\n lastScroll = currentScroll; //needed for auto-height sections to determine if we want to scroll to the top or bottom of the destination\n\n setState({\n previousDestTop: currentScroll\n });\n return direction;\n }\n /**\n * Determines whether the active section has seen in its whole or not.\n */\n\n\n function isCompletelyInViewPort(movement) {\n var top = getState().activeSection.item.offsetTop;\n var bottom = top + getWindowHeight();\n\n if (movement == 'up') {\n return bottom >= getScrollTop() + getWindowHeight();\n }\n\n return top <= getScrollTop();\n }\n\n EventEmitter.on(events.bindEvents, bindEvents$1);\n EventEmitter.on(events.onDestroy, onDestroy);\n\n function onDestroy() {\n windowRemoveEvent('scroll', scrollHandler);\n }\n\n function bindEvents$1() {\n windowAddEvent('scroll', scrollHandler);\n doc.body.addEventListener('scroll', scrollHandler);\n EventEmitter.on(events.onScrollPageAndSlide, function (params) {\n scrollPageAndSlide(params.sectionAnchor, params.slideAnchor);\n });\n EventEmitter.on(events.onMenuClick, function (params) {\n moveTo$1(params.anchor, undefined);\n });\n EventEmitter.on(events.onScrollOverflowScrolled, function (params) {\n var scrollSection = params.direction === 'down' ? moveSectionDown : moveSectionUp;\n scrollSection();\n });\n EventEmitter.on(events.scrollPage, function (params) {\n scrollPage(params.destination);\n });\n }\n\n FP.getActiveSlide = getActiveSlide;\n\n FP.getScrollX = function () {\n return state.scrollX;\n };\n\n EventEmitter.on(events.bindEvents, bindEvents);\n\n function bindEvents() {\n EventEmitter.on(events.onDestroy, onDestroy$6);\n EventEmitter.on(events.landscapeScroll, function (params) {\n landscapeScroll(params.slides, params.destination);\n });\n EventEmitter.on(events.moveSlideRight, function (params) {\n moveSlideRight(params.section);\n });\n EventEmitter.on(events.moveSlideLeft, function (params) {\n moveSlideLeft(params.section);\n });\n }\n /**\n * Gets the active slide.\n */\n\n\n function getActiveSlide() {\n return nullOrSlide(getState().activeSection.activeSlide);\n }\n\n EventEmitter.on(events.bindEvents, init$1);\n\n function init$1() {\n var position = getOptions().credits.position || 'right';\n var positionStyle = ['left', 'right'].indexOf(position) > -1 ? \"\".concat(position, \": 0;\") : '';\n var waterMark = \"\\n
    \\n \\n \").concat(getOptions().credits.label || 'Made with fullPage.js', \"\\n \\n
    \\n \");\n var lastSection = getLast(state.sections);\n var shouldUseWaterMark = !state.isValid || getOptions().credits.enabled;\n\n if (lastSection && lastSection.item && shouldUseWaterMark) {\n lastSection.item.insertAdjacentHTML('beforeend', waterMark);\n }\n }\n\n !function () {\n EventEmitter.on(events.onInitialise, function () {\n var n, a, l;\n setState({\n isValid: (getOptions().licenseKey, n = getOptions().licenseKey, a = function (n) {\n var e = parseInt(\"\\x35\\x31\\x34\").toString(16);\n if (!n || n.length < 29 || 4 === n.split(t[0]).length) return null;\n var r = [\"\\x45\\x61\\x63\\x68\", \"\\x66\\x6f\\x72\"][i()]().join(\"\"),\n a = n[[\"\\x73\\x70\\x6c\\x69\\x74\"]](\"-\"),\n l = [];\n a[r](function (t, n) {\n if (n < 4) {\n var r = function (t) {\n var n = t[t.length - 1],\n e = [\"\\x4e\\x61\\x4e\", \"\\x69\\x73\"][i()]().join(\"\");\n return window[e](n) ? o(n) : function (t) {\n return t - ACTIVE.length;\n }(n);\n }(t);\n\n l.push(r);\n var s = o(t[r]);\n\n if (1 === n) {\n var a = [\"\\x70\\x61\", \"\\x64\\x53\", \"\\x74\", \"\\x61\\x72\\x74\"].join(\"\");\n s = s.toString()[a](2, \"0\");\n }\n\n e += s, 0 !== n && 1 !== n || (e += \"-\");\n }\n });\n var m = 0,\n f = \"\";\n return n.split(\"-\").forEach(function (t, n) {\n if (n < 4) {\n var _i = 0;\n\n for (var e = 0; e < 4; e++) {\n e !== l[n] && (_i += Math.abs(o(t[e])), isNaN(t[e]) || m++);\n }\n\n var r = s(_i);\n f += r;\n }\n }), f += s(m), {\n v: new Date(e + \"T00:00\"),\n o: e.split(\"-\")[2] === 8 * (ACTIVE.length - 2) + \"\",\n l: f\n };\n }(n), l = function (t) {\n var n = r[i()]().join(\"\");\n return t && 0 === n.indexOf(t) && t.length === n.length;\n }(n), (a || l) && (a && e <= a.v && a.l === n.split(t[0])[4] || l || a.o) || !1)\n });\n });\n var t = [\"-\"];\n var n = \"\\x32\\x30\\x32\\x33\\x2d\\x34\\x2d\\x32\\x39\".split(\"-\"),\n e = new Date(n[0], n[1], n[2]),\n r = [\"se\", \"licen\", \"-\", \"v3\", \"l\", \"gp\"];\n\n function i() {\n return [[\"\\x72\\x65\", \"\\x76\\x65\\x72\\x73\\x65\"].join(\"\")][\"\".length];\n }\n\n function o(t) {\n return t ? isNaN(t) ? t.charCodeAt(0) - 72 : t : \"\";\n }\n\n function s(t) {\n var n = 72 + t;\n return n > 90 && n < 97 && (n += 15), String.fromCharCode(n).toUpperCase();\n }\n }();\n\n //@ts-check\n FP.setKeyboardScrolling = setKeyboardScrolling;\n /**\n * Adds or remove the possibility of scrolling through sections by using the keyboard arrow keys\n */\n\n function setKeyboardScrolling(value, directions) {\n if (typeof directions !== 'undefined') {\n directions = directions.replace(/ /g, '').split(',');\n directions.forEach(function (direction) {\n setIsScrollAllowed(value, direction, 'k');\n });\n } else {\n setIsScrollAllowed(value, 'all', 'k');\n getOptions().keyboardScrolling = value;\n }\n }\n\n /**\n * Sets the data-anchor attributes to the menu elements and activates the current one.\n */\n\n function styleMenu(section) {\n var index = section.index();\n\n if (typeof getOptions().anchors[index] !== 'undefined') {\n //activating the menu / nav element on load\n if (section.isActive) {\n activateMenuAndNav(getOptions().anchors[index], index);\n }\n } //moving the menu outside the main container if it is inside (avoid problems with fixed positions when using CSS3 tranforms)\n\n\n if (getOptions().menu && getOptions().css3 && closest($(getOptions().menu)[0], WRAPPER_SEL) != null) {\n $(getOptions().menu).forEach(function (menu) {\n $body.appendChild(menu);\n });\n }\n }\n\n /**\n * Works over the DOM structure to set it up for the current fullpage getOptions().\n */\n\n function prepareDom() {\n css(getParentsUntil(getContainer(), 'body'), {\n 'height': '100%',\n 'position': 'relative'\n }); //adding a class to recognize the container internally in the code\n\n addClass(getContainer(), WRAPPER);\n addClass($html, ENABLED); //due to https://github.com/alvarotrigo/fullPage.js/issues/1502\n\n setState({\n windowsHeight: getWindowHeight()\n });\n removeClass(getContainer(), DESTROYED); //in case it was destroyed before initializing it again\n\n addInternalSelectors();\n var sections = getState().sectionsIncludingHidden; //styling the sections / slides / menu\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var slides = section.allSlidesItems; //caching the original styles to add them back on destroy('all')\n\n var originalStyles = getAttr(section.item, 'style');\n\n if (originalStyles) {\n section.item.setAttribute('data-fp-styles', originalStyles);\n }\n\n styleSection(section);\n styleMenu(section); // if there's any slide\n\n if (slides.length > 0) {\n styleSlides(section);\n }\n } //fixed elements need to be moved out of the plugin container due to problems with CSS3.\n\n\n if (getOptions().fixedElements && getOptions().css3) {\n $(getOptions().fixedElements).forEach(function (item) {\n $body.appendChild(item);\n });\n } //vertical centered of the navigation + active bullet\n\n\n if (getOptions().navigation) {\n addVerticalNavigation();\n }\n\n enableYoutubeAPI();\n\n if (getOptions().scrollOverflow) {\n scrollOverflowHandler.makeScrollable();\n }\n }\n\n FP.shared.afterRenderActions = afterRenderActions;\n /**\n * Actions and callbacks to fire afterRender\n */\n\n function afterRenderActions() {\n var section = getState().activeSection;\n var sectionElem = getState().activeSection.item;\n addClass(sectionElem, COMPLETELY);\n lazyLoad(sectionElem);\n lazyLoadOthers();\n playMedia(sectionElem);\n\n if (isDestinyTheStartingSection() && isFunction(getOptions().afterLoad)) {\n fireCallback('afterLoad', {\n activeSection: sectionElem,\n element: sectionElem,\n direction: null,\n //for backwards compatibility callback (to be removed in a future!)\n anchorLink: section.anchor,\n sectionIndex: section.index(),\n items: {\n origin: getState().activeSection,\n destination: getState().activeSection\n }\n });\n }\n\n if (isFunction(getOptions().afterRender)) {\n fireCallback('afterRender');\n }\n }\n /**\n * Determines if the URL anchor destiny is the starting section (the one using 'active' class before initialization)\n */\n\n function isDestinyTheStartingSection() {\n var anchor = getAnchorsURL();\n var destinationSection = getSectionByAnchor(anchor.section);\n return !anchor.section || !destinationSection || typeof destinationSection !== 'undefined' && destinationSection.index() === index(getStartingSection());\n }\n\n FP.setAllowScrolling = setAllowScrolling;\n /**\n * Adds or remove the possibility of scrolling through sections by using the mouse wheel/trackpad or touch gestures.\n * Optionally a second parameter can be used to specify the direction for which the action will be applied.\n *\n * @param directions string containing the direction or directions separated by comma.\n */\n\n function setAllowScrolling(value, directions) {\n if (typeof directions !== 'undefined') {\n directions = directions.replace(/ /g, '').split(',');\n directions.forEach(function (direction) {\n setIsScrollAllowed(value, direction, 'm');\n });\n } else {\n setIsScrollAllowed(value, 'all', 'm');\n }\n }\n\n /**\n * Scrolls to the anchor in the URL when loading the site\n */\n\n function scrollToAnchor() {\n var anchors = getAnchorsURL();\n var sectionAnchor = anchors.section;\n var slideAnchor = anchors.slide;\n\n if (sectionAnchor) {\n //if theres any #\n if (getOptions().animateAnchor) {\n scrollPageAndSlide(sectionAnchor, slideAnchor);\n } else {\n silentMoveTo(sectionAnchor, slideAnchor);\n }\n } else {\n EventEmitter.emit(events.onAfterRenderNoAnchor, null);\n }\n }\n\n /*\n * Removes inline styles added by fullpage.js\n */\n\n function destroyStructure() {\n //reseting the `top` or `translate` properties to 0\n silentScroll(0); //loading all the lazy load content\n\n $('img[data-src], source[data-src], audio[data-src], iframe[data-src]', getContainer()).forEach(function (item) {\n setSrc(item, 'src');\n });\n $('img[data-srcset]').forEach(function (item) {\n setSrc(item, 'srcset');\n });\n remove($(SECTION_NAV_SEL + ', ' + SLIDES_NAV_SEL + ', ' + SLIDES_ARROW_SEL)); //removing inline styles\n\n css(getNodes(getState().sections), {\n 'height': '',\n 'background-color': '',\n 'padding': ''\n });\n css(getNodes(getState().slides), {\n 'width': ''\n });\n css(getContainer(), {\n 'height': '',\n 'position': '',\n '-ms-touch-action': '',\n 'touch-action': ''\n });\n css($htmlBody, {\n 'overflow': '',\n 'height': ''\n }); // remove .fp-enabled class\n\n removeClass($html, ENABLED); // remove .fp-responsive class & .fp-scrollable\n\n removeClass($body, RESPONSIVE + ' ' + SCROLLABLE); // remove all of the .fp-viewing- classes\n\n $body.className.split(/\\s+/).forEach(function (className) {\n if (className.indexOf(VIEWING_PREFIX) === 0) {\n removeClass($body, className);\n }\n }); //removing added classes\n\n getNodes(getState().panels).forEach(function (item) {\n if (getOptions().scrollOverflow) {\n scrollOverflowHandler.destroyWrapper(item);\n }\n\n removeClass(item, TABLE + ' ' + ACTIVE + ' ' + COMPLETELY + ' ' + IS_OVERFLOW);\n var previousStyles = getAttr(item, 'data-fp-styles');\n\n if (previousStyles) {\n item.setAttribute('style', previousStyles);\n } //removing anchors if they were not set using the HTML markup\n\n\n if (hasClass(item, SECTION) && !getInitialAnchorsInDom()) {\n item.removeAttribute('data-anchor');\n }\n }); //removing the applied transition from the fullpage wrapper\n\n removeAnimation(getContainer()); //Unwrapping content\n\n [TABLE_CELL_SEL, SLIDES_CONTAINER_SEL, SLIDES_WRAPPER_SEL].forEach(function (selector) {\n $(selector, getContainer()).forEach(function (item) {\n //unwrap not being use in case there's no child element inside and its just text\n unwrap(item);\n });\n }); //removing the applied transition from the fullpage wrapper\n\n css(getContainer(), {\n '-webkit-transition': 'none',\n 'transition': 'none'\n });\n removeClass(getContainer(), WRAPPER); //scrolling the page to the top with no animation\n\n win.scrollTo(0, 0); //removing selectors\n\n var usedSelectors = [SECTION, SLIDE, SLIDES_CONTAINER];\n usedSelectors.forEach(function (item) {\n removeClass($('.' + item), item);\n });\n }\n\n FP.destroy = destroy;\n function init() {\n updateStructuralState();\n updateState();\n getOptions().scrollBar = getOptions().scrollBar || getOptions().hybrid;\n setOptionsFromDOM();\n prepareDom();\n setAllowScrolling(true);\n setMouseHijack(true);\n setAutoScrolling(getOptions().autoScrolling, 'internal');\n responsive(); //setting the class for the body element\n\n setBodyClass();\n\n if (doc.readyState === 'complete') {\n scrollToAnchor();\n }\n\n windowAddEvent('load', scrollToAnchor);\n afterRenderActions(); // Updating the state again with the new DOM\n\n updateStructuralState();\n updateState();\n }\n /*\n * Destroys fullpage.js plugin events and optinally its html markup and styles\n */\n\n function destroy(all) {\n setAutoScrolling(false, 'internal');\n setAllowScrolling(true);\n setMouseHijack(false);\n setKeyboardScrolling(false);\n addClass(getContainer(), DESTROYED);\n EventEmitter.emit(events.onDestroy); //lets make a mess!\n\n if (all) {\n destroyStructure();\n }\n }\n\n var isOK = function isOK() {\n return getOptions() && state.isValid || doc.domain.indexOf('al' + 'varotri' + 'go' + '.' + 'com') > -1;\n };\n /**\n * Displays warnings\n */\n\n\n function displayWarnings() {\n var l = getOptions()['li' + 'c' + 'enseK' + 'e' + 'y'];\n var msgStyle = 'font-size: 15px;background:yellow;';\n\n if (getOptions().licenseKey.trim() === '') {\n showError('error', 'Fullpage.js requires a `licenseKey` option. Read about it on the following URL:');\n showError('error', 'https://github.com/alvarotrigo/fullPage.js#options');\n } else if (!isOK()) {\n showError('error', 'Incorrect `licenseKey`. Get one for fullPage.js version 4 here:');\n showError('error', 'https://alvarotrigo.com/fullPage/pricing');\n } else if (l && l.length < 20) {\n console.warn('%c This website was made using fullPage.js slider. More info on the following website:', msgStyle);\n console.warn('%c https://alvarotrigo.com/fullPage/', msgStyle);\n }\n\n if (hasClass($html, ENABLED)) {\n showError('error', 'Fullpage.js can only be initialized once and you are doing it multiple times!');\n return;\n } // Disable mutually exclusive settings\n\n\n if (getOptions().continuousVertical && (getOptions().loopTop || getOptions().loopBottom)) {\n getOptions().continuousVertical = false;\n showError('warn', 'Option `loopTop/loopBottom` is mutually exclusive with `continuousVertical`; `continuousVertical` disabled');\n }\n\n if (getOptions().scrollOverflow && (getOptions().scrollBar || !getOptions().autoScrolling)) {\n showError('warn', 'Options scrollBar:true and autoScrolling:false are mutually exclusive with scrollOverflow:true. Sections with scrollOverflow might not work well in Firefox');\n }\n\n if (getOptions().continuousVertical && (getOptions().scrollBar || !getOptions().autoScrolling)) {\n getOptions().continuousVertical = false;\n showError('warn', 'Scroll bars (`scrollBar:true` or `autoScrolling:false`) are mutually exclusive with `continuousVertical`; `continuousVertical` disabled');\n } //using extensions? Wrong file!\n\n\n extensions.forEach(function (extension) {\n //is the option set to true?\n if (getOptions()[extension]) {\n showError('warn', 'fullpage.js extensions require fullpage.extensions.min.js file instead of the usual fullpage.js. Requested: ' + extension);\n }\n }); //anchors can not have the same value as any element ID or NAME\n\n getOptions().anchors.forEach(function (name) {\n //case insensitive selectors (http://stackoverflow.com/a/19465187/1081396)\n var nameAttr = [].slice.call($('[name]')).filter(function (item) {\n return getAttr(item, 'name') && getAttr(item, 'name').toLowerCase() == name.toLowerCase();\n });\n var idAttr = [].slice.call($('[id]')).filter(function (item) {\n return getAttr(item, 'id') && getAttr(item, 'id').toLowerCase() == name.toLowerCase();\n });\n\n if (idAttr.length || nameAttr.length) {\n showError('error', 'data-anchor tags can not have the same value as any `id` element on the site (or `name` element for IE).');\n var propertyName = idAttr.length ? 'id' : 'name';\n\n if (idAttr.length || nameAttr.length) {\n showError('error', '\"' + name + '\" is is being used by another element `' + propertyName + '` property');\n }\n }\n });\n }\n\n function fullpage(containerSelector, options) {\n setCache(); //only once my friend!\n\n if (hasClass($html, ENABLED)) {\n displayWarnings();\n return;\n }\n\n setOption('touchWrapper', typeof containerSelector === 'string' ? $(containerSelector)[0] : containerSelector); // Creating some defaults, extending them with any options that were provided\n\n setOptions(options);\n setContainer(typeof containerSelector === 'string' ? $(containerSelector)[0] : containerSelector);\n EventEmitter.emit(events.onInitialise);\n displayWarnings();\n setAPI();\n\n if (getContainer()) {\n EventEmitter.emit(events.beforeInit);\n init();\n EventEmitter.emit(events.bindEvents);\n } // @ts-ignore\n\n\n return win.fullpage_api;\n }\n\n function setAPI() {\n FP.getFullpageData = function () {\n return {\n options: getOptions()\n };\n }; //public functions\n\n\n FP.version = '4.0.20';\n FP.test = Object.assign(FP.test, {\n top: '0px',\n translate3d: 'translate3d(0px, 0px, 0px)',\n translate3dH: function () {\n var a = [];\n\n for (var i = 0; i < $(getOptions().sectionSelector, getContainer()).length; i++) {\n a.push('translate3d(0px, 0px, 0px)');\n }\n\n return a;\n }(),\n left: function () {\n var a = [];\n\n for (var i = 0; i < $(getOptions().sectionSelector, getContainer()).length; i++) {\n a.push(0);\n }\n\n return a;\n }(),\n options: getOptions(),\n setAutoScrolling: null\n }); //functions we want to share across files but which are not\n //mean to be used on their own by developers\n\n FP.shared = Object.assign(FP.shared, {\n afterRenderActions: null,\n isNormalScrollElement: false\n }); // @ts-ignore\n\n win.fullpage_api = FP;\n }\n\n // @ts-ignore\n\n win.fp_easings = deepExtend(win.fp_easings, {\n easeInOutCubic: function easeInOutCubic(t, b, c, d) {\n if ((t /= d / 2) < 1) return c / 2 * t * t * t + b;\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n });\n\n /**\n * jQuery adapter for fullPage.js 3.0.0\n */\n // @ts-ignore\n\n if (win.jQuery) {\n (function ($, fullpage) {\n\n if (!$ || !fullpage) {\n showError('error', 'jQuery is required to use the jQuery fullpage adapter!');\n return;\n }\n\n $.fn.fullpage = function (options) {\n options = $.extend({}, options, {\n '$': $\n });\n new fullpage(this[0], options); // Creating the $.fn.fullpage object\n\n Object.keys(FP).forEach(function (key) {\n getOptions().$.fn.fullpage[key] = FP[key];\n });\n }; // @ts-ignore\n\n })(win.jQuery, fullpage);\n }\n\n return fullpage;\n\n}));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.GmapVue = {}));\n})(this, (function (exports) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n 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\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _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\n 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++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n 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\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n /**\n * This function helps you to bind events from Google Maps API to Vue events\n *\n * @param {Object} vueInst the Vue instance\n * @param {Object} googleMapsInst the Google Maps instance\n * @param {string[]} events an array of string with all events that you want to bind\n * @returns {void}\n */\n function bindEvents(vueInst, googleMapsInst, events) {\n events.forEach(function (eventName) {\n if (vueInst.$gmapOptions.autoBindAllEvents || vueInst.$listeners[eventName]) {\n googleMapsInst.addListener(eventName, function (ev) {\n vueInst.$emit(eventName, ev);\n });\n }\n });\n }\n /**\n * Function that helps you to capitalize the first letter on a word\n *\n * @param {string} text the text that you want to capitalize\n * @returns {string}\n */\n\n function capitalizeFirstLetter(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n /**\n * Function that helps you to get all non nullable props from a component\n *\n * @param {Object} vueInst the Vue component instance\n * @param {Object} props the props object\n * @returns {Object}\n */\n\n function getPropsValues(vueInst, props) {\n return Object.keys(props).reduce(function (acc, prop) {\n if (vueInst[prop] !== undefined) {\n acc[prop] = vueInst[prop];\n }\n\n return acc;\n }, {});\n }\n /**\n * This function is a helper for return to the user the internal Google Maps promise\n * and can wait until it is ready.\n * This piece of code was orignally written by sindresorhus and can be seen here\n * @see https://github.com/sindresorhus/lazy-value/blob/master/index.js\n *\n * @param {Function} fn a function that actually return the promise or async value\n * @returns {Function} anonymous function that returns the value returned by the fn parameter\n */\n\n function getLazyValue(fn) {\n var called = false;\n var ret;\n return function () {\n if (!called) {\n called = true;\n ret = fn();\n }\n\n return ret;\n };\n }\n /**\n * Strips out the extraneous properties we have in our\n * mapped props definitions\n *\n * @param {Object} mappedProps the mapped props object\n * @returns {Object}\n */\n\n function mappedPropsToVueProps(mappedProps) {\n return Object.entries(mappedProps).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n prop = _ref2[1];\n\n var value = {};\n if ('type' in prop) value.type = prop.type;\n if ('default' in prop) value.default = prop.default;\n if ('required' in prop) value.required = prop.required;\n return [key, value];\n }).reduce(function (acc, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n\n acc[key] = val;\n return acc;\n }, {});\n }\n /**\n * This function simulates a down arrow key event when user\n * hits return (enter) on the autocomplete component selection\n * the first occurrence in the list.\n *\n * This piece of code was orignally written by amirnissim\n * and has been ported to Vanilla.js by GuillaumeLeclerc\n * @see http://stackoverflow.com/a/11703018/2694653\n *\n * @param {Object} input the HTML input node element reference\n * @returns {void}\n */\n\n function downArrowSimulator(input) {\n // eslint-disable-next-line no-underscore-dangle -- Is old style should be analyzed\n var _addEventListener = input.addEventListener ? input.addEventListener : input.attachEvent;\n /**\n * Add event listener wrapper that will replace to default addEventListener or attachEvent function\n *\n * @param {string} type the event type\n * @param {Function} listener function should be executed when the event is fired\n * @returns {void}\n */\n\n\n function addEventListenerWrapper(type, listener) {\n // Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,\n // and then trigger the original listener.\n if (type === 'keydown') {\n var origListener = listener; // eslint-disable-next-line no-param-reassign -- Is old style this should be analyzed\n\n listener = function (event) {\n var suggestionSelected = document ? document.getElementsByClassName('pac-item-selected').length > 0 : null;\n\n if (event.which === 13 && !suggestionSelected) {\n var simulatedEvent = document.createEvent('Event');\n simulatedEvent.keyCode = 40;\n simulatedEvent.which = 40;\n origListener.apply(input, [simulatedEvent]);\n }\n\n origListener.apply(input, [event]);\n };\n }\n\n _addEventListener.apply(input, [type, listener]);\n }\n\n input.addEventListener = addEventListenerWrapper;\n input.attachEvent = addEventListenerWrapper;\n }\n /**\n * When you have two-way bindings, but the actual bound value will not equal\n * the value you initially passed in, then to avoid an infinite loop you\n * need to increment a counter every time you pass in a value, decrement the\n * same counter every time the bound value changed, but only bubble up\n * the event when the counter is zero.\n *\n * @param {Function} fn Function to be executed to determine if the event was executed\n *\n Example:\n\n Let's say DrawingRecognitionCanvas is a deep-learning backed canvas\n that, when given the name of an object (e.g. 'dog'), draws a dog.\n But whenever the drawing on it changes, it also sends back its interpretation\n of the image by way of the @newObjectRecognized event.\n\n \n \n\n new TwoWayBindingWrapper((increment, decrement, shouldUpdate) => {\n this.$watch('identifiedObject', () => {\n // new object passed in\n increment()\n })\n this.$deepLearningBackend.on('drawingChanged', () => {\n recognizeObject(this.$deepLearningBackend)\n .then((object) => {\n decrement()\n if (shouldUpdate()) {\n this.$emit('newObjectRecognized', object.name)\n }\n })\n })\n })\n */\n\n function twoWayBindingWrapper(fn) {\n var counter = 0;\n fn(function () {\n counter += 1;\n }, function () {\n counter = Math.max(0, counter - 1);\n }, function () {\n return counter === 0;\n });\n }\n /**\n * Watch the individual properties of a PoD object, instead of the object\n * per se. This is different from a deep watch where both the reference\n * and the individual values are watched.\n *\n * In effect, it throttles the multiple $watch to execute at most once per tick.\n *\n * @param {Object} vueInst the component instance\n * @param {string[]} propertiesToTrack string array with all properties that you want to track\n * @param {Function} handler function to be fired when the prop change\n * @param {boolean} immediate=false\n * @returns {void}\n */\n\n function watchPrimitiveProperties(vueInst, propertiesToTrack, handler) {\n var immediate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var isHandled = false;\n /**\n * Function in charge to execute the handler function if it was not fired\n *\n * @returns void\n */\n\n function requestHandle() {\n if (!isHandled) {\n isHandled = true;\n vueInst.$nextTick(function () {\n isHandled = false;\n handler();\n });\n }\n }\n\n propertiesToTrack.forEach(function (prop) {\n vueInst.$watch(prop, requestHandle, {\n immediate: immediate\n });\n });\n }\n /**\n * Binds the properties defined in props to the google maps instance.\n * If the prop is an Object type, and we wish to track the properties\n * of the object (e.g. the lat and lng of a LatLng), then we do a deep\n * watch. For deep watch, we also prevent the _changed event from being\n * emitted if the data source was external.\n *\n * @param {Object} vueInst the component instance\n * @param {Object} googleMapsInst the Google Maps instance\n * @param {Object} props object with the component props tha should be synched with the Google Maps instances props\n * @returns {void}\n */\n\n function bindProps(vueInst, googleMapsInst, props) {\n Object.keys(props).forEach(function (attribute) {\n var _props$attribute = props[attribute],\n twoWay = _props$attribute.twoWay,\n type = _props$attribute.type,\n trackProperties = _props$attribute.trackProperties,\n noBind = _props$attribute.noBind;\n\n if (!noBind) {\n var setMethodName = \"set\".concat(capitalizeFirstLetter(attribute));\n var getMethodName = \"get\".concat(capitalizeFirstLetter(attribute));\n var eventName = \"\".concat(attribute.toLowerCase(), \"_changed\");\n var initialValue = vueInst[attribute];\n\n if (typeof googleMapsInst[setMethodName] === 'undefined') {\n throw new Error( // TODO: Analyze all disabled rules in the file\n // eslint-disable-next-line no-underscore-dangle -- old code should be analyzed\n \"\".concat(setMethodName, \" is not a method of (the Maps object corresponding to) \").concat(vueInst.$options._componentTag));\n } // We need to avoid an endless\n // propChanged -> event emitted -> propChanged -> event emitted loop\n // although this may really be the user's responsibility\n\n\n if (type !== Object || !trackProperties) {\n // Track the object deeply\n vueInst.$watch(attribute, function () {\n var attributeValue = vueInst[attribute];\n googleMapsInst[setMethodName](attributeValue);\n }, {\n immediate: typeof initialValue !== 'undefined',\n deep: type === Object\n });\n } else {\n watchPrimitiveProperties(vueInst, trackProperties.map(function (prop) {\n return \"\".concat(attribute, \".\").concat(prop);\n }), function () {\n googleMapsInst[setMethodName](vueInst[attribute]);\n }, vueInst[attribute] !== undefined);\n }\n\n if (twoWay && (vueInst.$gmapOptions.autoBindAllEvents || vueInst.$listeners[eventName])) {\n googleMapsInst.addListener(eventName, function () {\n vueInst.$emit(eventName, googleMapsInst[getMethodName]());\n });\n }\n }\n });\n }\n\n /**\n * This are GoogleMapsOptions that we want to have like\n * props in our Vue component.\n * This properties are in the way that GoogleMaps accept it\n * and with extraneous properties for the VueJs API.\n * In a previous version of this plugin, to avoid repetition,\n * we created a .js file component with a `mappedProps` key on it\n * and used a variety of helper functions to clean it and bind it\n * to Vue props and watch them, etc.\n * To day our primary main goal is get a more intuitive and descriptive\n * API and a better documentation of it, following this goals we move\n * this extraneous properties to an independent file in order to consume\n * it when is needed.\n * Please you need to remind that you need to create properties in the\n * correspondent Vue component with the same names and the same values\n * for those properties that are not extraneous to Vue.\n */\n var autocompleteMappedProps = {\n bounds: {\n type: Object\n },\n componentRestrictions: {\n type: Object,\n // Do not bind -- must check for undefined\n // in the property\n noBind: true\n },\n types: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n };\n var drawingManagerMappedProps = {\n circleOptions: {\n type: Object,\n twoWay: false,\n noBind: true\n },\n markerOptions: {\n type: Object,\n twoWay: false,\n noBind: true\n },\n polygonOptions: {\n type: Object,\n twoWay: false,\n noBind: true\n },\n polylineOptions: {\n type: Object,\n twoWay: false,\n noBind: true\n },\n rectangleOptions: {\n type: Object,\n twoWay: false,\n noBind: true\n }\n };\n var heatMapLayerMappedProps = {\n options: {\n type: Object,\n twoWay: false,\n default: function _default() {}\n },\n data: {\n type: Array,\n twoWay: true\n }\n };\n var infoWindowMappedProps = {\n content: {\n type: Object,\n twoWay: true\n },\n options: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n position: {\n type: Object,\n twoWay: true\n },\n zIndex: {\n type: Number,\n twoWay: true\n }\n };\n var kmlLayerMappedProps = {\n clickable: {\n type: Boolean,\n twoWay: true,\n noBind: true\n },\n map: {\n type: Object,\n twoWay: true\n },\n preserveViewport: {\n type: Boolean,\n twoWay: true,\n noBind: true\n },\n screenOverlays: {\n type: Boolean,\n twoWay: true,\n noBind: true\n },\n suppressInfoWindows: {\n type: Boolean,\n twoWay: true,\n noBind: true\n },\n url: {\n type: String,\n twoWay: false\n },\n zIndex: {\n type: Number,\n twoWay: true\n },\n options: {\n type: Object,\n default: function _default() {\n return {};\n }\n }\n };\n var mapMappedProps = {\n center: {\n required: true,\n twoWay: true,\n type: Object,\n noBind: true\n },\n zoom: {\n required: false,\n twoWay: true,\n type: Number,\n noBind: true\n },\n heading: {\n type: Number,\n twoWay: true\n },\n mapTypeId: {\n twoWay: true,\n type: String\n },\n tilt: {\n twoWay: true,\n type: Number\n },\n options: {\n type: Object,\n default: function _default() {\n return {};\n }\n }\n };\n var markerMappedProps = {\n animation: {\n twoWay: true,\n type: Number\n },\n attribution: {\n type: Object\n },\n clickable: {\n type: Boolean,\n twoWay: true,\n default: true\n },\n cursor: {\n type: String,\n twoWay: true\n },\n draggable: {\n type: Boolean,\n twoWay: true,\n default: false\n },\n icon: {\n twoWay: true\n },\n label: {},\n opacity: {\n type: Number,\n default: 1\n },\n options: {\n type: Object\n },\n place: {\n type: Object\n },\n position: {\n type: Object,\n twoWay: true\n },\n shape: {\n type: Object,\n twoWay: true\n },\n title: {\n type: String,\n twoWay: true\n },\n zIndex: {\n type: Number,\n twoWay: true\n },\n visible: {\n twoWay: true,\n default: true\n }\n };\n var streetViewPanoramaMappedProps = {\n zoom: {\n twoWay: true,\n type: Number\n },\n pov: {\n twoWay: true,\n type: Object,\n trackProperties: ['pitch', 'heading']\n },\n position: {\n twoWay: true,\n type: Object,\n noBind: true\n },\n pano: {\n twoWay: true,\n type: String\n },\n motionTracking: {\n twoWay: false,\n type: Boolean\n },\n visible: {\n twoWay: true,\n type: Boolean,\n default: true\n },\n options: {\n twoWay: false,\n type: Object,\n default: function _default() {\n return {};\n }\n }\n };\n var polygonMappedProps = {\n clickable: {\n type: Boolean,\n noBind: true\n },\n draggable: {\n type: Boolean\n },\n editable: {\n type: Boolean\n },\n fillColor: {\n type: String,\n noBind: true\n },\n fillOpacity: {\n type: Number,\n noBind: true\n },\n strokeColor: {\n type: String,\n noBind: true\n },\n strokeOpacity: {\n type: Number,\n noBind: true\n },\n strokePosition: {\n type: Number,\n noBind: true\n },\n strokeWeight: {\n type: Number,\n noBind: true\n },\n visible: {\n type: Boolean\n },\n options: {\n type: Object\n },\n path: {\n type: Array,\n twoWay: true,\n noBind: true\n },\n paths: {\n type: Array,\n twoWay: true,\n noBind: true\n }\n };\n var polylineMappedProps = {\n clickable: {\n type: Boolean,\n noBind: true\n },\n draggable: {\n type: Boolean\n },\n editable: {\n type: Boolean\n },\n strokeColor: {\n type: String,\n noBind: true\n },\n strokeOpacity: {\n type: Number,\n noBind: true\n },\n strokeWeight: {\n type: Number,\n noBind: true\n },\n visible: {\n type: Boolean\n },\n options: {\n twoWay: false,\n type: Object\n },\n path: {\n type: Array,\n twoWay: true\n }\n };\n var rectangleMappedProps = {\n bounds: {\n type: Object,\n twoWay: true\n },\n clickable: {\n type: Boolean,\n noBind: true\n },\n draggable: {\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: false\n },\n fillColor: {\n type: String,\n noBind: true\n },\n fillOpacity: {\n type: Number,\n noBind: true\n },\n strokeColor: {\n type: String,\n noBind: true\n },\n strokeOpacity: {\n type: Number,\n noBind: true\n },\n strokePosition: {\n type: Number,\n noBind: true\n },\n strokeWeight: {\n type: Number,\n noBind: true\n },\n visible: {\n type: Boolean\n },\n options: {\n type: Object,\n twoWay: false\n }\n };\n var circleMappedProps = {\n center: {\n type: Object,\n twoWay: true,\n required: true\n },\n radius: {\n type: Number,\n twoWay: true\n },\n clickable: {\n type: Boolean,\n noBind: true\n },\n draggable: {\n type: Boolean,\n default: false\n },\n editable: {\n type: Boolean,\n default: false\n },\n fillColor: {\n type: String,\n noBind: true\n },\n fillOpacity: {\n type: Number,\n noBind: true\n },\n strokeColor: {\n type: String,\n noBind: true\n },\n strokeOpacity: {\n type: Number,\n noBind: true\n },\n strokePosition: {\n type: Number,\n noBind: true\n },\n strokeWeight: {\n type: Number,\n noBind: true\n },\n visible: {\n type: Boolean\n },\n options: {\n type: Object,\n twoWay: false\n }\n };\n var placeInputMappedProps = {\n bounds: {\n type: Object\n },\n defaultPlace: {\n type: String,\n default: ''\n },\n componentRestrictions: {\n type: Object,\n default: null\n },\n types: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n placeholder: {\n required: false,\n type: String\n },\n className: {\n required: false,\n type: String\n },\n label: {\n required: false,\n type: String,\n default: null\n },\n selectFirstOnEnter: {\n require: false,\n type: Boolean,\n default: false\n }\n };\n var clusterIconMappedProps = {\n algorithm: {\n type: Object\n },\n onClusterClick: {\n type: Function\n },\n renderer: {\n type: Object\n },\n options: {\n type: Object\n }\n };\n\n //\n\n /**\n * Autocomplete component\n * @displayName GmapAutocomplete\n * @see [source code](/guide/autocomplete.html#source-code)\n */\n var script$d = {\n name: 'AutocompleteInput',\n props: {\n /**\n * Map bounds this is an LatLngBounds\n * object builded with\n * @value new google.maps.LatLngBounds(...)\n * @see [Map Bounds](https://developers.google.com/maps/documentation/javascript/places-autocomplete#set-the-bounds-on-creation-of-the-autocomplete-object)\n */\n bounds: {\n type: Object,\n default: undefined,\n },\n /**\n * Restrict the search to a specific country\n * @value `{[key: string]: string}`\n * @see [componentRestrictions](https://developers.google.com/maps/documentation/javascript/places-autocomplete#restrict-the-search-to-a-specific-country)\n */\n componentRestrictions: {\n type: Object,\n default: undefined,\n },\n /**\n * Map types this is an array of strings\n * @value string[]\n * @see [Map Bounds](https://developers.google.com/maps/documentation/javascript/places-autocomplete#set-the-bounds-on-creation-of-the-autocomplete-object)\n */\n types: {\n type: Array,\n default: undefined,\n },\n /**\n * Select the first result in the list when press enter keyboard\n * @values true, false\n */\n selectFirstOnEnter: {\n required: false,\n type: Boolean,\n default: false,\n },\n /**\n * the unique ref set to the component passed in the slot input\n */\n slotRefName: {\n required: false,\n type: String,\n default: 'input',\n },\n /**\n * The name of the ref to obtain the html input element\n * if its a child of component in the slot input\n * very useful whe we use a component like v-text-field of vuetify\n * that has a 'input' ref pointing to the final html input element\n */\n childRefName: {\n required: false,\n type: String,\n default: 'input',\n },\n /**\n * Other options that you can pass to the Google Mapas\n * Autocomplete API\n * @values geocode, address, regions\n * @see [Options](https://developers.google.com/maps/documentation/javascript/places-autocomplete#add-autocomplete)\n */\n options: {\n type: Object,\n default: undefined,\n },\n /**\n * To avoid paying for data that you don't need,\n * be sure to use Autocomplete.setFields() to specify\n * only the place data that you will use.\n *\n * @see [Place information](https://developers.google.com/maps/documentation/javascript/places-autocomplete#get-place-information)\n * @see [setFields](https://developers.google.com/maps/documentation/javascript/reference/places-widget#Autocomplete.setFields)\n * @see [PlaceResult](https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceResult)\n */\n setFieldsTo: {\n required: false,\n type: Array,\n default: null,\n },\n },\n watch: {\n /**\n * This watcher is incharge to update\n * the component restrictions when is\n * changed from the parent\n */\n componentRestrictions(v) {\n if (v !== undefined) {\n this.$autocomplete.setComponentRestrictions(v);\n }\n },\n },\n async mounted() {\n await this.$gmapApiPromiseLazy();\n\n let scopedInput = null;\n\n if (this.$scopedSlots.default) {\n if (!Object.keys(this.$scopedSlots.default()[0].context.$refs).length) {\n throw new Error(\n 'If you use the slot input you must add a ref to the element that you will use as the input, and if you use a vue component, eg: v-text-field, etc, you need to set the childRefName indicating what is the ref name of the html input elemnt behind your component.'\n );\n }\n\n scopedInput =\n this.$scopedSlots.default()[0].context.$refs[this.slotRefName];\n\n if (scopedInput && scopedInput.$refs) {\n scopedInput = scopedInput.$refs[this.childRefName];\n }\n\n if (scopedInput) {\n this.$refs.input = scopedInput;\n }\n }\n\n if (this.selectFirstOnEnter) {\n downArrowSimulator(this.$refs.input);\n }\n\n if (typeof google.maps.places.Autocomplete !== 'function') {\n throw new Error(\n \"google.maps.places.Autocomplete is undefined. Did you add 'places' to libraries when loading Google Maps?\"\n );\n }\n\n const autocompleteOptions = {\n ...getPropsValues(this, autocompleteMappedProps),\n ...this.options,\n };\n\n this.$autocomplete = new google.maps.places.Autocomplete(\n this.$refs.input,\n autocompleteOptions\n );\n\n bindProps(this, this.$autocomplete, autocompleteMappedProps);\n\n if (this.setFieldsTo) {\n this.$autocomplete.setFields(this.setFieldsTo);\n }\n\n // Not using `bindEvents` because we also want\n // to return the result of `getPlace()`\n this.$autocomplete.addListener('place_changed', () => {\n /**\n * Place change event\n * @event place_changed\n * @property {object} place `this.$autocomplete.getPlace()`\n * @see [Get place information](https://developers.google.com/maps/documentation/javascript/places-autocomplete#get-place-information)\n */\n this.$emit('place_changed', this.$autocomplete.getPlace());\n });\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$$autocomplete && this.$$autocomplete.setMap) {\n this.$$autocomplete.setMap(null);\n }\n },\n };\n\n function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n /* server only */\n , shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n const options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n let hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n const originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n const existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n }\n\n /* script */\n const __vue_script__$d = script$d;\n\n /* template */\n var __vue_render__$6 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",function(){return [_c('input',_vm._g(_vm._b({ref:\"input\"},'input',_vm.$attrs,false),_vm.$listeners))]},{\"attrs\":_vm.$attrs,\"listeners\":_vm.$listeners})],2)};\n var __vue_staticRenderFns__$6 = [];\n\n /* style */\n const __vue_inject_styles__$d = undefined;\n /* scoped */\n const __vue_scope_id__$d = undefined;\n /* module identifier */\n const __vue_module_identifier__$d = undefined;\n /* functional template */\n const __vue_is_functional_template__$d = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$d = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },\n __vue_inject_styles__$d,\n __vue_script__$d,\n __vue_scope_id__$d,\n __vue_is_functional_template__$d,\n __vue_module_identifier__$d,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * @class MapElementMixin\n *\n * Add a inject object to inject $mapPromise and a provide function to the\n * component this function save the returned Google Maps object in the $map\n * property after the $mapPromise is resolved.\n *\n * ## The mixin code:\n * ```js\n export default {\n inject: {\n $mapPromise: { default: 'abcdef' },\n },\n provide() {\n this.$mapPromise.then((map) => {\n this.$map = map;\n });\n\n return {};\n },\n };\n * ```\n *\n * @property $mapPromise - The map property that should return the `$map`.
    \n * **Note**: although this mixin is not \"providing\" anything,\n * components' expect the `$map` property to be present on the component.\n * In order for that to happen, this mixin must intercept the `$mapPromise\n * .then(() => {})` first before its component does so.\n *\n * Since a `provide()` on a mixin is executed before a `provide()` on the\n * component, putting this code in `provide()` ensures that the `$map` is\n * already set by the time the component's `provide()` is called.\n * @property $map - The Google map (valid only after the promise (`$mapPromise`) returns)\n */\n var mapElementMixin = {\n inject: {\n $mapPromise: {\n default: 'abcdef'\n }\n },\n provide: function provide() {\n var _this = this;\n\n /**\n * **Note**: although this mixin is not \"providing\" anything,\n * components' expect the `$map` property to be present on the component.\n * In order for that to happen, this mixin must intercept the `$mapPromise\n * .then(() => {})` first before its component does so.\n *\n * Since a `provide()` on a mixin is executed before a `provide()` on the\n * component, putting this code in `provide()` ensures that the `$map` is\n * already set by the time the component's `provide()` is called.\n */\n this.$mapPromise.then(function (map) {\n _this.$map = map;\n });\n return {};\n }\n };\n\n /**\n * Circle component\n * @displayName GmapCircle\n * @see [source code](/guide/circle.html#source-code)\n * @see [official reference](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Circle)\n */\n var script$c = {\n name: 'CircleShape',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n // events to bind with toWay\n const events = [\n 'click',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragstart',\n 'mousedown',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'rightclick',\n ];\n\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n ...this.options,\n map,\n ...getPropsValues(this, circleMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.$circleObject = new google.maps.Circle(finalOptions);\n\n bindProps(this, this.$circleObject, circleMappedProps);\n bindEvents(this, this.$circleObject, events);\n\n return this.$circleObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$circlePromise = promise;\n return { $circlePromise: promise };\n },\n props: {\n /**\n * The center of the Circle.\n * @value { lat: 41.878, lng: -87.629 }\n * @see [Circle simple](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.center)\n */\n center: {\n type: Object,\n required: true,\n },\n /**\n * The radius in meters on the Earth's surface.\n * @value 10\n * @see [Circle simple](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.radius)\n */\n radius: {\n type: Number,\n default: 10,\n },\n /**\n * Indicates whether this Polygon handles mouse events. Defaults to true.\n * @value true, false\n * @see [Circle draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.clickable)\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n /**\n * If set to true, the user can drag this circle over the map. Defaults to false.\n * @value true, false\n * @see [Circle simple](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.draggable)\n */\n draggable: {\n type: Boolean,\n default: false,\n },\n /**\n * If set to true, the user can edit this circle by dragging the control points shown at the center and around the circumference of the circle. Defaults to false.\n * @value true, false\n * @see [Circle simple](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.editable)\n */\n editable: {\n type: Boolean,\n default: false,\n },\n /**\n * The fill color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.fillColor)\n */\n fillColor: {\n type: String,\n default: '',\n },\n /**\n * The fill opacity between 0.0 and 1.0\n * @value 1\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.fillOpacity)\n */\n fillOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.strokeColor)\n */\n strokeColor: {\n type: String,\n default: '',\n },\n /**\n * The stroke opacity between 0.0 and 1.0.\n * @value 1\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.strokeOpacity)\n */\n strokeOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke position. Defaults to CENTER.\n * @value 1\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.strokePosition)\n * @see [StrokePosition constant](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#StrokePosition)\n */\n strokePosition: {\n type: Number,\n default: 0,\n },\n /**\n * The stroke width in pixels.\n * @value 1\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.strokeWeight)\n */\n strokeWeight: {\n type: Number,\n default: 1,\n },\n /**\n * Whether this polyline is visible on the map. Defaults to true.\n * @value 1\n * @see [Circle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#CircleOptions.visible)\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * The Google Maps circle options\n * @value {\n strokeColor: \"#FF0000\",\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: \"#FF0000\",\n fillOpacity: 0.35,\n map,\n center: citymap[city].center,\n radius: Math.sqrt(citymap[city].population) * 100,\n }\n * @see [Circle simple](https://developers.google.com/maps/documentation/javascript/examples/circle-simple)\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$circleObject && this.$circleObject.setMap) {\n this.$circleObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$c = script$c;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$c = undefined;\n /* scoped */\n const __vue_scope_id__$c = undefined;\n /* module identifier */\n const __vue_module_identifier__$c = undefined;\n /* functional template */\n const __vue_is_functional_template__$c = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$c = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$c,\n __vue_script__$c,\n __vue_scope_id__$c,\n __vue_is_functional_template__$c,\n __vue_module_identifier__$c,\n false,\n undefined,\n undefined,\n undefined\n );\n\n function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n const m = left + right >> 1;\n select(ids, coords, m, left, right, depth % 2);\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n }\n\n function select(ids, coords, k, left, right, inc) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n const t = coords[2 * k + inc];\n let i = left;\n let j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n\n while (coords[2 * i + inc] < t) i++;\n\n while (coords[2 * j + inc] > t) j--;\n }\n\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n }\n\n function swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n }\n\n function swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n\n function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n let x, y;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n x = coords[2 * m];\n y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n }\n\n function within(ids, coords, qx, qy, r, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n }\n\n function sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n }\n\n const defaultGetX = p => p[0];\n\n const defaultGetY = p => p[1];\n\n class KDBush {\n constructor(points, getX = defaultGetX, getY = defaultGetY, nodeSize = 64, ArrayType = Float64Array) {\n this.nodeSize = nodeSize;\n this.points = points;\n const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n const ids = this.ids = new IndexArrayType(points.length);\n const coords = this.coords = new ArrayType(points.length * 2);\n\n for (let i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sortKD(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n\n range(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n\n within(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n\n }\n\n const defaultOptions = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: false,\n // whether to log timing info\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n\n };\n\n const fround = Math.fround || (tmp => x => {\n tmp[0] = +x;\n return tmp[0];\n })(new Float32Array(1));\n\n class Supercluster {\n constructor(options) {\n this.options = extend$1(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n load(points) {\n const {\n log,\n minZoom,\n maxZoom,\n nodeSize\n } = this.options;\n if (log) console.time('total time');\n const timerId = `prepare ${points.length} points`;\n if (log) console.time(timerId);\n this.points = points; // generate a cluster object for each point and index input points into a KD-tree\n\n let clusters = [];\n\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.timeEnd(timerId); // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now(); // create a new set of clusters for the zoom and index them with a KD-tree\n\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n\n const originZoom = this._getOriginZoom(clusterId);\n\n const errorMsg = 'No cluster with the specified id.';\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n\n for (const id of ids) {\n const c = index.points[id];\n\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n const leaves = [];\n\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n\n const z2 = Math.pow(2, z);\n const {\n extent,\n radius\n } = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n const tile = {\n features: []\n };\n\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.points, z2, y, z2, tile);\n }\n\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped); // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n let tags, px, py;\n\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n const f = {\n type: 1,\n geometry: [[Math.round(this.options.extent * (px * z2 - x)), Math.round(this.options.extent * (py * z2 - y))]],\n tags\n }; // assign id\n\n let id;\n\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n\n _cluster(points, zoom) {\n const clusters = [];\n const {\n radius,\n extent,\n reduce,\n minPoints\n } = this.options;\n const r = radius / (extent * Math.pow(2, zoom)); // loop through each point\n\n for (let i = 0; i < points.length; i++) {\n const p = points[i]; // if we've already visited the point at this zoom level, skip it\n\n if (p.zoom <= zoom) continue;\n p.zoom = zoom; // find all nearby points\n\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin; // count the number of points in a potential cluster\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId]; // filter out neighbors that are already processed\n\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n } // if there were neighbors to merge, and there are enough points to form a cluster\n\n\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null; // encode both zoom and point index on which the cluster originated -- offset by total length of features\n\n const id = (i << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n\n wy += b.y * numPoints2;\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n } else {\n // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n\n return clusters;\n } // get index of the point from which the cluster originated\n\n\n _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n } // get zoom of the point from which the cluster originated\n\n\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend$1({}, point.properties) : point.properties;\n }\n\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend$1({}, result) : result;\n }\n\n }\n\n function createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x),\n // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity,\n // the last zoom the cluster was processed at\n id,\n // encodes index of the first child of the cluster and its zoom level\n parentId: -1,\n // parent cluster id\n numPoints,\n properties\n };\n }\n\n function createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)),\n // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity,\n // the last zoom the point was processed at\n index: id,\n // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n\n };\n }\n\n function getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n }\n\n function getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev = count >= 10000 ? `${Math.round(count / 1000)}k` : count >= 1000 ? `${Math.round(count / 100) / 10}k` : count;\n return extend$1(extend$1({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n } // longitude/latitude to spherical mercator in [0..1] range\n\n\n function lngX(lng) {\n return lng / 360 + 0.5;\n }\n\n function latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n } // spherical mercator to longitude/latitude\n\n\n function xLng(x) {\n return (x - 0.5) * 360;\n }\n\n function yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n }\n\n function extend$1(dest, src) {\n for (const id in src) dest[id] = src[id];\n\n return dest;\n }\n\n function getX(p) {\n return p.x;\n }\n\n function getY(p) {\n return p.y;\n }\n\n var fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n } // true if both NaN, false otherwise\n\n\n return a !== a && b !== b;\n };\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\n\n function __rest(s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n }\n /**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n class Cluster {\n constructor({\n markers,\n position\n }) {\n this.markers = markers;\n\n if (position) {\n if (position instanceof google.maps.LatLng) {\n this._position = position;\n } else {\n this._position = new google.maps.LatLng(position);\n }\n }\n }\n\n get bounds() {\n if (this.markers.length === 0 && !this._position) {\n return undefined;\n }\n\n return this.markers.reduce((bounds, marker) => {\n return bounds.extend(marker.getPosition());\n }, new google.maps.LatLngBounds(this._position, this._position));\n }\n\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n\n\n get count() {\n return this.markers.filter(m => m.getVisible()).length;\n }\n /**\n * Add a marker to the cluster.\n */\n\n\n push(marker) {\n this.markers.push(marker);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n\n\n delete() {\n if (this.marker) {\n this.marker.setMap(null);\n delete this.marker;\n }\n\n this.markers.length = 0;\n }\n\n }\n /**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * @hidden\n */\n\n\n class AbstractAlgorithm {\n constructor({\n maxZoom = 16\n }) {\n this.maxZoom = maxZoom;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers, map})\n * }\n * }\n * ```\n */\n\n\n noop({\n markers\n }) {\n return noop(markers);\n }\n\n }\n /**\n * @hidden\n */\n\n\n const noop = markers => {\n const clusters = markers.map(marker => new Cluster({\n position: marker.getPosition(),\n markers: [marker]\n }));\n return clusters;\n };\n /**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\n\n\n class SuperClusterAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var {\n maxZoom,\n radius = 60\n } = _a,\n options = __rest(_a, [\"maxZoom\", \"radius\"]);\n\n super({\n maxZoom\n });\n this.superCluster = new Supercluster(Object.assign({\n maxZoom: this.maxZoom,\n radius\n }, options));\n this.state = {\n zoom: null\n };\n }\n\n calculate(input) {\n let changed = false;\n\n if (!fastDeepEqual(input.markers, this.markers)) {\n changed = true; // TODO use proxy to avoid copy?\n\n this.markers = [...input.markers];\n const points = this.markers.map(marker => {\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [marker.getPosition().lng(), marker.getPosition().lat()]\n },\n properties: {\n marker\n }\n };\n });\n this.superCluster.load(points);\n }\n\n const state = {\n zoom: input.map.getZoom()\n };\n\n if (!changed) {\n if (this.state.zoom > this.maxZoom && state.zoom > this.maxZoom) ;else {\n changed = changed || !fastDeepEqual(this.state, state);\n }\n }\n\n this.state = state;\n\n if (changed) {\n this.clusters = this.cluster(input);\n }\n\n return {\n clusters: this.clusters,\n changed\n };\n }\n\n cluster({\n map\n }) {\n return this.superCluster.getClusters([-180, -90, 180, 90], Math.round(map.getZoom())).map(this.transformCluster.bind(this));\n }\n\n transformCluster({\n geometry: {\n coordinates: [lng, lat]\n },\n properties\n }) {\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster.getLeaves(properties.cluster_id, Infinity).map(leaf => leaf.properties.marker),\n position: new google.maps.LatLng({\n lat,\n lng\n })\n });\n } else {\n const marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: marker.getPosition()\n });\n }\n }\n\n }\n /**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * Provides statistics on all clusters in the current render cycle for use in {@link Renderer.render}.\n */\n\n\n class ClusterStats {\n constructor(markers, clusters) {\n this.markers = {\n sum: markers.length\n };\n const clusterMarkerCounts = clusters.map(a => a.count);\n const clusterMarkerSum = clusterMarkerCounts.reduce((a, b) => a + b, 0);\n this.clusters = {\n count: clusters.length,\n markers: {\n mean: clusterMarkerSum / clusters.length,\n sum: clusterMarkerSum,\n min: Math.min(...clusterMarkerCounts),\n max: Math.max(...clusterMarkerCounts)\n }\n };\n }\n\n }\n\n class DefaultRenderer {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * \n * \n * \n * \n * \n * `);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render({\n count,\n position\n }, stats) {\n // change color if this cluster has more markers than the mean cluster\n const color = count > Math.max(10, stats.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\"; // create svg url with fill color\n\n const svg = window.btoa(`\n \n \n \n \n `); // create marker using svg icon\n\n return new google.maps.Marker({\n position,\n icon: {\n url: `data:image/svg+xml;base64,${svg}`,\n scaledSize: new google.maps.Size(45, 45)\n },\n label: {\n text: String(count),\n color: \"rgba(255,255,255,0.9)\",\n fontSize: \"12px\"\n },\n title: `Cluster of ${count} markers`,\n // adjust zIndex to be above other markers\n zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count\n });\n }\n\n }\n /**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n /**\n * Extends an object's prototype by another's.\n *\n * @param type1 The Type to be extended.\n * @param type2 The Type to extend with.\n * @ignore\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n\n function extend(type1, type2) {\n /* istanbul ignore next */\n // eslint-disable-next-line prefer-const\n for (let property in type2.prototype) {\n type1.prototype[property] = type2.prototype[property];\n }\n }\n /**\n * @ignore\n */\n\n\n class OverlayViewSafe {\n constructor() {\n // MarkerClusterer implements google.maps.OverlayView interface. We use the\n // extend function to extend MarkerClusterer with google.maps.OverlayView\n // because it might not always be available when the code is defined so we\n // look for it at the last possible moment. If it doesn't exist now then\n // there is no point going ahead :)\n extend(OverlayViewSafe, google.maps.OverlayView);\n }\n\n }\n /**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n var MarkerClustererEvents;\n\n (function (MarkerClustererEvents) {\n MarkerClustererEvents[\"CLUSTERING_BEGIN\"] = \"clusteringbegin\";\n MarkerClustererEvents[\"CLUSTERING_END\"] = \"clusteringend\";\n MarkerClustererEvents[\"CLUSTER_CLICK\"] = \"click\";\n })(MarkerClustererEvents || (MarkerClustererEvents = {}));\n\n const defaultOnClusterClickHandler = (_, cluster, map) => {\n map.fitBounds(cluster.bounds);\n };\n /**\n * MarkerClusterer creates and manages per-zoom-level clusters for large amounts\n * of markers. See {@link MarkerClustererOptions} for more details.\n *\n */\n\n\n class MarkerClusterer extends OverlayViewSafe {\n constructor({\n map,\n markers = [],\n algorithm = new SuperClusterAlgorithm({}),\n renderer = new DefaultRenderer(),\n onClusterClick = defaultOnClusterClickHandler\n }) {\n super();\n this.markers = [...markers];\n this.clusters = [];\n this.algorithm = algorithm;\n this.renderer = renderer;\n this.onClusterClick = onClusterClick;\n\n if (map) {\n this.setMap(map);\n }\n }\n\n addMarker(marker, noDraw) {\n if (this.markers.includes(marker)) {\n return;\n }\n\n this.markers.push(marker);\n\n if (!noDraw) {\n this.render();\n }\n }\n\n addMarkers(markers, noDraw) {\n markers.forEach(marker => {\n this.addMarker(marker, true);\n });\n\n if (!noDraw) {\n this.render();\n }\n }\n\n removeMarker(marker, noDraw) {\n const index = this.markers.indexOf(marker);\n\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n\n if (!noDraw) {\n this.render();\n }\n\n return true;\n }\n\n removeMarkers(markers, noDraw) {\n let removed = false;\n markers.forEach(marker => {\n removed = this.removeMarker(marker, true) || removed;\n });\n\n if (removed && !noDraw) {\n this.render();\n }\n\n return removed;\n }\n\n clearMarkers(noDraw) {\n this.markers.length = 0;\n\n if (!noDraw) {\n this.render();\n }\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n\n\n render() {\n const map = this.getMap();\n\n if (map instanceof google.maps.Map && this.getProjection()) {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_BEGIN, this);\n const {\n clusters,\n changed\n } = this.algorithm.calculate({\n markers: this.markers,\n map,\n mapCanvasProjection: this.getProjection()\n }); // allow algorithms to return flag on whether the clusters/markers have changed\n\n if (changed || changed == undefined) {\n // reset visibility of markers and clusters\n this.reset(); // store new clusters\n\n this.clusters = clusters;\n this.renderClusters();\n }\n\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_END, this);\n }\n }\n\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this));\n this.render();\n }\n\n onRemove() {\n google.maps.event.removeListener(this.idleListener);\n this.reset();\n }\n\n reset() {\n this.markers.forEach(marker => marker.setMap(null));\n this.clusters.forEach(cluster => cluster.delete());\n this.clusters = [];\n }\n\n renderClusters() {\n // generate stats to pass to renderers\n const stats = new ClusterStats(this.markers, this.clusters);\n const map = this.getMap();\n this.clusters.forEach(cluster => {\n if (cluster.markers.length === 1) {\n cluster.marker = cluster.markers[0];\n } else {\n cluster.marker = this.renderer.render(cluster, stats);\n\n if (this.onClusterClick) {\n cluster.marker.addListener(\"click\",\n /* istanbul ignore next */\n event => {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTER_CLICK, cluster);\n this.onClusterClick(event, cluster, map);\n });\n }\n }\n\n cluster.marker.setMap(map);\n });\n }\n\n }\n\n //\n\n /**\n * Cluster component\n * @displayName GmapCluster\n * @see [source code](/guide/cluster.html#source-code)\n * @see [Official documentation](https://googlemaps.github.io/js-markerclusterer/modules.html)\n * @see [Marker clusterer](https://developers.google.com/maps/documentation/javascript/marker-clustering#maps_marker_clustering-javascript)\n */\n var script$b = {\n name: 'ClusterIcon',\n mixins: [mapElementMixin],\n provide() {\n // events to bind with toWay\n const events = [\n 'click',\n 'rightclick',\n 'dblclick',\n 'drag',\n 'dragstart',\n 'dragend',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n ];\n\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map,\n ...getPropsValues(this, clusterIconMappedProps),\n };\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n if (typeof MarkerClusterer === 'undefined') {\n throw new Error(\n 'MarkerClusterer is not installed! require() it or include it from https://cdnjs.cloudflare.com/ajax/libs/js-marker-clusterer/1.0.0/markerclusterer.js'\n );\n }\n\n const {\n map: mapInstance,\n markers,\n algorithm,\n onClusterClick,\n renderer,\n } = finalOptions;\n\n this.$clusterObject = new MarkerClusterer({\n map: mapInstance,\n markers,\n algorithm,\n onClusterClick,\n renderer,\n });\n\n bindProps(this, this.$clusterObject, {});\n bindEvents(this, this.$clusterObject, events);\n\n Object.keys({}).forEach((prop) => {\n if ({}[prop].twoWay) {\n this.$on(`${prop.toLowerCase()}_changed`, this.reinsertMarkers);\n }\n });\n\n return this.$clusterObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$clusterPromise = promise;\n return { $clusterPromise: promise };\n },\n props: {\n /**\n * An algorithm to cluster markers. Default is SuperClusterAlgorithm. Must provide a\n * calculate method accepting AlgorithmInput and returning an array of Cluster.\n * @values undefined\n * @see [algorithm](https://googlemaps.github.io/js-markerclusterer/interfaces/MarkerClustererOptions.html#algorithm)\n */\n algorithm: {\n type: Object,\n default: undefined,\n },\n /**\n * Function to run when the user clicks the cluster.\n * @values undefined\n * @see [onClusterClick](https://googlemaps.github.io/js-markerclusterer/interfaces/MarkerClustererOptions.html#onClusterClick)\n */\n onClusterClick: {\n type: Function,\n default: undefined,\n },\n /**\n * An object that converts a Cluster into a `google.maps.Marker`. Default is DefaultRenderer.\n * @values undefined\n * @see [renderer](https://googlemaps.github.io/js-markerclusterer/interfaces/MarkerClustererOptions.html#renderer)\n */\n renderer: {\n type: Object,\n default: undefined,\n },\n /**\n * Other options that you can pass to the MarkerClusterer\n * @values undefined\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n beforeDestroy() {\n /* Performance optimization when destroying a large number of markers */\n this.$children.forEach((marker) => {\n if (marker.$clusterObject === this.$clusterObject) {\n marker.$clusterObject = null;\n }\n });\n\n if (this.$clusterObject) {\n this.$clusterObject.clearMarkers();\n }\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$clusterObject && this.$clusterObject.setMap) {\n this.$clusterObject.setMap(null);\n }\n },\n updated() {\n if (this.$clusterObject) {\n this.$clusterObject.render();\n }\n },\n methods: {\n reinsertMarkers() {\n const oldMarkers = [...this.$clusterObject.markers];\n this.$clusterObject.clearMarkers();\n this.$clusterObject.addMarkers(oldMarkers);\n },\n },\n };\n\n /* script */\n const __vue_script__$b = script$b;\n\n /* template */\n var __vue_render__$5 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)};\n var __vue_staticRenderFns__$5 = [];\n\n /* style */\n const __vue_inject_styles__$b = undefined;\n /* scoped */\n const __vue_scope_id__$b = undefined;\n /* module identifier */\n const __vue_module_identifier__$b = undefined;\n /* functional template */\n const __vue_is_functional_template__$b = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$b = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },\n __vue_inject_styles__$b,\n __vue_script__$b,\n __vue_scope_id__$b,\n __vue_is_functional_template__$b,\n __vue_module_identifier__$b,\n false,\n undefined,\n undefined,\n undefined\n );\n\n //\n\n /**\n * DrawingManager component\n * @displayName GmapDrawingManager\n * @see [source code](/guide/drawing-manager.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/drawinglayer)\n * @see [Official reference](https://developers.google.com/maps/documentation/javascript/reference/drawing)\n */\n var script$a = {\n name: 'DrawingManager',\n mixins: [mapElementMixin],\n provide() {\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map,\n ...getPropsValues(this, drawingManagerMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.drawingModes = Object.keys(finalOptions).reduce((modes, opt) => {\n const val = opt.split('Options');\n\n if (val.length > 1) {\n modes.push(val[0]);\n }\n\n return modes;\n }, []);\n\n const position =\n this.position && google.maps.ControlPosition[this.position]\n ? google.maps.ControlPosition[this.position]\n : google.maps.ControlPosition.TOP_LEFT;\n\n finalOptions.drawingMode = null;\n finalOptions.drawingControl = !this.$scopedSlots.default;\n finalOptions.drawingControlOptions = {\n drawingModes: this.drawingModes,\n position,\n };\n\n // https://stackoverflow.com/questions/1606797/use-of-apply-with-new-operator-is-this-possible\n this.$drawingManagerObject = new google.maps.drawing.DrawingManager(\n finalOptions\n );\n\n bindProps(this, this.$drawingManagerObject, drawingManagerMappedProps);\n\n this.$drawingManagerObject.addListener('overlaycomplete', (e) =>\n this.addShape(e)\n );\n\n this.$map.addListener('click', this.clearSelection);\n\n if (this && this.finalShapes && this.finalShapes.length) {\n this.drawAll();\n }\n\n return this.$drawingManagerObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$drawingManagerPromise = promise;\n return { $drawingManagerPromise: promise };\n },\n props: {\n /**\n * The circle options\n * @see [circleOptions interface](https://developers.google.com/maps/documentation/javascript/reference/polygon#CircleOptions)\n */\n circleOptions: {\n type: Object,\n default: undefined,\n },\n /**\n * The marker options\n * @see [markerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/marker#MarkerOptions)\n */\n markerOptions: {\n type: Object,\n default: undefined,\n },\n /**\n * The polygon options\n * @see [polygonOptions interface](https://developers.google.com/maps/documentation/javascript/reference/polygon#PolygonOptions)\n */\n polygonOptions: {\n type: Object,\n default: undefined,\n },\n /**\n * The polyline options\n * @see [polylineOptions interface](https://developers.google.com/maps/documentation/javascript/reference/polygon#PolylineOptions)\n */\n polylineOptions: {\n type: Object,\n default: undefined,\n },\n /**\n * The rectangle options\n * @see [rectangleOptions interface](https://developers.google.com/maps/documentation/javascript/reference/polygon#RectangleOptions)\n */\n rectangleOptions: {\n type: Object,\n default: undefined,\n },\n /**\n * The position of the toolbar\n * **Possible values**: `'TOP_CENTER', 'TOP_LEFT', 'TOP_RIGHT', 'LEFT_TOP', 'RIGHT_TOP', 'LEFT_CENTER',\n * 'RIGHT_CENTER', 'LEFT_BOTTOM', 'RIGHT_BOTTOM', 'BOTTOM_CENTER', 'BOTTOM_LEFT', 'BOTTOM_RIGHT'`\n */\n position: {\n type: String,\n default: '',\n },\n /**\n * An array of shapes that you can set to render in the map and saves on it the new shapes that you add.\n */\n shapes: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n selectedShape: null,\n drawingModes: [],\n options: {\n drawingMode: null,\n drawingControl: true,\n drawingControlOptions: {},\n },\n finalShapes: [],\n };\n },\n watch: {\n position(position) {\n if (this.$drawingManagerObject) {\n const drawingControlOptions = {\n position:\n position && google.maps.ControlPosition[position]\n ? google.maps.ControlPosition[position]\n : google.maps.ControlPosition.TOP_LEFT,\n drawingModes: this.drawingModes,\n };\n this.$drawingManagerObject.setOptions({ drawingControlOptions });\n }\n },\n circleOptions(circleOptions) {\n if (this.$drawingManagerObject) {\n this.$drawingManagerObject.setOptions({ circleOptions });\n }\n },\n markerOptions(markerOptions) {\n if (this.$drawingManagerObject) {\n this.$drawingManagerObject.setOptions({ markerOptions });\n }\n },\n polygonOptions(polygonOptions) {\n if (this.$drawingManagerObject) {\n this.$drawingManagerObject.setOptions({ polygonOptions });\n }\n },\n polylineOptions(polylineOptions) {\n if (this.$drawingManagerObject) {\n this.$drawingManagerObject.setOptions({ polylineOptions });\n }\n },\n rectangleOptions(rectangleOptions) {\n if (this.$drawingManagerObject) {\n this.$drawingManagerObject.setOptions({ rectangleOptions });\n }\n },\n },\n mounted() {\n this.finalShapes = [...this.shapes];\n },\n destroyed() {\n this.clearAll();\n\n // Note: not all Google Maps components support maps\n if (this.$drawingManagerObject && this.$drawingManagerObject.setMap) {\n this.$drawingManagerObject.setMap(null);\n }\n },\n methods: {\n /**\n * The setDrawingMode method is binded into the default component slot\n *\n * @method setDrawingMode\n * @param {string} mode - mode - Possible values 'marker', 'circle', 'polygon', 'polyline', 'rectangle', null\n * @returns {void}\n * @public\n */\n setDrawingMode(mode) {\n this.$drawingManagerObject.setDrawingMode(mode);\n },\n drawAll() {\n const shapeType = {\n circle: google.maps.Circle,\n marker: google.maps.Marker,\n polygon: google.maps.Polygon,\n polyline: google.maps.Polyline,\n rectangle: google.maps.Rectangle,\n };\n\n const self = this;\n this.finalShapes.forEach((shape) => {\n const shapeDrawing = new shapeType[shape.type](shape.overlay);\n shapeDrawing.setMap(this.$map);\n shape.overlay = shapeDrawing;\n google.maps.event.addListener(shapeDrawing, 'click', () => {\n self.setSelection(shape);\n });\n });\n },\n clearAll() {\n this.clearSelection();\n this.finalShapes.forEach((shape) => {\n shape.overlay.setMap(null);\n });\n },\n clearSelection() {\n if (this.selectedShape) {\n this.selectedShape.overlay.set('fillColor', '#777');\n this.selectedShape.overlay.set('strokeColor', '#999');\n this.selectedShape.overlay.setEditable(false);\n this.selectedShape.overlay.setDraggable(false);\n this.selectedShape = null;\n }\n },\n setSelection(shape) {\n this.clearSelection();\n this.selectedShape = shape;\n shape.overlay.setEditable(true);\n shape.overlay.setDraggable(true);\n this.selectedShape.overlay.set('fillColor', '#555');\n this.selectedShape.overlay.set('strokeColor', '#777');\n },\n /**\n * The deleteSelection method is binded into the default component slot\n *\n * @method deleteSelection\n * @param - It doesn't requires any parameter\n * @returns {void}\n * @public\n */\n deleteSelection() {\n if (this.selectedShape) {\n this.selectedShape.overlay.setMap(null);\n const index = this.finalShapes.indexOf(this.selectedShape);\n if (index > -1) {\n this.finalShapes.splice(index, 1);\n }\n }\n },\n addShape(shape) {\n this.setDrawingMode(null);\n this.finalShapes.push(shape);\n\n /**\n * update:shapes event\n * @event update:shapes\n * @property {array} place `this.finalShapes`\n */\n this.$emit('update:shapes', [...this.finalShapes]);\n\n const self = this;\n google.maps.event.addListener(shape.overlay, 'click', () => {\n self.setSelection(shape);\n });\n google.maps.event.addListener(shape.overlay, 'rightclick', () => {\n self.deleteSelection();\n });\n this.setSelection(shape);\n },\n },\n };\n\n /* script */\n const __vue_script__$a = script$a;\n\n /* template */\n var __vue_render__$4 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",null,{\"setDrawingMode\":_vm.setDrawingMode,\"deleteSelection\":_vm.deleteSelection})],2)};\n var __vue_staticRenderFns__$4 = [];\n\n /* style */\n const __vue_inject_styles__$a = undefined;\n /* scoped */\n const __vue_scope_id__$a = undefined;\n /* module identifier */\n const __vue_module_identifier__$a = undefined;\n /* functional template */\n const __vue_is_functional_template__$a = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$a = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },\n __vue_inject_styles__$a,\n __vue_script__$a,\n __vue_scope_id__$a,\n __vue_is_functional_template__$a,\n __vue_module_identifier__$a,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * HeatmapLayer component\n * @displayName HeatmapLayer\n * @see [source code](/guide/heatmap-layer.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/heatmaplayer)\n */\n var script$9 = {\n name: 'HeatmapLayer',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n const events = [];\n\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map: this.$map,\n ...getPropsValues(this, heatMapLayerMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.$heatmapLayerObject = new google.maps.visualization.HeatmapLayer(\n finalOptions\n );\n\n bindProps(this, this.$heatmapLayerObject, heatMapLayerMappedProps);\n bindEvents(this, this.$heatmapLayerObject, events);\n\n return this.$heatmapLayerObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$heatmapLayerPromise = promise;\n return { $heatmapLayerPromise: promise };\n },\n props: {\n /**\n * Extra options that you want to pass to the component\n */\n options: {\n type: Object,\n default: () => {},\n },\n /**\n * The heat map data, is an array of `new google.maps.LatLng`,\n * @see [heatmap options](https://developers.google.com/maps/documentation/javascript/heatmaplayer#add-a-heatmap-layer)\n * @example `[new google.maps.LatLng(37.782, -122.447)]`\n */\n data: {\n type: Array,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$heatmapLayerObject && this.$heatmapLayerObject.setMap) {\n this.$heatmapLayerObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$9 = script$9;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$9 = undefined;\n /* scoped */\n const __vue_scope_id__$9 = undefined;\n /* module identifier */\n const __vue_module_identifier__$9 = undefined;\n /* functional template */\n const __vue_is_functional_template__$9 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$9 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$9,\n __vue_script__$9,\n __vue_scope_id__$9,\n __vue_is_functional_template__$9,\n __vue_module_identifier__$9,\n false,\n undefined,\n undefined,\n undefined\n );\n\n //\n\n /**\n * InfoWindow component\n * @displayName Info-Window\n * @see [source code](/guide/info-window.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/infowindows)\n * @see [Official reference](https://developers.google.com/maps/documentation/javascript/reference/info-window)\n */\n var script$8 = {\n name: 'InfoWindow',\n mixins: [mapElementMixin],\n inject: {\n $markerPromise: {\n default: null,\n },\n },\n provide() {\n const events = ['domready', 'closeclick', 'content_changed'];\n\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map,\n ...getPropsValues(this, infoWindowMappedProps),\n };\n\n const {\n options: extraOptions,\n position,\n ...finalOptions\n } = initialOptions;\n\n finalOptions.content = this.$refs.flyaway;\n\n if (this.$markerPromise) {\n this.$markerPromise.then((markerObject) => {\n this.$markerObject = markerObject;\n return markerObject;\n });\n }\n\n this.$infoWindowObject = new google.maps.InfoWindow(finalOptions);\n\n bindProps(this, this.$infoWindowObject, infoWindowMappedProps);\n bindEvents(this, this.$infoWindowObject, events);\n\n // TODO: This function names should be analyzed\n /* eslint-disable no-underscore-dangle -- old style */\n this._openInfoWindow();\n this.$watch('opened', () => {\n this._openInfoWindow();\n });\n /* eslint-enable no-underscore-dangle */\n\n return this.$infoWindowObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$infoWindowPromise = promise;\n return { $infoWindowPromise: promise };\n },\n props: {\n /**\n * NOTE: This prop overrides the content of the default slot, use only one of them, not both at the same time\n * Content to display in the InfoWindow. This can be an HTML element, a plain-text string, or a string containing HTML. The InfoWindow will be sized according to the content. To set an explicit size for the content, set content to be a HTML element with that size.\n * @value undefined\n * @see [InfoWindow content](https://developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindowOptions.content)\n */\n content: {\n type: [String, Object],\n default: undefined,\n },\n /**\n * Determines if the info-window is open or not\n */\n opened: {\n type: Boolean,\n default: true,\n },\n /**\n * Contains the LatLng at which this info window is anchored.\n * Note: An InfoWindow may be attached either to a Marker object\n * (in which case its position is based on the marker's location)\n * or on the map itself at a specified LatLng.\n *\n * The LatLng at which to display this InfoWindow. If the InfoWindow is opened with an anchor, the anchor's position will be used instead.\n * @value undefined\n * @type LatLng|LatLngLiteral\n * @see [InfoWindow position](https://developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindowOptions.position)\n */\n position: {\n type: Object,\n default: undefined,\n },\n /**\n * All InfoWindows are displayed on the map in order of their zIndex, with higher values displaying in front of InfoWindows with lower values. By default, InfoWindows are displayed according to their latitude, with InfoWindows of lower latitudes appearing in front of InfoWindows at higher latitudes. InfoWindows are always displayed in front of markers.\n * @value 0\n * @see [InfoWindow position](https://developers.google.com/maps/documentation/javascript/reference/info-window#InfoWindowOptions.zIndex)\n */\n zIndex: {\n type: Number,\n default: 0,\n },\n /**\n * Extra options that you want to pass to the component\n */\n options: {\n type: Object,\n required: false,\n default: undefined,\n },\n },\n mounted() {\n const el = this.$refs.flyaway;\n el.parentNode.removeChild(el);\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$infoWindowObject && this.$infoWindowObject.setMap) {\n this.$infoWindowObject.setMap(null);\n }\n },\n methods: {\n // TODO: we need to analyze the following method name\n // eslint-disable-next-line no-underscore-dangle -- old code\n _openInfoWindow() {\n if (this.opened) {\n if (this.$markerObject !== null) {\n this.$infoWindowObject.open(this.$map, this.$markerObject);\n } else {\n this.$infoWindowObject.open(this.$map);\n }\n } else {\n this.$infoWindowObject.close();\n }\n },\n },\n };\n\n /* script */\n const __vue_script__$8 = script$8;\n\n /* template */\n var __vue_render__$3 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{ref:\"flyaway\"},[_vm._t(\"default\")],2)])};\n var __vue_staticRenderFns__$3 = [];\n\n /* style */\n const __vue_inject_styles__$8 = undefined;\n /* scoped */\n const __vue_scope_id__$8 = undefined;\n /* module identifier */\n const __vue_module_identifier__$8 = undefined;\n /* functional template */\n const __vue_is_functional_template__$8 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$8 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },\n __vue_inject_styles__$8,\n __vue_script__$8,\n __vue_scope_id__$8,\n __vue_is_functional_template__$8,\n __vue_module_identifier__$8,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * KmlLayer component\n * @displayName Kml-Layer\n * @see [source code](/guide/kml-layer.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/kmllayer)\n * @see [Official reference](https://developers.google.com/maps/documentation/javascript/reference/kml)\n */\n var script$7 = {\n name: 'KmlLayer',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n const events = [\n 'click',\n 'rightclick',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n ];\n\n // Infowindow needs this to be immediately available\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map,\n ...getPropsValues(this, kmlLayerMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.$kmlLayerObject = new google.maps.KmlLayer(finalOptions);\n\n bindProps(this, this.$kmlLayerObject, kmlLayerMappedProps);\n bindEvents(this, this.$kmlLayerObject, events);\n\n return this.$kmlLayerObject;\n })\n .catch((error) => {\n throw error;\n });\n\n this.$kmlLayerPromise = promise;\n return { $kmlLayerPromise: promise };\n },\n props: {\n /**\n * If true, the layer receives mouse events. Default value is true.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.clickable)\n */\n clickable: {\n type: Boolean,\n default: true,\n },\n /**\n * Specifies the Map on which to render the KmlLayer. You can hide a KmlLayer by setting this value to null within the setMap() method\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.map)\n */\n map: {\n type: Object,\n default: undefined,\n },\n /**\n * By default, the input map is centered and zoomed to the bounding box of the contents of the layer. If this option is set to true, the viewport is\n * left unchanged, unless the map's center and zoom were never set.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.preserveViewport)\n */\n preserveViewport: {\n type: Boolean,\n default: false,\n },\n /**\n * Whether to render the screen overlays. Default true.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.screenOverlays)\n */\n screenOverlays: {\n type: Boolean,\n default: false,\n },\n /**\n * Suppress the rendering of info windows when layer features are clicked.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.suppressInfoWindows)\n */\n suppressInfoWindows: {\n type: Boolean,\n default: undefined,\n },\n /**\n * The URL of the KML document to display.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.url)\n */\n url: {\n type: String,\n default: '',\n },\n /**\n * The z-index of the layer.\n * @see [KmlLayerOptions interface](https://developers.google.com/maps/documentation/javascript/reference/kml#KmlLayerOptions.zIndex)\n */\n zIndex: {\n type: Number,\n default: undefined,\n },\n /**\n * More options that you can pass to the component\n * @value boolean\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$kmlLayerObject && this.$kmlLayerObject.setMap) {\n this.$kmlLayerObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$7 = script$7;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$7 = undefined;\n /* scoped */\n const __vue_scope_id__$7 = undefined;\n /* module identifier */\n const __vue_module_identifier__$7 = undefined;\n /* functional template */\n const __vue_is_functional_template__$7 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$7 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$7,\n __vue_script__$7,\n __vue_scope_id__$7,\n __vue_is_functional_template__$7,\n __vue_module_identifier__$7,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /* eslint-disable no-underscore-dangle -- old style, should be analyzed */\n\n /**\n * @class MountableMixin\n *\n * Mixin for objects that are mounted by Google Maps Javascript API.\n *\n * These are objects that are sensitive to element resize operations\n * so it exposes a property which accepts a bus\n * ## The mixin code:\n * ```js\n export default {\n props: ['resizeBus'],\n\n data() {\n return {\n _actualResizeBus: null,\n };\n },\n\n created() {\n if (typeof this.resizeBus === 'undefined') {\n this.$data._actualResizeBus = this.$gmapDefaultResizeBus;\n } else {\n this.$data._actualResizeBus = this.resizeBus;\n }\n },\n\n methods: {\n _resizeCallback() {\n this.resize();\n },\n _delayedResizeCallback() {\n this.$nextTick(() => this._resizeCallback());\n },\n },\n\n watch: {\n resizeBus(newVal) {\n this.$data._actualResizeBus = newVal;\n },\n '$data._actualResizeBus': function actualResizeBus(newVal, oldVal) {\n if (oldVal) {\n oldVal.$off('resize', this._delayedResizeCallback);\n }\n if (newVal) {\n newVal.$on('resize', this._delayedResizeCallback);\n }\n },\n },\n\n destroyed() {\n if (this.$data._actualResizeBus) {\n this.$data._actualResizeBus.$off('resize', this._delayedResizeCallback);\n }\n },\n };\n * ```\n * @property {Function|undefined} resizeBus Vue props to set your custom resize bus function, otherwise it takes the default `$gmapDefaultResizeBus`\n * @property {Function|undefined} _actualResizeBus The current default resize bus function, **this should not be used outside of this mixin**\n */\n var mountableMixin = {\n props: ['resizeBus'],\n data: function data() {\n return {\n _actualResizeBus: null\n };\n },\n created: function created() {\n if (typeof this.resizeBus === 'undefined') {\n this.$data._actualResizeBus = this.$gmapDefaultResizeBus;\n } else {\n this.$data._actualResizeBus = this.resizeBus;\n }\n },\n methods: {\n _resizeCallback: function _resizeCallback() {\n this.resize();\n },\n _delayedResizeCallback: function _delayedResizeCallback() {\n var _this = this;\n\n this.$nextTick(function () {\n return _this._resizeCallback();\n });\n }\n },\n watch: {\n resizeBus: function resizeBus(newVal) {\n this.$data._actualResizeBus = newVal;\n },\n '$data._actualResizeBus': function (newVal, oldVal) {\n if (oldVal) {\n oldVal.$off('resize', this._delayedResizeCallback);\n }\n\n if (newVal) {\n newVal.$on('resize', this._delayedResizeCallback);\n }\n }\n },\n destroyed: function destroyed() {\n if (this.$data._actualResizeBus) {\n this.$data._actualResizeBus.$off('resize', this._delayedResizeCallback);\n }\n }\n };\n /* eslint-enable no-underscore-dangle */\n\n //\n\n /**\n * Map component\n * @displayName Map\n * @see [source code](/guide/map.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/basics)\n * @see [Official reference](https://developers.google.com/maps/documentation/javascript/reference/map)\n */\n var script$6 = {\n name: 'MapLayer',\n mixins: [mountableMixin],\n provide() {\n this.$mapPromise = new Promise((resolve, reject) => {\n this.$mapPromiseDeferred = { resolve, reject };\n });\n\n return {\n $mapPromise: this.$mapPromise,\n };\n },\n props: {\n /**\n * The initial Map center.\n * @see https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\n */\n center: {\n type: Object,\n required: true,\n },\n /**\n * The initial Map zoom level. Valid values: Integers between zero, and up to the supported maximum zoom level.\n * @see https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\n */\n zoom: {\n type: Number,\n required: false,\n default: undefined,\n },\n /**\n * The heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are snapped to the nearest available angle for which imagery is available.\n * @see https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\n */\n heading: {\n type: Number,\n default: undefined,\n },\n /**\n * The initial Map mapTypeId. Defaults to ROADMAP.\n * @see https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\n */\n mapTypeId: {\n type: String,\n default: 'roadmap',\n },\n /**\n * For vector maps, sets the angle of incidence of the map. The allowed values are restricted depending on the zoom level of the map. For raster maps, controls the automatic switching behavior for the angle of incidence of the map. The only allowed values are 0 and 45. The value 0 causes the map to always use a 0° overhead view regardless of the zoom level and viewport. The value 45 causes the tilt angle to automatically switch to 45 whenever 45° imagery is available for the current zoom level and viewport, and switch back to 0 whenever 45° imagery is not available (this is the default behavior). 45° imagery is only available for satellite and hybrid map types, within some locations, and at some zoom levels. Note: getTilt returns the current tilt angle, not the value specified by this option. Because getTilt and this option refer to different things, do not bind() the tilt property; doing so may yield unpredictable effects.\n * @see https://developers.google.com/maps/documentation/javascript/reference/map#MapOptions\n */\n tilt: {\n type: Number,\n default: undefined,\n },\n /**\n * Extra options that you want pass to the component\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n data() {\n return {\n recyclePrefix: '__gmc__',\n };\n },\n computed: {\n finalLat() {\n return this.center && typeof this.center.lat === 'function'\n ? this.center.lat()\n : this.center.lat;\n },\n finalLng() {\n return this.center && typeof this.center.lng === 'function'\n ? this.center.lng()\n : this.center.lng;\n },\n finalLatLng() {\n return { lat: this.finalLat, lng: this.finalLng };\n },\n },\n watch: {\n zoom(zoom) {\n if (this.$mapObject) {\n this.$mapObject.setZoom(zoom);\n }\n },\n },\n beforeDestroy() {\n const recycleKey = this.getRecycleKey();\n if (window[recycleKey]) {\n window[recycleKey].div = this.$mapObject.getDiv();\n }\n },\n mounted() {\n return this.$gmapApiPromiseLazy()\n .then(() => {\n const events = [\n 'bounds_changed',\n 'click',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragstart',\n 'idle',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'resize',\n 'rightclick',\n 'tilesloaded',\n ];\n\n // getting the DOM element where to create the map\n const element = this.$refs['vue-map'];\n\n // creating the map\n const initialOptions = {\n ...this.options,\n ...getPropsValues(this, mapMappedProps),\n };\n\n // don't use delete keyword in order to create a more predictable code for the engine\n const { options: extraOptions, ...finalOptions } = initialOptions;\n const options = finalOptions;\n\n const recycleKey = this.getRecycleKey();\n if (\n this &&\n this.options &&\n this.options.recycle &&\n window[recycleKey]\n ) {\n element.appendChild(window[recycleKey].div);\n this.$mapObject = window[recycleKey].map;\n this.$mapObject.setOptions(options);\n } else {\n // console.warn('[gmap-vue] New google map created')\n this.$mapObject = new google.maps.Map(element, options);\n window[recycleKey] = { map: this.$mapObject };\n }\n\n // binding properties (two and one way)\n bindProps(this, this.$mapObject, mapMappedProps);\n // binding events\n bindEvents(this, this.$mapObject, events);\n\n // manually trigger center and zoom\n twoWayBindingWrapper((increment, decrement, shouldUpdate) => {\n this.$mapObject.addListener('center_changed', () => {\n if (shouldUpdate()) {\n /**\n * This event is fired when the map center property changes. It sends the position displayed at the center of the map. If the center or bounds have not been set then the result is undefined. (types: `LatLng|undefined`)\n *\n * @event center_changed\n * @type {(LatLng|undefined)}\n */\n this.$emit('center_changed', this.$mapObject.getCenter());\n }\n decrement();\n });\n\n const updateCenter = () => {\n increment();\n this.$mapObject.setCenter(this.finalLatLng);\n };\n\n watchPrimitiveProperties(\n this,\n ['finalLat', 'finalLng'],\n updateCenter\n );\n });\n this.$mapObject.addListener('zoom_changed', () => {\n /**\n * This event is fired when the map zoom property changes. It sends the zoom of the map. If the zoom has not been set then the result is undefined. (types: `number|undefined`)\n *\n * @event zoom_changed\n * @type {(number|undefined)}\n */\n this.$emit('zoom_changed', this.$mapObject.getZoom());\n });\n this.$mapObject.addListener('bounds_changed', () => {\n /**\n * This event is fired when the viewport bounds have changed. It sends The lat/lng bounds of the current viewport.\n *\n * @event bounds_changed\n * @type {LatLngBounds}\n */\n this.$emit('bounds_changed', this.$mapObject.getBounds());\n });\n\n this.$mapPromiseDeferred.resolve(this.$mapObject);\n\n return this.$mapObject;\n })\n .catch((error) => {\n throw error;\n });\n },\n methods: {\n /**\n * This method trigger the resize event of Google Maps\n * @method resize\n * @param {undefined}\n * @returns {void}\n * @public\n */\n resize() {\n if (this.$mapObject) {\n google.maps.event.trigger(this.$mapObject, 'resize');\n }\n },\n /**\n * Preserve the previous center when resize the map\n * @method resizePreserveCenter\n * @param {undefined}\n * @returns {void}\n * @public\n */\n resizePreserveCenter() {\n if (!this.$mapObject) {\n return;\n }\n\n const oldCenter = this.$mapObject.getCenter();\n google.maps.event.trigger(this.$mapObject, 'resize');\n this.$mapObject.setCenter(oldCenter);\n },\n\n // Override mountableMixin::_resizeCallback\n // because resizePreserveCenter is usually the\n // expected behaviour\n // TODO: analyze the following disabled rule\n // eslint-disable-next-line no-underscore-dangle -- old code\n _resizeCallback() {\n this.resizePreserveCenter();\n },\n /**\n * Changes the center of the map by the given distance in pixels. If the distance is less than both the width and height of the map, the transition will be smoothly animated. Note that the map coordinate system increases from west to east (for x values) and north to south (for y values).\n * @method panBy\n * @param {number} x - Number of pixels to move the map in the x direction.\n * @param {number} y - Number of pixels to move the map in the y direction.\n * @returns {void}\n * @public\n */\n panBy(...args) {\n if (this.$mapObject) {\n this.$mapObject.panBy(...args);\n }\n },\n /**\n * Changes the center of the map to the given LatLng. If the change is less than both the width and height of the map, the transition will be smoothly animated.\n * @method panTo\n * @param {(LatLng|LatLngLiteral)} latLng - The new center latitude/longitude of the map. (types `LatLng|LatLngLiteral`)\n * @returns {void}\n * @public\n */\n panTo(...args) {\n if (this.$mapObject) {\n this.$mapObject.panTo(...args);\n }\n },\n /**\n * Pans the map by the minimum amount necessary to contain the given LatLngBounds. It makes no guarantee where on the map the bounds will be, except that the map will be panned to show as much of the bounds as possible inside {currentMapSizeInPx} - {padding}. For both raster and vector maps, the map's zoom, tilt, and heading will not be changed.\n * @method panToBounds\n * @param {(LatLngBounds|LatLngBoundsLiteral)} latLngBounds - The bounds to pan the map to. (types: `LatLngBounds|LatLngBoundsLiteral`)\n * @param {(number|Padding)} [padding] - optional Padding in pixels. A number value will yield the same padding on all 4 sides. The default value is 0. (types: `number|Padding`)\n * @returns {void}\n * @public\n */\n panToBounds(...args) {\n if (this.$mapObject) {\n this.$mapObject.panToBounds(...args);\n }\n },\n /**\n * Sets the viewport to contain the given bounds.\n Note: When the map is set to display: none, the fitBounds function reads the map's size as 0x0, and therefore does not do anything. To change the viewport while the map is hidden, set the map to visibility: hidden, thereby ensuring the map div has an actual size. For vector maps, this method sets the map's tilt and heading to their default zero values.\n * @method fitBounds\n * @param {(LatLngBounds|LatLngBoundsLiteral)} bounds - Bounds to show. (types: `LatLngBounds|LatLngBoundsLiteral`)\n * @param {(number|Padding)} [padding] - optional Padding in pixels. The bounds will be fit in the part of the map that remains after padding is removed. A number value will yield the same padding on all 4 sides. Supply 0 here to make a fitBounds idempotent on the result of getBounds. (types: `number|Padding`)\n * @returns {void}\n * @public\n */\n fitBounds(...args) {\n if (this.$mapObject) {\n this.$mapObject.fitBounds(...args);\n }\n },\n /**\n * Get the recycle key of the map\n * @method getRecycleKey\n * @param {undefined}\n * @returns {void}\n * @public\n */\n getRecycleKey() {\n return this && this.options && this.options.recycle\n ? this.recyclePrefix + this.options.recycle\n : this.recyclePrefix;\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$mapObject && this.$mapObject.setMap) {\n this.$mapObject.setMap(null);\n }\n },\n };\n\n const isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\n function createInjector(context) {\n return (id, style) => addStyle(id, style);\n }\n\n let HEAD;\n const styles = {};\n\n function addStyle(id, css) {\n const group = isOldIE ? css.media || 'default' : id;\n const style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n let code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n const index = style.ids.size - 1;\n const textNode = document.createTextNode(code);\n const nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n }\n\n /* script */\n const __vue_script__$6 = script$6;\n\n /* template */\n var __vue_render__$2 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vue-map-container\"},[_c('div',{ref:\"vue-map\",staticClass:\"vue-map\"}),_vm._v(\" \"),_c('div',{staticClass:\"vue-map-hidden\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_vm._t(\"visible\")],2)};\n var __vue_staticRenderFns__$2 = [];\n\n /* style */\n const __vue_inject_styles__$6 = function (inject) {\n if (!inject) return\n inject(\"data-v-58f81a38_0\", { source: \".vue-map-container{position:relative}.vue-map-container .vue-map{left:0;right:0;top:0;bottom:0;position:absolute}.vue-map-hidden{display:none}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__$6 = undefined;\n /* module identifier */\n const __vue_module_identifier__$6 = undefined;\n /* functional template */\n const __vue_is_functional_template__$6 = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$6 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },\n __vue_inject_styles__$6,\n __vue_script__$6,\n __vue_scope_id__$6,\n __vue_is_functional_template__$6,\n __vue_module_identifier__$6,\n false,\n createInjector,\n undefined,\n undefined\n );\n\n /**\n * Marker component\n * @displayName Marker\n * @see [source code](/guide/marker.html#source-code)\n * @see [Official documentation](https://developers.google.com/maps/documentation/javascript/markers)\n * @see [Official reference](https://developers.google.com/maps/documentation/javascript/reference/marker)\n */\n var script$5 = {\n name: 'MarkerIcon',\n mixins: [mapElementMixin],\n inject: {\n $clusterPromise: {\n default: null,\n },\n },\n provide() {\n const events = [\n 'click',\n 'rightclick',\n 'dblclick',\n 'drag',\n 'dragstart',\n 'dragend',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n ];\n\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n // TODO: analyze the below line because I think it can be removed\n ...this.options,\n map,\n ...getPropsValues(this, markerMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n if (this.$clusterPromise) {\n finalOptions.map = null;\n }\n\n this.$markerObject = new google.maps.Marker(finalOptions);\n\n bindProps(this, this.$markerObject, markerMappedProps);\n bindEvents(this, this.$markerObject, events);\n\n this.$markerObject.addListener('dragend', () => {\n const newPosition = this.$markerObject.getPosition();\n /**\n * An event to detect when a position changes\n * @property {Object} position Object with lat and lng values, eg: { lat: 10.0, lng: 10.0 }\n */\n this.$emit('update:position', {\n lat: newPosition.lat(),\n lng: newPosition.lng(),\n });\n });\n\n if (this.$clusterPromise) {\n this.$clusterPromise.then((clusterObject) => {\n clusterObject.addMarker(this.$markerObject);\n this.$clusterObject = clusterObject;\n });\n }\n\n return this.$markerObject;\n })\n .catch((error) => {\n throw error;\n });\n\n this.$markerPromise = promise;\n return { $markerPromise: promise };\n },\n props: {\n /**\n * Which animation to play when marker is added to a map.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n animation: {\n type: Number,\n default: undefined,\n },\n /**\n * This property was not found on the Googole Maps documentation, but it was defined in the previous version of this component.\n * Any suggestion is welcome here.\n */\n attribution: {\n type: Object,\n default: undefined,\n },\n /**\n * If true, the marker receives mouse and touch events. Default value is true.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n clickable: {\n type: Boolean,\n default: true,\n },\n /**\n * Mouse cursor type to show on hover.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n cursor: {\n type: String,\n default: undefined,\n },\n /**\n * If true, the marker can be dragged. Default value is false.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n draggable: {\n type: Boolean,\n default: false,\n },\n /**\n * Icon for the foreground. If a string is provided, it is treated as though it were an Icon with the string as url.\n * Its type can be string|Icon|Symbol optional\n * @see [Icon type](https://developers.google.com/maps/documentation/javascript/reference/marker#Icon)\n * @see [Symbol type](https://developers.google.com/maps/documentation/javascript/reference/marker#Symbol)\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n icon: {\n type: [String, Object],\n default: undefined,\n },\n /**\n * Adds a label to the marker. A marker label is a letter or number that appears inside a marker. The label can either be a string, or a MarkerLabel object. If provided and MarkerOptions.title is not provided, an accessibility text (e.g. for use with screen readers) will be added to the marker with the provided label's text. Please note that the label is currently only used for accessibility text for non-optimized markers.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n label: {\n type: [String, Object],\n default: undefined,\n },\n /**\n * A number between 0.0, transparent, and 1.0, opaque.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n opacity: {\n type: Number,\n default: 1,\n },\n /**\n * Extra options passed to this component.\n */\n options: {\n type: Object,\n default: undefined,\n },\n /**\n * This property was not found on the Googole Maps documentation, but it was defined in the previous version of this component.\n * Any suggestion is welcome here.\n */\n place: {\n type: Object,\n default: undefined,\n },\n /**\n * Marker position. The position is required to display the marker and can be provided with Marker.setPosition if not provided at marker construction.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n position: {\n type: Object,\n default: undefined,\n },\n /**\n * Image map region definition used for drag/click.\n * @see [MarkerShape type](https://developers.google.com/maps/documentation/javascript/reference/marker#MarkerShape)\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n shape: {\n type: Object,\n default: undefined,\n },\n /**\n * Rollover text. If provided, an accessibility text (e.g. for use with screen readers) will be added to the marker with the provided value. Please note that the title is currently only used for accessibility text for non-optimized markers.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n title: {\n type: String,\n default: undefined,\n },\n /**\n * If true, the marker is visible.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * All markers are displayed on the map in order of their zIndex, with higher values displaying in front of markers with lower values. By default, markers are displayed according to their vertical position on screen, with lower markers appearing in front of markers further up the screen.\n * @see https://developers.google.com/maps/documentation/javascript/reference/marker\n */\n zIndex: {\n type: Number,\n default: undefined,\n },\n },\n destroyed() {\n if (!this.$markerObject) {\n return;\n }\n\n if (this.$clusterObject) {\n // Repaint will be performed in `updated()` of cluster\n this.$clusterObject.removeMarker(this.$markerObject, true);\n } else if (this.$markerObject && this.$markerObject.setMap) {\n this.$markerObject.setMap(null);\n }\n },\n render(h) {\n if (!this.$slots.default || this.$slots.default.length === 0) {\n return '';\n }\n if (this.$slots.default.length === 1) {\n // So that infowindows can have a marker parent\n return this.$slots.default[0];\n }\n\n /**\n * @slot Default slot of the component.\n */\n return h('div', this.$slots.default);\n },\n };\n\n /* script */\n const __vue_script__$5 = script$5;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$5 = undefined;\n /* scoped */\n const __vue_scope_id__$5 = undefined;\n /* module identifier */\n const __vue_module_identifier__$5 = undefined;\n /* functional template */\n const __vue_is_functional_template__$5 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$5 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$5,\n __vue_script__$5,\n __vue_scope_id__$5,\n __vue_is_functional_template__$5,\n __vue_module_identifier__$5,\n false,\n undefined,\n undefined,\n undefined\n );\n\n //\n\n /**\n * PlaceInput component\n * @deprecated\n * @displayName PlaceInput\n * @see [source code](/guide/place-input.html#source-code)\n * @see [Map Bounds](https://developers.google.com/maps/documentation/javascript/places-autocomplete#set-the-bounds-on-creation-of-the-autocomplete-object)\n */\n var script$4 = {\n name: 'PlaceInput',\n props: {\n /**\n * Map bounds this is an LatLngBounds\n * object builded with\n * @value new google.maps.LatLngBounds(...)\n * @see [Map Bounds](https://developers.google.com/maps/documentation/javascript/places-autocomplete#set-the-bounds-on-creation-of-the-autocomplete-object)\n */\n bounds: {\n type: Object,\n default: undefined,\n },\n /**\n * A default value for the html input\n * @value string\n */\n defaultPlace: {\n type: String,\n default: '',\n },\n /**\n * Restrict the search to a specific country\n * @value `{[key: string]: string}`\n * @see [componentRestrictions](https://developers.google.com/maps/documentation/javascript/places-autocomplete#restrict-the-search-to-a-specific-country)\n */\n componentRestrictions: {\n type: Object,\n default: null,\n },\n /**\n * Map types this is an array of strings\n * @value string[]\n * @see [Map Bounds](https://developers.google.com/maps/documentation/javascript/places-autocomplete#set-the-bounds-on-creation-of-the-autocomplete-object)\n */\n types: {\n type: Array,\n default: undefined,\n },\n /**\n * A placeholder for the html input\n * @value string\n */\n placeholder: {\n required: false,\n type: String,\n default: undefined,\n },\n /**\n * A html class name for the html input\n * @value string\n */\n className: {\n required: false,\n type: String,\n default: undefined,\n },\n /**\n * A label for the html input\n * @value string\n */\n label: {\n required: false,\n type: String,\n default: null,\n },\n /**\n * If true the first element on the list will be selected\n * when you press enter in the html input.\n * @value boolean\n */\n selectFirstOnEnter: {\n require: false,\n type: Boolean,\n default: false,\n },\n },\n created() {\n window.console.warn(\n 'The PlaceInput class is deprecated! Please consider using the Autocomplete input instead, it will be removed in the next major release of this plugin.'\n );\n },\n mounted() {\n const { input } = this.$refs;\n\n // Allow default place to be set\n input.value = this.defaultPlace;\n\n this.$watch('defaultPlace', () => {\n input.value = this.defaultPlace;\n });\n\n this.$gmapApiPromiseLazy().then(() => {\n const options = getPropsValues(this, placeInputMappedProps);\n\n if (this.selectFirstOnEnter) {\n downArrowSimulator(this.$refs.input);\n }\n\n if (typeof google.maps.places.Autocomplete !== 'function') {\n throw new Error(\n \"google.maps.places.Autocomplete is undefined. Did you add 'places' to libraries when loading Google Maps?\"\n );\n }\n\n this.$autoCompleter = new google.maps.places.Autocomplete(\n this.$refs.input,\n options\n );\n\n const {\n placeholder,\n place,\n defaultPlace,\n className,\n label,\n selectFirstOnEnter,\n ...rest\n } = placeInputMappedProps;\n\n bindProps(this, this.$autoCompleter, rest);\n\n this.$autoCompleter.addListener('place_changed', () => {\n /**\n * Place change event\n * @event place_changed\n * @property {object} place `this.$autocomplete.getPlace()`\n * @see [Get place information](https://developers.google.com/maps/documentation/javascript/places-autocomplete#get-place-information)\n */\n this.$emit('place_changed', this.$autoCompleter.getPlace());\n });\n });\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$autoCompleter && this.$autoCompleter.setMap) {\n this.$autoCompleter.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$4 = script$4;\n\n /* template */\n var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',[_c('span',{domProps:{\"textContent\":_vm._s(_vm.label)}}),_vm._v(\" \"),_c('input',{ref:\"input\",class:_vm.className,attrs:{\"type\":\"text\",\"placeholder\":_vm.placeholder}})])};\n var __vue_staticRenderFns__$1 = [];\n\n /* style */\n const __vue_inject_styles__$4 = undefined;\n /* scoped */\n const __vue_scope_id__$4 = undefined;\n /* module identifier */\n const __vue_module_identifier__$4 = undefined;\n /* functional template */\n const __vue_is_functional_template__$4 = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$4 = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },\n __vue_inject_styles__$4,\n __vue_script__$4,\n __vue_scope_id__$4,\n __vue_is_functional_template__$4,\n __vue_module_identifier__$4,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * Polygon component\n * @displayName GmapPolygon\n * @see [source code](/guide/polygon.html#source-code)\n * @see [official docs](https://developers.google.com/maps/documentation/javascript/examples/polygon-arrays?hl=es)\n * @see [official reference](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Polygon)\n */\n var script$3 = {\n name: 'PolygonShape',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n const events = [\n 'click',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragstart',\n 'mousedown',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'rightclick',\n ];\n\n const $polygonPromise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n ...this.options,\n map,\n ...getPropsValues(this, polygonMappedProps),\n };\n const {\n options: extraOptions,\n path: optionPath,\n paths: optionPaths,\n ...finalOptions\n } = initialOptions;\n\n this.$polygonObject = new google.maps.Polygon(finalOptions);\n\n bindProps(this, this.$polygonObject, polygonMappedProps);\n bindEvents(this, this.$polygonObject, events);\n\n let clearEvents = () => {};\n\n // Watch paths, on our own, because we do not want to set either when it is\n // empty\n this.$watch(\n 'paths',\n (paths) => {\n if (paths) {\n clearEvents();\n\n this.$polygonObject.setPaths(paths);\n\n const updatePaths = () => {\n /**\n * An event to detect when a paths changes\n * @property {array} paths `this.$polygonObject.getPaths()` |\n */\n this.$emit('paths_changed', this.$polygonObject.getPaths());\n };\n const eventListeners = [];\n\n const mvcArray = this.$polygonObject.getPaths();\n\n for (let i = 0; i < mvcArray.getLength(); i += 1) {\n const mvcPath = mvcArray.getAt(i);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('insert_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('remove_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('set_at', updatePaths),\n ]);\n }\n\n eventListeners.push([\n mvcArray,\n mvcArray.addListener('insert_at', updatePaths),\n ]);\n eventListeners.push([\n mvcArray,\n mvcArray.addListener('remove_at', updatePaths),\n ]);\n eventListeners.push([\n mvcArray,\n mvcArray.addListener('set_at', updatePaths),\n ]);\n\n // TODO: analyze, we change map to forEach because clearEvents is a void function and the returned array is not used\n clearEvents = () => {\n eventListeners.forEach(([, listenerHandle]) => {\n google.maps.event.removeListener(listenerHandle);\n });\n };\n }\n },\n {\n deep: this.deepWatch,\n immediate: true,\n }\n );\n\n this.$watch(\n 'path',\n (path) => {\n if (path) {\n clearEvents();\n\n this.$polygonObject.setPaths(path);\n\n const mvcPath = this.$polygonObject.getPath();\n const eventListeners = [];\n\n const updatePaths = () => {\n /**\n * ### path_changed (undefined)\n *\n * An event to detect when a path change\n * @property {array} path `this.$polygonObject.getPath()`\n */\n this.$emit('path_changed', this.$polygonObject.getPath());\n };\n\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('insert_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('remove_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('set_at', updatePaths),\n ]);\n\n // TODO: analyze, we change map to forEach because clearEvents is a void function and the returned array is not used\n clearEvents = () => {\n eventListeners.forEach(([, listenerHandle]) => {\n google.maps.event.removeListener(listenerHandle);\n });\n };\n }\n },\n {\n deep: this.deepWatch,\n immediate: true,\n }\n );\n\n return this.$polygonObject;\n })\n .catch((error) => {\n throw error;\n });\n\n this.$polygonPromise = $polygonPromise;\n return { $polygonPromise };\n },\n props: {\n /**\n * If set true the object will be deep watched\n * @value boolean\n */\n deepWatch: {\n type: Boolean,\n default: false,\n },\n /**\n * Indicates whether this Polygon handles mouse events. Defaults to true.\n * @value true, false\n * @see [Polygon draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.clickable)\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n /**\n * Indicates if the polygon is draggable\n * @value true, false\n * @see [Polygon dragable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.draggable)\n */\n draggable: {\n type: Boolean,\n default: false,\n },\n /**\n * Indicates if the polygon is editable\n * @value true, false\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.editable)\n */\n editable: {\n type: Boolean,\n default: false,\n },\n /**\n * The fill color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.fillColor)\n */\n fillColor: {\n type: String,\n default: '',\n },\n /**\n * The fill opacity between 0.0 and 1.0\n * @value 1\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.fillOpacity)\n */\n fillOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.strokeColor)\n */\n strokeColor: {\n type: String,\n default: '',\n },\n /**\n * The stroke opacity between 0.0 and 1.0.\n * @value 1\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.strokeOpacity)\n */\n strokeOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke position. Defaults to CENTER.\n * @value 1\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.strokePosition)\n * @see [StrokePosition constant](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#StrokePosition)\n */\n strokePosition: {\n type: Number,\n default: 0,\n },\n /**\n * The stroke width in pixels.\n * @value 1\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.strokeWeight)\n */\n strokeWeight: {\n type: Number,\n default: 1,\n },\n /**\n * Whether this polyline is visible on the map. Defaults to true.\n * @value 1\n * @see [Polygon editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.visible)\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * More options that you can pass to the component\n * @value boolean\n */\n options: {\n type: Object,\n default: undefined,\n },\n /**\n * Indicates if the polygon is editable\n * @value Array\n * @see [Polygon path](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.path)\n */\n path: {\n type: Array,\n noBind: true,\n default: undefined,\n },\n /**\n * Indicates if the polygon is editable\n * @value Array\n * @see [Polygon paths](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolygonOptions.paths)\n */\n paths: {\n type: Array,\n noBind: true,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$polygonObject && this.$polygonObject.setMap) {\n this.$polygonObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$3 = script$3;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$3 = undefined;\n /* scoped */\n const __vue_scope_id__$3 = undefined;\n /* module identifier */\n const __vue_module_identifier__$3 = undefined;\n /* functional template */\n const __vue_is_functional_template__$3 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$3 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$3,\n __vue_script__$3,\n __vue_scope_id__$3,\n __vue_is_functional_template__$3,\n __vue_module_identifier__$3,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * PolyLine component\n * @displayName GmapPolyline\n * @see [source code](/guide/polyline.html#source-code)\n * @see [official docs](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Polyline)\n * @see [official reference](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Polyline)\n */\n var script$2 = {\n name: 'PolylineShape',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n const events = [\n 'click',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragstart',\n 'mousedown',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'rightclick',\n ];\n\n const promise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n ...this.options,\n map,\n ...getPropsValues(this, polylineMappedProps),\n };\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.$polylineObject = new google.maps.Polyline(finalOptions);\n\n bindProps(this, this.$polylineObject, polylineMappedProps);\n bindEvents(this, this.$polylineObject, events);\n\n let clearEvents = () => {};\n\n this.$watch(\n 'path',\n (path) => {\n if (path) {\n clearEvents();\n\n this.$polylineObject.setPath(path);\n\n const mvcPath = this.$polylineObject.getPath();\n const eventListeners = [];\n\n const updatePaths = () => {\n /**\n * An event to detect when a path change\n * @property {array} path `this.$polygonObject.getPath()`\n */\n this.$emit('path_changed', this.$polylineObject.getPath());\n };\n\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('insert_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('remove_at', updatePaths),\n ]);\n eventListeners.push([\n mvcPath,\n mvcPath.addListener('set_at', updatePaths),\n ]);\n\n clearEvents = () => {\n // TODO: analyze, we change map to forEach because clearEvents is a void function and the returned array is not used\n eventListeners.forEach(([, listenerHandle]) => {\n google.maps.event.removeListener(listenerHandle);\n });\n };\n }\n },\n {\n deep: this.deepWatch,\n immediate: true,\n }\n );\n\n return this.$polylineObject;\n })\n .catch((error) => {\n throw error;\n });\n\n // TODO: analyze the efects of only returns the instance and remove completely the promise\n this.$polylinePromise = promise;\n return { $polylinePromise: promise };\n },\n props: {\n /**\n * If set true the object will be deep watched\n * @value boolean\n */\n deepWatch: {\n type: Boolean,\n default: false,\n },\n /**\n * Indicates whether this Polygon handles mouse events. Defaults to true.\n * @value true, false\n * @see [Polyline draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.clickable)\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n /**\n * Indicates if the polyline is draggable\n * @value true, false\n * @see [Polyline draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.draggable)\n */\n draggable: {\n type: Boolean,\n },\n /**\n * Indicates if the polygon is editable\n * @value true, false\n * @see [Polyline editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.editable)\n */\n editable: {\n type: Boolean,\n },\n /**\n * The stroke color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Polyline editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.strokeColor)\n */\n strokeColor: {\n type: String,\n default: '',\n },\n /**\n * The stroke opacity between 0.0 and 1.0.\n * @value 1\n * @see [Polyline editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.strokeOpacity)\n */\n strokeOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke width in pixels.\n * @value 1\n * @see [Polyline editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.strokeWeight)\n */\n strokeWeight: {\n type: Number,\n default: 1,\n },\n /**\n * Whether this polyline is visible on the map. Defaults to true.\n * @value 1\n * @see [Polyline editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.visible)\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * More options that you can pass to the component\n * @value boolean\n */\n options: {\n type: Object,\n default: undefined,\n },\n /**\n * Indicates if the polygon is editable\n * @value Array\n * @see [Polyline path](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#PolylineOptions.path)\n */\n path: {\n type: Array,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$polylineObject && this.$polylineObject.setMap) {\n this.$polylineObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$2 = script$2;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$2 = undefined;\n /* scoped */\n const __vue_scope_id__$2 = undefined;\n /* module identifier */\n const __vue_module_identifier__$2 = undefined;\n /* functional template */\n const __vue_is_functional_template__$2 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$2 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$2,\n __vue_script__$2,\n __vue_scope_id__$2,\n __vue_is_functional_template__$2,\n __vue_module_identifier__$2,\n false,\n undefined,\n undefined,\n undefined\n );\n\n /**\n * Rectangle component\n * @displayName GmapRectangle\n * @see [source code](/guide/rectangle.html#source-code)\n * @see [official docs](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Rectangle)\n * @see [official reference](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#Rectangle)\n */\n var script$1 = {\n name: 'RectangleShape',\n mixins: [mapElementMixin],\n render() {\n return '';\n },\n provide() {\n const events = [\n 'click',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragstart',\n 'mousedown',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'rightclick',\n ];\n\n const $rectanglePromise = this.$mapPromise\n .then((map) => {\n this.$map = map;\n\n // Initialize the maps with the given options\n const initialOptions = {\n ...this.options,\n map,\n ...getPropsValues(this, rectangleMappedProps),\n };\n const { options: extraOptions, ...finalOptions } = initialOptions;\n\n this.$rectangleObject = new google.maps.Rectangle(finalOptions);\n\n bindProps(this, this.$rectangleObject, rectangleMappedProps);\n bindEvents(this, this.$rectangleObject, events);\n\n return this.$rectangleObject;\n })\n .catch((error) => {\n throw error;\n });\n\n this.$rectanglePromise = $rectanglePromise;\n return { $rectanglePromise };\n },\n props: {\n /**\n * The bounds.\n * @value object\n * @type LatLngBounds|LatLngBoundsLiteral\n * @see [Rectangle bounds](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.bounds)\n */\n bounds: {\n type: Object,\n default: undefined,\n },\n /**\n * Indicates whether this Polygon handles mouse events. Defaults to true.\n * @value true, false\n * @see [Rectangle draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.clickable)\n */\n clickable: {\n type: Boolean,\n default: false,\n },\n /**\n * If set to true, the user can drag this rectangle over the map. Defaults to false.\n * @value boolean\n * @see [Rectangle draggable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.draggable)\n */\n draggable: {\n type: Boolean,\n default: false,\n },\n /**\n * If set to true, the user can edit this rectangle by dragging the control points shown at the corners and on each edge. Defaults to false.\n * @value boolean\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.editable)\n */\n editable: {\n type: Boolean,\n default: false,\n },\n /**\n * The fill color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.fillColor)\n */\n fillColor: {\n type: String,\n default: '',\n },\n /**\n * The fill opacity between 0.0 and 1.0\n * @value 1\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.fillOpacity)\n */\n fillOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke color. All CSS3 colors are supported except for extended named colors.\n * @value '#000'\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.strokeColor)\n */\n strokeColor: {\n type: String,\n default: '',\n },\n /**\n * The stroke opacity between 0.0 and 1.0.\n * @value 1\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.strokeOpacity)\n */\n strokeOpacity: {\n type: Number,\n default: 1,\n },\n /**\n * The stroke position. Defaults to CENTER.\n * @value 1\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.strokePosition)\n * @see [StrokePosition constant](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#StrokePosition)\n */\n strokePosition: {\n type: Number,\n default: 0,\n },\n /**\n * The stroke width in pixels.\n * @value 1\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.strokeWeight)\n */\n strokeWeight: {\n type: Number,\n default: 1,\n },\n /**\n * Whether this polyline is visible on the map. Defaults to true.\n * @value 1\n * @see [Rectangle editable](https://developers.google.com/maps/documentation/javascript/reference/polygon?hl=es#RectangleOptions.visible)\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * More options that you can pass to the component\n * @value boolean\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$rectangleObject && this.$rectangleObject.setMap) {\n this.$rectangleObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__$1 = script$1;\n\n /* template */\n\n /* style */\n const __vue_inject_styles__$1 = undefined;\n /* scoped */\n const __vue_scope_id__$1 = undefined;\n /* module identifier */\n const __vue_module_identifier__$1 = undefined;\n /* functional template */\n const __vue_is_functional_template__$1 = undefined;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__$1 = /*#__PURE__*/normalizeComponent(\n {},\n __vue_inject_styles__$1,\n __vue_script__$1,\n __vue_scope_id__$1,\n __vue_is_functional_template__$1,\n __vue_module_identifier__$1,\n false,\n undefined,\n undefined,\n undefined\n );\n\n //\n\n /**\n * Street View Panorama component\n * @displayName GmapStreetViewPanorama\n * @see [source code](/guide/street-view-panorama.html#source-code)\n * @see [official docs](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanorama)\n */\n var script = {\n name: 'StreetViewPanorama',\n mixins: [mountableMixin],\n provide() {\n this.$panoPromise = new Promise((resolve, reject) => {\n this.$panoPromiseDeferred = { resolve, reject };\n });\n return {\n $panoPromise: this.$panoPromise,\n $mapPromise: this.$panoPromise, // so that we can use it with markers\n };\n },\n props: {\n /**\n * The zoom of the panorama, specified as a number. A zoom of 0 gives a 180 degrees Field of View.\n * @value number\n * @see [StreetViewPanorama zoom](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.zoom)\n */\n zoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The camera orientation, specified as heading and pitch, for the panorama.\n * @value object\n * @type StreetViewPov\n * @see [StreetViewPanorama pov](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.pov)\n */\n pov: {\n type: Object,\n default: undefined,\n },\n /**\n * The LatLng position of the Street View panorama.\n * @value object\n * @type LatLng|LatLngLiteral\n * @see [StreetViewPanorama position](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.position)\n */\n position: {\n type: Object,\n default: undefined,\n },\n /**\n * The panorama ID, which should be set when specifying a custom panorama.\n * @value string\n * @see [StreetViewPanorama pano](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.pano)\n */\n pano: {\n type: String,\n default: undefined,\n },\n /**\n * Whether motion tracking is on or off. Enabled by default when the motion tracking control is present, so that the POV (point of view) follows the orientation of the device. This is primarily applicable to mobile devices. If motionTracking is set to false while motionTrackingControl is enabled, the motion tracking control appears but tracking is off. The user can tap the motion tracking control to toggle this option.\n * @value boolean\n * @see [StreetViewPanorama motionTracking](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.motionTracking)\n */\n motionTracking: {\n type: Boolean,\n },\n /**\n * If true, the Street View panorama is visible on load.\n * @value boolean\n * @see [StreetViewPanorama visible](https://developers.google.com/maps/documentation/javascript/reference/street-view?hl=es#StreetViewPanoramaOptions.visible)\n */\n visible: {\n type: Boolean,\n default: true,\n },\n /**\n * More options that you can pass to the component\n * @value boolean\n */\n options: {\n type: Object,\n default: undefined,\n },\n },\n replace: false, // necessary for css styles\n computed: {\n finalLat() {\n return this.position && typeof this.position.lat === 'function'\n ? this.position.lat()\n : this.position.lat;\n },\n finalLng() {\n return this.position && typeof this.position.lng === 'function'\n ? this.position.lng()\n : this.position.lng;\n },\n finalLatLng() {\n return {\n lat: this.finalLat,\n lng: this.finalLng,\n };\n },\n },\n watch: {\n zoom(zoom) {\n if (this.$panoObject) {\n this.$panoObject.setZoom(zoom);\n }\n },\n },\n mounted() {\n const events = ['closeclick', 'status_changed'];\n\n return this.$gmapApiPromiseLazy()\n .then(() => {\n // getting the DOM element where to create the map\n const element = this.$refs['vue-street-view-pano'];\n\n // creating the map\n const options = {\n ...this.options,\n ...getPropsValues(this, streetViewPanoramaMappedProps),\n };\n\n const { options: extraOptions, ...finalOptions } = options;\n\n this.$panoObject = new google.maps.StreetViewPanorama(\n element,\n finalOptions\n );\n\n // binding properties (two and one way)\n bindProps(this, this.$panoObject, streetViewPanoramaMappedProps);\n // binding events\n bindEvents(this, this.$panoObject, events);\n\n // manually trigger position\n twoWayBindingWrapper((increment, decrement, shouldUpdate) => {\n // Panos take a while to load\n increment();\n\n this.$panoObject.addListener('position_changed', () => {\n if (shouldUpdate()) {\n this.$emit('position_changed', this.$panoObject.getPosition());\n }\n decrement();\n });\n\n const updateCenter = () => {\n increment();\n this.$panoObject.setPosition(this.finalLatLng);\n };\n\n watchPrimitiveProperties(\n this,\n ['finalLat', 'finalLng'],\n updateCenter\n );\n });\n\n this.$panoPromiseDeferred.resolve(this.$panoObject);\n\n return this.$panoPromise;\n })\n .catch((error) => {\n throw error;\n });\n },\n methods: {\n resize() {\n if (this.$panoObject) {\n google.maps.event.trigger(this.$panoObject, 'resize');\n }\n },\n },\n destroyed() {\n // Note: not all Google Maps components support maps\n if (this.$panoObject && this.$panoObject.setMap) {\n this.$panoObject.setMap(null);\n }\n },\n };\n\n /* script */\n const __vue_script__ = script;\n\n /* template */\n var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vue-street-view-pano-container\"},[_c('div',{ref:\"vue-street-view-pano\",staticClass:\"vue-street-view-pano\"}),_vm._v(\" \"),_vm._t(\"default\")],2)};\n var __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = function (inject) {\n if (!inject) return\n inject(\"data-v-32786ad9_0\", { source: \".vue-street-view-pano-container{position:relative}.vue-street-view-pano-container .vue-street-view-pano{left:0;right:0;top:0;bottom:0;position:absolute}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n createInjector,\n undefined,\n undefined\n );\n\n var _excluded = [\"mappedProps\", \"name\", \"ctr\", \"ctrArgs\", \"events\", \"beforeCreate\", \"afterCreate\", \"props\"],\n _excluded2 = [\"options\"];\n /**\n * Custom assert for local validation\n *\n * @param {boolean} v The expression that should return a boolean value, if false the assertion fails\n * @param {string} message Error message to be displayed\n */\n // eslint-disable-next-line no-underscore-dangle -- old style should be analyzed\n\n function _assert(v, message) {\n if (!v) throw new Error(message);\n }\n /**\n * A helper to build your own component for the plugin\n *\n * @param {Object} options\n * @param {Object} options.mappedProps - Definitions of props\n * @param {Object} options.mappedProps.PROP.type - Value type\n * @param {Boolean} options.mappedProps.PROP.twoWay\n * - Whether the prop has a corresponding PROP_changed\n * event\n * @param {Boolean} options.mappedProps.PROP.noBind\n * - If true, do not apply the default bindProps / bindEvents.\n * However it will still be added to the list of component props\n * @param {Object} options.props - Regular Vue-style props.\n * Note: must be in the Object form because it will be\n * merged with the `mappedProps`\n *\n * @param {Object} options.events - Google Maps API events\n * that are not bound to a corresponding prop\n * @param {String} options.name - e.g. `polyline`\n * @param {Function} options.ctr - constructor, e.g.\n * `google.maps.Polyline`. However, since this is not\n * generally available during library load, this becomes\n * a function instead, e.g. () => google.maps.Polyline\n * which will be called only after the API has been loaded\n *\n * default: () => String\n *\n * @param {Function} options.ctrArgs -\n * If the constructor in `ctr` needs to be called with\n * arguments other than a single `options` object, e.g. for\n * GroundOverlay, we call `new GroundOverlay(url, bounds, options)`\n * then pass in a function that returns the argument list as an array\n *\n * default: (MappedProps, OtherVueProps) => Array\n *\n * Otherwise, the constructor will be called with an `options` object,\n * with property and values merged from:\n *\n * 1. the `options` property, if any\n * 2. a `map` property with the Google Maps\n * 3. all the properties passed to the component in `mappedProps`\n * @param {Function} options.beforeCreate -\n * Hook to modify the options passed to the initializer\n *\n * default: (Object) => Any\n *\n * @param {Function} options.afterCreate -\n * Hook called when\n *\n * default: (options.ctr, Object) => Any\n *\n * @returns {Object} A component object that should be exported by default from a Vue component\n */\n\n\n function mapElement(providedOptions) {\n var mappedProps = providedOptions.mappedProps,\n name = providedOptions.name,\n ctr = providedOptions.ctr,\n ctrArgs = providedOptions.ctrArgs,\n events = providedOptions.events,\n beforeCreate = providedOptions.beforeCreate,\n afterCreate = providedOptions.afterCreate,\n props = providedOptions.props,\n rest = _objectWithoutProperties(providedOptions, _excluded);\n\n var promiseName = \"$\".concat(name, \"Promise\");\n var instanceName = \"$\".concat(name, \"Object\");\n\n _assert(!(props instanceof Array), '`props` should be an object, not Array');\n\n return _objectSpread2(_objectSpread2({}, typeof GENERATE_DOC !== 'undefined' ? {\n $vgmOptions: providedOptions\n } : {}), {}, {\n mixins: [mapElementMixin],\n props: _objectSpread2(_objectSpread2({}, props), mappedPropsToVueProps(mappedProps)),\n render: function render() {\n return '';\n },\n provide: function provide() {\n var _this = this;\n\n var promise = this.$mapPromise.then(function (map) {\n // Infowindow needs this to be immediately available\n _this.$map = map; // Initialize the maps with the given options\n\n var initialOptions = _objectSpread2(_objectSpread2({}, _this.options), {}, {\n map: map\n }, getPropsValues(_this, mappedProps)); // don't use delete keyword in order to create a more predictable code for the engine\n\n\n initialOptions.options;\n var finalOptions = _objectWithoutProperties(initialOptions, _excluded2); // delete the extra options\n\n\n var options = finalOptions;\n\n if (beforeCreate) {\n var result = beforeCreate.bind(_this)(options);\n\n if (result instanceof Promise) {\n return result.then(function () {\n return {\n options: options\n };\n });\n }\n }\n\n return {\n options: options\n };\n }).then(function (_ref) {\n var _Function$prototype$b;\n\n var options = _ref.options;\n var ConstructorObject = ctr(); // https://stackoverflow.com/questions/1606797/use-of-apply-with-new-operator-is-this-possible\n\n _this[instanceName] = ctrArgs ? new ((_Function$prototype$b = Function.prototype.bind).call.apply(_Function$prototype$b, [ConstructorObject, null].concat(_toConsumableArray(ctrArgs(options, getPropsValues(_this, props || {}))))))() : new ConstructorObject(options);\n bindProps(_this, _this[instanceName], mappedProps);\n bindEvents(_this, _this[instanceName], events);\n\n if (afterCreate) {\n afterCreate.bind(_this)(_this[instanceName]);\n }\n\n return _this[instanceName];\n });\n this[promiseName] = promise;\n return _defineProperty({}, promiseName, promise);\n },\n destroyed: function destroyed() {\n // Note: not all Google Maps components support maps\n if (this[instanceName] && this[instanceName].setMap) {\n this[instanceName].setMap(null);\n }\n }\n }, rest);\n }\n\n /**\n * This function allow to auto detect an external load of the Google Maps API\n * or load it dynamically from our component.\n *\n * @param {Function} resolveFn the function that indicates to the plugin that Google Maps is loaded\n * @param {Function} customCallback the custom callback to execute when the plugin load. This option will be removed on the next major release\n */\n\n function createCallbackAndChecksIfMapIsLoaded(resolveFn, customCallback) {\n var callbackExecuted = false;\n\n window.GoogleMapsCallback = function () {\n try {\n resolveFn();\n callbackExecuted = true; // TODO: this should be removed on the next major release\n\n if (customCallback) {\n customCallback();\n }\n } catch (error) {\n window.console.error('Error executing the GoogleMapsCallback', error);\n }\n };\n\n var timeoutId = setTimeout(function () {\n var intervalId = setInterval(function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n\n if ((window && window.google && window.google.maps) != null && !callbackExecuted) {\n window.GoogleMapsCallback();\n callbackExecuted = true;\n }\n\n if (callbackExecuted) {\n clearInterval(intervalId);\n intervalId = undefined;\n }\n }, 500);\n }, 1000);\n }\n /**\n * This function is a factory of the promise lazy creator\n * it helps you creating the function that will call the\n * Google Maps API in an async way\n *\n * @param {Function} googleMapsApiInitializer function that initialize the Google Maps API\n * @param {Object} GoogleMapsApi Vue instance that will help to know if the google API object is ready\n * @returns {Function}\n */\n\n\n function getPromiseLazyCreatorFn(googleMapsApiInitializer, GoogleMapsApi) {\n /**\n * The creator of the lazy promise\n *\n * @param {Object|undefined} options=undefined configuration object to initialize the GmapVue plugin\n * @param {boolean} options.dynamicLoad=false load the Google Maps API dynamically, if you set this to `true` the plugin doesn't load the Google Maps API\n * @param {boolean} options.installComponents=true install all components\n * @param {boolean} options.autoBindAllEvents=false auto bind all Google Maps API events\n * @param {Object|undefined} options.load=undefined options to configure the Google Maps API\n * @param {string} options.load.key your Google Maps API key\n * @param {string} options.load.libraries=places the Google Maps libraries that you will use eg: 'places,drawing,visualization'\n * @param {string|undefined} options.load.v=undefined the Google Maps API version, default latest\n * @param {string|undefined} options.load.callback=GoogleMapsCallback This must be ignored if have another callback that you need to run when Google Maps API is ready please use the `customCallback` option.\n * @param {string|undefined} options.load.customCallback=undefined This option was added on v3.0.0 but will be removed in the next major release. If you already have an script tag that loads Google Maps API and you want to use it set you callback in the `customCallback` option and our `GoogleMapsCallback` callback will execute your custom callback at the end; it must attached to the `window` object, is the only requirement.\n */\n return function promiseLazyCreator(options) {\n /**\n * Things to do once the API is loaded\n *\n * @returns {Object} the Google Maps API object\n */\n function onMapsReady() {\n GoogleMapsApi.isReady = true;\n return window.google;\n } // If library should load the API\n\n\n if (options && options.load && options.load.key || options.dynamicLoad) {\n return getLazyValue(function () {\n // This will only be evaluated once\n if (typeof window === 'undefined') {\n // server side -- never resolve this promise\n return new Promise(function () {}).then(onMapsReady);\n }\n\n return new Promise(function (resolve, reject) {\n try {\n createCallbackAndChecksIfMapIsLoaded(resolve, window[options && options.load && options.load.customCallback]);\n\n if (!options.dynamicLoad) {\n googleMapsApiInitializer(options.load, options.loadCn);\n }\n } catch (err) {\n reject(err);\n }\n }).then(onMapsReady);\n });\n } // If library should not handle API, provide\n // end-users with the global `GoogleMapsCallback: () => undefined`\n // when the Google Maps API has been loaded\n\n\n var promise = new Promise(function (resolve) {\n if (typeof window === 'undefined') {\n // Do nothing if run from server-side\n return;\n }\n\n createCallbackAndChecksIfMapIsLoaded(resolve, window[options && options.load && options.load.customCallback]);\n }).then(onMapsReady);\n return getLazyValue(function () {\n return promise;\n });\n };\n }\n\n /**\n * This function returns the initializer function, it is exported\n * in that way because we need to generate a closure to define a\n * private property called `isApiSetUp` to detect if the Google Maps\n * API was initializer in a previous execution.\n * The function that it exports is the function that we use inside\n * of promise-lazy file to initialize the Google Maps API if\n * it is required.\n *\n * @returns {Function} The initializer function\n */\n function createGoogleMapsAPIInitializer() {\n var isApiSetUp = false;\n /**\n * The initializer function, it adds into the head of the page the Google Maps API script tag to loads the library\n *\n * @param {Object|undefined} options=undefined The configuration Object. (@see https://developers.google.com/maps/documentation/javascript/url-params)\n * `libraries`.\n * @param {string} options.key Your Google Maps API key\n * @param {string} options.libraries=places The Google Maps libraries that you will use eg: 'places,drawing,visualization', can be given as an array too (@see https://developers.google.com/maps/documentation/javascript/libraries)\n * @param {string|undefined} options.v=undefined The Google Maps API version, default latest\n * @param {string|undefined} options.callback=GoogleMapsCallback This must be ignored if have another callback that you need to run when Google Maps API is ready please use the `customCallback` option.\n * @param {string|undefined} options.customCallback=undefined This option was added on v3.0.0 but will be removed in the next major release. If you already have an script tag that loads Google Maps API and you want to use it set you callback in the `customCallback` option and our `GoogleMapsCallback` callback will execute your custom callback at the end; it must attached to the `window` object, is the only requirement.\n * @param {boolean} loadCn=false Boolean. If set to true, the map will be loaded from google maps China\n * (@see https://developers.google.com/maps/documentation/javascript/basics#GoogleMapsChina)\n */\n\n var googleMapsAPIInitializer = function googleMapsAPIInitializer(options, loadCn) {\n /**\n * Allow options to be an object.\n * This is to support more esoteric means of loading Google Maps,\n * such as Google for business\n * https://developers.google.com/maps/documentation/javascript/get-api-key#premium-auth\n */\n if (_typeof(options) !== 'object') {\n throw new Error('options should be an object');\n } // Do nothing if run from server-side\n\n\n if (typeof document === 'undefined') {\n return;\n }\n\n var finalOptions = _objectSpread2({}, options);\n\n var libraries = finalOptions.libraries;\n\n if (!isApiSetUp) {\n isApiSetUp = true;\n var baseUrl = typeof loadCn === 'boolean' && loadCn ? 'https://maps.google.cn' : 'https://maps.googleapis.com';\n var googleMapScript = document.createElement('SCRIPT'); // libraries\n\n if (Array.isArray(libraries)) {\n finalOptions.libraries = libraries.join(',');\n }\n\n finalOptions.callback = 'GoogleMapsCallback';\n var query = Object.keys(finalOptions).map(function (key) {\n return \"\".concat(encodeURIComponent(key), \"=\").concat(encodeURIComponent(finalOptions[key]));\n }).join('&');\n var url = \"\".concat(baseUrl, \"/maps/api/js?\").concat(query);\n googleMapScript.setAttribute('src', url);\n googleMapScript.setAttribute('async', '');\n googleMapScript.setAttribute('defer', '');\n document.head.appendChild(googleMapScript);\n } else {\n window.console.info('You already started the loading of google maps');\n }\n };\n\n return googleMapsAPIInitializer;\n }\n\n var googleMapsApiInitializer = createGoogleMapsAPIInitializer();\n\n /**\n * HACK: Cluster should be loaded conditionally\n * However in the web version, it's not possible to write\n * `import 'gmap-vue/src/components/cluster'`, so we need to\n * import it anyway (but we don't have to register it)\n * Therefore we use babel-plugin-transform-inline-environment-variables to\n * set BUILD_DEV to truthy / falsy\n */\n // const Cluster = ((s) => s.default || s)(\n // require('./components/cluster-icon.vue')\n // );\n\n /**\n * @var\n * @type {Object|undefined}\n *\n * An independent Vue instance that helps us to know when the Google Maps API is loaded.\n */\n\n var GoogleMapsApi; // TODO: analyze the possibility of use globalThis here\n\n /**\n * This function helps you to get the Google Maps API\n * when its ready on the window object\n * @function\n */\n\n function getGoogleMapsAPI() {\n return GoogleMapsApi.isReady && window.google;\n }\n /**\n * Export all components and mixins\n * @constant\n * @type {Object} components and mixins object\n * @property {Object} HeatmapLayer - Vue component HeatmapLayer\n * @property {Object} KmlLayer - Vue component KmlLayer\n * @property {Object} Marker - Vue component Marker\n * @property {Object} Polyline - Vue component Polyline\n * @property {Object} Polygon - Vue component Polygon\n * @property {Object} Circle - Vue component Circle\n * @property {Object} Cluster - Vue component Cluster\n * @property {Object} Rectangle - Vue component Rectangle\n * @property {Object} DrawingManager - Vue component DrawingManager\n * @property {Object} InfoWindow - Vue component InfoWindow\n * @property {Object} MapLayer - Vue component MapLayer\n * @property {Object} PlaceInput - Vue component PlaceInput\n * @property {Object} Autocomplete - Vue component Autocomplete\n * @property {Object} StreetViewPanorama - Vue component StreetViewPanorama\n * @property {Object} MapElementMixin - Vue component MapElementMixin\n * @property {Object} MountableMixin - Vue component MountableMixin\n */\n\n\n var components = {\n HeatmapLayer: __vue_component__$9,\n KmlLayer: __vue_component__$7,\n Marker: __vue_component__$5,\n Polyline: __vue_component__$2,\n Polygon: __vue_component__$3,\n Circle: __vue_component__$c,\n Cluster: __vue_component__$b,\n Rectangle: __vue_component__$1,\n DrawingManager: __vue_component__$a,\n InfoWindow: __vue_component__$8,\n MapLayer: __vue_component__$6,\n PlaceInput: __vue_component__$4,\n Autocomplete: __vue_component__$d,\n StreetViewPanorama: __vue_component__,\n MapElementMixin: mapElementMixin,\n MountableMixin: mountableMixin\n };\n /**\n * Export all helpers\n * @constant\n * @type {Object} object containing all helpers\n * @property {Function} initGoogleMapsApi - function to initialize the Google Maps API\n * @property {Function} MapElementFactory - function to initialize the Google Maps API\n */\n\n var helpers = {\n googleMapsApiInitializer: googleMapsApiInitializer,\n MapElementFactory: mapElement\n };\n /**\n * GmapVue install function\n *\n * @param {Object} Vue the vue instance\n * @param {Object|undefined} options=undefined configuration object to initialize the GmapVue plugin\n * @param {boolean} options.dynamicLoad=false load the Google Maps API dynamically, if you set this to `true` the plugin doesn't load the Google Maps API\n * @param {boolean} options.installComponents=true install all components\n * @param {boolean} options.autoBindAllEvents=false auto bind all Google Maps API events\n * @param {Object|undefined} options.load=undefined options to configure the Google Maps API\n * @param {string} options.load.key your Google Maps API key\n * @param {string} options.load.libraries=places the Google Maps libraries that you will use eg: 'places,drawing,visualization'\n * @param {string|undefined} options.load.v=undefined the Google Maps API version, default latest\n * @param {string|undefined} options.load.callback=GoogleMapsCallback This must be ignored if have another callback that you need to run when Google Maps API is ready please use the `customCallback` option.\n * @param {string|undefined} options.load.customCallback=undefined This option was added on v3.0.0 but will be removed in the next major release. If you already have an script tag that loads Google Maps API and you want to use it set you callback in the `customCallback` option and our `GoogleMapsCallback` callback will execute your custom callback at the end; it must attached to the `window` object, is the only requirement.\n */\n\n function gmapVuePluginInstallFn(Vue, options) {\n // see defaults\n var finalOptions = _objectSpread2({\n dynamicLoad: false,\n installComponents: true,\n autoBindAllEvents: false,\n load: {\n libraries: 'places'\n }\n }, options);\n /**\n * Update the global `GoogleMapsApi`. This will allow\n * components to use the `google` global reactively\n * via:\n * import { getGoogleMapsAPI } from 'gmap-vue'\n * export default { computed: { google: getGoogleMapsAPI } }\n */\n\n\n GoogleMapsApi = new Vue({\n data: {\n isReady: false\n }\n });\n var defaultResizeBus = new Vue();\n /**\n * Use a lazy to only load the API when\n * a GMap component is loaded\n *\n * @constant\n * @type {Function} the promise lazy creator function\n */\n\n var promiseLazyCreator = getPromiseLazyCreatorFn(googleMapsApiInitializer, GoogleMapsApi);\n /**\n * The gmapApiPromiseLazy function to can wait until Google Maps API is ready\n *\n * @constant\n * @type {Function}\n */\n\n var gmapApiPromiseLazy = promiseLazyCreator(finalOptions);\n /**\n * Instance properties\n *\n * In every component you have a references to\n * this.$gmapDefaultResizeBus - function to use the default resize bus\n * this.$gmapApiPromiseLazy - function that you can use to wait until Google Maps API is ready\n * this.$gmapOptions - object with the final options passed to Google Maps API to configure it\n */\n\n Vue.mixin({\n created: function created() {\n this.$gmapDefaultResizeBus = defaultResizeBus;\n this.$gmapApiPromiseLazy = gmapApiPromiseLazy;\n this.$gmapOptions = finalOptions;\n }\n });\n /**\n * Static properties\n *\n * These properties are the same references that you can find in the instance\n * but they are static because they are attached to the main Vue object.\n * Vue.$gmapDefaultResizeBus - function to use the default resize bus\n * Vue.$gmapApiPromiseLazy - function that you can use to wait until Google Maps API is ready\n * Vue.$gmapOptions - object with the final options passed to Google Maps API to configure it\n */\n\n Vue.$gmapDefaultResizeBus = defaultResizeBus;\n Vue.$gmapApiPromiseLazy = gmapApiPromiseLazy;\n Vue.$gmapOptions = finalOptions;\n\n if (finalOptions.installComponents) {\n Vue.component('GmapMap', __vue_component__$6);\n Vue.component('GmapMarker', __vue_component__$5);\n Vue.component('GmapInfoWindow', __vue_component__$8);\n Vue.component('GmapHeatmapLayer', __vue_component__$9);\n Vue.component('GmapKmlLayer', __vue_component__$7);\n Vue.component('GmapPolyline', __vue_component__$2);\n Vue.component('GmapPolygon', __vue_component__$3);\n Vue.component('GmapCircle', __vue_component__$c);\n Vue.component('GmapRectangle', __vue_component__$1);\n Vue.component('GmapDrawingManager', __vue_component__$a);\n Vue.component('GmapAutocomplete', __vue_component__$d);\n Vue.component('GmapPlaceInput', __vue_component__$4);\n Vue.component('GmapStreetViewPanorama', __vue_component__);\n }\n }\n /**\n * Export default of the default Vue object for plugins\n * Export for ESM modules\n *\n * @property {Function} install function to install the plugin\n * @see gmapVuePluginInstallFn\n */\n\n var main = {\n install: gmapVuePluginInstallFn\n };\n\n exports.components = components;\n exports[\"default\"] = main;\n exports.getGoogleMapsAPI = getGoogleMapsAPI;\n exports.helpers = helpers;\n exports.install = gmapVuePluginInstallFn;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","(()=>{\"use strict\";var t={792:(t,e,i)=>{i.d(e,{Z:()=>n});var s=i(609),o=i.n(s)()((function(t){return t[1]}));o.push([t.id,':host{--divider-width: 1px;--divider-color: #fff;--divider-shadow: none;--default-handle-width: 50px;--default-handle-color: #fff;--default-handle-opacity: 1;--default-handle-shadow: none;--handle-position-start: 50%;position:relative;display:inline-block;overflow:hidden;line-height:0;direction:ltr}@media screen and (-webkit-min-device-pixel-ratio: 0)and (min-resolution: 0.001dpcm){:host{outline-offset:1px}}:host(:focus){outline:2px solid -webkit-focus-ring-color}::slotted(*){-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.first{position:absolute;left:0;top:0;right:0;line-height:normal;font-size:100%;max-height:100%;height:100%;width:100%;--exposure: 50%;--keyboard-transition-time: 0ms;--default-transition-time: 0ms;--transition-time: var(--default-transition-time)}.first .first-overlay-container{position:relative;clip-path:inset(0 var(--exposure) 0 0);transition:clip-path var(--transition-time);height:100%}.first .first-overlay{overflow:hidden;height:100%}.first.focused{will-change:clip-path}.first.focused .first-overlay-container{will-change:clip-path}.second{position:relative}.handle-container{transform:translateX(50%);position:absolute;top:0;right:var(--exposure);height:100%;transition:right var(--transition-time),bottom var(--transition-time)}.focused .handle-container{will-change:right}.divider{position:absolute;height:100%;width:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.divider:after{content:\" \";display:block;height:100%;border-left-width:var(--divider-width);border-left-style:solid;border-left-color:var(--divider-color);box-shadow:var(--divider-shadow)}.handle{position:absolute;top:var(--handle-position-start);pointer-events:none;box-sizing:border-box;margin-left:1px;transform:translate(calc(-50% - 0.5px), -50%);line-height:0}.default-handle{width:var(--default-handle-width);opacity:var(--default-handle-opacity);transition:all 1s;filter:drop-shadow(var(--default-handle-shadow))}.default-handle path{stroke:var(--default-handle-color)}.vertical .first-overlay-container{clip-path:inset(0 0 var(--exposure) 0)}.vertical .handle-container{transform:translateY(50%);height:auto;top:unset;bottom:var(--exposure);width:100%;left:0;flex-direction:row}.vertical .divider:after{height:1px;width:100%;border-top-width:var(--divider-width);border-top-style:solid;border-top-color:var(--divider-color);border-left:0}.vertical .handle{top:auto;left:var(--handle-position-start);transform:translate(calc(-50% - 0.5px), -50%) rotate(90deg)}',\"\"]);const n=o},609:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=t(e);return e[2]?\"@media \".concat(e[2],\" {\").concat(i,\"}\"):i})).join(\"\")},e.i=function(t,i,s){\"string\"==typeof t&&(t=[[null,t,\"\"]]);var o={};if(s)for(var n=0;n{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t=i(792);const e=\"rendered\",s=(t,e)=>{const i=t.getBoundingClientRect();let s,o;return\"mousedown\"===e.type?(s=e.clientX,o=e.clientY):(s=e.touches[0].clientX,o=e.touches[0].clientY),s>=i.x&&s<=i.x+i.width&&o>=i.y&&o<=i.y+i.height},o=document.createElement(\"template\");o.innerHTML='
    ';const n={ArrowLeft:-1,ArrowRight:1},r=[\"horizontal\",\"vertical\"],a=t=>({x:t.touches[0].pageX,y:t.touches[0].pageY}),d=t=>({x:t.pageX,y:t.pageY});class h extends HTMLElement{constructor(){super(),this.exposure=this.hasAttribute(\"value\")?parseFloat(this.getAttribute(\"value\")):50,this.slideOnHover=!1,this.slideDirection=\"horizontal\",this.keyboard=\"enabled\",this.isMouseDown=!1,this.animationDirection=0,this.isFocused=!1,this.handle=!1,this.onMouseMove=t=>{if(this.isMouseDown||this.slideOnHover){const e=d(t);this.slideToPage(e)}},this.bodyUserSelectStyle=\"\",this.onMouseDown=t=>{if(this.slideOnHover)return;if(this.handle&&!s(this.handleElement,t))return;t.preventDefault(),window.addEventListener(\"mousemove\",this.onMouseMove),window.addEventListener(\"mouseup\",this.onWindowMouseUp),this.isMouseDown=!0,this.enableTransition();const e=d(t);this.slideToPage(e),this.focus(),this.bodyUserSelectStyle=window.document.body.style.userSelect,window.document.body.style.userSelect=\"none\"},this.onWindowMouseUp=()=>{this.isMouseDown=!1,window.document.body.style.userSelect=this.bodyUserSelectStyle,window.removeEventListener(\"mousemove\",this.onMouseMove),window.removeEventListener(\"mouseup\",this.onWindowMouseUp)},this.touchStartPoint=null,this.isTouchComparing=!1,this.hasTouchMoved=!1,this.onTouchStart=t=>{this.handle&&!s(this.handleElement,t)||(this.touchStartPoint=a(t),this.isFocused&&(this.enableTransition(),this.slideToPage(this.touchStartPoint)))},this.onTouchMove=t=>{if(null===this.touchStartPoint)return;const e=a(t);if(this.isTouchComparing)return this.slideToPage(e),t.preventDefault(),!1;if(!this.hasTouchMoved){const i=Math.abs(e.y-this.touchStartPoint.y),s=Math.abs(e.x-this.touchStartPoint.x);if(\"horizontal\"===this.slideDirection&&is)return this.isTouchComparing=!0,this.focus(),this.slideToPage(e),t.preventDefault(),!1;this.hasTouchMoved=!0}},this.onTouchEnd=()=>{this.isTouchComparing=!1,this.hasTouchMoved=!1,this.touchStartPoint=null},this.onBlur=()=>{this.stopSlideAnimation(),this.isFocused=!1,this.firstElement.classList.remove(\"focused\")},this.onFocus=()=>{this.isFocused=!0,this.firstElement.classList.add(\"focused\")},this.onKeyDown=t=>{if(\"disabled\"===this.keyboard)return;const e=n[t.key];this.animationDirection!==e&&void 0!==e&&(this.animationDirection=e,this.startSlideAnimation())},this.onKeyUp=t=>{if(\"disabled\"===this.keyboard)return;const e=n[t.key];void 0!==e&&this.animationDirection===e&&this.stopSlideAnimation()},this.resetDimensions=()=>{this.imageWidth=this.offsetWidth,this.imageHeight=this.offsetHeight};const e=this.attachShadow({mode:\"open\"}),i=document.createElement(\"style\");i.innerHTML=t.Z,this.getAttribute(\"nonce\")&&i.setAttribute(\"nonce\",this.getAttribute(\"nonce\")),e.appendChild(i),e.appendChild(o.content.cloneNode(!0)),this.firstElement=e.getElementById(\"first\"),this.secondElement=e.getElementById(\"second\"),this.handleElement=e.getElementById(\"handle\")}get value(){return this.exposure}set value(t){const e=parseFloat(t);e!==this.exposure&&(this.exposure=e,this.enableTransition(),this.setExposure())}get hover(){return this.slideOnHover}set hover(t){this.slideOnHover=\"false\"!==t.toString().toLowerCase(),this.removeEventListener(\"mousemove\",this.onMouseMove),this.slideOnHover&&this.addEventListener(\"mousemove\",this.onMouseMove)}get direction(){return this.slideDirection}set direction(t){this.slideDirection=t.toString().toLowerCase(),this.slide(0),this.firstElement.classList.remove(...r),r.includes(this.slideDirection)&&this.firstElement.classList.add(this.slideDirection)}static get observedAttributes(){return[\"hover\",\"direction\"]}connectedCallback(){this.hasAttribute(\"tabindex\")||(this.tabIndex=0),this.addEventListener(\"dragstart\",(t=>(t.preventDefault(),!1))),new ResizeObserver(this.resetDimensions).observe(this),this.setExposure(0),this.keyboard=this.hasAttribute(\"keyboard\")&&\"disabled\"===this.getAttribute(\"keyboard\")?\"disabled\":\"enabled\",this.addEventListener(\"keydown\",this.onKeyDown),this.addEventListener(\"keyup\",this.onKeyUp),this.addEventListener(\"focus\",this.onFocus),this.addEventListener(\"blur\",this.onBlur),this.addEventListener(\"touchstart\",this.onTouchStart,{passive:!0}),this.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.addEventListener(\"touchend\",this.onTouchEnd),this.addEventListener(\"mousedown\",this.onMouseDown),this.handle=this.hasAttribute(\"handle\"),this.hover=this.hasAttribute(\"hover\")?this.getAttribute(\"hover\"):this.slideOnHover,this.direction=this.hasAttribute(\"direction\")?this.getAttribute(\"direction\"):this.slideDirection,this.resetDimensions(),this.classList.contains(e)||this.classList.add(e),this.querySelectorAll('[slot=\"before\"], [slot=\"after\"]').length>0&&console.warn(': slot names \"before\" and \"after\" are deprecated and soon won\\'t be supported. Please use slot=\"first\" instead of slot=\"after\", and slot=\"second\" instead of slot=\"before\".')}disconnectedCallback(){this.transitionTimer&&window.clearTimeout(this.transitionTimer)}attributeChangedCallback(t,e,i){\"hover\"===t&&(this.hover=i),\"direction\"===t&&(this.direction=i),\"keyboard\"===t&&(this.keyboard=\"disabled\"===i?\"disabled\":\"enabled\")}setExposure(t=0){var e;this.exposure=(100,(e=this.exposure+t)<0?0:e>100?100:e),this.firstElement.style.setProperty(\"--exposure\",100-this.exposure+\"%\")}slide(t=0){this.setExposure(t);const e=new Event(\"slide\");this.dispatchEvent(e)}slideToPage(t){\"horizontal\"===this.slideDirection&&this.slideToPageX(t.x),\"vertical\"===this.slideDirection&&this.slideToPageY(t.y)}slideToPageX(t){const e=t-this.getBoundingClientRect().left-window.scrollX;this.exposure=e/this.imageWidth*100,this.slide(0)}slideToPageY(t){const e=t-this.getBoundingClientRect().top-window.scrollY;this.exposure=e/this.imageHeight*100,this.slide(0)}enableTransition(){this.firstElement.style.setProperty(\"--transition-time\",\"100ms\"),this.transitionTimer=window.setTimeout((()=>{this.firstElement.style.setProperty(\"--transition-time\",\"var(--default-transition-time)\"),this.transitionTimer=null}),100)}startSlideAnimation(){let t=null,e=this.animationDirection;this.firstElement.style.setProperty(\"--transition-time\",\"var(--keyboard-transition-time)\");const i=s=>{if(0===this.animationDirection||e!==this.animationDirection)return;null===t&&(t=s);const o=(s-t)/16.666666666666668*this.animationDirection;this.slide(o),setTimeout((()=>window.requestAnimationFrame(i)),0),t=s};window.requestAnimationFrame(i)}stopSlideAnimation(){this.animationDirection=0,this.firstElement.style.setProperty(\"--transition-time\",\"var(--default-transition-time)\")}}\"undefined\"!=typeof window&&window.customElements.define(\"img-comparison-slider\",h)})()})();\n//# sourceMappingURL=index.js.map","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window 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,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\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\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\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\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\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\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\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\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\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\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\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\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\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\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\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\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\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\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\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 * 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 defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\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 defineProperty(generator, \"_invoke\", { value: 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 define(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 = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\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 defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(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 methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && 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 if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' 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 define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(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(val) {\n var object = Object(val);\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 typeof module === \"object\" ? module.exports : {}\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, in modern engines\n // we can explicitly access globalThis. In older engines 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 if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import CatalogCategory from './stores/modules/views/catalog/category';\nimport CatalogProduct from './stores/modules/views/catalog/product';\nimport CatalogBundleProduct from './stores/modules/views/catalog/product/bundle';\nimport CatalogGroupedProduct from './stores/modules/views/catalog/product/grouped';\nimport CatalogConfigurableProduct from './stores/modules/views/catalog/product/configurable';\n\nexport {CatalogCategory, CatalogProduct, CatalogBundleProduct, CatalogGroupedProduct, CatalogConfigurableProduct};\n","\nimport {Component, Prop, Vue} from 'vue-property-decorator';\n\n@Component({\n name: 'search-form'\n})\n\nexport default class extends Vue {\n @Prop({default: ''}) readonly initialQuery: string;\n @Prop({default: false}) readonly customSearch: boolean;\n\n private inputQuery: string = '';\n protected autocompleteData: object = {\n products: [],\n categories: [],\n pages: [],\n };\n private _throttle: number;\n private autocompleteLoading: boolean = false;\n private autocompleteRemove: boolean = false;\n private showAutocomplete: boolean = false;\n private defaultPlaceholder: string = '/area/web/default/assets/images/default-placeholder.png';\n\n private async fetchAutocompleteData(): Promise {\n clearTimeout(this._throttle);\n this._throttle = window.setTimeout(async () => {\n this.autocompleteRemove = this.inputQuery.length > 0;\n if (this.inputQuery.length > 1) {\n this.autocompleteLoading = true;\n try {\n const {data} = await this.$solarClient.get(this.customSearch ? '/api/catalog/search/product/full/list' : '/api/catalog/search/autocomplete', {\n timeout: 1800000,\n params: {\n query: this.inputQuery,\n limit: 6,\n }\n });\n\n if (this.customSearch) {\n this.autocompleteData['products'] = data.items;\n this.showAutocomplete = data.items.length > 0;\n } else {\n this.autocompleteData = data.items;\n this.showAutocomplete = data.items['products'].length > 0 || data.items['categories'].length > 0 || data.items['pages'].length > 0;\n }\n } catch (e) {\n console.error(e);\n this.showAutocomplete = false;\n } finally {\n this.autocompleteLoading = false;\n }\n }\n }, 500);\n }\n\n private clearSearchInput(): void {\n this.inputQuery = '';\n this.showAutocomplete = false;\n this.autocompleteRemove = false;\n }\n\n private get locale(): string {\n return this.$config.get('locale');\n }\n\n private imageSrc(product: object): string {\n if ( ! product['default_image']) {\n return this.defaultPlaceholder;\n }\n\n return `${this.$solarCdnBaseUrl}/cdn/resize-extended/rs:fill/w:85/extend:true/background:255:255:255/path/media/catalog/product${product['default_image']['url']}`;\n }\n\n private addProduct(product: object): void {\n this.$store.dispatch('QuickBuy/setProductsToAdd', product);\n }\n\n private get getProductRows(): Array {\n return this.$store.getters['QuickBuy/getProductsToAdd'];\n }\n\n private addProductsToQuickBuy(): void {\n this.$store.dispatch('QuickBuy/setProductRow');\n this.clearSearchInput();\n }\n\n private isSelectedProduct(id: number): boolean {\n return this.getProductRows.some((product: object) => product['entity_id'] === id);\n }\n\n private created(): void {\n this.inputQuery = this.initialQuery;\n }\n}\n","/**\n * Import all polyfills.\n */\nimport 'url-search-params-polyfill';\nimport 'custom-event-polyfill';\n\n/**\n * Import all required libraries.\n */\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport * as VueGoogleMaps from 'gmap-vue';\nimport ServiceContainer from '@flashpointbv/solar-service-container';\nimport VueI18n from 'vue-i18n';\nimport {UICoreSticky, UICoreOffCanvas, UICoreBlazeSlider, UICoreFormValidator} from '@flashpointbv/solar-ui-core';\nimport 'lazysizes';\n\nimport 'img-comparison-slider';\n\nnew UICoreSticky().sticky();\nnew UICoreOffCanvas().offCanvas(true);\nnew UICoreBlazeSlider();\nnew UICoreFormValidator();\n\nVue.use(VueI18n);\nVue.use(Vuex);\n\nVue.use(VueGoogleMaps, {\n load: {\n key: window.Config['google_api_key'],\n libraries: 'places',\n region: window.Locale.substring(0, 2),\n language: window.Locale.substring(0, 2).toLowerCase()\n }\n});\n\n/*\n * Set important environment variables\n */\nEnvironment().set('locale', window.Locale);\nEnvironment().set('locale_short', window.Locale.substr(0, 2).toLowerCase());\nfor (let key in window.Config) Environment().set(key, window.Config[key]);\n\n/*\n* Create store instance and register the store modules\n */\nimport {CatalogCategory, CatalogProduct, CatalogBundleProduct, CatalogGroupedProduct, CatalogConfigurableProduct} from '@flashpointbv/solar-ui-catalog';\nimport {CheckoutAddress, CheckoutGlobal, CheckoutPayment, CheckoutQuote, CheckoutShipping, CheckoutTotals} from './stores/checkout';\n\nimport PreorderIndex from './stores/customer/pre-orders';\nimport Report from './stores/customer/report';\nimport InvoiceCopy from './stores/customer/invoice-copy';\nimport CatalogProductsByBikeCategory from './stores/products-by-bike';\nimport ProductQuickBuy from './stores/product/quick-buy';\nimport GlobalMessages from './stores/messages';\nimport QuickBuy from './stores/customer/quick-buy';\nimport GlobalCustomer from './stores/customer';\n\nconst store = new Vuex.Store({\n strict: false,\n});\n\nstore.registerModule('GlobalMessages', GlobalMessages);\n\nstore.registerModule('CatalogCategory', CatalogCategory);\n\nstore.registerModule('CatalogProductsByBikeCategory', CatalogProductsByBikeCategory);\n\nstore.registerModule('CatalogProduct', CatalogProduct);\nstore.registerModule('CatalogBundleProduct', CatalogBundleProduct);\nstore.registerModule('CatalogGroupedProduct', CatalogGroupedProduct);\nstore.registerModule('CatalogConfigurableProduct', CatalogConfigurableProduct);\n\nstore.registerModule('ProductQuickBuy', ProductQuickBuy);\n\nstore.registerModule('CheckoutQuote', CheckoutQuote);\nstore.registerModule('CheckoutGlobal', CheckoutGlobal);\nstore.registerModule('CheckoutTotals', CheckoutTotals);\nstore.registerModule('CheckoutPayment', CheckoutPayment);\nstore.registerModule('CheckoutAddress', CheckoutAddress);\nstore.registerModule('CheckoutShipping', CheckoutShipping);\n\nstore.registerModule('GlobalCustomer', GlobalCustomer);\nstore.registerModule('PreorderIndex', PreorderIndex);\nstore.registerModule('QuickBuy', QuickBuy);\nstore.registerModule('Report', Report);\nstore.registerModule('InvoiceCopy', InvoiceCopy);\nstore.registerModule('ServiceForm', ServiceForm);\n\n/**\n * Require application scripts.\n */\nrequire('./prototypes');\nrequire('./core');\n\n/**\n * Register Vue components.\n */\n\nServiceContainer().addComponents([\n {key: 'global-messages', concrete: () => import('./components/GlobalMessages.vue')},\n {key: 'off-canvas', concrete: () => import('./components/OffCanvas.vue')},\n {key: 'global-modal', concrete: () => import('./components/GlobalModal.vue')},\n {key: 'autocomplete-form', concrete: require('../../default/js/components/search/AutocompleteForm.vue').default},\n {key: 'newsletter-block', concrete: () => import('./components/NewsletterBlock.vue')},\n {key: 'page-builder-store-locator', concrete: () => import('./components/page-builder/StoreLocator.vue')},\n {key: 'page-builder-hotspot', concrete: () => import('./components/page-builder/Hotspot.vue')},\n {key: 'store-locator', concrete: () => import('./components/physical-store/Locator.vue')},\n {key: 'fullscreen-store-locator', concrete: () => import('./components/page-builder/FullscreenStoreLocator.vue')},\n {key: 'checkout-checkout', concrete: () => import('./components/checkout/Checkout.vue')},\n {key: 'customer-switcher', concrete: () => import('./components/customer/customer-switcher/CustomerSwitcher.vue')},\n {key: 'catalog-product-configuration', concrete: () => import('../../default/js/components/catalog/product/ProductConfiguration.vue')},\n {key: 'catalog-product-attributes', concrete: () => import('../../default/js/components/catalog/product/Attributes.vue')},\n {key: 'catalog-product-price', concrete: () => import('../../default/js/components/catalog/product/ProductPrice.vue')},\n {key: 'catalog-product-simple', concrete: () => import('../../default/js/components/catalog/product/simple/ProductTypeSimple.vue')},\n {key: 'catalog-product-configurable', concrete: () => import('../../default/js/components/catalog/product/configurable/ProductTypeConfigurable.vue')},\n {key: 'catalog-product-configurable-select', concrete: () => import('../../default/js/components/catalog/product/configurable/type/OptionSelect.vue')},\n {key: 'catalog-product-configurable-swatch', concrete: () => import('../../default/js/components/catalog/product/configurable/type/OptionSwatch.vue')},\n {key: 'catalog-product-media', concrete: () => import('../../default/js/components/catalog/product/ProductMedia.vue')},\n {key: 'catalog-product-media-fullscreen', concrete: () => import('../../default/js/components/catalog/product/ProductMediaFullscreen.vue')},\n {key: 'catalog-product-quick-buy', concrete: () => import('../../default/js/components/catalog/product/quick-buy/QuickBuy.vue')},\n {key: 'catalog-product-slider', concrete: () => import('../../default/js/components/catalog/ProductSlider.vue')},\n {key: 'catalog-products-by-bike', concrete: () => import('./components/products-by-bike/ProductsByBike.vue')},\n {key: 'header-cart', concrete: () => import('./components/HeaderCart.vue')},\n {key: 'catalog-product-list-size-select', concrete: () => import('./components/catalog/toolbar/ProductListToolbarSizeSelect.vue')},\n {key: 'catalog-category-view', concrete: () => import('./views/catalog/CatalogCategoryView.vue')},\n {key: 'catalog-search-view', concrete: () => import('./views/catalog/CatalogSearchView.vue')},\n {key: 'catalog-filter-view', concrete: () => import('./views/catalog/CatalogFilterView.vue')},\n {key: 'catalog-product-list', concrete: () => import('./components/catalog/ProductList.vue')},\n {key: 'catalog-product-list-item-swatches', concrete: () => import('./components/catalog/ProductListItemSwatches.vue')},\n {key: 'catalog-product-list-item', concrete: () => import('./components/catalog/ProductListItem.vue')},\n {key: 'catalog-product-list-toolbar', concrete: () => import('./components/catalog/toolbar/ProductListToolbar.vue')},\n {key: 'catalog-product-list-toolbar-paginator', concrete: () => import('./components/catalog/toolbar/ProductListToolbarPaginator.vue')},\n {key: 'catalog-product-list-toolbar-sort-select', concrete: () => import('./components/catalog/toolbar/ProductListToolbarSortSelect.vue')},\n {key: 'catalog-product-list-toolbar-size-select', concrete: () => import('./components/catalog/toolbar/ProductListToolbarSizeSelect.vue')},\n {key: 'catalog-product-list-active-filters', concrete: () => import('./components/catalog/filter/ActiveFilters.vue')},\n {key: 'catalog-product-filter-list', concrete: () => import('./components/catalog/ProductFilterList.vue')},\n {key: 'catalog-product-list-attribute-filter', concrete: () => import('./components/catalog/filter/AttributeFilter.vue')},\n {key: 'catalog-product-list-swatch-filter', concrete: () => import('./components/catalog/filter/SwatchFilter.vue')},\n {key: 'catalog-product-list-price-filter', concrete: () => import('./components/catalog/filter/PriceFilter.vue')},\n\n // Customer portals\n {key: 'customer-downloads', concrete: () => import('./components/customer/downloads/Downloads.vue')},\n {key: 'customer-pre-orders-overview', concrete: () => import('./components/customer/pre-orders/OrderOverview.vue')},\n {key: 'customer-pre-orders-preorder', concrete: () => import('./components/customer/pre-orders/OrderPreorder.vue')},\n {key: 'customer-pre-orders-category', concrete: () => import('./components/customer/pre-orders/OrderPreorderCategory.vue')},\n {key: 'customer-pre-orders-category-action', concrete: () => import('./components/customer/pre-orders/OrderPreorderCategoryAction.vue')},\n {key: 'customer-pre-orders-category-color', concrete: () => import('./components/customer/pre-orders/OrderPreorderCategoryColor.vue')},\n {key: 'customer-pre-orders-bulk', concrete: () => import('./components/customer/pre-orders/OrderPreorderBulk.vue')},\n {key: 'quick-buy-customer-cart', concrete: () => import('./components/customer/quick-buy/QuickBuyCustomerCart.vue')},\n {key: 'quick-buy-product-import', concrete: () => import('./components/customer/quick-buy/QuickBuyProductsImport.vue')},\n {key: 'quick-buy-search-results', concrete: () => import('./components/customer/quick-buy/QuickBuySearchResults.vue')},\n {key: 'report-choice', concrete: () => import('./components/customer/report/ReportChoice.vue'),},\n {key: 'report-dashboard', concrete: () => import('./components/customer/report/ReportDashboard.vue'),},\n {key: 'invoice-date-selection', concrete: () => import('./components/customer/copy-invoice/InvoiceDateSelection.vue')},\n {key: 'invoice-type-selection', concrete: () => import('./components/customer/copy-invoice/InvoiceTypeSelection.vue')},\n {key: 'invoice-result-list', concrete: () => import('./components/customer/copy-invoice/InvoiceResultList.vue')},\n {key: 'service-dashboard', concrete: () => import('./components/customer/service/ServiceDashboard.vue')},\n\n // Cart\n {key: 'checkout-cart-order-comment', concrete: () => import('./components/checkout/cart/OrderComment.vue')},\n {key: 'checkout-cart-quote-item-comment', concrete: () => import('./components/checkout/cart/QuoteItemComment.vue')},\n {key: 'checkout-cart-terms-and-conditions', concrete: () => import('./components/checkout/cart/TermsAndConditions.vue')},\n]);\n\nimport {localize} from 'vee-validate';\nimport vee_nl_NL from 'vee-validate/dist/locale/nl.json';\nimport vee_en_GB from 'vee-validate/dist/locale/en.json';\nimport vee_de_DE from 'vee-validate/dist/locale/de.json';\nimport vee_fr_FR from 'vee-validate/dist/locale/fr.json';\nimport vee_it_IT from 'vee-validate/dist/locale/it.json';\nimport vee_pt_PT from 'vee-validate/dist/locale/pt_PT.json';\nimport vee_es_ES from 'vee-validate/dist/locale/es.json';\nimport vee_pl_PL from 'vee-validate/dist/locale/pl.json';\nimport vee_ko_KO from 'vee-validate/dist/locale/ko.json';\n\nlocalize({vee_en_GB, vee_nl_NL, vee_de_DE, vee_fr_FR, vee_it_IT, vee_pt_PT, vee_es_ES, vee_pl_PL, vee_ko_KO});\nlocalize(`vee_${window.Locale === 'nl_BE' ? 'nl_NL' : window.Locale}`);\n\n/**\n * Swiper\n */\nimport Swiper from 'swiper';\nimport {Pagination, Navigation, EffectCoverflow} from 'swiper/modules';\nimport 'swiper/css/bundle';\nimport ServiceForm from \"./stores/customer/service\";\n\n/**\n * Intersection Observer\n */\nimport {intersectionObserverHelper} from './shared/helpers/intersection-observer';\nimport Environment from '@flashpointbv/solar-ui-environment';\nimport {setupFullPage} from \"./ui/fullpage\";\n\nwindow.intersectionObserverHelper = intersectionObserverHelper;\n\n\nSwiper.use([\n Pagination,\n Navigation,\n EffectCoverflow\n]);\n\nwindow.Swiper = Swiper;\nwindow.Navigation = Navigation;\nwindow.Pagination = Pagination;\n\n\n\nlet messages = {};\nmessages[window.Locale] = window.Translations;\n\nconst i18n = new VueI18n({\n locale: window.Locale,\n fallbackLocale: 'nl_NL',\n formatFallbackMessages: true,\n silentTranslationWarn: true,\n messages\n});\n\nnew Vue({\n store,\n i18n,\n components: ServiceContainer().getComponents(),\n data: {\n csrfToken: window.csrfToken\n },\n async created() {\n if (Environment().get('can_use_quote_switcher')) {\n this.$store.commit('GlobalCustomer/SET_SELECTED_CUSTOMER', {});\n }\n\n this.$eventBus.$on('item-rendered', () => {\n const catalogCategoryProductPlaceholders = document.querySelector('.category__placeholder');\n if (catalogCategoryProductPlaceholders) {\n (catalogCategoryProductPlaceholders as HTMLElement).style.display = 'none';\n }\n });\n }\n}).$mount('#solar-app');\n\nsetupFullPage();\n","import MobileDetect from '../../default/js/shared/helpers/mobile-detect';\n\nconst mobileDetect = new MobileDetect();\n\nwindow.addEventListener('load', () => {\n // Footer accordion\n const footerLinks = document.querySelectorAll('.footer__links');\n if (footerLinks) {\n footerLinks.forEach(el => {\n if(el.firstChild) {\n el.firstChild.addEventListener('click', function () {\n el.classList.toggle('opened');\n });\n }\n });\n }\n});\n\nwindow.addEventListener('load', () => {\n if (mobileDetect.mobile()) {\n const menuItems = document.querySelectorAll('.--menu .menu > ul > li');\n\n menuItems.forEach((item) => {\n item.firstElementChild.addEventListener('click', (e) => {\n if (item.classList.contains('--has-children')) {\n e.preventDefault();\n item.classList.toggle('--active');\n }\n });\n });\n\n const topMenu = document.getElementsByClassName('top__menu');\n if (topMenu.length > 0) {\n topMenu[0].firstElementChild.addEventListener('click', (e) => {\n topMenu[0].querySelector('.language__dropdown .language__dropdown').classList.toggle('--active');\n });\n }\n }\n});\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport MobileDetect from './shared/helpers/mobile-detect';\nimport {HttpClientFactory} from '@flashpointbv/solar-ui-http-client';\nimport Environment from '@flashpointbv/solar-ui-environment';\nimport {AxiosInstance} from 'axios';\nimport {appSessionStorage} from './shared/services';\nimport {EnvironmentContainer} from '@flashpointbv/solar-ui-environment/dist/EnvironmentContainer';\n\ndeclare module 'vue/types/vue' {\n interface Vue {\n $mobileDetect: MobileDetect\n $mageClient: AxiosInstance,\n $solarClient: AxiosInstance,\n $eventBus: Vue,\n $config: EnvironmentContainer,\n $solarCdnBaseUrl: string,\n $baseUrl: string\n }\n}\n\ndeclare module 'vuex/types' {\n interface Store {\n $mageClient: AxiosInstance,\n $solarClient: AxiosInstance,\n $config: EnvironmentContainer,\n $solarCdnBaseUrl: string,\n $baseUrl: string\n }\n}\n\nconst convertPrice = (value: number, locale: string = null, currency: string = 'EUR'): string => {\n return value.toLocaleString(\n window.Locale.replace('_', '-'),\n {style: 'currency', currency: currency}\n ).replace(',00', ',-');\n};\n\n/**\n * Price format prototype\n */\nNumber.prototype['priceFormat'] = function (locale = null, currency: string = 'EUR'): string {\n return convertPrice(this, locale, currency);\n};\n\n/**\n * Price format prototype\n */\nString.prototype['priceFormat'] = function (locale = null, currency: string = 'EUR'): string {\n return convertPrice(parseFloat(this), locale, currency);\n};\n\n/**\n * Stripslashes prototype\n */\nString.prototype['stripslashes'] = function (): string {\n return this.replace(/\\\\(.)/mg, \"$1\");\n};\n\n/**\n * Check for mobile devices prototype\n */\nVue.prototype.$mobileDetect = new MobileDetect();\n\n/**\n * Inject event bus\n */\nVue.prototype.$eventBus = new Vue;\n\n/**\n * Set clients on both Vue & Vuex\n */\nlet commonMageHeaders = {};\n\nif (appSessionStorage.getItem('auth_token')) {\n commonMageHeaders['Authorization'] = `Bearer ${appSessionStorage.getItem('auth_token')}`;\n}\n\nconst mageClient = HttpClientFactory.makeInstance({\n timeout: 30000,\n baseURL: Environment().get('mage_api_base_url'),\n headers: {\n common: commonMageHeaders\n },\n withCredentials: true\n});\n\nexport const solarClient: AxiosInstance = HttpClientFactory.makeInstance({\n timeout: 30000,\n headers: {\n common: {\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-TOKEN': document.head.querySelector('meta[name=\"csrf-token\"]')['content'] || '',\n 'X-STORE-ID': Environment().get('active_store_id')\n },\n },\n withCredentials: true\n});\n\nVue.prototype.$mageClient = mageClient;\nVue.prototype.$solarClient = solarClient;\nVue.prototype.$config = Environment();\nVue.prototype.$solarCdnBaseUrl = window.Config['solar_cdn_base_url'] || '';\nVue.prototype.$baseUrl = window.Config['base_url'] || '';\n\nVuex.Store.prototype['$mageClient'] = mageClient;\nVuex.Store.prototype['$solarClient'] = solarClient;\nVuex.Store.prototype['$config'] = Environment();\nVuex.Store.prototype['$solarCdnBaseUrl'] = window.Config['solar_cdn_base_url'] || '';\nVuex.Store.prototype['$baseUrl'] = window.Config['base_url'] || '';\n\nwindow.MobileDetect = new MobileDetect();\n","export class IntersectionObserverHelper {\n static config: object = {\n root: null,\n rootMargin: '0px',\n threshold: 0\n };\n\n /**\n * Initialize the IntersectionObserver\n *\n * @param config\n * @param observeTargets\n */\n public initIntersectionObserver(config?: object, observeTargets?: NodeListOf): void {\n if (config) {\n IntersectionObserverHelper.config = {\n ...IntersectionObserverHelper.config,\n ...config\n };\n }\n\n const observer: IntersectionObserver = new IntersectionObserver(this.itemObserverHandler, IntersectionObserverHelper.config);\n const observeTargetList: NodeListOf = observeTargets || document.getElementById('list-observable').querySelectorAll('*[data-observe]');\n\n for (let i: number = 0; i < observeTargetList.length; i++) {\n observer.observe(observeTargetList[i]);\n }\n }\n\n /**\n * IntersectionObserver callback\n *\n * @param entries\n * @param observer\n * @protected\n */\n protected itemObserverHandler(entries: IntersectionObserverEntry[], observer: IntersectionObserver): void {\n entries.map((entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting) {\n entry.target.classList.add('--in-view');\n } else {\n entry.target.classList.remove('--in-view');\n }\n });\n }\n\n /**\n * Initialize the IntersectionObserver for the page builder\n */\n public initIntersectionObserverForPageBuilder(): void {\n this.initIntersectionObserver({\n threshold: 0.3\n });\n }\n}\n\nconst intersectionObserverHelper: IntersectionObserverHelper = new IntersectionObserverHelper();\n\nexport {intersectionObserverHelper};\n","export default class MobileDetect {\n public mobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n }\n}\n","import 'regenerator-runtime/runtime';\n\nimport CheckoutGlobal from './stores/global';\nimport CheckoutCheckout from './stores/global';\nimport CheckoutTotals from './stores/totals';\nimport CheckoutPayment from './stores/payment';\nimport CheckoutShipping from './stores/shipping';\nimport CheckoutAddress from './stores/address';\nimport CheckoutQuote from './stores/quote';\n\nexport { CheckoutGlobal, CheckoutCheckout, CheckoutTotals, CheckoutPayment, CheckoutShipping, CheckoutAddress, CheckoutQuote };\n","export class AppStorage {\n protected storage: Storage;\n\n constructor(storage) {\n this.storage = storage || window.localStorage;\n\n if (!this.isSupported()) {\n throw new Error('Storage is not supported by browser!');\n }\n }\n\n setItem(key, value) {\n if ('undefined' !== typeof value) {\n this.storage.setItem(key, JSON.stringify(value));\n }\n }\n\n getItem(key, defaultValue) {\n const value = this.storage.getItem(key);\n\n if ('undefined' !== typeof value) {\n if (null === value) {\n return 'undefined' !== typeof defaultValue ? defaultValue : null;\n }\n return JSON.parse(this.storage.getItem(key));\n }\n\n this.storage.removeItem(key);\n return null;\n }\n\n removeItem(key) {\n this.storage.removeItem(key);\n }\n\n clear() {\n this.storage.clear();\n }\n\n isSupported() {\n let supported = true;\n\n if (!this.storage) {\n supported = false;\n }\n\n return supported;\n }\n}\n\nconst appLocalStorage: AppStorage = new AppStorage(window.localStorage);\nconst appSessionStorage: AppStorage = new AppStorage(window.sessionStorage);\n\nexport { appLocalStorage, appSessionStorage };\n","export * from './app-storage';\n","import {appLocalStorage} from '../services';\n\nconst initialState = () => {\n return {\n billingAddress: appLocalStorage.getItem('checkout-billing-address', {}),\n shippingAddress: appLocalStorage.getItem('checkout-shipping-address', {}),\n defaultShippingAddress: appLocalStorage.getItem('checkout-default-shipping-address', {}),\n billingIsSameAsShipping: appLocalStorage.getItem('checkout-billing-is-same-as-shipping', true),\n };\n};\n\nconst getters = {\n billingAddress: (state) => (state.billingIsSameAsShipping ? state.shippingAddress : state.billingAddress),\n shippingAddress: (state) => state.shippingAddress,\n defaultShippingAddress: (state) => state.defaultShippingAddress,\n billingIsSameAsShipping: (state) => state.billingIsSameAsShipping,\n getAddressData: (state, getters) => {\n return getters.convertAddressData;\n },\n convertAddressData: (state) => {\n let shippingExtensionAttributes = {};\n let billingExtensionAttributes = {};\n\n if (state.shippingAddress.hasOwnProperty('custom_attributes')) {\n state.shippingAddress['custom_attributes'].forEach(function (attribute) {\n shippingExtensionAttributes[attribute['attribute_code']] = attribute['value'];\n });\n }\n\n let shippingAddress = {\n city: state.shippingAddress['city'] || '',\n company: state.shippingAddress['company'] || '',\n country_id: state.shippingAddress['country_code'] || '',\n customerAddressId: state.shippingAddress['id'] || null,\n firstname: state.shippingAddress['firstname'] || '',\n middlename: state.shippingAddress['middlename'] || '',\n lastname: state.shippingAddress['lastname'] || '',\n postcode: state.shippingAddress['postcode'] || '',\n prefix: state.shippingAddress['prefix'] || '',\n vat_id: state.shippingAddress['vat_id'] || null,\n region: null,\n regionCode: null,\n saveInAddressBook: state.shippingAddress['newAddress'] ? 1 : null,\n street: 'string' === typeof state.shippingAddress['street'] ? state.shippingAddress['street'].split(/\\n/) : state.shippingAddress['street'] || ['', '', ''],\n telephone: state.shippingAddress['telephone'],\n extension_attributes: shippingExtensionAttributes,\n };\n\n if ( ! state.billingIsSameAsShipping && state.billingAddress.hasOwnProperty('custom_attributes')) {\n state.billingAddress['custom_attributes'].forEach(function (attribute) {\n billingExtensionAttributes[attribute['attribute_code']] = attribute['value'];\n });\n }\n\n let billingAddress = state.billingIsSameAsShipping\n ? {...shippingAddress}\n : {\n city: state.billingAddress['city'] || '',\n company: state.billingAddress['company'] || '',\n country_id: state.billingAddress['country_code'] || '',\n customerAddressId: state.billingAddress['id'] || null,\n firstname: state.billingAddress['firstname'] || '',\n middlename: state.billingAddress['middlename'] || '',\n lastname: state.billingAddress['lastname'] || '',\n postcode: state.billingAddress['postcode'] || '',\n prefix: state.billingAddress['prefix'] || '',\n vat_id: state.billingAddress['vat_id'] || null,\n region: null,\n regionCode: null,\n saveInAddressBook: state.billingAddress['newAddress'] ? 1 : null,\n street: 'string' === typeof state.billingAddress['street'] ? state.billingAddress['street'].split(/\\n/) : state.billingAddress['street'] || ['', '', ''],\n telephone: state.billingAddress['telephone'],\n extension_attributes: billingExtensionAttributes,\n };\n\n if (state.billingIsSameAsShipping) {\n billingAddress['saveInAddressBook'] = null;\n }\n\n return [billingAddress, shippingAddress];\n },\n};\n\nconst mutations = {\n SET_BILLING_ADDRESS(state, billingAddress) {\n state.billingAddress = billingAddress;\n appLocalStorage.setItem('checkout-billing-address', state.billingAddress);\n },\n SET_SHIPPING_ADDRESS(state, shippingAddress) {\n state.shippingAddress = shippingAddress;\n appLocalStorage.setItem('checkout-shipping-address', state.shippingAddress);\n },\n SET_DEFAULT_SHIPPING_ADDRESS(state, defaultShippingAddress) {\n state.defaultShippingAddress = defaultShippingAddress;\n appLocalStorage.setItem('checkout-shipping-address-copy', state.defaultShippingAddress);\n },\n SET_BILLING_IS_SAME_AS_SHIPPING(state, status) {\n appLocalStorage.setItem('checkout-billing-is-same-as-shipping', status);\n state.billingIsSameAsShipping = status;\n },\n};\n\nconst actions = {\n setBillingAddress({commit}, payload) {\n commit('SET_BILLING_ADDRESS', payload['address']);\n },\n setShippingAddress({commit}, payload) {\n commit('SET_SHIPPING_ADDRESS', payload['address']);\n },\n setDefaultSippingAddress({commit}, payload) {\n commit('SET_DEFAULT_SHIPPING_ADDRESS', payload);\n },\n toggleBillingIsSameAsShipping({state, commit}) {\n commit('SET_BILLING_IS_SAME_AS_SHIPPING', ! state.billingIsSameAsShipping);\n },\n async postcodeLookup({}, address): Promise {\n const {data} = await this.$solarClient.get(`/api/postcode/lookup/${address['postcode']}/${address['houseNr']}/${address['houseNrAdd'] ?? ''}`);\n\n return data;\n },\n};\n\nconst state = initialState();\n\nconst CheckoutAddress = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutAddress;\n","import { appLocalStorage } from '../services';\n\nconst initialState = () => {\n return {\n currentStep: 1,\n showLoginForm: false,\n customerEmail: appLocalStorage.getItem('checkout-customer-email', null),\n selectedCustomerEmail: appLocalStorage.getItem('checkout-selected-customer-email', null),\n extensionAttributes: appLocalStorage.getItem('checkout-extension-attributes', {}),\n };\n};\n\nconst getters = {\n currentStep: (state) => state.currentStep,\n customerEmail: (state) => state.customerEmail,\n selectedCustomerEmail: (state) => state.selectedCustomerEmail,\n showLoginForm: (state) => state.showLoginForm,\n getExtensionAttributes: (state) => state.extensionAttributes,\n};\n\nconst mutations = {\n TOGGLE_LOGIN_FORM(state) {\n state.showLoginForm = !state.showLoginForm;\n },\n SET_CURRENT_STEP(state, currentStep) {\n state.currentStep = currentStep;\n },\n SET_CUSTOMER_EMAIL(state, customerEmail) {\n state.customerEmail = customerEmail;\n appLocalStorage.setItem('checkout-customer-email', customerEmail);\n },\n SET_SELECTED_CUSTOMER_EMAIL(state, customerEmail) {\n state.selectedCustomerEmail = customerEmail;\n appLocalStorage.setItem('checkout-selected-customer-email', customerEmail);\n },\n ADD_EXTENSION_ATTRIBUTE(state, extensionAttribute) {\n state.extensionAttributes = {\n ...state.extensionAttributes,\n ...extensionAttribute,\n };\n appLocalStorage.setItem('checkout-extension-attributes', state.extensionAttributes);\n },\n REMOVE_EXTENSION_ATTRIBUTE(state, extensionAttribute) {\n if (state.extensionAttributes.hasOwnProperty(extensionAttribute)) {\n delete state.extensionAttributes[extensionAttribute];\n }\n appLocalStorage.setItem('checkout-extension-attributes', state.extensionAttributes);\n },\n CLEAR_EXTENSION_ATTRIBUTE(state) {\n state.extensionAttributes = {};\n appLocalStorage.removeItem('checkout-extension-attributes');\n },\n};\n\nconst actions = {\n async checkCustomerEmail({ state, commit, rootState }, customerEmail) {\n try {\n return await this.$solarClient.post(`/api/checkout/customers/isEmailAvailable`, {\n customerEmail: customerEmail,\n });\n } catch (e) {\n return false;\n }\n },\n async newsletterSubscribe({ state, commit }, newsletterSubscribe) {\n // commit('ADD_EXTENSION_ATTRIBUTE', {\n // newsletter_subscribe: newsletterSubscribe,\n // });\n },\n async gotoStep({ state, commit }, step) {\n commit('SET_CURRENT_STEP', step);\n },\n toggleLoginForm({ commit }) {\n commit('TOGGLE_LOGIN_FORM');\n },\n};\n\nconst state = initialState();\n\nconst CheckoutGlobal = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutGlobal;\n","import Environment from '@flashpointbv/solar-ui-environment';\nimport {appSessionStorage} from '../services';\nimport {AxiosResponse} from \"axios\";\n\nconst initialState = () => {\n return {\n loadingPlaceOrder: false,\n checkoutErrorMessage: null,\n couponCode: appSessionStorage.getItem('checkout-payment-coupon-code', ''),\n couponStatus: null,\n couponMessage: '',\n couponRequestIsLoading: false,\n\n paymentMethods: [{}],\n paymentMethodOptions: {},\n paymentMethodConfig: [{}],\n loadingPaymentData: false,\n selectedPaymentMethod: appSessionStorage.getItem('checkout-payment-selected-method', {}),\n paymentDetails: appSessionStorage.getItem('checkout-payment-details', {}),\n shippingOptions: appSessionStorage.getItem('checkout-shipping-options', {}),\n };\n};\n\nconst getters = {\n couponCode: (state) => state.couponCode,\n couponStatus: (state) => state.couponStatus,\n couponMessage: (state) => state.couponMessage,\n couponRequestIsLoading: (state) => state.couponRequestIsLoading,\n paymentMethods: (state) => state.paymentMethods,\n paymentMethodConfig: (state) => state.paymentMethodConfig,\n loadingPaymentData: (state) => state.loadingPaymentData,\n selectedPaymentMethod: (state) => state.selectedPaymentMethod,\n paymentDetails: (state) => state.paymentDetails,\n shippingOptions: (state) => state.shippingOptions,\n loadingPlaceOrder: (state) => state.loadingPlaceOrder,\n checkoutErrorMessage: (state) => state.checkoutErrorMessage,\n};\n\nconst mutations = {\n SET_COUPON_CODE(state, couponCode) {\n state.couponCode = couponCode;\n appSessionStorage.setItem('checkout-payment-coupon-code', couponCode);\n },\n SET_COUPON_STATUS(state, couponStatus) {\n state.couponStatus = couponStatus;\n },\n SET_PAYMENT_OPTIONS_BY_CODE(state, config) {\n const paymentMethodCode = config.paymentMethodCode;\n if (paymentMethodCode.includes('creditcard') && config.paymentOptions.cards) {\n state.paymentMethodOptions[paymentMethodCode] = config.paymentOptions.cards;\n return\n }\n if (paymentMethodCode.includes('ideal') && config.paymentOptions.banks) {\n state.paymentMethodOptions[paymentMethodCode] = config.paymentOptions.banks;\n return\n }\n // Advanced data not needed right now. If needed, return config.paymentOptions.\n state.paymentMethodOptions[paymentMethodCode] = []\n },\n SET_COUPON_MESSAGE(state, couponMessage) {\n state.couponMessage = couponMessage;\n },\n SET_COUPON_REQUEST_IS_LOADING(state, couponRequestIsLoading) {\n state.couponRequestIsLoading = couponRequestIsLoading;\n },\n SET_PAYMENT_METHODS(state, paymentMethods) {\n state.paymentMethods = paymentMethods;\n },\n SET_PAYMENT_METHOD_CONFIG(state, paymentMethodConfig) {\n state.paymentMethodConfig = paymentMethodConfig;\n },\n SET_LOADING_PAYMENT_DATA(state, loadingPaymentData) {\n state.loadingPaymentData = loadingPaymentData;\n },\n SET_SELECTED_PAYMENT_METHOD(state, selectedPaymentMethod) {\n state.selectedPaymentMethod = selectedPaymentMethod;\n },\n CLEAR_PAYMENT_DETAILS(state) {\n state.paymentDetails = {};\n appSessionStorage.removeItem('checkout-payment-details');\n },\n ADD_PAYMENT_DETAILS(state, paymentDetail) {\n state.paymentDetails = {...state.paymentDetails, ...paymentDetail};\n appSessionStorage.setItem('checkout-payment-details', state.paymentDetails);\n },\n REMOVE_PAYMENT_DETAILS(state, paymentDetail) {\n if (state.paymentDetails.hasOwnProperty(paymentDetail)) {\n delete state.paymentDetails[paymentDetail];\n }\n appSessionStorage.setItem('checkout-payment-details', state.paymentDetails);\n },\n\n CLEAR_SHIPPING_OPTIONS(state) {\n state.shippingOptions = {};\n appSessionStorage.removeItem('checkout-shipping-options');\n },\n ADD_SHIPPING_OPTIONS(state, shippingOption) {\n state.shippingOptions = {...state.shippingOptions, ...shippingOption};\n appSessionStorage.setItem('checkout-shipping-options', state.shippingOptions);\n },\n REMOVE_SHIPPING_OPTIONS(state, shippingOption) {\n if (state.shippingOptions.hasOwnProperty(shippingOption)) {\n delete state[shippingOption];\n }\n appSessionStorage.setItem('checkout-shipping-options', state.shippingOptions);\n },\n SET_LOADING_ORDER(state, payload) {\n state.loadingPlaceOrder = payload;\n },\n SET_CHECKOUT_ERROR_MESSAGE(state, payload) {\n state.checkoutErrorMessage = payload;\n }\n};\n\nconst actions = {\n async setSelectedPaymentMethod({commit, dispatch}, paymentMethod): Promise {\n commit('SET_SELECTED_PAYMENT_METHOD', paymentMethod);\n appSessionStorage.setItem('checkout-payment-selected-method', paymentMethod);\n },\n async setPaymentMethod({state, rootState, rootGetters, dispatch, commit}, paymentMethod) {\n commit('CheckoutTotals/SET_TOTALS_AVAILABLE', false, {root: true});\n let additionalData = {};\n\n if (paymentMethod.code === 'buckaroo_magento2_payperemail') {\n additionalData = {\n 'customer_email': window.Config['selected_customer']['email'] || rootGetters['CheckoutGlobal/customerEmail'],\n 'customer_billingFirstName': rootGetters['CheckoutAddress/billingAddress'].firstname,\n 'customer_billingLastName': rootGetters['CheckoutAddress/billingAddress'].lastname,\n 'customer_gender': 1\n };\n\n commit('ADD_PAYMENT_DETAILS', additionalData);\n }\n\n const [_billingAddress, _shippingAddress] = rootGetters['CheckoutAddress/getAddressData'];\n\n try {\n await this.$solarClient.post(`/api/checkout/set-payment-information`, {\n email: rootGetters['CheckoutGlobal/customerEmail'],\n paymentMethod: {\n method: paymentMethod['code'],\n additional_data: additionalData,\n },\n });\n\n // Collect totals.\n await dispatch('CheckoutTotals/fetchCartTotals', null, {root: true});\n } catch (err) {\n //\n }\n },\n async collectPaymentMethods({rootGetters, commit}): Promise {\n try {\n commit('SET_LOADING_PAYMENT_DATA', true);\n\n const {method_code, carrier_code} = rootGetters['CheckoutShipping/shippingMethod'];\n const [_billingAddress, _shippingAddress] = rootGetters['CheckoutAddress/getAddressData'];\n const _extensionAttributes = rootGetters['CheckoutGlobal/getExtensionAttributes'];\n\n const {data} = await this.$solarClient.post('/api/checkout/payment/collectPaymentMethods', {\n addressInformation: {\n shippingAddress: _shippingAddress,\n shippingMethodCode: method_code,\n shippingCarrierCode: carrier_code,\n extensionAttributes: _extensionAttributes,\n },\n });\n\n commit('SET_PAYMENT_METHODS', data['payment_methods']);\n commit('SET_PAYMENT_METHOD_CONFIG', data['payment_config'] || {});\n if (data['payment_methods'].length > 0) {\n commit('SET_SELECTED_PAYMENT_METHOD', data['payment_methods'][0]);\n }\n commit('CheckoutTotals/SET_CART_TOTALS', data['totals'], {root: true});\n commit('CheckoutTotals/SET_CART_ITEMS', data['totals']['items'], {\n root: true,\n });\n } catch (err) {\n //\n } finally {\n commit('SET_LOADING_PAYMENT_DATA', false);\n }\n },\n async placeOrder({rootGetters, getters, dispatch}): Promise {\n const url: string = getters.selectedPaymentMethod['code'].includes('buckaroo') ? `${Environment().get('solar_origin_url')}/api/buckaroo-payment-information` : `${Environment().get('solar_origin_url')}/api/checkout/payment/placeOrder`;\n const [_billingAddress] = rootGetters['CheckoutAddress/getAddressData'];\n try {\n const response = await this.$mageClient.post(url, {\n cartId: rootGetters['CheckoutGlobal/getQuoteIdentifier'],\n email: rootGetters['CheckoutGlobal/customerEmail'],\n shippingOptions: getters.shippingOptions,\n paymentMethod: {\n method: getters.selectedPaymentMethod['code'],\n additional_data: getters.paymentDetails\n },\n });\n\n return JSON.parse(response.data);\n } catch (e) {\n const { message } = await e.response.data;\n console.log(message);\n window.scrollTo(0, 0);\n }\n },\n placeOrderAction: async function ({dispatch, commit}): Promise {\n try {\n commit('SET_LOADING_ORDER', true);\n\n const data = await dispatch('placeOrder');\n\n if (data.hasOwnProperty('RequiredAction')) {\n window.location.href = data['RequiredAction']['RedirectURL'];\n return;\n }\n\n window.location.replace('/checkout/onepage/success');\n } catch (err) {\n try {\n const response = JSON.parse(err.request.response);\n commit('SET_CHECKOUT_ERROR_MESSAGE', response['exception']['message'] || 'Unable to place order, please try again later.');\n window.scrollTo({top: 0, left: 0, behavior: 'smooth'});\n } catch (e) {\n commit('SET_CHECKOUT_ERROR_MESSAGE', 'Unable to place order, please try again later.');\n window.scrollTo({top: 0, left: 0, behavior: 'smooth'});\n } finally {\n commit('SET_LOADING_ORDER', false);\n }\n }\n },\n async getCouponCode({commit}): Promise {\n try {\n const { data } = await this.$mageClient.get(`${Environment().get('solar_origin_url')}/api/checkout/payment/coupons`);\n\n if (data.length) {\n commit('SET`_COUPON_CODE', data);\n commit('SET_COUPON_STATUS', true);\n return true;\n }\n\n return false;\n } catch (e) {\n return false;\n }\n },\n async applyCouponCode({commit}, couponCode): Promise {\n commit('SET_COUPON_STATUS', false);\n commit('SET_COUPON_REQUEST_IS_LOADING', true);\n try {\n const { data } = await this.$mageClient.put(`${Environment().get('solar_origin_url')}/api/checkout/payment/coupons/${couponCode}`);\n\n if (data['couponStatus']) {\n commit('SET_COUPON_CODE', couponCode);\n commit('SET_COUPON_STATUS', true);\n }\n\n commit('CheckoutTotals/SET_CART_TOTALS', data['totals'], {root: true});\n commit('CheckoutTotals/SET_CART_ITEMS', data['totals']['items'], {\n root: true,\n });\n } catch ({response}) {\n commit('SET_COUPON_MESSAGE', response.data.message);\n commit('SET_COUPON_STATUS', false);\n } finally {\n commit('SET_COUPON_REQUEST_IS_LOADING', false);\n }\n },\n async removeCouponCode({commit}): Promise {\n commit('SET_COUPON_REQUEST_IS_LOADING', true);\n try {\n const { data } = await this.$mageClient.delete(`${Environment().get('solar_origin_url')}/api/checkout/payment/coupons`);\n commit('SET_COUPON_CODE', '');\n commit('SET_COUPON_STATUS', null);\n\n commit('CheckoutTotals/SET_CART_TOTALS', data['totals'], {root: true});\n commit('CheckoutTotals/SET_CART_ITEMS', data['totals']['items'], {\n root: true,\n });\n } catch (e) {\n commit('SET_COUPON_MESSAGE', 'The coupon code could not be cancelled, please try again later.');\n } finally {\n commit('SET_COUPON_REQUEST_IS_LOADING', false);\n }\n },\n async getPaymentMethodOptions({commit}, {paymentMethodCode, paymentProvider}): Promise {\n if (state.paymentMethodConfig['payment']) {\n const config: object = state.paymentMethodConfig['payment'][paymentProvider];\n if ( ! config) {\n return {};\n }\n\n if (paymentMethodCode in config) {\n commit('SET_PAYMENT_OPTIONS_BY_CODE', {\n 'paymentOptions': config[paymentMethodCode],\n 'paymentMethodCode': paymentMethodCode\n });\n }\n\n return state.paymentMethodOptions[paymentMethodCode];\n }\n }\n};\n\nconst state = initialState();\n\nconst CheckoutPayment = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutPayment;\n","import Vue from \"vue\";\n\nconst initialState = () => {\n return {\n isAddToQuoteLoading: false,\n addToQuoteMessage: null,\n afterAddToQuoteMessage: [],\n };\n};\n\nconst mutations = {\n SET_ADD_TO_QUOTE_MESSAGE(state, message) {\n state.addToQuoteMessage = message;\n },\n SET_IS_ADD_TO_QUOTE_LOADING(state, payload: boolean): void {\n Vue.set(state, 'isAddToQuoteLoading', payload);\n },\n SET_AFTER_ADD_TO_QUOTE_MESSAGE(state, message) {\n state.afterAddToQuoteMessage = message;\n },\n};\n\nconst actions = {\n async addProductToQuote({state, commit, dispatch}, productPayload) {\n try {\n const {data} = await this.$solarClient.post(\n '/api/checkout/quote/addProductToQuote',\n {\n cartItem: productPayload,\n },\n {timeout: 25000}\n );\n\n window.dispatchEvent(new CustomEvent('CheckoutAddedProductToCartEvent'));\n } catch (e) {\n console.log(e);\n commit('SET_ADD_TO_QUOTE_MESSAGE', e.response.data.message);\n }\n },\n async addBulkProductsToQuote({commit, dispatch}, payload): Promise {\n let success = false;\n\n commit('SET_IS_ADD_TO_QUOTE_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.post('/api/cart/bulk-product', payload);\n\n if (data) {\n await dispatch('CheckoutTotals/fetchCartTotals', null, {root: true});\n window.dispatchEvent(new CustomEvent('CheckoutAddedProductToCartEvent'));\n\n if (data.hasOwnProperty('extension_attributes') && data.extension_attributes.hasOwnProperty('additional_data')) {\n commit('SET_AFTER_ADD_TO_QUOTE_MESSAGE', JSON.parse(data.extension_attributes['additional_data'] || '[]'));\n }\n\n success = true;\n }\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_ADD_TO_QUOTE_LOADING', false);\n }\n\n return success;\n },\n async importBulkProductsToQuote({commit, dispatch}, payload): Promise {\n let success = false;\n\n commit('SET_IS_ADD_TO_QUOTE_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.post('/api/cart/bulk-import-product', payload);\n\n if (data) {\n await dispatch('CheckoutTotals/fetchCartTotals', null, {root: true});\n window.dispatchEvent(new CustomEvent('CheckoutAddedProductToCartEvent'));\n\n if (data.hasOwnProperty('extension_attributes') && data.extension_attributes.hasOwnProperty('additional_data')) {\n commit('SET_AFTER_ADD_TO_QUOTE_MESSAGE', JSON.parse(data.extension_attributes['additional_data'] || '[]'));\n }\n\n success = true;\n }\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_ADD_TO_QUOTE_LOADING', false);\n }\n\n return success;\n },\n};\n\nconst getters = {\n getIsAddToQuoteLoading: state => state.isAddToQuoteLoading,\n getAfterAddToQuoteMessage: state => state.afterAddToQuoteMessage,\n};\n\nconst state = initialState();\n\nconst CheckoutQuote = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutQuote;\n","import { appSessionStorage } from '../services';\n\nconst initialState = () => {\n return {\n shippingMethod: appSessionStorage.getItem('checkout-shipping-selected-method', {}),\n shippingMethods: [],\n shippingCountries: {},\n loadingShippingMethods: false,\n };\n};\n\nconst getters = {\n shippingMethod: (state) => state.shippingMethod,\n shippingMethods: (state) => state.shippingMethods,\n shippingCountries: (state) => state.shippingCountries,\n loadingShippingMethods: (state) => state.loadingShippingMethods,\n};\n\nconst mutations = {\n SET_SHIPPING_METHOD: (state, payload) => (state.shippingMethod = payload),\n SET_SHIPPING_METHODS: (state, payload) => (state.shippingMethods = payload),\n SET_SHIPPING_COUNTRIES: (state, payload) => (state.shippingCountries = payload),\n SET_LOADING_SHIPPING_METHODS: (state, payload) => (state.loadingShippingMethods = payload),\n};\n\nconst actions = {\n async setShippingMethod({ commit, dispatch }, shippingMethod) {\n commit('SET_SHIPPING_METHOD', shippingMethod);\n appSessionStorage.setItem('checkout-shipping-selected-method', shippingMethod);\n },\n async collectShippingMethods({ rootGetters, commit, dispatch }) {\n try {\n const [_billingAddress, _shippingAddress] = rootGetters['CheckoutAddress/getAddressData'];\n\n commit('SET_LOADING_SHIPPING_METHODS', true);\n const { data } = await this.$solarClient.post('/api/checkout/shipping/collectShippingMethods', {\n address: _shippingAddress,\n });\n\n commit('SET_SHIPPING_METHODS', data);\n\n if (data.length === 1) {\n dispatch('setShippingMethod', data[0]);\n }\n } catch (err) {\n //\n } finally {\n commit('SET_LOADING_SHIPPING_METHODS', false);\n }\n },\n setShippingCountries({ commit }, payload) {\n try {\n commit(\n 'SET_SHIPPING_COUNTRIES',\n payload.sort((a, b) => (a['full_name_locale'] > b['full_name_locale'] && 1) || -1)\n );\n } catch (err) {\n //\n }\n },\n};\n\nconst state = initialState();\n\nconst CheckoutShipping = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutShipping;\n","const initialState = () => {\n return {\n isLoading: false,\n cartTotals: {},\n cartItems: [],\n totalsAvailable: false,\n };\n};\n\nconst getters = {\n cartItems: (state) => state.cartItems,\n cartTotals: (state) => state.cartTotals,\n totalsAvailable: (state) => state.totalsAvailable,\n isLoading: (state) => state.isLoading,\n};\n\nconst mutations = {\n SET_CART_TOTALS(state, payload) {\n state.cartTotals = payload;\n },\n SET_CART_ITEMS(state, payload) {\n state.cartItems = payload;\n },\n SET_TOTALS_AVAILABLE(state, payload) {\n state.totalsAvailable = payload;\n },\n SET_LOADING(state, payload) {\n state.isLoading = payload;\n },\n};\n\nconst actions = {\n async fetchCartTotals({commit}) {\n commit('SET_LOADING', true);\n\n try {\n commit('SET_TOTALS_AVAILABLE', false);\n const {data} = await this.$solarClient.get(`/api/checkout/totals/collect`);\n\n window.dispatchEvent(new CustomEvent('CheckoutSetCartCountEvent', {detail: data['items_qty'] || 0}));\n\n commit('SET_CART_TOTALS', data);\n commit('SET_CART_ITEMS', data['items']);\n } catch (err) {\n //\n } finally {\n commit('SET_TOTALS_AVAILABLE', true);\n commit('SET_LOADING', false);\n }\n },\n};\n\nconst state = initialState();\n\nconst CheckoutTotals = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n\nexport default CheckoutTotals;\n","import Vue from 'vue';\nimport {appSessionStorage} from '../../shared/services';\n\nconst initialState = () => {\n return {\n isLoading: false,\n fetchCustomers: true,\n\n selectedCustomer: null,\n customerList: appSessionStorage.getItem('customerList', []),\n customerListIsSalesForce: appSessionStorage.getItem('customerListIsSalesForce', false),\n }\n};\n\nconst mutations = {\n SET_IS_LOADING(state, payload) {\n Vue.set(state, 'isLoading', payload);\n },\n SET_CUSTOMER_LIST(state, payload) {\n Vue.set(state, 'customerList', payload);\n appSessionStorage.setItem('customerList', payload);\n },\n SET_CUSTOMER_LIST_IS_SALES_FORCE(state, payload) {\n Vue.set(state, 'customerListIsSalesForce', payload);\n appSessionStorage.setItem('customerListIsSalesForce', payload);\n },\n SET_SELECTED_CUSTOMER(state, payload) {\n Vue.set(state, 'selectedCustomer', payload);\n },\n SET_FETCH_CUSTOMERS(state, payload) {\n Vue.set(state, 'fetchCustomers', payload);\n }\n};\n\nconst actions = {\n async fetchCustomerList({state, commit}, salesForceIsEnabled = false) {\n if ( ! state.fetchCustomers) {\n return;\n }\n\n if (salesForceIsEnabled === state.customerListIsSalesForce && state.customerList.length > 0) {\n return;\n }\n\n commit('SET_FETCH_CUSTOMERS', false);\n commit('SET_IS_LOADING', true);\n commit('SET_CUSTOMER_LIST_IS_SALES_FORCE', salesForceIsEnabled);\n\n const params = new URLSearchParams({\n salesForce: salesForceIsEnabled ? 'true' : 'false',\n });\n\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/customer/select/list?${params.toString()}`, {\n timeout: 30000,\n });\n\n if (data) {\n commit('SET_CUSTOMER_LIST', data);\n }\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n async setSelectedCustomer({commit, dispatch}, payload: object): Promise {\n if ( ! payload['fresh']) {\n commit('SET_SELECTED_CUSTOMER', payload['customer'] || null);\n\n if (payload['fetchQuote'] && payload['customer']) {\n await dispatch('CheckoutTotals/fetchCartTotals', null, {root: true});\n }\n\n return;\n }\n\n const fullscreenLoader = document.getElementById('fc-loader');\n fullscreenLoader.style.display = 'flex';\n\n commit('SET_IS_LOADING', true);\n\n const params = new URLSearchParams({\n customer: payload['customer']['id'],\n salesForce: payload['salesForceIsEnabled'] ? 'true' : 'false',\n reporting: payload['salesForceIsEnabled'] ? 'true' : 'false',\n });\n\n try {\n const {data} = await Vue.prototype.$solarClient.get(`api/customer/change-customer?${params.toString()}`);\n\n if (data) {\n commit('SET_SELECTED_CUSTOMER', payload['customer']);\n }\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n\n if (payload['fetchQuote']) {\n await dispatch('CheckoutTotals/fetchCartTotals', null, {root: true});\n }\n\n //TODO: Evaluate if this fixes the issues with the customer session\n // if (payload['needsReload']) {\n window.location.reload();\n // }\n }\n }\n};\n\nconst getters = {\n getIsLoading: state => state.isLoading,\n getCustomerList: state => state.customerList,\n getSelectedCustomer: state => state.selectedCustomer,\n};\n\nconst state = initialState();\n\nconst GlobalCustomer = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default GlobalCustomer;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n isLoading: false,\n showResult: false,\n invoiceType: 'Invoice',\n toDate: new Date(),\n fromDate: null,\n results: [],\n messages: null,\n }\n};\n\nconst mutations = {\n SET_IS_LOADING(state, payload) {\n Vue.set(state, 'isLoading', payload);\n },\n SET_SHOW_RESULT(state, payload) {\n Vue.set(state, 'showResult', payload);\n },\n SET_INVOICE_TYPE_SELECTION(state, payload) {\n Vue.set(state, 'invoiceType', payload);\n },\n SET_FROM_DATE(state, payload) {\n Vue.set(state, 'fromDate', payload);\n },\n SET_TO_DATE(state, payload) {\n Vue.set(state, 'toDate', payload);\n },\n SET_RESULT_LIST(state, payload) {\n Vue.set(state, 'results', payload);\n },\n SET_MESSAGES(state, payload) {\n Vue.set(state, 'messages', payload);\n }\n};\n\nconst actions = {\n setInvoiceType({commit}, payload) {\n commit('SET_INVOICE_TYPE_SELECTION', payload);\n },\n setFromDate({commit}, payload) {\n commit('SET_FROM_DATE', payload);\n },\n setToDate({commit}, payload) {\n commit('SET_TO_DATE', payload);\n },\n resetState({commit}) {\n commit('SET_SHOW_RESULT', false);\n commit('SET_RESULT_LIST', []);\n commit('SET_MESSAGES', null);\n },\n async fetchResults({commit}) {\n commit('SET_IS_LOADING', true);\n\n let addDates = '';\n if (state.toDate && state.fromDate) {\n addDates = `from/${state.fromDate}/to/${state.toDate}`\n }\n\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/invoice-copy/fetch/invoices/${state.invoiceType}/${addDates}`);\n\n if (data) {\n commit('SET_RESULT_LIST', data);\n }\n } catch (error) {\n commit('SET_MESSAGES', {\n type: '--error',\n message: 'portal-invoice-parameters-error'\n });\n console.error(error);\n } finally {\n commit('SET_MESSAGES', null);\n commit('SET_IS_LOADING', false);\n commit('SET_SHOW_RESULT', true);\n }\n },\n async sendCopy({commit}, payload) {\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/invoice-copy/send/${state.invoiceType}/document/${payload}`);\n\n if (data) {\n commit('SET_MESSAGES', {\n type: '--success',\n message: 'portal-invoice-success'\n });\n }\n } catch (error) {\n commit('SET_MESSAGES', {\n type: '--error',\n message: 'portal-invoice-error'\n });\n console.error(error);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n }\n};\n\nconst getters = {\n getIsLoading: state => state.isLoading,\n getShowResult: state => state.showResult,\n getInvoiceType: state => state.invoiceType,\n getFromDate: state => state.fromDate,\n getToDate: state => state.toDate,\n getResultList: state => state.results,\n getMessages: state => state.messages,\n}\n\nconst state = initialState();\n\nconst InvoiceCopy = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default InvoiceCopy;\n","import Vue from 'vue';\nimport PreorderLogs from './logs';\n\nconst initialState = () => {\n return {\n isSalesForce: false,\n\n categoryLoading: false,\n categoryList: {},\n grandTotalPrices: {},\n grandTotalQty: 0,\n bulkProducts: [],\n itemsWithQty: [],\n\n showThumbnails: false,\n showEmptyLines: true,\n showNewCollection: false,\n showPriceActions: false,\n\n activeSubGroups: {},\n\n addToQuoteLoading: [],\n addToQuoteSuccess: [],\n\n modifyQuoteLoading: false,\n\n showModalState: false,\n executeModalActionId: 0,\n modalSettings: {\n id: 0,\n title: '',\n content: '',\n buttons: null\n },\n\n sizes: [],\n }\n};\n\nconst mutations = {\n SET_IS_SALES_FORCE(state: object, payload: boolean): void {\n Vue.set(state, 'isSalesForce', payload);\n },\n SET_CATEGORY_LIST(state: object, payload: object): void {\n Vue.set(state, 'categoryList', payload);\n },\n SET_GRAND_TOTAL_PRICES(state: object, payload: object): void {\n Vue.set(state, 'grandTotalPrices', payload);\n },\n SET_GRAND_TOTAL_QTY(state: object, payload: number): void {\n Vue.set(state, 'grandTotalQty', payload);\n },\n SET_LOADING_STATE(state: object, payload: boolean): void {\n Vue.set(state, 'categoryLoading', payload);\n },\n SET_FILTER_STATE(state: object, payload: object): void {\n Vue.set(state, payload['type'], payload['value']);\n },\n SET_ADD_TO_QUOTE_LOADING(state: object, payload: null | object): void {\n state['addToQuoteLoading'].push(payload);\n },\n REMOVE_ADD_TO_QUOTE_LOADING(state: object, payload: object): void {\n Vue.delete(state['addToQuoteLoading'], state['addToQuoteLoading'].findIndex((o: object): boolean => o['uid'] === payload['uid']));\n },\n SET_ADD_TO_QUOTE_SUCCESS(state: object, payload: object): void {\n state['addToQuoteSuccess'].push(payload);\n },\n REMOVE_ADD_TO_QUOTE_SUCCESS(state: object, payload: object): void {\n Vue.delete(state['addToQuoteSuccess'], state['addToQuoteSuccess'].findIndex((o: object): boolean => o['uid'] === payload['uid']));\n },\n SET_MODIFY_QUOTE_LOADING(state: object, payload: boolean): void {\n Vue.set(state, 'modifyQuoteLoading', payload);\n },\n SET_ITEMS_WITH_QTY(state: object, payload: object): void {\n state['itemsWithQty'].push(payload);\n },\n UPDATE_ITEMS_WITH_QTY(state: object, {payload, index}): void {\n Vue.set(state['itemsWithQty'], index, payload);\n },\n REMOVE_FROM_ITEMS_WITH_QTY(state: object, index: number): void {\n Vue.delete(state['itemsWithQty'], index);\n },\n SET_SHOW_MODAL_STATE(state: object, payload: boolean): void {\n Vue.set(state, 'showModalState', payload);\n },\n SET_SHOW_MODAL_SETTINGS(state: object, payload: object): void {\n Vue.set(state, 'modalSettings', payload);\n },\n SET_MODAL_ACTION_ID(state: object, payload: number): void {\n Vue.set(state, 'executeModalActionId', payload);\n },\n SET_BULK_ACTION(state: object, payload: object): void {\n state['bulkProducts'].push(payload);\n },\n REMOVE_BULK_ACTION(state: object, payload: object) {\n const obj = state['bulkProducts'].find((s: object): boolean => s['sku'] === payload['sku']);\n const index = state['bulkProducts'].indexOf(obj);\n\n Vue.delete(state['bulkProducts'], index);\n },\n REMOVE_BULK_PRODUCTS(state: object) {\n Vue.set(state, 'bulkProducts', []);\n },\n SET_SIZES(state: object, payload: Array): void {\n Vue.set(state, 'sizes', payload);\n }\n};\n\nconst actions = {\n async init({commit}, payload: boolean): Promise {\n commit('SET_IS_SALES_FORCE', payload);\n },\n async setCategoryList({commit, dispatch}, payload: object): Promise {\n try {\n if ( ! payload['skipLoading']) {\n commit('SET_LOADING_STATE', true);\n }\n\n const params = [\n ['q', payload['searchInput'] || ''],\n ['collection', payload['collectionSearchQuery'] || '']\n ].filter(([key, value]) => value !== '');\n\n let searchParams = new URLSearchParams(params).toString();\n searchParams = ('' === searchParams) ? '' : `?${searchParams}`;\n\n const endpoint: string = `/api/preorder/fetch/updated-quote/${payload['quoteId']}/brand/${payload['brandId']}${searchParams}`;\n\n const {data} = await Vue.prototype.$solarClient.get(endpoint);\n\n if (data) {\n commit('SET_CATEGORY_LIST', data);\n\n const totals = await Vue.prototype.$solarClient.get(`/api/preorder/fetch/quote/${payload['quoteId']}`);\n if (totals) {\n await dispatch('getTotalQty', {\n items: totals.data['items'] || [],\n brandId: payload['brandId'],\n });\n commit('SET_GRAND_TOTAL_PRICES', totals.data['totals'] || {});\n }\n }\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_LOADING_STATE', false);\n }\n },\n getTotalQty({commit}, payload): void {\n if ( ! payload['items'].length) {\n return;\n }\n\n const totalQty = payload['items'].filter((item: object) => item['brand_id'] === payload['brandId']).reduce((acc: number, item: object) => acc + item['qty'], 0);\n commit('SET_GRAND_TOTAL_QTY', totalQty);\n },\n async updateQuote({commit, dispatch}, payload: object): Promise {\n try {\n await commit('SET_ADD_TO_QUOTE_LOADING', payload);\n\n const result = await Vue.prototype.$solarClient.post(`/api/preorder/post/quote/${payload['quoteId']}/add/`, payload);\n\n if (result.data) {\n commit('SET_GRAND_TOTAL_PRICES', result.data['totals'] || {});\n\n await dispatch('getTotalQty', {\n items: result.data['items'] || [],\n brandId: payload['brandId'],\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n await commit('SET_ADD_TO_QUOTE_SUCCESS', payload);\n setTimeout((): void => {\n commit('REMOVE_ADD_TO_QUOTE_SUCCESS', payload);\n commit('REMOVE_ADD_TO_QUOTE_LOADING', payload);\n }, 5000);\n }\n },\n setOrUpdateItemsWithQty({state, commit}, payload: object): void {\n const index = state.itemsWithQty.findIndex((o: object) => o['sku'] === payload['sku'] && o['group'] === payload['group']);\n\n if (index === -1) {\n commit('SET_ITEMS_WITH_QTY', payload);\n return;\n }\n\n commit('UPDATE_ITEMS_WITH_QTY', {payload, index});\n },\n removeItemsWithQty({state, commit}, payload: object): void {\n const index = state.itemsWithQty.findIndex((o: object) => o['sku'] === payload['sku'] && o['group'] === payload['group']);\n\n if (index > 0) {\n commit('REMOVE_FROM_ITEMS_WITH_QTY', index);\n }\n },\n async modifyQuote({commit, dispatch}, payload: object): Promise {\n try {\n await commit('SET_MODIFY_QUOTE_LOADING', true);\n\n const result = await Vue.prototype.$solarClient.post(`/api/preorder/post/quote/${payload['quoteId']}`, payload['data']);\n\n if (result.data) {\n if ('undefined' === typeof payload['setCategoryList'] || payload['setCategoryList'] === false) {\n await commit('SET_MODIFY_QUOTE_LOADING', false);\n return;\n }\n\n await dispatch('setCategoryList', {\n brandId: payload['data']?.brandId,\n quoteId: payload['quoteId']\n });\n }\n } catch (e) {\n console.error(e);\n } finally {\n await commit('SET_MODIFY_QUOTE_LOADING', false);\n }\n },\n setBulkProducts({state, commit}, payload: object): void {\n if (payload['value']) {\n commit('SET_BULK_ACTION', payload);\n return;\n }\n\n commit('REMOVE_BULK_ACTION', payload);\n },\n setModalSettings({commit}, payload: object): void {\n commit('SET_SHOW_MODAL_SETTINGS', payload);\n },\n showModal({commit}, payload: boolean): void {\n commit('SET_SHOW_MODAL_STATE', payload);\n },\n executeModalAction({commit}, payload: number): void {\n commit('SET_MODAL_ACTION_ID', payload);\n },\n async setSizes({commit}): Promise {\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/catalog/fetch/sizes`);\n\n if (data) {\n commit('SET_SIZES', data);\n }\n } catch (e) {\n console.error(e);\n }\n }\n};\n\nconst getters = {\n getIsSalesForce: (state: object) => state['isSalesForce'],\n\n getLoading: (state: object) => state['categoryLoading'],\n getCategoryList: (state: object) => state['categoryList'],\n getGrandTotalPrices: (state: object) => state['grandTotalPrices'],\n getGrandTotalQty: (state: object) => state['grandTotalQty'],\n getShowPriceActions: (state: object) => state['showPriceActions'],\n getShowThumbnails: (state: object) => state['showThumbnails'],\n\n getModifyQuoteLoading: (state: object) => state['modifyQuoteLoading'],\n\n getAddToQuoteLoading: (state: object) => state['addToQuoteLoading'],\n getAddToQuoteSuccess: (state: object) => state['addToQuoteSuccess'],\n\n getShowModalState: (state: object) => state['showModalState'],\n getModalSettings: (state: object) => state['modalSettings'],\n\n getBulkProducts: (state: object) => state['bulkProducts'],\n getItemsWithQty: (state: object) => state['itemsWithQty'],\n\n getSizes: (state: object) => state['sizes']\n};\n\nconst state = initialState();\n\nconst PreorderIndex = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters,\n modules: {\n PreorderLogs\n }\n};\n\nexport default PreorderIndex;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n isLoading: false,\n showOffCanvas: false,\n activeQuoteId: null,\n activeQuoteTitle: null,\n activeQuoteSapId: null,\n defaultSortOptions: {},\n\n logEntries: {},\n pageSize: 50,\n }\n};\n\nconst mutations = {\n SET_IS_LOADING(state: object, payload: boolean): void {\n Vue.set(state, 'isLoading', payload);\n },\n SET_SHOW_OFF_CANVAS(state: object, payload: boolean): void {\n Vue.set(state, 'showOffCanvas', payload);\n },\n SET_ACTIVE_QUOTE_ID(state: object, payload: number): void {\n Vue.set(state, 'activeQuoteId', payload);\n },\n SET_ACTIVE_QUOTE_TITLE(state: object, payload: string): void {\n Vue.set(state, 'activeQuoteTitle', payload);\n },\n SET_ACTIVE_QUOTE_SAP_ID(state: object, payload: string): void {\n Vue.set(state, 'activeQuoteSapId', payload);\n },\n SET_LOG_ENTRIES(state: object, payload: object): void {\n Vue.set(state, 'logEntries', payload);\n },\n SET_PAGE_SIZE(state: object, payload: number): void {\n Vue.set(state, 'pageSize', payload);\n },\n};\n\nconst actions = {\n async fetchLogs({state, commit, dispatch}, payload: object): Promise {\n if (payload['quoteId']) {\n await dispatch('resetStates', payload);\n }\n\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await this.$solarClient.get(`/api/preorder/fetch/quote/logs/${state.activeQuoteId}?pageSize=${state.pageSize}`);\n\n if (data) {\n commit('SET_LOG_ENTRIES', data);\n }\n } catch (error) {\n console.error(error);\n } finally {\n commit('SET_IS_LOADING', false);\n commit('SET_SHOW_OFF_CANVAS', true);\n }\n },\n resetStates({commit}, payload: object): void {\n commit('SET_LOG_ENTRIES', []);\n commit('SET_ACTIVE_QUOTE_ID', null);\n commit('SET_ACTIVE_QUOTE_TITLE', null);\n commit('SET_ACTIVE_QUOTE_SAP_ID', null);\n commit('SET_SHOW_OFF_CANVAS', false);\n\n commit('SET_ACTIVE_QUOTE_ID', payload['quoteId']);\n commit('SET_ACTIVE_QUOTE_TITLE', payload['quoteTitle']);\n commit('SET_ACTIVE_QUOTE_SAP_ID', payload['quoteSapId']);\n },\n setPageSize({commit, dispatch}, payload: number): void {\n commit('SET_PAGE_SIZE', payload);\n dispatch('fetchLogs', {});\n }\n};\n\nconst getters = {\n isLoading: (state: object) => state['isLoading'],\n showOffCanvas: (state: object) => state['showOffCanvas'],\n activeQuoteId: (state: object) => state['activeQuoteId'],\n activeQuoteTitle: (state: object) => state['activeQuoteTitle'],\n activeQuoteSapId: (state: object) => state['activeQuoteSapId'],\n logEntries: (state: object) => state['logEntries'],\n pageSize: (state: object) => state['pageSize'],\n};\n\nconst state = initialState();\n\nconst PreorderLogs = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default PreorderLogs;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n isLoading: false,\n productsToAdd: [],\n productRow: [],\n\n quickBuyQuote: [],\n getQuickBuyBulkIds: [],\n bulkSettings: {\n sap_margin: null,\n custom_price: null,\n sap_discount: null,\n delivery_date: null,\n }\n }\n};\n\nconst mutations = {\n SET_PRODUCTS_TO_ADD(state, payload: object): void {\n const productIndex = state.productsToAdd.findIndex(p => p.entity_id === payload['entity_id']);\n const productLength = state.productsToAdd.length;\n\n if (productIndex >= 0) {\n Vue.delete(state.productsToAdd, productIndex);\n return;\n }\n\n Vue.set(state.productsToAdd, productLength, payload);\n },\n SET_PRODUCT_ROW(state): void {\n Vue.set(state, 'productRow', state.productsToAdd);\n Vue.set(state, 'productsToAdd', []);\n },\n RESET_PRODUCT_ROW(state): void {\n Vue.set(state, 'productRow', []);\n Vue.set(state, 'productsToAdd', []);\n },\n SET_QUICK_BUY_BULK_IDS(state, payload: number): void {\n const bulkIds = state.getQuickBuyBulkIds.includes(payload);\n const newBulkIds = bulkIds ? state.getQuickBuyBulkIds.filter(b => b !== payload) : state.getQuickBuyBulkIds.concat(payload);\n\n Vue.set(state, 'getQuickBuyBulkIds', newBulkIds);\n },\n TOGGLE_QUICK_BUY_BULK_IDS(state, payload: Array): void {\n Vue.set(state, 'getQuickBuyBulkIds', payload);\n },\n SET_TOTAL_PRICE(state, payload: number): void {\n Vue.set(state, 'totalPrice', payload);\n }\n};\n\nconst actions = {\n setProductsToAdd({commit}, payload: Array): void {\n commit('SET_PRODUCTS_TO_ADD', payload);\n },\n setProductRow({commit}): void {\n commit('SET_PRODUCT_ROW');\n },\n resetProductRow({commit}): void {\n commit('RESET_PRODUCT_ROW');\n },\n setQuickBuyBulkIds({commit}, payload: number): void {\n commit('SET_QUICK_BUY_BULK_IDS', payload);\n },\n toggleQuickBuyBulkIds({commit}, payload: Array): void {\n commit('TOGGLE_QUICK_BUY_BULK_IDS', payload);\n }\n};\n\nconst getters = {\n getProductsToAdd: state => state.productsToAdd,\n getProductRow: state => state.productRow,\n getQuickBuyQuote: (state, getters, rootState, rootGetters) => rootGetters['CheckoutTotals/cartItems'].map((item: object) => {\n return {\n item_id: item['item_id'],\n model_id: item['extension_attributes']['version_id'] || item['extension_attributes']['model_id'],\n sku: item['extension_attributes']['sku'],\n supplier_code: item['extension_attributes']['supplier_code'],\n size: item['extension_attributes']['size'] || null,\n color: item['extension_attributes']['color'] || null,\n name: item['name'],\n price: item['extension_attributes']['from_price'],\n nett_retail_price: isNaN(item['extension_attributes']['netto_retail_price']) ? parseFloat(item['extension_attributes']['netto_retail_price']) : item['extension_attributes']['netto_retail_price'],\n custom_price: item['base_price'],\n sap_margin: item['extension_attributes']['margin'] || '0.00',\n sap_discount: item['extension_attributes']['discount'] || '0.00',\n delivery_date: item['extension_attributes']['delivery_date'] || null,\n quantity: item['qty'],\n };\n }).reverse(),\n getQuickBuyBulkIds: state => state.getQuickBuyBulkIds,\n getTotalPrice: (state, getters) => getters.getQuickBuyQuote.reduce((acc, item) => acc + (item.custom_price * item.quantity), 0),\n getBulkSettings: state => state.bulkSettings,\n};\n\nconst state = initialState();\n\nconst QuickBuy = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default QuickBuy;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n reportError: null,\n isLoading: false,\n isExporting: false,\n\n selectedReport: null,\n showParameters: false,\n\n selectedReportParameters: null,\n selectedReportResult: null,\n\n selectedReportHasDetails: false,\n selectedReportDetails: {},\n }\n};\n\nconst mutations = {\n SET_REPORT_ERROR(state, payload): void {\n state.reportError = payload;\n },\n SET_IS_LOADING(state, payload): void {\n state.isLoading = payload;\n },\n SET_IS_EXPORTING(state, payload): void {\n state.isExporting = payload;\n },\n SET_SELECTED_REPORT(state, payload): void {\n state.selectedReport = payload;\n },\n SET_SELECTED_REPORT_PARAMETERS(state, payload): void {\n state.selectedReportParameters = payload;\n },\n SET_SHOW_PARAMETERS(state, payload): void {\n state.showParameters = payload;\n },\n SET_SELECTED_REPORT_RESULT(state, payload): void {\n state.selectedReportResult = payload;\n },\n SET_SELECTED_REPORT_HAS_DETAILS(state, payload): void {\n state.selectedReportHasDetails = payload;\n },\n SET_SELECTED_REPORT_DETAILS(state, payload): void {\n Vue.set(state.selectedReportDetails, payload.index, payload.data);\n },\n CLEAR_SELECTED_REPORT_DETAILS(state): void {\n state.selectedReportDetails = {};\n }\n};\n\nconst actions = {\n setSelectedReport({commit, dispatch}, payload): void {\n commit('SET_SELECTED_REPORT', payload);\n commit('SET_SELECTED_REPORT_RESULT', null);\n commit('SET_SHOW_PARAMETERS', true);\n dispatch('getReportParameters', payload.id);\n },\n showParameters({commit}, payload): void {\n commit('SET_SHOW_PARAMETERS', payload);\n },\n async getReportParameters({commit}, payload): Promise {\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/report/fetch/report/${payload}/query/main/parameters`);\n\n if (data) {\n commit('SET_SELECTED_REPORT_PARAMETERS', data);\n commit('SET_SHOW_PARAMETERS', true);\n }\n } catch (e) {\n commit('SET_REPORT_ERROR', e.error);\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n async getReport({commit, getters, dispatch}): Promise {\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.post(`/api/report/fetch/report/${getters.getSelectedReportId}/query/main/result`, {\n payload: getters.getSelectedReportParameters,\n });\n\n commit('CLEAR_SELECTED_REPORT_DETAILS');\n\n if (data) {\n await dispatch('fetchHasDetails');\n\n commit('SET_SELECTED_REPORT_RESULT', data);\n commit('SET_SHOW_PARAMETERS', false);\n }\n } catch (e) {\n commit('SET_REPORT_ERROR', e.error);\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n async fetchHasDetails({commit, getters}): Promise {\n try {\n const {data} = await Vue.prototype.$solarClient.get(`/api/report/fetch/report/${getters.getSelectedReportId}/query/detail/exists`);\n\n commit('SET_SELECTED_REPORT_HAS_DETAILS', data && data.exists);\n } catch (e) {\n console.error(e);\n }\n },\n async exportReport({commit, getters}): Promise {\n commit('SET_IS_LOADING', true);\n commit('SET_IS_EXPORTING', true);\n\n try {\n const response = await Vue.prototype.$solarClient.post(\n `/api/report/fetch/report/${getters.getSelectedReportId}/query/main/export`, {\n payload: getters.getSelectedReportParameters,\n },\n {responseType: 'blob'}\n );\n\n if (response.data) {\n const link = document.createElement('a');\n link.setAttribute('download', response.headers['filename']);\n link.href = window.URL.createObjectURL(new Blob([response.data]));\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n } catch (e) {\n commit('SET_REPORT_ERROR', e.error);\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n commit('SET_IS_EXPORTING', false);\n }\n },\n async setSelectedReportResultDetails({state, commit, getters}, payload): Promise {\n if (state.selectedReportDetails[payload.index]) {\n return false;\n }\n\n let success = false;\n\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.post(`/api/report/fetch/report/${getters.getSelectedReportId}/query/detail/result`, {\n payload: {\n ...getters.getSelectedReportParameters,\n __object__: payload.row,\n },\n });\n\n if (data) {\n commit('SET_SELECTED_REPORT_DETAILS', {\n index: payload.index,\n data: data,\n });\n success = true;\n }\n } catch (e) {\n commit('SET_REPORT_ERROR', e.error);\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n\n return success;\n }\n};\n\nconst getters = {\n getReportError: state => state.reportError,\n getIsLoading: state => state.isLoading,\n getIsExporting: state => state.isExporting,\n getSelectedReport: state => state.selectedReport,\n getSelectedReportParameters: state => state.selectedReportParameters,\n getShowParameters: state => state.showParameters,\n getSelectedReportId: state => state.selectedReport ? state.selectedReport.id : null,\n getSelectedReportResult: state => state.selectedReportResult,\n getHasSelectedReportResult: state => state.selectedReportResult && state.selectedReportResult.headers.length > 0,\n getSelectedReportHasDetails: state => state.selectedReportHasDetails,\n getSelectedReportDetails: state => state.selectedReportDetails,\n};\n\nconst state = initialState();\n\nconst Report = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default Report;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n isLoading: false,\n isExporting: false,\n formSubmitted: false,\n\n searchParams: {\n brand: '',\n barcode: '',\n sku: '',\n ean: '',\n suppliercode: '',\n name: '',\n size: '',\n },\n serviceBrands: [],\n serviceProducts: [],\n hasResults: true,\n\n productsToAdd: [],\n productRow: [],\n\n additionalFields: [],\n\n serviceHasBeenSubmitted: false,\n serviceError: null,\n }\n};\n\nconst mutations = {\n SET_IS_LOADING(state, payload) {\n state.isLoading = payload;\n },\n SET_HAS_RESULTS(state, payload) {\n state.hasResults = payload;\n },\n SET_FORM_SUBMITTED(state, payload) {\n state.formSubmitted = payload;\n },\n\n SET_SERVICE_BRANDS(state, payload) {\n state.serviceBrands = payload;\n },\n SET_SERVICE_PRODUCTS(state, payload) {\n state.serviceProducts = payload;\n },\n SET_SEARCH_PARAMS(state, payload) {\n state.searchParams = payload;\n },\n SET_PRODUCTS_TO_ADD(state, payload: object): void {\n const productIndex = state.productsToAdd.findIndex(p => p.entity_id === payload['entity_id']);\n const productLength = state.productsToAdd.length;\n\n if (payload['qty'] <= 0) {\n Vue.delete(state.productsToAdd, productIndex);\n return;\n }\n\n if (productIndex >= 0) {\n Vue.set(state.productsToAdd, productIndex, payload);\n return;\n }\n\n Vue.set(state.productsToAdd, productLength, payload);\n },\n SET_PRODUCT_ROW(state): void {\n const prepareProductRow = state.productsToAdd.filter(p => ! state.productRow.includes(p));\n const newProductRow = state.productRow.concat(prepareProductRow);\n\n Vue.set(state, 'productRow', newProductRow);\n Vue.set(state, 'productsToAdd', []);\n Vue.set(state, 'serviceProducts', []);\n },\n REMOVE_FROM_PRODUCT_ROW(state, payload: number): void {\n const index = state.productRow.findIndex(p => p['entity_id'] === payload);\n\n if (index >= 0) {\n Vue.delete(state.productRow, index);\n }\n },\n RESET_PRODUCT_ROW(state): void {\n Vue.set(state, 'productRow', []);\n Vue.set(state, 'productsToAdd', []);\n Vue.set(state, 'serviceProducts', []);\n },\n SET_ADDITIONAL_FIELDS(state, payload): void {\n state.additionalFields = payload;\n },\n SET_SERVICE_HAS_BEEN_SUBMITTED(state, payload): void {\n state.serviceHasBeenSubmitted = payload;\n },\n SET_SERVICE_ERROR(state, payload): void {\n state.serviceError = payload;\n },\n SET_IS_EXPORTING(state, payload): void {\n state.isExporting = payload;\n },\n};\n\nconst actions = {\n async fetchBrands({commit}): Promise {\n commit('SET_IS_LOADING', true);\n\n try {\n const {data} = await Vue.prototype.$solarClient.get('/api/service/fetch/brands');\n\n commit('SET_SERVICE_BRANDS', data ? Object.values(data) : []);\n\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n async searchProducts({state, commit}): Promise {\n commit('SET_IS_LOADING', true);\n\n if (state.serviceHasBeenSubmitted) {\n commit('SET_SERVICE_ERROR', null);\n commit('SET_SERVICE_HAS_BEEN_SUBMITTED', false);\n commit('RESET_PRODUCT_ROW', []);\n }\n\n try {\n let payload = {...state.searchParams};\n if (payload.hasOwnProperty('brand') && typeof payload.brand === 'object') {\n payload.brand = payload.brand?.id || '';\n }\n\n const serviceProducts = await Vue.prototype.$solarClient.post('/api/service/fetch/products', payload, {timeout: 50000});\n\n commit('SET_HAS_RESULTS', serviceProducts.data.length);\n commit('SET_SERVICE_PRODUCTS', serviceProducts.data);\n } catch (e) {\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n\n closeSearchResults({commit}): void {\n commit('SET_HAS_RESULTS', true);\n commit('SET_SERVICE_PRODUCTS', []);\n },\n\n async fetchAdditionalFields({state, commit}): Promise {\n let families = state.productRow.reduce((families, item) => item['product']['service_family'] ?\n families.includes(item['product']['service_family']) ? families : families.concat(item['product']['service_family']) :\n families, []);\n\n families = await Promise.all(\n families.map(async (family: string) => {\n const subTypes = await Vue.prototype.$solarClient.get(`/api/service/fetch/subtypes/${family}`);\n const locations = await Vue.prototype.$solarClient.get(`/api/service/fetch/locations/${family}`);\n\n return {\n family: family,\n subTypes: subTypes.data,\n locations: locations.data,\n };\n })\n );\n\n commit('SET_ADDITIONAL_FIELDS', families);\n },\n\n setProductsToAdd({commit}, payload: Array): void {\n commit('SET_PRODUCTS_TO_ADD', payload);\n commit('SET_FORM_SUBMITTED', false);\n },\n setProductRow({commit}): void {\n commit('SET_PRODUCT_ROW');\n },\n removeFromProductRow({commit}, payload: number): void {\n commit('REMOVE_FROM_PRODUCT_ROW', payload);\n },\n resetProductRow({commit}): void {\n commit('RESET_PRODUCT_ROW');\n },\n\n setFormSubmitted({commit}, payload: boolean): void {\n commit('SET_FORM_SUBMITTED', payload);\n },\n\n async submitServiceForm({state, commit}): Promise {\n commit('SET_IS_LOADING', true);\n\n try {\n const result = await Promise.all(\n state.productRow.map(async (product: object) => {\n const response = await Vue.prototype.$solarClient.post('/api/service/post/service-call', product['payload']);\n\n return response.data;\n })\n );\n\n if (result) {\n result.forEach(({data}, index: number) => {\n state.productRow[index]['payload']['service_nr'] = data['service_nr'];\n });\n\n commit('SET_SERVICE_HAS_BEEN_SUBMITTED', true);\n }\n\n } catch (e) {\n commit('SET_SERVICE_ERROR', 'portal-invoice-parameters-error');\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n }\n },\n\n async exportService({state, commit}): Promise {\n commit('SET_IS_LOADING', true);\n commit('SET_IS_EXPORTING', true);\n\n try {\n const response = await Vue.prototype.$solarClient.post(\n '/api/service/post/export', {\n payload: state.productRow.map((product: object) => product['payload']),\n },\n {responseType: 'blob'}\n );\n\n if (response.data) {\n const link = document.createElement('a');\n link.setAttribute('download', response.headers['filename']);\n link.href = window.URL.createObjectURL(new Blob([response.data]));\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n } catch (e) {\n commit('SET_REPORT_ERROR', e.error);\n console.error(e);\n } finally {\n commit('SET_IS_LOADING', false);\n commit('SET_IS_EXPORTING', false);\n }\n },\n};\n\nconst getters = {\n isLoading: state => state.isLoading,\n isExporting: state => state.isExporting,\n formSubmitted: state => state.formSubmitted,\n\n hasResults: state => state.hasResults,\n serviceBrands: state => state.serviceBrands,\n serviceProducts: state => state.serviceProducts,\n searchParams: state => state.searchParams,\n\n getProductsToAdd: state => state.productsToAdd,\n getProductRow: state => state.productRow,\n\n getAdditionalFields: state => state.additionalFields,\n getServiceHasBeenSubmitted: state => state.serviceHasBeenSubmitted,\n getServiceError: state => state.serviceError,\n};\n\nconst state = initialState();\n\nconst ServiceForm = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default ServiceForm;\n","const initialState = () => {\n return {\n messages: [],\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_MESSAGE(state, payload) {\n state['messages'].push(payload);\n },\n REMOVE_MESSAGE(state, payload) {\n state['messages'].splice(state['messages'].indexOf(payload), 1);\n },\n};\n\nconst actions = {\n addGlobalMessage({state, commit}, payload) {\n commit('SET_MESSAGE', payload);\n setTimeout(() => {\n commit('REMOVE_MESSAGE', payload);\n }, 5000);\n },\n};\n\nconst GlobalMessages = {\n namespaced: true,\n state,\n mutations,\n actions,\n};\n\nexport default GlobalMessages;\n","import Vue from 'vue';\n\nconst initialState = () => {\n return {\n isLoading: false,\n productPayload: {},\n };\n};\n\nconst mutations = {\n CHANGE_PRODUCT_QTY(state, payload) {\n if (state.productPayload.hasOwnProperty(payload.entity_id) && payload.qty <= 0) {\n Vue.delete(state.productPayload, payload.entity_id);\n return;\n }\n\n Vue.set(state.productPayload, payload.entity_id, payload);\n },\n SET_IS_LOADING(state, payload) {\n state.isLoading = payload;\n },\n EMPTY_PAYLOAD(state) {\n state.productPayload = {};\n }\n};\n\nconst actions = {\n changeToPayload({commit}, payload) {\n commit('CHANGE_PRODUCT_QTY', payload);\n },\n resetProductPayload({commit}) {\n commit('EMPTY_PAYLOAD');\n }\n};\n\nconst getters = {\n getIsLoading: state => state.isLoading,\n getAddToCart: state => !! Object.keys(state.productPayload).length,\n getProductPayload: state => state.productPayload,\n};\n\nconst state = initialState();\n\nconst ProductQuickBuy = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default ProductQuickBuy;\n","import {queryList} from '../../shared/helpers';\n\n// This is a copy from the node_module default CatalogCategory, to change the api url.\n\nconst initialState = () => {\n return {\n searchedQuery: '',\n categoryId: null,\n apiResponse: null,\n apiResponsePending: false,\n pageQueries: {},\n apiUrl: null,\n initialFilters: {}\n }\n};\n\nconst state = initialState();\n\nconst mutations = {\n SET_CATEGORY_ID(state, categoryId) {\n state.categoryId = categoryId;\n },\n SET_SEARCHED_QUERY(state, searchedQuery) {\n state.searchedQuery = searchedQuery;\n },\n SET_API_RESPONSE_PENDING(state, status) {\n state.apiResponsePending = status;\n },\n SET_API_RESPONSE(state, response) {\n state.apiResponse = response;\n },\n SET_API_URL(state, apiUrl) {\n state.apiUrl = apiUrl;\n },\n SET_INITIAL_FILTERS(state, filters) {\n state.initialFilters = filters;\n }\n};\n\nconst actions = {\n setCategoryId({commit}, categoryId) {\n commit('SET_CATEGORY_ID', categoryId);\n },\n setInitialFilters({commit}, filters) {\n commit('SET_INITIAL_FILTERS', filters);\n },\n setSearchedQuery({commit}, searchedQuery) {\n commit('SET_SEARCHED_QUERY', searchedQuery);\n },\n setApiResponse({commit}, response) {\n commit('SET_API_RESPONSE', response);\n },\n setApiUrl({commit}, response) {\n commit('SET_API_URL', response);\n },\n updatePage({dispatch}, page) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {page: page})\n });\n },\n inCategorySearch({dispatch}, query) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {query: query})\n });\n },\n updatePageSize({dispatch}, pageSize) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {page_size: pageSize, page: 1})\n });\n },\n updatePriceFilter({dispatch}, payload) {\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {minPrice: payload.minPrice, maxPrice: payload.maxPrice, page: 1})\n });\n },\n updatePageSort({dispatch}, sort) {\n let sortString = '';\n Object.entries(sort || {}).forEach(([key, value]) => {\n sortString = `${key} ${value}`\n });\n\n dispatch('fetchCatalog', {\n pageQueries: Object.assign(queryList, {sort: sortString, page: 1})\n });\n },\n filterAction({dispatch, getters}, payload) {\n dispatch('fetchCatalog', {\n filters: getters.filterList.map(filter => {\n if (filter['code'] === payload.filterCode) {\n filter['options'].forEach(option => {\n if (option['label'] === payload.optionLabel) {\n switch (payload.actionType) {\n case 'toggle':\n option['active'] = ! option['active'];\n break;\n case 'activate':\n option['active'] = true;\n break;\n case 'deactivate':\n option['active'] = false;\n break;\n }\n }\n });\n }\n return filter;\n }),\n pageQueries: {\n page: 1\n }\n });\n },\n toggleFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'toggle',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n activateFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'activate',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n deactivateFilter({dispatch}, payload) {\n dispatch('filterAction', {\n actionType: 'deactivate',\n filterCode: payload.filter['code'],\n optionLabel: payload.option['label'],\n });\n },\n singleValueFilter({dispatch, getters}, payload) {\n dispatch('fetchCatalog', {\n filters: getters.filterList.map(filter => {\n if (filter['code'] === payload.filter['code']) {\n filter.options.forEach(o => {\n o['active'] = o['label'] === payload.option['label']\n });\n }\n return filter;\n })\n });\n },\n fetchCatalog({state, commit}, payload) {\n commit('SET_API_RESPONSE_PENDING', true);\n\n const categoryId = payload['categoryId'] || state.categoryId;\n const filters = payload.filters || (state.apiResponse.filters || []);\n\n let params = {};\n let queryParams = Object.assign(state.pageQueries, (payload.pageQueries || {}));\n\n // if ('undefined' === typeof queryParams['page_size']) {\n // queryParams['page_size'] = getters.pageSize(state);\n // }\n\n if ('undefined' === typeof queryParams['query'] && state.searchedQuery !== '') {\n queryParams['query'] = state.searchedQuery;\n }\n\n if ('undefined' === typeof queryParams['query'] && state.searchedQuery !== '') {\n queryParams['query'] = state.searchedQuery;\n }\n\n if (getters.priceFilters(state).length) {\n if ('undefined' === typeof queryParams['minPrice'] && getters.priceFilters(state)[0]['MinimumValue'] > 0) {\n queryParams['minPrice'] = getters.priceFilters(state)[0]['MinimumValue'];\n }\n\n if ('undefined' === typeof queryParams['maxPrice'] && getters.priceFilters(state)[0]['MaximumValue'] > 0) {\n queryParams['maxPrice'] = getters.priceFilters(state)[0]['MaximumValue'];\n }\n }\n\n if ('undefined' === typeof queryParams['sort'] && null !== getters.currentSort(state)) {\n let sortString = '';\n Object.entries(getters.currentSort(state) || {}).forEach(([key, value]) => {\n sortString = `${key} ${value}`\n });\n\n queryParams['sort'] = sortString;\n }\n\n if (filters.length) {\n let activeFilters = filters.filter(item => {\n if (item.type !== 'attribute') {\n return false;\n }\n\n let activeOptions = item.options.filter(option => {\n return option.active;\n });\n\n return activeOptions.length;\n });\n\n let filterSegments = {};\n activeFilters.forEach(filter => {\n filter.options.forEach(option => {\n if (option.active) {\n if ( ! filterSegments.hasOwnProperty(filter['facet_code'])) {\n filterSegments[filter['facet_code']] = [];\n }\n\n filterSegments[filter['facet_code']].push(\n `${option.label}`\n );\n }\n });\n });\n params = Object.assign(filterSegments, params);\n }\n\n // Here the api url is made variable\n const apiUrl = state.apiUrl !== null\n ? state.apiUrl\n : state.searchedQuery !== '' ? `/api/catalog/search/product/list` : `/api/catalog/category/${categoryId}/product/list`;\n\n // set original filters to fetch of new catalog via API\n let basicFiltersStrings = window.location.search.substring(1).split('&');\n let basicFilters = {};\n\n basicFiltersStrings.forEach((value) => {\n let splitValue = value.split('=');\n basicFilters[splitValue[0]] = splitValue[1];\n });\n //\n\n this.$solarClient.get(\n apiUrl, {\n params: Object.assign(params, queryParams, {vehicle_ids: state.initialFilters.join('-')})\n }).then(({data}) => {\n commit('SET_API_RESPONSE', data);\n\n const urlFilters = data.filters.filter(\n filter => filter['is_active']\n ).map(filter => {\n return filter['options'].filter(\n filterOption => filterOption['active']\n ).map(filterOption => {\n return (filter['has_duplicate_values'] ? `${filter['url_key']}-` : '') + `${filterOption['label']}`.replace(/\\s/g, '-');\n }).join('_');\n });\n\n let urlSegments = window.location.pathname.split('/').filter(segment => segment);\n const urlHasFilterSegment = urlSegments.filter(segment => segment[0] === '_').length > 0;\n if (urlHasFilterSegment && ! urlFilters.length) {\n urlSegments = urlSegments.filter(segment => segment[0] !== '_');\n }\n\n if (urlFilters.length) {\n const encodedActiveFilterValues = urlFilters.map(v => encodeURIComponent(v));\n\n if (urlHasFilterSegment) {\n urlSegments = urlSegments.map(segment => {\n return segment[0] === '_' && urlSegments.length ? `_${encodedActiveFilterValues.join('_')}` : segment;\n });\n } else {\n urlSegments.push(`_${encodedActiveFilterValues.join('_')}`);\n }\n }\n\n // Merge the basic filters into the queryParams to keep them in the products-by-bike url.\n queryParams = {\n ...basicFilters,\n ...queryParams\n };\n //\n\n let queryString = '';\n if (Object.keys(queryParams).length) {\n Object.entries(queryParams).forEach(([key, value]) => {\n queryString += `&${key}=${value}`;\n });\n\n queryString = `?${queryString.substr(1)}`;\n }\n\n window.history.pushState({\n categoryId: categoryId,\n catalogData: data\n },\n // @ts-ignore\n window.document.querySelector('title').value,\n window.location.origin + '/' + urlSegments.join('/') + queryString\n );\n }).finally(() => {\n commit('SET_API_RESPONSE_PENDING', false);\n });\n }\n};\n\nconst getters = {\n isLoading: state => {\n return state.apiResponsePending;\n },\n getInitialFilters: state => {\n return state.initialFilters;\n },\n currentPage: state => {\n return state.apiResponse ? state.apiResponse['current_page'] : 1;\n },\n currentSort: state => {\n return state.apiResponse ? state.apiResponse['sorting'] : null;\n },\n totalPages: state => {\n return state.apiResponse ? state.apiResponse['last_page'] : 1;\n },\n pageSize: state => {\n return state.apiResponse ? state.apiResponse['page_size'] : 24;\n },\n productList: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('items') ? state.apiResponse['items'] : []) : [];\n },\n filterList: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('filters') ? state.apiResponse['filters'] : []) : [];\n },\n priceFilters: state => {\n if (state.apiResponse && state.apiResponse.hasOwnProperty('filters')) {\n return state.apiResponse.filters.filter(o => {\n return o.type === 'price'\n });\n }\n },\n activeFilters: (state, getters) => {\n return getters.filterList.filter(filter => {\n return filter['type'] !== 'attribute' ? false : filter['is_active'];\n });\n },\n activeCrawlableFilters: (state, getters) => {\n return getters.activeFilters.filter(filter => filter['is_crawlable']);\n },\n totalItemCount: state => {\n return state.apiResponse ? (state.apiResponse.hasOwnProperty('total_items') ? state.apiResponse['total_items'] : 0) : 0;\n }\n};\n\nconst CatalogProductsByBikeCategory = {\n namespaced: true,\n state,\n mutations,\n actions,\n getters\n};\n\nexport default CatalogProductsByBikeCategory;\n","// fullpage-setup.ts\nimport fullpage from 'fullpage.js';\nimport 'fullpage.js/dist/fullpage.css';\n\nexport function setupFullPage(marginTop: number = 0) {\n const fullPageMenu = document.getElementById('fullScreenMenu');\n let anchorItems = [];\n\n if (fullPageMenu) {\n const menuItems = fullPageMenu.querySelectorAll('li');\n for (let i = 0; i < menuItems.length; i++) {\n anchorItems.push(menuItems[i].getAttribute('data-menuanchor'));\n }\n }\n\n anchorItems.push('footer');\n const fullPageElement = document.getElementById('fullpage');\n const scheduleBlock = document.querySelector('#scheduleBlock');\n if (fullPageElement) {\n const fullPageInstance = new fullpage('#fullpage', {\n licenseKey: 'UL0KI-P518H-36TKK-096JK-XVLWQ',\n credits: false,\n menu: '#fullScreenMenu',\n recordHistory: true,\n lazyLoading: true,\n anchors: anchorItems,\n paddingTop: `${marginTop}px`,\n onLeave: function (origin, destination) {\n if (!scheduleBlock) {\n return;\n }\n if (!destination['isFirst']) {\n scheduleBlock.parentElement.classList.add('hide');\n }\n },\n afterLoad: function (origin, destination) {\n if (!scheduleBlock) {\n return;\n }\n if (destination['isFirst']) {\n\n scheduleBlock.parentElement.classList.remove('hide');\n\n // Fixing bug where fullpage.js pushes the scheduleBlock out of screen\n scheduleBlock.parentElement.style.position ='sticky';\n scheduleBlock.parentElement.style.zIndex ='1';\n scheduleBlock.parentElement.style.top ='0';\n }\n }\n });\n }\n}\n","require('../../default/js/app');\nrequire('./core');\n\n/**\n * Import all required styles.\n */\nimport '../../default/scss/app.scss';\n","('nav.main__navigation>ul').dropDown(el => {\n el.classList.add('--active');\n}, el => {\n el.classList.remove('--active');\n}, 200);\n","/**\n *\n *\n * @author Jerry Bendy \n * @licence MIT\n *\n */\n\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (self.URLSearchParams && self.URLSearchParams.prototype.get) ? self.URLSearchParams : null,\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return name in this [__URLSearchParams__];\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var forSureUsePolyfill = !decodesPlusesCorrectly;\n var useProxy = (!forSureUsePolyfill && nativeURLSearchParams && !isSupportObjectConstructor && self.Proxy);\n /*\n * Apply polifill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: (useProxy ?\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n new Proxy(nativeURLSearchParams, {\n construct: function(target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n }) :\n URLSearchParamsPolyfill)\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n USPProto.forEach = USPProto.forEach || function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n\n /**\n * Sort all name-value pairs\n */\n USPProto.sort = USPProto.sort || function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.keys = USPProto.keys || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.values = USPProto.values || function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.entries = USPProto.entries || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n\n function encode(str) {\n var replace = {\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(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n )\n\n if (name in dict) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","/**\n * vee-validate v3.4.14\n * (c) 2021 Abdelrahman Awad\n * @license MIT\n */\nimport Vue from 'vue';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nfunction isNaN(value) {\r\n // NaN is the one value that does not equal itself.\r\n // eslint-disable-next-line\r\n return value !== value;\r\n}\r\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nfunction isEmptyArray(arr) {\r\n return Array.isArray(arr) && arr.length === 0;\r\n}\r\nvar isObject = function (obj) {\r\n return obj !== null && obj && typeof obj === 'object' && !Array.isArray(obj);\r\n};\r\n/**\r\n * A reference comparison function with NaN support\r\n */\r\nfunction isRefEqual(lhs, rhs) {\r\n if (isNaN(lhs) && isNaN(rhs)) {\r\n return true;\r\n }\r\n return lhs === rhs;\r\n}\r\n// Checks if a given value is not an empty string or null or undefined.\r\nfunction isSpecified(val) {\r\n if (val === '') {\r\n return false;\r\n }\r\n return !isNullOrUndefined(val);\r\n}\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\r\nfunction isLocator(value) {\r\n return isCallable(value) && !!value.__locatorRef;\r\n}\n\nfunction findIndex(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n if (isCallable(array.findIndex)) {\r\n return array.findIndex(predicate);\r\n }\r\n /* istanbul ignore next */\r\n for (var i = 0; i < array.length; i++) {\r\n if (predicate(array[i], i)) {\r\n return i;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n return -1;\r\n}\r\n/**\r\n * finds the first element that satisfies the predicate callback, polyfills array.find\r\n */\r\nfunction find(arrayLike, predicate) {\r\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\r\n var idx = findIndex(array, predicate);\r\n return idx === -1 ? undefined : array[idx];\r\n}\r\nfunction includes(collection, item) {\r\n return collection.indexOf(item) !== -1;\r\n}\r\n/**\r\n * Converts an array-like object to array, provides a simple polyfill for Array.from\r\n */\r\nfunction toArray(arrayLike) {\r\n if (isCallable(Array.from)) {\r\n return Array.from(arrayLike);\r\n }\r\n /* istanbul ignore next */\r\n return _copyArray(arrayLike);\r\n}\r\n/* istanbul ignore next */\r\nfunction _copyArray(arrayLike) {\r\n var array = [];\r\n var length = arrayLike.length;\r\n for (var i = 0; i < length; i++) {\r\n array.push(arrayLike[i]);\r\n }\r\n return array;\r\n}\r\nfunction values(obj) {\r\n if (isCallable(Object.values)) {\r\n return Object.values(obj);\r\n }\r\n // fallback to keys()\r\n /* istanbul ignore next */\r\n return Object.keys(obj).map(function (k) { return obj[k]; });\r\n}\r\nfunction merge(target, source) {\r\n Object.keys(source).forEach(function (key) {\r\n if (isObject(source[key])) {\r\n if (!target[key]) {\r\n target[key] = {};\r\n }\r\n merge(target[key], source[key]);\r\n return;\r\n }\r\n target[key] = source[key];\r\n });\r\n return target;\r\n}\n\nfunction createFlags() {\r\n return {\r\n untouched: true,\r\n touched: false,\r\n dirty: false,\r\n pristine: true,\r\n valid: false,\r\n invalid: false,\r\n validated: false,\r\n pending: false,\r\n required: false,\r\n changed: false,\r\n passed: false,\r\n failed: false\r\n };\r\n}\n\nfunction identity(x) {\r\n return x;\r\n}\r\nfunction debounce(fn, wait, token) {\r\n if (wait === void 0) { wait = 0; }\r\n if (token === void 0) { token = { cancelled: false }; }\r\n if (wait === 0) {\r\n return fn;\r\n }\r\n var timeout;\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var later = function () {\r\n timeout = undefined;\r\n // check if the fn call was cancelled.\r\n if (!token.cancelled)\r\n fn.apply(void 0, args);\r\n };\r\n // because we might want to use Node.js setTimout for SSR.\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n}\n\n/**\r\n * Emits a warning to the console\r\n */\r\nfunction warn(message) {\r\n console.warn(\"[vee-validate] \" + message);\r\n}\r\n/**\r\n * Replaces placeholder values in a string with their actual values\r\n */\r\nfunction interpolate(template, values) {\r\n return template.replace(/{([^}]+)}/g, function (_, p) {\r\n return p in values ? values[p] : \"{\" + p + \"}\";\r\n });\r\n}\n\nvar RULES = {};\r\nfunction normalizeSchema(schema) {\r\n var _a;\r\n if ((_a = schema.params) === null || _a === void 0 ? void 0 : _a.length) {\r\n schema.params = schema.params.map(function (param) {\r\n if (typeof param === 'string') {\r\n return { name: param };\r\n }\r\n return param;\r\n });\r\n }\r\n return schema;\r\n}\r\nvar RuleContainer = /** @class */ (function () {\r\n function RuleContainer() {\r\n }\r\n RuleContainer.extend = function (name, schema) {\r\n // if rule already exists, overwrite it.\r\n var rule = normalizeSchema(schema);\r\n if (RULES[name]) {\r\n RULES[name] = merge(RULES[name], schema);\r\n return;\r\n }\r\n RULES[name] = __assign({ lazy: false, computesRequired: false }, rule);\r\n };\r\n RuleContainer.isLazy = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.lazy);\r\n };\r\n RuleContainer.isRequireRule = function (name) {\r\n var _a;\r\n return !!((_a = RULES[name]) === null || _a === void 0 ? void 0 : _a.computesRequired);\r\n };\r\n RuleContainer.getRuleDefinition = function (ruleName) {\r\n return RULES[ruleName];\r\n };\r\n return RuleContainer;\r\n}());\r\n/**\r\n * Adds a custom validator to the list of validation rules.\r\n */\r\nfunction extend(name, schema) {\r\n // makes sure new rules are properly formatted.\r\n guardExtend(name, schema);\r\n // Full schema object.\r\n if (typeof schema === 'object') {\r\n RuleContainer.extend(name, schema);\r\n return;\r\n }\r\n RuleContainer.extend(name, {\r\n validate: schema\r\n });\r\n}\r\n/**\r\n * Guards from extension violations.\r\n */\r\nfunction guardExtend(name, validator) {\r\n if (isCallable(validator)) {\r\n return;\r\n }\r\n if (isCallable(validator.validate)) {\r\n return;\r\n }\r\n if (RuleContainer.getRuleDefinition(name)) {\r\n return;\r\n }\r\n throw new Error(\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\");\r\n}\n\nvar DEFAULT_CONFIG = {\r\n defaultMessage: \"{_field_} is not valid.\",\r\n skipOptional: true,\r\n classes: {\r\n touched: 'touched',\r\n untouched: 'untouched',\r\n valid: 'valid',\r\n invalid: 'invalid',\r\n pristine: 'pristine',\r\n dirty: 'dirty' // control has been interacted with\r\n },\r\n bails: true,\r\n mode: 'aggressive',\r\n useConstraintAttrs: true\r\n};\r\nvar currentConfig = __assign({}, DEFAULT_CONFIG);\r\nvar getConfig = function () { return currentConfig; };\r\nvar setConfig = function (newConf) {\r\n currentConfig = __assign(__assign({}, currentConfig), newConf);\r\n};\r\nvar configure = function (cfg) {\r\n setConfig(cfg);\r\n};\n\n/**\r\n * Normalizes the given rules expression.\r\n */\r\nfunction normalizeRules(rules) {\r\n // if falsy value return an empty object.\r\n var acc = {};\r\n Object.defineProperty(acc, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n if (!rules) {\r\n return acc;\r\n }\r\n // Object is already normalized, skip.\r\n if (isObject(rules) && rules._$$isNormalized) {\r\n return rules;\r\n }\r\n if (isObject(rules)) {\r\n return Object.keys(rules).reduce(function (prev, curr) {\r\n var params = [];\r\n if (rules[curr] === true) {\r\n params = [];\r\n }\r\n else if (Array.isArray(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else if (isObject(rules[curr])) {\r\n params = rules[curr];\r\n }\r\n else {\r\n params = [rules[curr]];\r\n }\r\n if (rules[curr] !== false) {\r\n prev[curr] = buildParams(curr, params);\r\n }\r\n return prev;\r\n }, acc);\r\n }\r\n /* istanbul ignore if */\r\n if (typeof rules !== 'string') {\r\n warn('rules must be either a string or an object.');\r\n return acc;\r\n }\r\n return rules.split('|').reduce(function (prev, rule) {\r\n var parsedRule = parseRule(rule);\r\n if (!parsedRule.name) {\r\n return prev;\r\n }\r\n prev[parsedRule.name] = buildParams(parsedRule.name, parsedRule.params);\r\n return prev;\r\n }, acc);\r\n}\r\nfunction buildParams(ruleName, provided) {\r\n var ruleSchema = RuleContainer.getRuleDefinition(ruleName);\r\n if (!ruleSchema) {\r\n return provided;\r\n }\r\n var params = {};\r\n if (!ruleSchema.params && !Array.isArray(provided)) {\r\n throw new Error('You provided an object params to a rule that has no defined schema.');\r\n }\r\n // Rule probably uses an array for their args, keep it as is.\r\n if (Array.isArray(provided) && !ruleSchema.params) {\r\n return provided;\r\n }\r\n var definedParams;\r\n // collect the params schema.\r\n if (!ruleSchema.params || (ruleSchema.params.length < provided.length && Array.isArray(provided))) {\r\n var lastDefinedParam_1;\r\n // collect any additional parameters in the last item.\r\n definedParams = provided.map(function (_, idx) {\r\n var _a;\r\n var param = (_a = ruleSchema.params) === null || _a === void 0 ? void 0 : _a[idx];\r\n lastDefinedParam_1 = param || lastDefinedParam_1;\r\n if (!param) {\r\n param = lastDefinedParam_1;\r\n }\r\n return param;\r\n });\r\n }\r\n else {\r\n definedParams = ruleSchema.params;\r\n }\r\n // Match the provided array length with a temporary schema.\r\n for (var i = 0; i < definedParams.length; i++) {\r\n var options = definedParams[i];\r\n var value = options.default;\r\n // if the provided is an array, map element value.\r\n if (Array.isArray(provided)) {\r\n if (i in provided) {\r\n value = provided[i];\r\n }\r\n }\r\n else {\r\n // If the param exists in the provided object.\r\n if (options.name in provided) {\r\n value = provided[options.name];\r\n // if the provided is the first param value.\r\n }\r\n else if (definedParams.length === 1) {\r\n value = provided;\r\n }\r\n }\r\n // if the param is a target, resolve the target value.\r\n if (options.isTarget) {\r\n value = createLocator(value, options.cast);\r\n }\r\n // A target param using interpolation\r\n if (typeof value === 'string' && value[0] === '@') {\r\n value = createLocator(value.slice(1), options.cast);\r\n }\r\n // If there is a transformer defined.\r\n if (!isLocator(value) && options.cast) {\r\n value = options.cast(value);\r\n }\r\n // already been set, probably multiple values.\r\n if (params[options.name]) {\r\n params[options.name] = Array.isArray(params[options.name]) ? params[options.name] : [params[options.name]];\r\n params[options.name].push(value);\r\n }\r\n else {\r\n // set the value.\r\n params[options.name] = value;\r\n }\r\n }\r\n return params;\r\n}\r\n/**\r\n * Parses a rule string expression.\r\n */\r\nvar parseRule = function (rule) {\r\n var params = [];\r\n var name = rule.split(':')[0];\r\n if (includes(rule, ':')) {\r\n params = rule\r\n .split(':')\r\n .slice(1)\r\n .join(':')\r\n .split(',');\r\n }\r\n return { name: name, params: params };\r\n};\r\nfunction createLocator(value, castFn) {\r\n var locator = function (crossTable) {\r\n var val = crossTable[value];\r\n return castFn ? castFn(val) : val;\r\n };\r\n locator.__locatorRef = value;\r\n return locator;\r\n}\r\nfunction extractLocators(params) {\r\n if (Array.isArray(params)) {\r\n return params.filter(function (param) {\r\n return isLocator(param) || (typeof param === 'string' && param[0] === '@');\r\n });\r\n }\r\n return Object.keys(params)\r\n .filter(function (key) { return isLocator(params[key]); })\r\n .map(function (key) { return params[key]; });\r\n}\n\n/**\r\n * Validates a value against the rules.\r\n */\r\nfunction validate(value, rules, options) {\r\n if (options === void 0) { options = {}; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var shouldBail, skipIfEmpty, field, result, errors, failedRules, regenerateMap;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n shouldBail = options === null || options === void 0 ? void 0 : options.bails;\r\n skipIfEmpty = options === null || options === void 0 ? void 0 : options.skipIfEmpty;\r\n field = {\r\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\r\n rules: normalizeRules(rules),\r\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\r\n skipIfEmpty: skipIfEmpty !== null && skipIfEmpty !== void 0 ? skipIfEmpty : true,\r\n forceRequired: false,\r\n crossTable: (options === null || options === void 0 ? void 0 : options.values) || {},\r\n names: (options === null || options === void 0 ? void 0 : options.names) || {},\r\n customMessages: (options === null || options === void 0 ? void 0 : options.customMessages) || {}\r\n };\r\n return [4 /*yield*/, _validate(field, value, options)];\r\n case 1:\r\n result = _a.sent();\r\n errors = [];\r\n failedRules = {};\r\n regenerateMap = {};\r\n result.errors.forEach(function (e) {\r\n var msg = e.msg();\r\n errors.push(msg);\r\n failedRules[e.rule] = msg;\r\n regenerateMap[e.rule] = e.msg;\r\n });\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n required: result.required,\r\n errors: errors,\r\n failedRules: failedRules,\r\n regenerateMap: regenerateMap\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Starts the validation process.\r\n */\r\nfunction _validate(field, value, _a) {\r\n var _b = (_a === void 0 ? {} : _a).isInitial, isInitial = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _c, shouldSkip, required, errors, rules, length, i, rule, result;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, _shouldSkip(field, value)];\r\n case 1:\r\n _c = _d.sent(), shouldSkip = _c.shouldSkip, required = _c.required, errors = _c.errors;\r\n if (shouldSkip) {\r\n return [2 /*return*/, {\r\n valid: !errors.length,\r\n required: required,\r\n errors: errors\r\n }];\r\n }\r\n rules = Object.keys(field.rules).filter(function (rule) { return !RuleContainer.isRequireRule(rule); });\r\n length = rules.length;\r\n i = 0;\r\n _d.label = 2;\r\n case 2:\r\n if (!(i < length)) return [3 /*break*/, 5];\r\n if (isInitial && RuleContainer.isLazy(rules[i])) {\r\n return [3 /*break*/, 4];\r\n }\r\n rule = rules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 3:\r\n result = _d.sent();\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n valid: false,\r\n required: required,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _d.label = 4;\r\n case 4:\r\n i++;\r\n return [3 /*break*/, 2];\r\n case 5: return [2 /*return*/, {\r\n valid: !errors.length,\r\n required: required,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\nfunction _shouldSkip(field, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var requireRules, length, errors, isEmpty, isEmptyAndOptional, isRequired, i, rule, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\r\n length = requireRules.length;\r\n errors = [];\r\n isEmpty = isNullOrUndefined(value) || value === '' || isEmptyArray(value);\r\n isEmptyAndOptional = isEmpty && field.skipIfEmpty;\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < length)) return [3 /*break*/, 4];\r\n rule = requireRules[i];\r\n return [4 /*yield*/, _test(field, value, {\r\n name: rule,\r\n params: field.rules[rule]\r\n })];\r\n case 2:\r\n result = _a.sent();\r\n if (!isObject(result)) {\r\n throw new Error('Require rules has to return an object (see docs)');\r\n }\r\n if (result.required !== undefined) {\r\n isRequired = result.required;\r\n }\r\n if (!result.valid && result.error) {\r\n errors.push(result.error);\r\n // Exit early as the field is required and failed validation.\r\n if (field.bails) {\r\n return [2 /*return*/, {\r\n shouldSkip: true,\r\n required: result.required,\r\n errors: errors\r\n }];\r\n }\r\n }\r\n _a.label = 3;\r\n case 3:\r\n i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (isEmpty && !isRequired && !field.skipIfEmpty) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n required: isRequired,\r\n errors: errors\r\n }];\r\n }\r\n // field is configured to run through the pipeline regardless\r\n if (!field.bails && !isEmptyAndOptional) {\r\n return [2 /*return*/, {\r\n shouldSkip: false,\r\n required: isRequired,\r\n errors: errors\r\n }];\r\n }\r\n // skip if the field is not required and has an empty value.\r\n return [2 /*return*/, {\r\n shouldSkip: !isRequired && isEmpty,\r\n required: isRequired,\r\n errors: errors\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Tests a single input value against a rule.\r\n */\r\nfunction _test(field, value, rule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var ruleSchema, normalizedValue, params, result, values_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ruleSchema = RuleContainer.getRuleDefinition(rule.name);\r\n if (!ruleSchema || !ruleSchema.validate) {\r\n throw new Error(\"No such validator '\" + rule.name + \"' exists.\");\r\n }\r\n normalizedValue = ruleSchema.castValue ? ruleSchema.castValue(value) : value;\r\n params = fillTargetValues(rule.params, field.crossTable);\r\n return [4 /*yield*/, ruleSchema.validate(normalizedValue, params)];\r\n case 1:\r\n result = _a.sent();\r\n if (typeof result === 'string') {\r\n values_1 = __assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: rule.name });\r\n return [2 /*return*/, {\r\n valid: false,\r\n error: { rule: rule.name, msg: function () { return interpolate(result, values_1); } }\r\n }];\r\n }\r\n if (!isObject(result)) {\r\n result = { valid: result };\r\n }\r\n return [2 /*return*/, {\r\n valid: result.valid,\r\n required: result.required,\r\n error: result.valid ? undefined : _generateFieldError(field, value, ruleSchema, rule.name, params)\r\n }];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Generates error messages.\r\n */\r\nfunction _generateFieldError(field, value, ruleSchema, ruleName, params) {\r\n var _a;\r\n var message = (_a = field.customMessages[ruleName]) !== null && _a !== void 0 ? _a : ruleSchema.message;\r\n var ruleTargets = _getRuleTargets(field, ruleSchema, ruleName);\r\n var _b = _getUserTargets(field, ruleSchema, ruleName, message), userTargets = _b.userTargets, userMessage = _b.userMessage;\r\n var values = __assign(__assign(__assign(__assign({}, (params || {})), { _field_: field.name, _value_: value, _rule_: ruleName }), ruleTargets), userTargets);\r\n return {\r\n msg: function () { return _normalizeMessage(userMessage || getConfig().defaultMessage, field.name, values); },\r\n rule: ruleName\r\n };\r\n}\r\nfunction _getRuleTargets(field, ruleSchema, ruleName) {\r\n var params = ruleSchema.params;\r\n if (!params) {\r\n return {};\r\n }\r\n var numTargets = params.filter(function (param) { return param.isTarget; }).length;\r\n if (numTargets <= 0) {\r\n return {};\r\n }\r\n var names = {};\r\n var ruleConfig = field.rules[ruleName];\r\n if (!Array.isArray(ruleConfig) && isObject(ruleConfig)) {\r\n ruleConfig = params.map(function (param) {\r\n return ruleConfig[param.name];\r\n });\r\n }\r\n for (var index = 0; index < params.length; index++) {\r\n var param = params[index];\r\n var key = ruleConfig[index];\r\n if (!isLocator(key)) {\r\n continue;\r\n }\r\n key = key.__locatorRef;\r\n var name_1 = field.names[key] || key;\r\n names[param.name] = name_1;\r\n names[\"_\" + param.name + \"_\"] = field.crossTable[key];\r\n }\r\n return names;\r\n}\r\nfunction _getUserTargets(field, ruleSchema, ruleName, userMessage) {\r\n var userTargets = {};\r\n var rules = field.rules[ruleName];\r\n var params = ruleSchema.params || [];\r\n // early return if no rules\r\n if (!rules) {\r\n return {};\r\n }\r\n // check all rules to convert targets\r\n Object.keys(rules).forEach(function (key, index) {\r\n // get the rule\r\n var rule = rules[key];\r\n if (!isLocator(rule)) {\r\n return {};\r\n }\r\n // get associated parameter\r\n var param = params[index];\r\n if (!param) {\r\n return {};\r\n }\r\n // grab the name of the target\r\n var name = rule.__locatorRef;\r\n userTargets[param.name] = field.names[name] || name;\r\n userTargets[\"_\" + param.name + \"_\"] = field.crossTable[name];\r\n });\r\n return {\r\n userTargets: userTargets,\r\n userMessage: userMessage\r\n };\r\n}\r\nfunction _normalizeMessage(template, field, values) {\r\n if (typeof template === 'function') {\r\n return template(field, values);\r\n }\r\n return interpolate(template, __assign(__assign({}, values), { _field_: field }));\r\n}\r\nfunction fillTargetValues(params, crossTable) {\r\n if (Array.isArray(params)) {\r\n return params.map(function (param) {\r\n var targetPart = typeof param === 'string' && param[0] === '@' ? param.slice(1) : param;\r\n if (targetPart in crossTable) {\r\n return crossTable[targetPart];\r\n }\r\n return param;\r\n });\r\n }\r\n var values = {};\r\n var normalize = function (value) {\r\n if (isLocator(value)) {\r\n return value(crossTable);\r\n }\r\n return value;\r\n };\r\n Object.keys(params).forEach(function (param) {\r\n values[param] = normalize(params[param]);\r\n });\r\n return values;\r\n}\n\nvar aggressive = function () { return ({\r\n on: ['input', 'blur']\r\n}); };\r\nvar lazy = function () { return ({\r\n on: ['change', 'blur']\r\n}); };\r\nvar eager = function (_a) {\r\n var errors = _a.errors;\r\n if (errors.length) {\r\n return {\r\n on: ['input', 'change']\r\n };\r\n }\r\n return {\r\n on: ['change', 'blur']\r\n };\r\n};\r\nvar passive = function () { return ({\r\n on: []\r\n}); };\r\nvar modes = {\r\n aggressive: aggressive,\r\n eager: eager,\r\n passive: passive,\r\n lazy: lazy\r\n};\r\nvar setInteractionMode = function (mode, implementation) {\r\n setConfig({ mode: mode });\r\n if (!implementation) {\r\n return;\r\n }\r\n if (!isCallable(implementation)) {\r\n throw new Error('A mode implementation must be a function');\r\n }\r\n modes[mode] = implementation;\r\n};\n\nvar EVENT_BUS = new Vue();\r\nfunction localeChanged() {\r\n EVENT_BUS.$emit('change:locale');\r\n}\n\nvar Dictionary = /** @class */ (function () {\r\n function Dictionary(locale, dictionary) {\r\n this.container = {};\r\n this.locale = locale;\r\n this.merge(dictionary);\r\n }\r\n Dictionary.prototype.resolve = function (field, rule, values) {\r\n return this.format(this.locale, field, rule, values);\r\n };\r\n Dictionary.prototype.format = function (locale, field, rule, values) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n var message;\r\n // find if specific message for that field was specified.\r\n var fieldContainer = (_c = (_b = (_a = this.container[locale]) === null || _a === void 0 ? void 0 : _a.fields) === null || _b === void 0 ? void 0 : _b[field]) === null || _c === void 0 ? void 0 : _c[rule];\r\n var messageContainer = (_e = (_d = this.container[locale]) === null || _d === void 0 ? void 0 : _d.messages) === null || _e === void 0 ? void 0 : _e[rule];\r\n message = fieldContainer || messageContainer || '';\r\n if (!message) {\r\n message = '{_field_} is not valid';\r\n }\r\n field = (_h = (_g = (_f = this.container[locale]) === null || _f === void 0 ? void 0 : _f.names) === null || _g === void 0 ? void 0 : _g[field]) !== null && _h !== void 0 ? _h : field;\r\n return isCallable(message) ? message(field, values) : interpolate(message, __assign(__assign({}, values), { _field_: field }));\r\n };\r\n Dictionary.prototype.merge = function (dictionary) {\r\n merge(this.container, dictionary);\r\n };\r\n Dictionary.prototype.hasRule = function (name) {\r\n var _a, _b;\r\n return !!((_b = (_a = this.container[this.locale]) === null || _a === void 0 ? void 0 : _a.messages) === null || _b === void 0 ? void 0 : _b[name]);\r\n };\r\n return Dictionary;\r\n}());\r\nvar DICTIONARY;\r\nfunction localize(locale, dictionary) {\r\n var _a;\r\n if (!DICTIONARY) {\r\n DICTIONARY = new Dictionary('en', {});\r\n setConfig({\r\n defaultMessage: function (field, values) {\r\n return DICTIONARY.resolve(field, values === null || values === void 0 ? void 0 : values._rule_, values || {});\r\n }\r\n });\r\n }\r\n if (typeof locale === 'string') {\r\n DICTIONARY.locale = locale;\r\n if (dictionary) {\r\n DICTIONARY.merge((_a = {}, _a[locale] = dictionary, _a));\r\n }\r\n localeChanged();\r\n return;\r\n }\r\n DICTIONARY.merge(locale);\r\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\nvar isEvent = function (evt) {\r\n if (!evt) {\r\n return false;\r\n }\r\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\r\n return true;\r\n }\r\n // this is for IE\r\n /* istanbul ignore next */\r\n if (evt && evt.srcElement) {\r\n return true;\r\n }\r\n return false;\r\n};\r\nfunction normalizeEventValue(value) {\r\n var _a, _b;\r\n if (!isEvent(value)) {\r\n return value;\r\n }\r\n var input = value.target;\r\n if (input.type === 'file' && input.files) {\r\n return toArray(input.files);\r\n }\r\n // If the input has a `v-model.number` modifier applied.\r\n if ((_a = input._vModifiers) === null || _a === void 0 ? void 0 : _a.number) {\r\n // as per the spec the v-model.number uses parseFloat\r\n var valueAsNumber = parseFloat(input.value);\r\n if (isNaN(valueAsNumber)) {\r\n return input.value;\r\n }\r\n return valueAsNumber;\r\n }\r\n if ((_b = input._vModifiers) === null || _b === void 0 ? void 0 : _b.trim) {\r\n var trimmedValue = typeof input.value === 'string' ? input.value.trim() : input.value;\r\n return trimmedValue;\r\n }\r\n return input.value;\r\n}\n\nvar isTextInput = function (vnode) {\r\n var _a;\r\n var attrs = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) || vnode.elm;\r\n // it will fallback to being a text input per browsers spec.\r\n if (vnode.tag === 'input' && (!attrs || !attrs.type)) {\r\n return true;\r\n }\r\n if (vnode.tag === 'textarea') {\r\n return true;\r\n }\r\n return includes(['text', 'password', 'search', 'email', 'tel', 'url', 'number'], attrs === null || attrs === void 0 ? void 0 : attrs.type);\r\n};\r\n// export const isCheckboxOrRadioInput = (vnode: VNode): boolean => {\r\n// const attrs = (vnode.data && vnode.data.attrs) || vnode.elm;\r\n// return includes(['radio', 'checkbox'], attrs && attrs.type);\r\n// };\r\n// Gets the model object on the vnode.\r\nfunction findModel(vnode) {\r\n if (!vnode.data) {\r\n return undefined;\r\n }\r\n // Component Model\r\n // THIS IS NOT TYPED IN OFFICIAL VUE TYPINGS\r\n // eslint-disable-next-line\r\n var nonStandardVNodeData = vnode.data;\r\n if ('model' in nonStandardVNodeData) {\r\n return nonStandardVNodeData.model;\r\n }\r\n if (!vnode.data.directives) {\r\n return undefined;\r\n }\r\n return find(vnode.data.directives, function (d) { return d.name === 'model'; });\r\n}\r\nfunction findValue(vnode) {\r\n var _a, _b;\r\n var model = findModel(vnode);\r\n if (model) {\r\n return { value: model.value };\r\n }\r\n var config = findModelConfig(vnode);\r\n var prop = (config === null || config === void 0 ? void 0 : config.prop) || 'value';\r\n if (((_a = vnode.componentOptions) === null || _a === void 0 ? void 0 : _a.propsData) && prop in vnode.componentOptions.propsData) {\r\n var propsDataWithValue = vnode.componentOptions.propsData;\r\n return { value: propsDataWithValue[prop] };\r\n }\r\n if (((_b = vnode.data) === null || _b === void 0 ? void 0 : _b.domProps) && 'value' in vnode.data.domProps) {\r\n return { value: vnode.data.domProps.value };\r\n }\r\n return undefined;\r\n}\r\nfunction extractChildren(vnode) {\r\n if (Array.isArray(vnode)) {\r\n return vnode;\r\n }\r\n if (Array.isArray(vnode.children)) {\r\n return vnode.children;\r\n }\r\n /* istanbul ignore next */\r\n if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\r\n return vnode.componentOptions.children;\r\n }\r\n return [];\r\n}\r\nfunction findInputNodes(vnode) {\r\n if (!Array.isArray(vnode) && findValue(vnode) !== undefined) {\r\n return [vnode];\r\n }\r\n var children = extractChildren(vnode);\r\n return children.reduce(function (nodes, node) {\r\n var candidates = findInputNodes(node);\r\n if (candidates.length) {\r\n nodes.push.apply(nodes, candidates);\r\n }\r\n return nodes;\r\n }, []);\r\n}\r\n// Resolves v-model config if exists.\r\nfunction findModelConfig(vnode) {\r\n /* istanbul ignore next */\r\n if (!vnode.componentOptions)\r\n return null;\r\n // This is also not typed in the standard Vue TS.\r\n return vnode.componentOptions.Ctor.options.model;\r\n}\r\n// Adds a listener to vnode listener object.\r\nfunction mergeVNodeListeners(obj, eventName, handler) {\r\n // no listener at all.\r\n if (isNullOrUndefined(obj[eventName])) {\r\n obj[eventName] = [handler];\r\n return;\r\n }\r\n // Is an invoker.\r\n if (isCallable(obj[eventName]) && obj[eventName].fns) {\r\n var invoker = obj[eventName];\r\n invoker.fns = Array.isArray(invoker.fns) ? invoker.fns : [invoker.fns];\r\n if (!includes(invoker.fns, handler)) {\r\n invoker.fns.push(handler);\r\n }\r\n return;\r\n }\r\n if (isCallable(obj[eventName])) {\r\n var prev = obj[eventName];\r\n obj[eventName] = [prev];\r\n }\r\n if (Array.isArray(obj[eventName]) && !includes(obj[eventName], handler)) {\r\n obj[eventName].push(handler);\r\n }\r\n}\r\n// Adds a listener to a native HTML vnode.\r\nfunction addNativeNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.data) {\r\n node.data = {};\r\n }\r\n if (isNullOrUndefined(node.data.on)) {\r\n node.data.on = {};\r\n }\r\n mergeVNodeListeners(node.data.on, eventName, handler);\r\n}\r\n// Adds a listener to a Vue component vnode.\r\nfunction addComponentNodeListener(node, eventName, handler) {\r\n /* istanbul ignore next */\r\n if (!node.componentOptions) {\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!node.componentOptions.listeners) {\r\n node.componentOptions.listeners = {};\r\n }\r\n mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\r\n}\r\nfunction addVNodeListener(vnode, eventName, handler) {\r\n if (vnode.componentOptions) {\r\n addComponentNodeListener(vnode, eventName, handler);\r\n return;\r\n }\r\n addNativeNodeListener(vnode, eventName, handler);\r\n}\r\n// Determines if `change` should be used over `input` for listeners.\r\nfunction getInputEventName(vnode, model) {\r\n var _a;\r\n // Is a component.\r\n if (vnode.componentOptions) {\r\n var event_1 = (findModelConfig(vnode) || { event: 'input' }).event;\r\n return event_1;\r\n }\r\n // Lazy Models typically use change event\r\n if ((_a = model === null || model === void 0 ? void 0 : model.modifiers) === null || _a === void 0 ? void 0 : _a.lazy) {\r\n return 'change';\r\n }\r\n // is a textual-type input.\r\n if (isTextInput(vnode)) {\r\n return 'input';\r\n }\r\n return 'change';\r\n}\r\nfunction isHTMLNode(node) {\r\n return includes(['input', 'select', 'textarea'], node.tag);\r\n}\r\n// TODO: Type this one properly.\r\nfunction normalizeSlots(slots, ctx) {\r\n var acc = [];\r\n return Object.keys(slots).reduce(function (arr, key) {\r\n slots[key].forEach(function (vnode) {\r\n if (!vnode.context) {\r\n slots[key].context = ctx;\r\n if (!vnode.data) {\r\n vnode.data = {};\r\n }\r\n vnode.data.slot = key;\r\n }\r\n });\r\n return arr.concat(slots[key]);\r\n }, acc);\r\n}\r\nfunction resolveTextualRules(vnode) {\r\n var _a;\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n var rules = {};\r\n if (!attrs)\r\n return rules;\r\n if (attrs.type === 'email' && RuleContainer.getRuleDefinition('email')) {\r\n rules.email = ['multiple' in attrs];\r\n }\r\n if (attrs.pattern && RuleContainer.getRuleDefinition('regex')) {\r\n rules.regex = attrs.pattern;\r\n }\r\n if (attrs.maxlength >= 0 && RuleContainer.getRuleDefinition('max')) {\r\n rules.max = attrs.maxlength;\r\n }\r\n if (attrs.minlength >= 0 && RuleContainer.getRuleDefinition('min')) {\r\n rules.min = attrs.minlength;\r\n }\r\n if (attrs.type === 'number') {\r\n if (isSpecified(attrs.min) && RuleContainer.getRuleDefinition('min_value')) {\r\n rules.min_value = Number(attrs.min);\r\n }\r\n if (isSpecified(attrs.max) && RuleContainer.getRuleDefinition('max_value')) {\r\n rules.max_value = Number(attrs.max);\r\n }\r\n }\r\n return rules;\r\n}\r\nfunction resolveRules(vnode) {\r\n var _a;\r\n var htmlTags = ['input', 'select', 'textarea'];\r\n var attrs = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs;\r\n if (!includes(htmlTags, vnode.tag) || !attrs) {\r\n return {};\r\n }\r\n var rules = {};\r\n if ('required' in attrs && attrs.required !== false && RuleContainer.getRuleDefinition('required')) {\r\n rules.required = attrs.type === 'checkbox' ? [true] : true;\r\n }\r\n if (isTextInput(vnode)) {\r\n return normalizeRules(__assign(__assign({}, rules), resolveTextualRules(vnode)));\r\n }\r\n return normalizeRules(rules);\r\n}\r\nfunction normalizeChildren(context, slotProps) {\r\n if (context.$scopedSlots.default) {\r\n return context.$scopedSlots.default(slotProps) || [];\r\n }\r\n return context.$slots.default || [];\r\n}\n\n/**\r\n * Determines if a provider needs to run validation.\r\n */\r\nfunction shouldValidate(ctx, value) {\r\n // when an immediate/initial validation is needed and wasn't done before.\r\n if (!ctx._ignoreImmediate && ctx.immediate) {\r\n return true;\r\n }\r\n // when the value changes for whatever reason.\r\n if (!isRefEqual(ctx.value, value) && ctx.normalizedEvents.length) {\r\n return true;\r\n }\r\n // when it needs validation due to props/cross-fields changes.\r\n if (ctx._needsValidation) {\r\n return true;\r\n }\r\n // when the initial value is undefined and the field wasn't rendered yet.\r\n if (!ctx.initialized && value === undefined) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction createValidationCtx(ctx) {\r\n return __assign(__assign({}, ctx.flags), { errors: ctx.errors, classes: ctx.classes, failedRules: ctx.failedRules, reset: function () { return ctx.reset(); }, validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return ctx.validate.apply(ctx, args);\r\n }, ariaInput: {\r\n 'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\r\n 'aria-required': ctx.isRequired ? 'true' : 'false',\r\n 'aria-errormessage': \"vee_\" + ctx.id\r\n }, ariaMsg: {\r\n id: \"vee_\" + ctx.id,\r\n 'aria-live': ctx.errors.length ? 'assertive' : 'off'\r\n } });\r\n}\r\nfunction onRenderUpdate(vm, value) {\r\n if (!vm.initialized) {\r\n vm.initialValue = value;\r\n }\r\n var validateNow = shouldValidate(vm, value);\r\n vm._needsValidation = false;\r\n vm.value = value;\r\n vm._ignoreImmediate = true;\r\n if (!validateNow) {\r\n return;\r\n }\r\n var validate = function () {\r\n if (vm.immediate || vm.flags.validated) {\r\n return triggerThreadSafeValidation(vm);\r\n }\r\n vm.validateSilent();\r\n };\r\n if (vm.initialized) {\r\n validate();\r\n return;\r\n }\r\n vm.$once('hook:mounted', function () { return validate(); });\r\n}\r\nfunction computeModeSetting(ctx) {\r\n var compute = (isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode]);\r\n return compute(ctx);\r\n}\r\nfunction triggerThreadSafeValidation(vm) {\r\n var pendingPromise = vm.validateSilent();\r\n // avoids race conditions between successive validations.\r\n vm._pendingValidation = pendingPromise;\r\n return pendingPromise.then(function (result) {\r\n if (pendingPromise === vm._pendingValidation) {\r\n vm.applyResult(result);\r\n vm._pendingValidation = undefined;\r\n }\r\n return result;\r\n });\r\n}\r\n// Creates the common handlers for a validatable context.\r\nfunction createCommonHandlers(vm) {\r\n if (!vm.$veeOnInput) {\r\n vm.$veeOnInput = function (e) {\r\n vm.syncValue(e); // track and keep the value updated.\r\n vm.setFlags({ dirty: true, pristine: false });\r\n };\r\n }\r\n var onInput = vm.$veeOnInput;\r\n if (!vm.$veeOnBlur) {\r\n vm.$veeOnBlur = function () {\r\n vm.setFlags({ touched: true, untouched: false });\r\n };\r\n }\r\n // Blur event listener.\r\n var onBlur = vm.$veeOnBlur;\r\n var onValidate = vm.$veeHandler;\r\n var mode = computeModeSetting(vm);\r\n // Handle debounce changes.\r\n if (!onValidate || vm.$veeDebounce !== vm.debounce) {\r\n onValidate = debounce(function () {\r\n vm.$nextTick(function () {\r\n if (!vm._pendingReset) {\r\n triggerThreadSafeValidation(vm);\r\n }\r\n vm._pendingReset = false;\r\n });\r\n }, mode.debounce || vm.debounce);\r\n // Cache the handler so we don't create it each time.\r\n vm.$veeHandler = onValidate;\r\n // cache the debounce value so we detect if it was changed.\r\n vm.$veeDebounce = vm.debounce;\r\n }\r\n return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\r\n}\r\n// Adds all plugin listeners to the vnode.\r\nfunction addListeners(vm, node) {\r\n var value = findValue(node);\r\n // cache the input eventName.\r\n vm._inputEventName = vm._inputEventName || getInputEventName(node, findModel(node));\r\n onRenderUpdate(vm, value === null || value === void 0 ? void 0 : value.value);\r\n var _a = createCommonHandlers(vm), onInput = _a.onInput, onBlur = _a.onBlur, onValidate = _a.onValidate;\r\n addVNodeListener(node, vm._inputEventName, onInput);\r\n addVNodeListener(node, 'blur', onBlur);\r\n // add the validation listeners.\r\n vm.normalizedEvents.forEach(function (evt) {\r\n addVNodeListener(node, evt, onValidate);\r\n });\r\n vm.initialized = true;\r\n}\n\nvar PROVIDER_COUNTER = 0;\r\nfunction data$1() {\r\n var errors = [];\r\n var fieldName = '';\r\n var defaultValues = {\r\n errors: errors,\r\n value: undefined,\r\n initialized: false,\r\n initialValue: undefined,\r\n flags: createFlags(),\r\n failedRules: {},\r\n isActive: true,\r\n fieldName: fieldName,\r\n id: ''\r\n };\r\n return defaultValues;\r\n}\r\nvar ValidationProvider = Vue.extend({\r\n name: 'ValidationProvider',\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n this.$vnode.context.$_veeObserver = createObserver();\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n vid: {\r\n type: String,\r\n default: ''\r\n },\r\n name: {\r\n type: String,\r\n default: null\r\n },\r\n mode: {\r\n type: [String, Function],\r\n default: function () {\r\n return getConfig().mode;\r\n }\r\n },\r\n rules: {\r\n type: [Object, String],\r\n default: null\r\n },\r\n immediate: {\r\n type: Boolean,\r\n default: false\r\n },\r\n bails: {\r\n type: Boolean,\r\n default: function () { return getConfig().bails; }\r\n },\r\n skipIfEmpty: {\r\n type: Boolean,\r\n default: function () { return getConfig().skipOptional; }\r\n },\r\n debounce: {\r\n type: Number,\r\n default: 0\r\n },\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n customMessages: {\r\n type: Object,\r\n default: function () {\r\n return {};\r\n }\r\n },\r\n detectInput: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n watch: {\r\n rules: {\r\n deep: true,\r\n handler: function (val, oldVal) {\r\n this._needsValidation = !fastDeepEqual(val, oldVal);\r\n }\r\n }\r\n },\r\n data: data$1,\r\n computed: {\r\n fieldDeps: function () {\r\n var _this = this;\r\n return Object.keys(this.normalizedRules).reduce(function (acc, rule) {\r\n var deps = extractLocators(_this.normalizedRules[rule]).map(function (dep) {\r\n return isLocator(dep) ? dep.__locatorRef : dep.slice(1);\r\n });\r\n acc.push.apply(acc, deps);\r\n deps.forEach(function (depName) {\r\n watchCrossFieldDep(_this, depName);\r\n });\r\n return acc;\r\n }, []);\r\n },\r\n normalizedEvents: function () {\r\n var _this = this;\r\n var on = computeModeSetting(this).on;\r\n return (on || []).map(function (e) {\r\n if (e === 'input') {\r\n return _this._inputEventName;\r\n }\r\n return e;\r\n });\r\n },\r\n isRequired: function () {\r\n var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);\r\n this.flags.required = !!isRequired;\r\n return isRequired;\r\n },\r\n classes: function () {\r\n var names = getConfig().classes;\r\n return computeClassObj(names, this.flags);\r\n },\r\n normalizedRules: function () {\r\n return normalizeRules(this.rules);\r\n }\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n var onLocaleChanged = function () {\r\n if (!_this.flags.validated) {\r\n return;\r\n }\r\n var regenerateMap = _this._regenerateMap;\r\n if (regenerateMap) {\r\n var errors_1 = [];\r\n var failedRules_1 = {};\r\n Object.keys(regenerateMap).forEach(function (rule) {\r\n var msg = regenerateMap[rule]();\r\n errors_1.push(msg);\r\n failedRules_1[rule] = msg;\r\n });\r\n _this.applyResult({ errors: errors_1, failedRules: failedRules_1, regenerateMap: regenerateMap });\r\n return;\r\n }\r\n _this.validate();\r\n };\r\n EVENT_BUS.$on('change:locale', onLocaleChanged);\r\n this.$on('hook:beforeDestroy', function () {\r\n EVENT_BUS.$off('change:locale', onLocaleChanged);\r\n });\r\n },\r\n render: function (h) {\r\n var _this = this;\r\n this.registerField();\r\n var ctx = createValidationCtx(this);\r\n var children = normalizeChildren(this, ctx);\r\n // Automatic v-model detection\r\n if (this.detectInput) {\r\n var inputs = findInputNodes(children);\r\n if (inputs.length) {\r\n inputs.forEach(function (input, idx) {\r\n var _a, _b, _c, _d, _e, _f;\r\n // If the elements are not checkboxes and there are more input nodes\r\n if (!includes(['checkbox', 'radio'], (_b = (_a = input.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b.type) && idx > 0) {\r\n return;\r\n }\r\n var resolved = getConfig().useConstraintAttrs ? resolveRules(input) : {};\r\n if (!fastDeepEqual(_this._resolvedRules, resolved)) {\r\n _this._needsValidation = true;\r\n }\r\n if (isHTMLNode(input)) {\r\n _this.fieldName = ((_d = (_c = input.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.name) || ((_f = (_e = input.data) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.id);\r\n }\r\n _this._resolvedRules = resolved;\r\n addListeners(_this, input);\r\n });\r\n }\r\n }\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, children);\r\n },\r\n beforeDestroy: function () {\r\n // cleanup reference.\r\n this.$_veeObserver.unobserve(this.id);\r\n },\r\n activated: function () {\r\n this.isActive = true;\r\n },\r\n deactivated: function () {\r\n this.isActive = false;\r\n },\r\n methods: {\r\n setFlags: function (flags) {\r\n var _this = this;\r\n Object.keys(flags).forEach(function (flag) {\r\n _this.flags[flag] = flags[flag];\r\n });\r\n },\r\n syncValue: function (v) {\r\n var value = normalizeEventValue(v);\r\n this.value = value;\r\n this.flags.changed = !fastDeepEqual(this.initialValue, value);\r\n },\r\n reset: function () {\r\n var _this = this;\r\n this.errors = [];\r\n this.initialValue = this.value;\r\n var flags = createFlags();\r\n flags.required = this.isRequired;\r\n this.setFlags(flags);\r\n this.failedRules = {};\r\n this.validateSilent();\r\n this._pendingValidation = undefined;\r\n this._pendingReset = true;\r\n setTimeout(function () {\r\n _this._pendingReset = false;\r\n }, this.debounce);\r\n },\r\n validate: function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (args.length > 0) {\r\n this.syncValue(args[0]);\r\n }\r\n return [2 /*return*/, triggerThreadSafeValidation(this)];\r\n });\r\n });\r\n },\r\n validateSilent: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var rules, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.setFlags({ pending: true });\r\n rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n Object.defineProperty(rules, '_$$isNormalized', {\r\n value: true,\r\n writable: false,\r\n enumerable: false,\r\n configurable: false\r\n });\r\n return [4 /*yield*/, validate(this.value, rules, __assign(__assign({ name: this.name || this.fieldName }, createLookup(this)), { bails: this.bails, skipIfEmpty: this.skipIfEmpty, isInitial: !this.initialized, customMessages: this.customMessages }))];\r\n case 1:\r\n result = _a.sent();\r\n this.setFlags({\r\n pending: false,\r\n valid: result.valid,\r\n invalid: !result.valid\r\n });\r\n if (result.required !== undefined) {\r\n this.setFlags({\r\n required: result.required\r\n });\r\n }\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n },\r\n setErrors: function (errors) {\r\n this.applyResult({ errors: errors, failedRules: {} });\r\n },\r\n applyResult: function (_a) {\r\n var errors = _a.errors, failedRules = _a.failedRules, regenerateMap = _a.regenerateMap;\r\n this.errors = errors;\r\n this._regenerateMap = regenerateMap;\r\n this.failedRules = __assign({}, (failedRules || {}));\r\n this.setFlags({\r\n valid: !errors.length,\r\n passed: !errors.length,\r\n invalid: !!errors.length,\r\n failed: !!errors.length,\r\n validated: true,\r\n changed: !fastDeepEqual(this.value, this.initialValue)\r\n });\r\n },\r\n registerField: function () {\r\n updateRenderingContextRefs(this);\r\n },\r\n checkComputesRequiredState: function () {\r\n var rules = __assign(__assign({}, this._resolvedRules), this.normalizedRules);\r\n var isRequired = Object.keys(rules).some(RuleContainer.isRequireRule);\r\n return isRequired;\r\n }\r\n }\r\n});\r\nfunction computeClassObj(names, flags) {\r\n var acc = {};\r\n var keys = Object.keys(flags);\r\n var length = keys.length;\r\n var _loop_1 = function (i) {\r\n var flag = keys[i];\r\n var className = (names && names[flag]) || flag;\r\n var value = flags[flag];\r\n if (isNullOrUndefined(value)) {\r\n return \"continue\";\r\n }\r\n if ((flag === 'valid' || flag === 'invalid') && !flags.validated) {\r\n return \"continue\";\r\n }\r\n if (typeof className === 'string') {\r\n acc[className] = value;\r\n }\r\n else if (Array.isArray(className)) {\r\n className.forEach(function (cls) {\r\n acc[cls] = value;\r\n });\r\n }\r\n };\r\n for (var i = 0; i < length; i++) {\r\n _loop_1(i);\r\n }\r\n return acc;\r\n}\r\nfunction createLookup(vm) {\r\n var providers = vm.$_veeObserver.refs;\r\n var reduced = {\r\n names: {},\r\n values: {}\r\n };\r\n return vm.fieldDeps.reduce(function (acc, depName) {\r\n if (!providers[depName]) {\r\n return acc;\r\n }\r\n acc.values[depName] = providers[depName].value;\r\n acc.names[depName] = providers[depName].name;\r\n return acc;\r\n }, reduced);\r\n}\r\nfunction extractId(vm) {\r\n if (vm.vid) {\r\n return vm.vid;\r\n }\r\n if (vm.name) {\r\n return vm.name;\r\n }\r\n if (vm.id) {\r\n return vm.id;\r\n }\r\n if (vm.fieldName) {\r\n return vm.fieldName;\r\n }\r\n PROVIDER_COUNTER++;\r\n return \"_vee_\" + PROVIDER_COUNTER;\r\n}\r\nfunction updateRenderingContextRefs(vm) {\r\n var providedId = extractId(vm);\r\n var id = vm.id;\r\n // Nothing has changed.\r\n if (!vm.isActive || (id === providedId && vm.$_veeObserver.refs[id])) {\r\n return;\r\n }\r\n // vid was changed.\r\n if (id !== providedId && vm.$_veeObserver.refs[id] === vm) {\r\n vm.$_veeObserver.unobserve(id);\r\n }\r\n vm.id = providedId;\r\n vm.$_veeObserver.observe(vm);\r\n}\r\nfunction createObserver() {\r\n return {\r\n refs: {},\r\n observe: function (vm) {\r\n this.refs[vm.id] = vm;\r\n },\r\n unobserve: function (id) {\r\n delete this.refs[id];\r\n }\r\n };\r\n}\r\nfunction watchCrossFieldDep(ctx, depName, withHooks) {\r\n if (withHooks === void 0) { withHooks = true; }\r\n var providers = ctx.$_veeObserver.refs;\r\n if (!ctx._veeWatchers) {\r\n ctx._veeWatchers = {};\r\n }\r\n if (!providers[depName] && withHooks) {\r\n return ctx.$once('hook:mounted', function () {\r\n watchCrossFieldDep(ctx, depName, false);\r\n });\r\n }\r\n if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\r\n ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\r\n var isComputesRequired = ctx.checkComputesRequiredState();\r\n if (ctx.flags.validated) {\r\n ctx._needsValidation = true;\r\n ctx.validate();\r\n }\r\n // Validate dependent field silently if it has rules with computesRequired\r\n if (isComputesRequired && !ctx.flags.validated) {\r\n ctx.validateSilent();\r\n }\r\n });\r\n }\r\n}\n\nvar FLAGS_STRATEGIES = [\r\n ['pristine', 'every'],\r\n ['dirty', 'some'],\r\n ['touched', 'some'],\r\n ['untouched', 'every'],\r\n ['valid', 'every'],\r\n ['invalid', 'some'],\r\n ['pending', 'some'],\r\n ['validated', 'every'],\r\n ['changed', 'some'],\r\n ['passed', 'every'],\r\n ['failed', 'some']\r\n];\r\nvar OBSERVER_COUNTER = 0;\r\nfunction data() {\r\n var refs = {};\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n // FIXME: Not sure of this one can be typed, circular type reference.\r\n var observers = [];\r\n return {\r\n id: '',\r\n refs: refs,\r\n observers: observers,\r\n errors: errors,\r\n flags: flags,\r\n fields: fields\r\n };\r\n}\r\nfunction provideSelf() {\r\n return {\r\n $_veeObserver: this\r\n };\r\n}\r\nvar ValidationObserver = Vue.extend({\r\n name: 'ValidationObserver',\r\n provide: provideSelf,\r\n inject: {\r\n $_veeObserver: {\r\n from: '$_veeObserver',\r\n default: function () {\r\n if (!this.$vnode.context.$_veeObserver) {\r\n return null;\r\n }\r\n return this.$vnode.context.$_veeObserver;\r\n }\r\n }\r\n },\r\n props: {\r\n tag: {\r\n type: String,\r\n default: 'span'\r\n },\r\n vid: {\r\n type: String,\r\n default: function () {\r\n return \"obs_\" + OBSERVER_COUNTER++;\r\n }\r\n },\r\n slim: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data: data,\r\n created: function () {\r\n var _this = this;\r\n this.id = this.vid;\r\n register(this);\r\n var onChange = debounce(function (_a) {\r\n var errors = _a.errors, flags = _a.flags, fields = _a.fields;\r\n _this.errors = errors;\r\n _this.flags = flags;\r\n _this.fields = fields;\r\n }, 16);\r\n this.$watch(computeObserverState, onChange);\r\n },\r\n activated: function () {\r\n register(this);\r\n },\r\n deactivated: function () {\r\n unregister(this);\r\n },\r\n beforeDestroy: function () {\r\n unregister(this);\r\n },\r\n render: function (h) {\r\n var children = normalizeChildren(this, prepareSlotProps(this));\r\n return this.slim && children.length <= 1 ? children[0] : h(this.tag, { on: this.$listeners }, children);\r\n },\r\n methods: {\r\n observe: function (subscriber, kind) {\r\n var _a;\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'observer') {\r\n this.observers.push(subscriber);\r\n return;\r\n }\r\n this.refs = __assign(__assign({}, this.refs), (_a = {}, _a[subscriber.id] = subscriber, _a));\r\n },\r\n unobserve: function (id, kind) {\r\n if (kind === void 0) { kind = 'provider'; }\r\n if (kind === 'provider') {\r\n var provider = this.refs[id];\r\n if (!provider) {\r\n return;\r\n }\r\n this.$delete(this.refs, id);\r\n return;\r\n }\r\n var idx = findIndex(this.observers, function (o) { return o.id === id; });\r\n if (idx !== -1) {\r\n this.observers.splice(idx, 1);\r\n }\r\n },\r\n validateWithInfo: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var results, isValid, _c, errors, flags, fields;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0: return [4 /*yield*/, Promise.all(__spreadArrays(values(this.refs)\r\n .filter(function (r) { return !r.disabled; })\r\n .map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }), this.observers.filter(function (o) { return !o.disabled; }).map(function (obs) { return obs.validate({ silent: silent }); })))];\r\n case 1:\r\n results = _d.sent();\r\n isValid = results.every(function (r) { return r; });\r\n _c = computeObserverState.call(this), errors = _c.errors, flags = _c.flags, fields = _c.fields;\r\n this.errors = errors;\r\n this.flags = flags;\r\n this.fields = fields;\r\n return [2 /*return*/, {\r\n errors: errors,\r\n flags: flags,\r\n fields: fields,\r\n isValid: isValid\r\n }];\r\n }\r\n });\r\n });\r\n },\r\n validate: function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).silent, silent = _b === void 0 ? false : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0: return [4 /*yield*/, this.validateWithInfo({ silent: silent })];\r\n case 1:\r\n isValid = (_c.sent()).isValid;\r\n return [2 /*return*/, isValid];\r\n }\r\n });\r\n });\r\n },\r\n handleSubmit: function (cb) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isValid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validate()];\r\n case 1:\r\n isValid = _a.sent();\r\n if (!isValid || !cb) {\r\n return [2 /*return*/];\r\n }\r\n return [2 /*return*/, cb()];\r\n }\r\n });\r\n });\r\n },\r\n reset: function () {\r\n return __spreadArrays(values(this.refs), this.observers).forEach(function (ref) { return ref.reset(); });\r\n },\r\n setErrors: function (errors) {\r\n var _this = this;\r\n Object.keys(errors).forEach(function (key) {\r\n var provider = _this.refs[key];\r\n if (!provider)\r\n return;\r\n var errorArr = errors[key] || [];\r\n errorArr = typeof errorArr === 'string' ? [errorArr] : errorArr;\r\n provider.setErrors(errorArr);\r\n });\r\n this.observers.forEach(function (observer) {\r\n observer.setErrors(errors);\r\n });\r\n }\r\n }\r\n});\r\nfunction unregister(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.unobserve(vm.id, 'observer');\r\n }\r\n}\r\nfunction register(vm) {\r\n if (vm.$_veeObserver) {\r\n vm.$_veeObserver.observe(vm, 'observer');\r\n }\r\n}\r\nfunction prepareSlotProps(vm) {\r\n return __assign(__assign({}, vm.flags), { errors: vm.errors, fields: vm.fields, validate: vm.validate, validateWithInfo: vm.validateWithInfo, passes: vm.handleSubmit, handleSubmit: vm.handleSubmit, reset: vm.reset });\r\n}\r\n// Creates a modified version of validation flags\r\nfunction createObserverFlags() {\r\n return __assign(__assign({}, createFlags()), { valid: true, invalid: false });\r\n}\r\nfunction computeObserverState() {\r\n var vms = __spreadArrays(values(this.refs), this.observers.filter(function (o) { return !o.disabled; }));\r\n var errors = {};\r\n var flags = createObserverFlags();\r\n var fields = {};\r\n var length = vms.length;\r\n for (var i = 0; i < length; i++) {\r\n var vm = vms[i];\r\n // validation provider\r\n if (Array.isArray(vm.errors)) {\r\n errors[vm.id] = vm.errors;\r\n fields[vm.id] = __assign({ id: vm.id, name: vm.name, failedRules: vm.failedRules }, vm.flags);\r\n continue;\r\n }\r\n // Nested observer, merge errors and fields\r\n errors = __assign(__assign({}, errors), vm.errors);\r\n fields = __assign(__assign({}, fields), vm.fields);\r\n }\r\n FLAGS_STRATEGIES.forEach(function (_a) {\r\n var flag = _a[0], method = _a[1];\r\n flags[flag] = vms[method](function (vm) { return vm.flags[flag]; });\r\n });\r\n return { errors: errors, flags: flags, fields: fields };\r\n}\n\nfunction withValidation(component, mapProps) {\r\n var _a;\r\n if (mapProps === void 0) { mapProps = identity; }\r\n var options = 'options' in component ? component.options : component;\r\n var providerOpts = ValidationProvider.options;\r\n var hoc = {\r\n name: (options.name || 'AnonymousHoc') + \"WithValidation\",\r\n props: __assign({}, providerOpts.props),\r\n data: providerOpts.data,\r\n computed: __assign({}, providerOpts.computed),\r\n methods: __assign({}, providerOpts.methods),\r\n beforeDestroy: providerOpts.beforeDestroy,\r\n inject: providerOpts.inject\r\n };\r\n var eventName = ((_a = options === null || options === void 0 ? void 0 : options.model) === null || _a === void 0 ? void 0 : _a.event) || 'input';\r\n hoc.render = function (h) {\r\n var _a;\r\n this.registerField();\r\n var vctx = createValidationCtx(this);\r\n var listeners = __assign({}, this.$listeners);\r\n var model = findModel(this.$vnode);\r\n this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\r\n var value = findValue(this.$vnode);\r\n onRenderUpdate(this, value === null || value === void 0 ? void 0 : value.value);\r\n var _b = createCommonHandlers(this), onInput = _b.onInput, onBlur = _b.onBlur, onValidate = _b.onValidate;\r\n mergeVNodeListeners(listeners, eventName, onInput);\r\n mergeVNodeListeners(listeners, 'blur', onBlur);\r\n this.normalizedEvents.forEach(function (evt) {\r\n mergeVNodeListeners(listeners, evt, onValidate);\r\n });\r\n // Props are any attrs not associated with ValidationProvider Plus the model prop.\r\n // WARNING: Accidental prop overwrite will probably happen.\r\n var prop = (findModelConfig(this.$vnode) || { prop: 'value' }).prop;\r\n var props = __assign(__assign(__assign({}, this.$attrs), (_a = {}, _a[prop] = model === null || model === void 0 ? void 0 : model.value, _a)), mapProps(vctx));\r\n return h(options, {\r\n attrs: this.$attrs,\r\n props: props,\r\n on: listeners,\r\n scopedSlots: this.$scopedSlots\r\n }, normalizeSlots(this.$slots, this.$vnode.context));\r\n };\r\n return hoc;\r\n}\n\nvar version = '3.4.14';\n\nexport { ValidationObserver, ValidationProvider, configure, extend, localeChanged, localize, normalizeRules, setInteractionMode, validate, version, withValidation };\n","/*!\n * vue-i18n v8.28.2 \n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\nvar dateTimeFormatKeys = [\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'localeMatcher',\n \"hour12\",\n \"hourCycle\",\n \"timeZone\",\n \"formatMatcher\",\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName' ];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\n/**\n * Mixin\n * \n * If `bridge` mode, empty mixin is returned,\n * else regulary mixin implementation is returned.\n */\nfunction defineMixin (bridge) {\n if ( bridge === void 0 ) bridge = false;\n\n function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n }\n\n return bridge\n ? { mounted: mounted } // delegate `vue-i18n-bridge` mixin implementation\n : { // regulary \n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n = options.__i18nBridge || options.__i18n;\n _i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n$1 = options.__i18nBridge || options.__i18n;\n _i18n$1.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: mounted,\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n }\n}\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue, options) {\n if ( options === void 0 ) options = { bridge: false };\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(defineMixin(options.bridge));\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-zA-Z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_:|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-zA-Z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || options.datetimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._fallbackRootWithEmptyString = options.fallbackRootWithEmptyString === undefined\n ? true\n : !!options.fallbackRootWithEmptyString;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n if ('__VUE_I18N_BRIDGE__' in options) {\n this.__VUE_I18N_BRIDGE__ = options.__VUE_I18N_BRIDGE__;\n }\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true },sync: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data, __VUE18N__INSTANCE__: true });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var this$1 = this;\n return this._vm.$watch('$data', function () {\n var listeners = arrayFrom(this$1._dataListeners);\n var i = listeners.length;\n while(i--) {\n Vue.nextTick(function () {\n listeners[i] && listeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale (composer) {\n if (!composer) {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n } else {\n // deal with vue-i18n-bridge\n if (!this.__VUE_I18N_BRIDGE__) { return null }\n var self = this;\n var target$1 = this._vm;\n return this.vm.$watch('locale', function (val) {\n target$1.$set(target$1, 'locale', val);\n if (self.__VUE_I18N_BRIDGE__ && composer) {\n composer.locale.value = val;\n }\n target$1.$forceUpdate();\n }, { immediate: true })\n }\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nprototypeAccessors.sync.get = function () { return this._sync };\nprototypeAccessors.sync.set = function (val) { this._sync = val; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return (this._fallbackRootWithEmptyString? !val : isNull(val)) && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n\n // eslint-disable-next-line no-autofix/prefer-const\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values, formatter, path, interpolateMode) {\n var this$1 = this;\n\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n var messages = this._getMessages();\n var locale = this.locale;\n\n return {\n list: list,\n named: named,\n values: values,\n formatter: formatter,\n path: path,\n messages: messages,\n locale: locale,\n linked: function (linkedKey) { return this$1._interpolate(locale, messages[locale] || {}, linkedKey, null, interpolateMode, undefined, [linkedKey]); }\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(\n this._createMessageContext(values, this._formatter || defaultFormatter, path, interpolateMode)\n )\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? Object.assign({}, this._vm.messages[locale])\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n }\n\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key, options) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);\n return dtf.format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(dateTimeFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key, options)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.28.2';\n\nexport default VueI18n;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}]},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"search-form search__autocomplete\"},[_c(_vm.customSearch ? 'div' : 'form',{tag:\"component\",staticClass:\"--form\",attrs:{\"action\":\"/search\",\"method\":\"get\"}},[_c('div',{staticClass:\"form__input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputQuery),expression:\"inputQuery\"}],attrs:{\"id\":_vm.customSearch ? 'customQuery' : 'query',\"name\":\"query\",\"placeholder\":_vm.$t('autocomplete-placeholder'),\"type\":\"search\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.inputQuery)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.inputQuery=$event.target.value},function($event){return _vm.fetchAutocompleteData()}]}})]),_vm._v(\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autocompleteLoading),expression:\"autocompleteLoading\"}],staticClass:\"--loading\"},[_c('span',{staticClass:\"--spinner\"})]),_vm._v(\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.autocompleteRemove && ! _vm.autocompleteLoading),expression:\"autocompleteRemove && ! autocompleteLoading\"}],staticClass:\"--remove\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.clearSearchInput()}}}),_vm._v(\" \"),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(! _vm.autocompleteLoading),expression:\"! autocompleteLoading\"}]})]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showAutocomplete),expression:\"showAutocomplete\"}],staticClass:\"search__autocomplete_dropdown\"},[_c('div',{staticClass:\"--products\"},[(_vm.autocompleteData['products'].length)?_c('div',{staticClass:\"product__result\"},[_vm._l((_vm.autocompleteData['products']),function(product,index){return (index < 5 || _vm.customSearch)?[(_vm.customSearch)?_c('label',{class:{ '--active': _vm.isSelectedProduct(product.entity_id) },attrs:{\"for\":`p-${product.entity_id}`}},[_c('span',{staticClass:\"image__holder\"},[_c('img',{attrs:{\"src\":_vm.imageSrc(product),\"width\":\"85\",\"height\":\"85\",\"alt\":product.name}})]),_vm._v(\" \"),_c('span',{staticClass:\"--info\"},[_c('span',{staticClass:\"--title\"},[_vm._v(_vm._s(product['ec_brand'])+\" \"+_vm._s(product.name))]),_vm._v(\" \"),_c('span',{staticClass:\"--model\"},[_vm._v(_vm._s(product['ec_modelid']))]),_vm._v(\" \"),(product['show_price'])?_c('span',{staticClass:\"price__holder\"},[_c('span',{staticClass:\"price__final-price\"},[_vm._v(_vm._s(product['final_price_incl_tax'].priceFormat(_vm.locale)))])]):_vm._e()]),_vm._v(\" \"),_c('span',{staticClass:\"--checkbox\"},[_c('input',{attrs:{\"type\":\"checkbox\",\"id\":`p-${product.entity_id}`},domProps:{\"checked\":_vm.isSelectedProduct(product.entity_id)},on:{\"change\":function($event){return _vm.addProduct(product)}}})])]):_c('a',{attrs:{\"href\":product['url_key']}},[_c('span',{staticClass:\"image__holder\"},[_c('img',{attrs:{\"src\":_vm.imageSrc(product),\"width\":\"85\",\"height\":\"85\",\"alt\":product.name}})]),_vm._v(\" \"),_c('span',{staticClass:\"--info\"},[_c('span',{staticClass:\"--title\"},[_vm._v(_vm._s(product['ec_brand'])+\" \"+_vm._s(product.name))]),_vm._v(\" \"),_c('span',{staticClass:\"--model\"},[_vm._v(_vm._s(product['ec_modelid']))]),_vm._v(\" \"),(product['show_price'])?_c('span',{staticClass:\"price__holder\"},[_c('span',{staticClass:\"price__final-price\"},[_vm._v(_vm._s(product['final_price_incl_tax'].priceFormat(_vm.locale)))])]):_vm._e()])])]:_vm._e()})],2):_vm._e(),_vm._v(\" \"),(_vm.autocompleteData['products'].length > 5 && ! _vm.customSearch)?_c('p',{staticClass:\"more__results\"},[_c('a',{attrs:{\"href\":`/search?query=${_vm.inputQuery}`}},[_vm._v(_vm._s(_vm.$t('autocomplete-all-results')))])]):_vm._e()]),_vm._v(\" \"),(_vm.customSearch)?_c('div',{staticClass:\"--actions\"},[_c('button',{staticClass:\"--button\",attrs:{\"disabled\":! _vm.getProductRows.length},on:{\"click\":function($event){return _vm.addProductsToQuickBuy()}}},[_vm._v(_vm._s(_vm.$t('search')))])]):_vm._e(),_vm._v(\" \"),(_vm.autocompleteData['pages'].length || _vm.autocompleteData['categories'].length && ! _vm.customSearch)?_c('div',{staticClass:\"--extra\"},[(_vm.autocompleteData['categories'].length)?_c('div',{staticClass:\"category__result\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('autocomplete-categories')))]),_vm._v(\" \"),_vm._l((_vm.autocompleteData['categories']),function(page,index){return (index < 5)?_c('a',{key:index,attrs:{\"href\":page['url_key']}},[_vm._v(\"\\n \"+_vm._s(page['search_display_name'])+\"\\n \")]):_vm._e()})],2):_vm._e(),_vm._v(\" \"),(_vm.autocompleteData['pages'].length)?_c('div',{staticClass:\"cms__result\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('category-cms-results')))]),_vm._v(\" \"),_vm._l((_vm.autocompleteData['pages']),function(page,index){return (index < 5)?_c('a',{key:index,attrs:{\"href\":page['url_key']}},[_vm._v(\"\\n \"+_vm._s(page['title'])+\"\\n \")]):_vm._e()})],2):_vm._e()]):_vm._e()])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-26.use[0]!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutocompleteForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-26.use[0]!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutocompleteForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutocompleteForm.vue?vue&type=template&id=295bcd53&\"\nimport script from \"./AutocompleteForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./AutocompleteForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nexport function Emit(event) {\n return function (_target, propertyKey, descriptor) {\n var key = hyphenate(propertyKey);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n var emitName = event || key;\n if (returnValue === undefined) {\n if (args.length === 0) {\n _this.$emit(emitName);\n }\n else if (args.length === 1) {\n _this.$emit(emitName, args[0]);\n }\n else {\n _this.$emit.apply(_this, __spreadArrays([emitName], args));\n }\n }\n else {\n args.unshift(returnValue);\n _this.$emit.apply(_this, __spreadArrays([emitName], args));\n }\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(emit);\n }\n else {\n emit(returnValue);\n }\n return returnValue;\n };\n };\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of an inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function Inject(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[key] = options || key;\n }\n });\n}\n","export function needToProduceProvide(original) {\n return (typeof original !== 'function' ||\n (!original.managed && !original.managedReactive));\n}\nexport function produceProvide(original) {\n var provide = function () {\n var _this = this;\n var rv = typeof original === 'function' ? original.call(this) : original;\n rv = Object.create(rv || null);\n // set reactive services (propagates previous services if necessary)\n rv[reactiveInjectKey] = Object.create(this[reactiveInjectKey] || {});\n for (var i in provide.managed) {\n rv[provide.managed[i]] = this[i];\n }\n var _loop_1 = function (i) {\n rv[provide.managedReactive[i]] = this_1[i]; // Duplicates the behavior of `@Provide`\n Object.defineProperty(rv[reactiveInjectKey], provide.managedReactive[i], {\n enumerable: true,\n configurable: true,\n get: function () { return _this[i]; },\n });\n };\n var this_1 = this;\n for (var i in provide.managedReactive) {\n _loop_1(i);\n }\n return rv;\n };\n provide.managed = {};\n provide.managedReactive = {};\n return provide;\n}\n/** Used for keying reactive provide/inject properties */\nexport var reactiveInjectKey = '__reactiveInject__';\nexport function inheritInjected(componentOptions) {\n // inject parent reactive services (if any)\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject = componentOptions.inject || {};\n componentOptions.inject[reactiveInjectKey] = {\n from: reactiveInjectKey,\n default: {},\n };\n }\n}\n","import { createDecorator } from 'vue-class-component';\nimport { reactiveInjectKey } from '../helpers/provideInject';\n/**\n * decorator of a reactive inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function InjectReactive(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n var fromKey_1 = !!options ? options.from || options : key;\n var defaultVal_1 = (!!options && options.default) || undefined;\n if (!componentOptions.computed)\n componentOptions.computed = {};\n componentOptions.computed[key] = function () {\n var obj = this[reactiveInjectKey];\n return obj ? obj[fromKey_1] : defaultVal_1;\n };\n componentOptions.inject[reactiveInjectKey] = reactiveInjectKey;\n }\n });\n}\n","/** @see {@link https://github.com/vuejs/vue-class-component/blob/master/src/reflect.ts} */\nvar reflectMetadataIsSupported = typeof Reflect !== 'undefined' && typeof Reflect.getMetadata !== 'undefined';\nexport function applyMetadata(options, target, key) {\n if (reflectMetadataIsSupported) {\n if (!Array.isArray(options) &&\n typeof options !== 'function' &&\n !options.hasOwnProperty('type') &&\n typeof options.type === 'undefined') {\n var type = Reflect.getMetadata('design:type', target, key);\n if (type !== Object) {\n options.type = type;\n }\n }\n }\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of model\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function Model(event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of synced model and prop\n * @param propName the name to interface with from outside, must be different from decorated property\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function ModelSync(propName, event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[propName] = options;\n componentOptions.model = { prop: propName, event: event || k };\n (componentOptions.computed || (componentOptions.computed = {}))[k] = {\n get: function () {\n return this[propName];\n },\n set: function (value) {\n // @ts-ignore\n this.$emit(event, value);\n },\n };\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\nimport { applyMetadata } from '../helpers/metadata';\n/**\n * decorator of a synced prop\n * @param propName the name to interface with from outside, must be different from decorated property\n * @param options the options for the synced prop\n * @return PropertyDecorator | void\n */\nexport function PropSync(propName, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n applyMetadata(options, target, key);\n createDecorator(function (componentOptions, k) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[propName] = options;\n (componentOptions.computed || (componentOptions.computed = {}))[k] = {\n get: function () {\n return this[propName];\n },\n set: function (value) {\n this.$emit(\"update:\" + propName, value);\n },\n };\n })(target, key);\n };\n}\n","import { createDecorator } from 'vue-class-component';\nimport { inheritInjected, needToProduceProvide, produceProvide, } from '../helpers/provideInject';\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function Provide(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n inheritInjected(componentOptions);\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managed[k] = key || k;\n });\n}\n","import { createDecorator } from 'vue-class-component';\nimport { inheritInjected, needToProduceProvide, produceProvide, } from '../helpers/provideInject';\n/**\n * decorator of a reactive provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function ProvideReactive(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n inheritInjected(componentOptions);\n if (needToProduceProvide(provide)) {\n provide = componentOptions.provide = produceProvide(provide);\n }\n provide.managedReactive[k] = key || k;\n });\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of a ref prop\n * @param refKey the ref key defined in template\n */\nexport function Ref(refKey) {\n return createDecorator(function (options, key) {\n options.computed = options.computed || {};\n options.computed[key] = {\n cache: false,\n get: function () {\n return this.$refs[refKey || key];\n },\n };\n });\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator for capturings v-model binding to component\n * @param options the options for the prop\n */\nexport function VModel(options) {\n if (options === void 0) { options = {}; }\n var valueKey = 'value';\n return createDecorator(function (componentOptions, key) {\n ;\n (componentOptions.props || (componentOptions.props = {}))[valueKey] = options;\n (componentOptions.computed || (componentOptions.computed = {}))[key] = {\n get: function () {\n return this[valueKey];\n },\n set: function (value) {\n this.$emit('input', value);\n },\n };\n });\n}\n","import { createDecorator } from 'vue-class-component';\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n","/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys$1(modules) {\n return modules\n .reduce(function (keys, m) {\n return keys.concat(m.staticKeys || []);\n }, [])\n .join(',');\n}\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\nvar initProxy;\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n var warnNonPresent_1 = function (target, key) {\n warn$2(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n };\n var warnReservedPrefix_1 = function (target, key) {\n warn$2(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://v2.vuejs.org/v2/api/#data', target);\n };\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\n if (hasProxy_1) {\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function (target, key, value) {\n if (isBuiltInModifier_1(key)) {\n warn$2(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\n return false;\n }\n else {\n target[key] = value;\n return true;\n }\n }\n });\n }\n var hasHandler_1 = {\n has: function (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals_1(key) ||\n (typeof key === 'string' &&\n key.charAt(0) === '_' &&\n !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return has || !isAllowed;\n }\n };\n var getHandler_1 = {\n get: function (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return target[key];\n }\n };\n initProxy = function initProxy(vm) {\n if (hasProxy_1) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\n vm._renderProxy = new Proxy(vm, handlers);\n }\n else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INIITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = !shallow && observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn$2(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn$2(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn$2(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn$2(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn$2(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn$2(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn$2(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn$2(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn$2('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar mark;\nvar measure;\nif (process.env.NODE_ENV !== 'production') {\n var perf_1 = inBrowser && window.performance;\n /* istanbul ignore if */\n if (perf_1 &&\n // @ts-ignore\n perf_1.mark &&\n // @ts-ignore\n perf_1.measure &&\n // @ts-ignore\n perf_1.clearMarks &&\n // @ts-ignore\n perf_1.clearMeasures) {\n mark = function (tag) { return perf_1.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf_1.measure(name, startTag, endTag);\n perf_1.clearMarks(startTag);\n perf_1.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn$2(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.