{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.regexp.test.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/queue.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./src/components/blog/BlogPostTile.vue?bafc","webpack:///./node_modules/vuex/dist/vuex.esm-browser.js","webpack:///./src/store/index.ts","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./src/features/product-builder/components/editor/ProductSelectorProductTile.vue?1905","webpack:///./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/array-species-constructor.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./src/components/misc/TermlyPolicy.vue?2969","webpack:///./src/components/misc/TermlyPolicy.vue?5b7f","webpack:///./src/components/misc/TermlyPolicy.vue","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./src/features/product-builder/ProductDesigner.vue?15d6","webpack:///./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack:///./node_modules/core-js/modules/es.weak-map.js","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/@popperjs/core/lib/index.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./src/components/featured/FeaturedProducts.vue?3918","webpack:///./src/components/featured/FeaturedProducts.vue?4b66","webpack:///./src/components/featured/FeaturedProducts.vue","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./src/network/api.ts","webpack:///./node_modules/core-js/modules/es.object.define-properties.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/index.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///./node_modules/vue-meta/dist/vue-meta.esm-browser.min.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./src/features/product-builder/components/editor/CustomizationPicker.vue?5ef6","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///./src/components/navigation/Footer.vue?dff9","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/function-apply.js","webpack:///./node_modules/core-js/modules/es.regexp.sticky.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./src/components/banners/TrustpilotBanner.vue?3549","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./src/components/general-information/GenericPage.vue?c18f","webpack:///./src/components/general-information/GenericPage.vue?7c5e","webpack:///./src/components/general-information/GenericPage.vue","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./src/components/general-information/GenericPage.vue?fd30","webpack:///./node_modules/@popperjs/core/lib/popper.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///./src/features/product-builder/components/editor/BackgroundReplaceImageUploader.vue?cc9c","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./src/components/banners/ChooseCreateOrderBanner.vue?4bb6","webpack:///./src/components/misc/BasicPromptModal.vue?877f","webpack:///./src/components/misc/BasicPromptModal.vue?e175","webpack:///./src/components/misc/BasicPromptModal.vue","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./src/features/product-builder/components/editor/ArtAssetUpload.vue?e5b2","webpack:///./node_modules/@popperjs/core/lib/popper-lite.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/array-slice-simple.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/object-is-extensible.js","webpack:///./node_modules/core-js/modules/es.object.entries.js","webpack:///./src/components/general-information/InfoPageBlock.vue?127c","webpack:///./node_modules/core-js/internals/a-constructor.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.regexp.flags.js","webpack:///./src/components/navigation/product-menu/ProductMenuMobile.vue?1b4b","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.reflect.get.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./src/features/product-builder/components/editor/ControlSections.vue?a12d","webpack:///./node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/core-js/internals/engine-is-browser.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./src/components/blog/BlogPostTile.vue?905a","webpack:///./src/components/blog/BlogPostTile.vue?1b4b","webpack:///./src/components/blog/BlogPostTile.vue","webpack:///./src/views/home/HomePage.vue?cae8","webpack:///./node_modules/core-js/internals/is-constructor.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/vue-loader-v16/dist/exportHelper.js","webpack:///./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///./node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///./node_modules/@popperjs/core/lib/createPopper.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./src/components/misc/DesignNowSvg.vue?0dc1","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/recaptcha-v3/dist/ReCaptcha.js","webpack:///./src/features/product-builder/components/editor/ResetTemplate.vue?42a3","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./src/components/navigation/search-bar/SearchBar.vue?21f6","webpack:///./src/components/navigation/currency-selector/CurrencySelectorMobile.vue?883c","webpack:///./node_modules/vue-recaptcha-v3/dist/ReCaptchaVuePlugin.js","webpack:///./src/features/product-builder/components/editor/ControlBox.vue?5508","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/@popperjs/core/lib/enums.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/dom-token-list-prototype.js","webpack:///./src/components/featured/FeaturedCategories.vue?3e05","webpack:///./src/components/featured/FeaturedCategories.vue?a823","webpack:///./src/components/featured/FeaturedCategories.vue","webpack:///./node_modules/vue/dist/vue.runtime.esm-bundler.js","webpack:///./node_modules/core-js/modules/es.object.define-property.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/vee-validate/dist/vee-validate.esm.js","webpack:///./node_modules/core-js/internals/try-node-require.js","webpack:///./node_modules/marked/lib/marked.umd.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/number-parse-float.js","webpack:///./node_modules/vue-stripe-js/dist/vue-stripe.es.js","webpack:///./node_modules/core-js/modules/es.reflect.set.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/modules/web.atob.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./src/components/navigation/currency-selector/CurrencyGroup.vue?732b","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./src/components/banners/HeadingBanner.vue?53f9","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:///./node_modules/@popperjs/core/lib/utils/math.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./src/features/product-builder/components/editor/FeaturesPicker.vue?2d33","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./src/components/banners/StatementBanner.vue?6395","webpack:///./node_modules/core-js/modules/es.string.ends-with.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack:///./src/seo/facebook-pixel-helper/index.ts","webpack:///./src/features/product-builder/components/editor/FeaturesTextEditor.vue?9b99","webpack:///./src/components/navigation/NavBar.vue?6ede","webpack:///./src/components/navigation/search-bar/SearchBar.vue?7f19","webpack:///./src/components/navigation/search-bar/GlobalSearchResultTile.vue?dd20","webpack:///./src/components/navigation/search-bar/GlobalSearchResultTile.vue?fa71","webpack:///./src/components/navigation/search-bar/GlobalSearchResultTile.vue","webpack:///./src/components/navigation/search-bar/SearchBar.vue?02fa","webpack:///./src/components/navigation/search-bar/SearchBar.vue","webpack:///./src/components/navigation/product-menu/ProductMenu.vue?2633","webpack:///./src/components/navigation/product-menu/ProductMenu.vue?eb37","webpack:///./src/components/navigation/product-menu/ProductMenu.vue","webpack:///./src/components/navigation/product-menu/ProductMenuMobile.vue?d2f7","webpack:///./src/components/navigation/product-menu/ProductMenuMobile.vue?1a8b","webpack:///./src/components/navigation/product-menu/ProductMenuMobile.vue","webpack:///./src/components/navigation/currency-selector/CurrencySelectorMobile.vue?40cd","webpack:///./src/components/navigation/currency-selector/CurrencyGroup.vue?cc5e","webpack:///./src/components/navigation/currency-selector/CurrencyGroup.vue?8860","webpack:///./src/components/navigation/currency-selector/CurrencyGroup.vue","webpack:///./src/components/navigation/currency-selector/CurrencySelectorMobile.vue?6047","webpack:///./src/components/navigation/currency-selector/CurrencySelectorMobile.vue","webpack:///./src/components/navigation/cart-summary/CartSummaryProductTile.vue?64d3","webpack:///./src/components/navigation/cart-summary/CartSummaryProductTile.vue?4ad4","webpack:///./src/components/navigation/cart-summary/CartSummaryProductTile.vue","webpack:///./src/components/navigation/currency-selector/NewCurrencySelector.vue?143c","webpack:///./src/components/navigation/currency-selector/NewCurrencySelector.vue?d246","webpack:///./src/components/navigation/currency-selector/NewCurrencySelector.vue","webpack:///./src/components/navigation/NavBar.vue?40be","webpack:///./src/components/navigation/NavBar.vue","webpack:///./node_modules/core-js/modules/es.typed-array.at.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./src/features/product-builder/components/editor/CommonActions.vue?7d64","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./src/features/product-builder/components/editor/PurchaseOptions.vue?152d","webpack:///./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/features/product-builder/components/editor/SelectedItemTrigger.vue?93e2","webpack:///./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///./src/components/banner-messages/BannerMessage.vue?dc60","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./src/components/misc/BasicVueModal.vue?4256","webpack:///./src/components/misc/BasicVueModal.vue?ce1b","webpack:///./src/components/misc/BasicVueModal.vue","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/@splidejs/splide-extension-auto-scroll/dist/js/splide-extension-auto-scroll.esm.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./src/features/product-builder/components/editor/TextAdd.vue?98c8","webpack:///./src/mixins/utilities.ts","webpack:///./src/components/misc/NewsletterForm.vue?f453","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/vue-gtag/dist/vue-gtag.esm.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./src/features/product-builder/components/editor/DesignerMobileNav.vue?d69c","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/internals/error-to-string.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/internals/install-error-cause.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/core-js/modules/es.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/collection-weak.js","webpack:///./node_modules/core-js/modules/es.parse-float.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./src/features/product-builder/components/editor/ElementTile.vue?9fe4","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///./src/components/general-information/InfoPageBlock.vue?e446","webpack:///./src/components/general-information/InfoPageBlock.vue?8572","webpack:///./src/components/general-information/InfoPageBlock.vue","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./src/views/home/HomePage.vue?b22e","webpack:///./src/components/banners/CarouselBanner.vue?aee1","webpack:///./src/components/banners/CarouselBanner.vue?3541","webpack:///./src/components/banners/CarouselBanner.vue","webpack:///./src/components/featured/FeaturedAll.vue?158c","webpack:///./src/components/featured/FeaturedAll.vue?d0ea","webpack:///./src/components/featured/FeaturedAll.vue","webpack:///./src/components/banners/TrustpilotBanner.vue?4e75","webpack:///./src/components/banners/TrustpilotBanner.vue?657b","webpack:///./src/components/banners/TrustpilotBanner.vue","webpack:///./src/components/misc/DesignNowSvg.vue?2a95","webpack:///./src/components/misc/DesignNowSvg.vue?eed0","webpack:///./src/components/misc/DesignNowSvg.vue","webpack:///./src/views/home/HomePage.vue?1c2c","webpack:///./src/views/home/HomePage.vue","webpack:///./src/router/index.ts","webpack:///./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./src/components/misc/BasicVueModal.vue?9eb8","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/recaptcha-v3/dist/ReCaptchaInstance.js","webpack:///./src/components/featured/FeaturedAll.vue?ac56","webpack:///./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/typed-array-species-constructor.js","webpack:///./src/features/product-builder/components/editor/FabricColourPicker.vue?a70a","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///./src/features/product-builder/components/viewer/ProductView.vue?a78b","webpack:///./node_modules/core-js/internals/base64-map.js","webpack:///./node_modules/core-js/internals/error-stack-installable.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./src/components/misc/BasicPromptModal.vue?d0ea","webpack:///./src/components/banners/GenericBanner.vue?7753","webpack:///./src/features/product-builder/components/editor/StyleDesignPicker.vue?8601","webpack:///./src/components/navigation/Footer.vue?53be","webpack:///./src/components/navigation/Footer.vue?efd7","webpack:///./src/components/navigation/Footer.vue","webpack:///./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./src/components/misc/PageNotFoundBanner.vue?612a","webpack:///./src/components/misc/PageNotFoundBanner.vue?2298","webpack:///./src/components/misc/PageNotFoundBanner.vue","webpack:///./src/components/banner-messages/BannerMessage.vue?6850","webpack:///./src/components/banner-messages/BannerMessage.vue?f2c6","webpack:///./src/components/banner-messages/BannerMessage.vue","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./src/components/navigation/currency-selector/NewCurrencySelector.vue?144f","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./src/components/banners/StatementBanner.vue?9e83","webpack:///./src/components/banners/StatementBanner.vue?8c18","webpack:///./src/components/banners/StatementBanner.vue","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/modules/es.regexp.dot-all.js","webpack:///./node_modules/core-js/internals/is-data-descriptor.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/internals/clear-error-stack.js","webpack:///./src/components/navigation/product-menu/ProductMenu.vue?170e","webpack:///./node_modules/vue3-lottie/dist/vue3-lottie.es.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/@vee-validate/rules/dist/vee-validate-rules.esm.js","webpack:///./src/network/auth-interceptor.ts","webpack:///./src/store/modules/user.ts","webpack:///./src/store/modules/location.ts","webpack:///./node_modules/vue3-google-login/dist/index.esm.js","webpack:///./src/social-auth-providers/apple-signin/index.ts","webpack:///./src/social-auth-providers/facebook-signin/index.ts","webpack:///./node_modules/vue3-click-away/dist/module.js","webpack:///./src/store/modules/checkout.ts","webpack:///./src/main.ts","webpack:///./src/store/modules/auth.ts","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm-bundler.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/modules/es.object.prevent-extensions.js","webpack:///./node_modules/core-js/internals/dom-exception-constants.js","webpack:///./src/components/misc/NewsletterForm.vue?440c","webpack:///./src/components/misc/NewsletterForm.vue?85c0","webpack:///./src/components/misc/NewsletterForm.vue","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/vue-debounce/dist/vue-debounce.min.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./src/components/general-information/InfoPageParagraph.vue?9633","webpack:///./src/components/general-information/InfoPageParagraph.vue?7c6b","webpack:///./src/components/general-information/InfoPageParagraph.vue","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack:///./src/features/product-builder/components/editor/ArtAssetPicker.vue?e50b","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/internals/validate-arguments-length.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./src/components/general-information/InfoPageParagraph.vue?1563","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/core-js/modules/es.error.cause.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./src/features/product-builder/ProductDesigner.vue?b452","webpack:///./src/features/product-builder/components/viewer/ProductView.vue?47ca","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderImage.vue?fa2e","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderImage.vue?1ca9","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderImage.vue","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderText.vue?8ac6","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderText.vue?8fa8","webpack:///./src/features/product-builder/components/viewer/render-types/BuilderText.vue","webpack:///./src/features/product-builder/components/viewer/svg-utils/InvertTransform.vue?5776","webpack:///./src/features/product-builder/components/viewer/svg-utils/InvertTransform.vue?1348","webpack:///./src/features/product-builder/components/viewer/svg-utils/InvertTransform.vue","webpack:///./src/features/product-builder/components/editor/ControlBox.vue?c32a","webpack:///./src/features/product-builder/components/editor/ControlBox.vue?c197","webpack:///./src/features/product-builder/components/editor/ControlBox.vue","webpack:///./src/features/product-builder/components/viewer/ProductView.vue?f802","webpack:///./src/features/product-builder/components/viewer/ProductView.vue","webpack:///./src/features/product-builder/components/editor/FabricColourPicker.vue?3d26","webpack:///./src/features/product-builder/components/editor/FabricColourPicker.vue?7920","webpack:///./src/features/product-builder/components/editor/FabricColourPicker.vue","webpack:///./src/features/product-builder/components/editor/TextAdd.vue?71fe","webpack:///./src/features/product-builder/components/editor/TextAdd.vue?0868","webpack:///./src/features/product-builder/components/editor/TextAdd.vue","webpack:///./src/features/product-builder/components/editor/TextEditor.vue?9d4f","webpack:///./src/features/product-builder/components/editor/CustomizationPicker.vue?b5c4","webpack:///./src/features/product-builder/components/editor/CustomizationPicker.vue?fbfb","webpack:///./src/features/product-builder/components/editor/CustomizationPicker.vue","webpack:///./src/features/product-builder/components/editor/TextEditor.vue?6eb2","webpack:///./src/features/product-builder/components/editor/TextEditor.vue","webpack:///./src/features/product-builder/components/editor/FeaturesTextEditor.vue?7bf7","webpack:///./src/features/product-builder/components/editor/FeaturesTextEditor.vue?1981","webpack:///./src/features/product-builder/components/editor/FeaturesTextEditor.vue","webpack:///./src/features/product-builder/components/editor/FeaturesPicker.vue?04b8","webpack:///./src/features/product-builder/components/editor/ElementTile.vue?321e","webpack:///./src/features/product-builder/components/editor/ElementTile.vue?183b","webpack:///./src/features/product-builder/components/editor/ElementTile.vue","webpack:///./src/features/product-builder/components/editor/FeaturesPicker.vue?a605","webpack:///./src/features/product-builder/components/editor/FeaturesPicker.vue","webpack:///./src/features/product-builder/components/editor/ArtAssetPicker.vue?8a51","webpack:///./src/features/product-builder/components/editor/ArtAssetPicker.vue?64b0","webpack:///./src/features/product-builder/components/editor/ArtAssetPicker.vue","webpack:///./src/features/product-builder/components/editor/StyleDesignPicker.vue?1a4c","webpack:///./src/features/product-builder/components/editor/StyleDesignPicker.vue?7730","webpack:///./src/features/product-builder/components/editor/StyleDesignPicker.vue","webpack:///./src/features/product-builder/components/editor/ArtAssetUpload.vue?6120","webpack:///./src/features/product-builder/components/editor/BackgroundReplaceImageUploader.vue?f4aa","webpack:///./src/features/product-builder/components/editor/BackgroundReplaceImageUploader.vue?5a2d","webpack:///./src/features/product-builder/components/editor/BackgroundReplaceImageUploader.vue","webpack:///./src/features/product-builder/components/editor/ArtAssetUpload.vue?0f39","webpack:///./src/features/product-builder/components/editor/ArtAssetUpload.vue","webpack:///./src/features/product-builder/components/editor/ResetTemplate.vue?605e","webpack:///./src/features/product-builder/components/editor/ResetTemplate.vue?cd68","webpack:///./src/features/product-builder/components/editor/ResetTemplate.vue","webpack:///./src/features/product-builder/components/editor/CommonActions.vue?6256","webpack:///./src/features/product-builder/components/editor/CommonActions.vue?34cf","webpack:///./src/features/product-builder/components/editor/CommonActions.vue","webpack:///./src/features/product-builder/components/editor/PriceTracker.vue?4d5d","webpack:///./src/features/product-builder/components/editor/PriceTracker.vue?fa40","webpack:///./src/features/product-builder/components/editor/PriceTracker.vue","webpack:///./src/features/product-builder/components/editor/ControlSections.vue?da28","webpack:///./src/features/product-builder/components/editor/DesignerMobileNav.vue?354e","webpack:///./src/features/product-builder/components/editor/DesignerMobileNav.vue?e25f","webpack:///./src/features/product-builder/components/editor/DesignerMobileNav.vue","webpack:///./src/features/product-builder/components/editor/ControlSections.vue?5393","webpack:///./src/features/product-builder/components/editor/ControlSections.vue","webpack:///./src/features/product-builder/components/editor/GeneralOptions.vue?6be2","webpack:///./src/features/product-builder/components/editor/GeneralOptions.vue?a5d8","webpack:///./src/features/product-builder/components/editor/GeneralOptions.vue","webpack:///./src/features/product-builder/components/editor/PurchaseOptions.vue?b95e","webpack:///./src/features/product-builder/components/editor/PurchaseOptions.vue?77bb","webpack:///./src/features/product-builder/components/editor/PurchaseOptions.vue","webpack:///./src/features/product-builder/components/editor/ProductSelector.vue?5b26","webpack:///./src/features/product-builder/components/editor/ProductSelectorCategoryTile.vue?bddf","webpack:///./src/features/product-builder/components/editor/ProductSelectorCategoryTile.vue?080d","webpack:///./src/features/product-builder/components/editor/ProductSelectorCategoryTile.vue","webpack:///./src/features/product-builder/components/editor/ProductSelectorProductTile.vue?87ca","webpack:///./src/features/product-builder/components/editor/ProductSelectorProductTile.vue?869c","webpack:///./src/features/product-builder/components/editor/ProductSelectorProductTile.vue","webpack:///./src/features/product-builder/components/editor/ProductSelector.vue?7676","webpack:///./src/features/product-builder/components/editor/ProductSelector.vue","webpack:///./src/features/product-builder/components/editor/SelectedItemTrigger.vue?85e8","webpack:///./src/features/product-builder/components/editor/SelectedItemTrigger.vue?0729","webpack:///./src/features/product-builder/components/editor/SelectedItemTrigger.vue","webpack:///./src/features/product-builder/ProductDesigner.vue?b6aa","webpack:///./src/features/product-builder/ProductDesigner.vue","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.parse-int.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/@popperjs/core/lib/utils/within.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./src/components/banners/HeadingBanner.vue?7d33","webpack:///./src/components/banners/HeadingBanner.vue?120a","webpack:///./src/components/banners/HeadingBanner.vue","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./src/components/banners/GenericBanner.vue?bb22","webpack:///./src/components/banners/GenericBanner.vue?fec1","webpack:///./src/components/banners/GenericBanner.vue","webpack:///./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/modules/es.number.min-safe-integer.js","webpack:///./src/components/banners/ChooseCreateOrderBanner.vue?7b4f","webpack:///./src/components/banners/ChooseCreateOrderBanner.vue?4daf","webpack:///./src/components/banners/ChooseCreateOrderBanner.vue","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/modules/es.json.stringify.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///./node_modules/core-js/internals/is-integral-number.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./src/mixins/gtag.ts","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///./src/features/product-builder/components/editor/TextEditor.vue?de52","webpack:///./src/components/banners/CarouselBanner.vue?02a7","webpack:///./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/array-slice.js","webpack:///./src/components/navigation/NavBar.vue?c109","webpack:///./node_modules/core-js/modules/es.string.code-point-at.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./src/features/product-builder/components/editor/ProductSelectorCategoryTile.vue?8c3f","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./src/features/product-builder/components/editor/PriceTracker.vue?64a5","webpack:///./src/components/navigation/search-bar/GlobalSearchResultTile.vue?fb97","webpack:///./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./src/features/product-builder/components/editor/GeneralOptions.vue?2737","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./src/components/navigation/cart-summary/CartSummaryProductTile.vue?7ed4","webpack:///./node_modules/@splidejs/vue-splide/dist/js/vue-splide.esm.js","webpack:///./node_modules/recaptcha-v3/dist/ReCaptchaLoader.js"],"names":["$","global","call","uncurryThis","isCallable","isObject","DELEGATES_TO_EXEC","execCalled","re","exec","apply","this","arguments","test","Error","un$Test","target","proto","forced","str","result","wellKnownSymbol","TO_STRING_TAG","module","exports","String","Queue","head","tail","prototype","add","item","entry","next","get","aCallable","NATIVE_BIND","bind","fn","that","undefined","flattenIntoArray","toObject","lengthOfArrayLike","toIntegerOrInfinity","arraySpeciesCreate","flat","depthArg","length","O","sourceLen","A","userAgent","firefox","match","hasOwn","arraySlice","Function","concat","join","factories","construct","C","argsLength","args","list","i","F","Prototype","partArgs","boundFunction","classof","toIndexedObject","$getOwnPropertyNames","f","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","storeKey","forEachValue","obj","keys","forEach","key","isPromise","val","then","assert","condition","msg","partial","arg","genericSubscribe","subs","options","indexOf","prepend","unshift","push","splice","resetStore","store","hot","_actions","create","_mutations","_wrappedGetters","_modulesNamespaceMap","state","installModule","_modules","root","resetStoreState","oldState","_state","getters","_makeLocalGettersCache","wrappedGetters","computedObj","defineProperty","enumerable","data","strict","enableStrictMode","_withCommit","rootState","path","isRoot","namespace","getNamespace","namespaced","console","parentState","getNestedState","slice","moduleName","warn","local","context","makeLocalContext","forEachMutation","mutation","namespacedType","registerMutation","forEachAction","action","type","handler","registerAction","forEachGetter","getter","registerGetter","forEachChild","child","noNamespace","dispatch","_type","_payload","_options","unifyObjectStyle","payload","commit","defineProperties","makeLocalGetters","gettersProxy","splitPos","localType","res","rootGetters","Promise","resolve","_devtoolHook","catch","err","emit","rawGetter","_committing","deep","flush","reduce","LABEL_VUEX_BINDINGS","MUTATIONS_LAYER_ID","ACTIONS_LAYER_ID","INSPECTOR_ID","actionId","addDevtools","app","id","label","homepage","logo","packageName","componentStateTypes","api","addTimelineLayer","color","COLOR_LIME_500","addInspector","icon","treeFilterPlaceholder","on","getInspectorTree","inspectorId","filter","nodes","flattenStoreForInspectorTree","rootNodes","formatStoreForInspectorTree","getInspectorState","modulePath","nodeId","formatStoreForInspectorState","getStoreModule","editInspectorState","split","Boolean","set","value","subscribe","notifyComponentUpdate","sendInspectorTree","sendInspectorState","addTimelineEvent","layerId","event","time","Date","now","title","subscribeAction","before","_id","_time","groupId","subtitle","after","duration","_custom","display","tooltip","COLOR_DARK","COLOR_WHITE","TAG_NAMESPACED","textColor","backgroundColor","extractNameFromPath","tags","children","_children","map","includes","endsWith","gettersKeys","storeState","editable","tree","transformPathsToObjectTree","canThrow","leafKey","pop","p","abstract","moduleMap","names","n","cb","e","Module","rawModule","runtime","_rawModule","rawState","prototypeAccessors$1","configurable","addChild","removeChild","getChild","hasChild","update","actions","mutations","ModuleCollection","rawRootModule","register","targetModule","newModule","assertRawModule","modules","this$1$1","parent","rawChildModule","unregister","isRegistered","functionAssert","expected","objectAssert","assertTypes","assertOptions","makeAssertionMessage","buf","JSON","stringify","createStore","Store","plugins","devtools","_actionSubscribers","_subscribers","_devtools","ref","plugin","prototypeAccessors","install","injectKey","provide","config","globalProperties","$store","useDevtools","v","sub","silent","all","reject","watch","assign","replaceState","registerModule","Array","isArray","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","normalizeNamespace","states","isValidMap","normalizeMap","getModuleByNamespace","vuex","len","charAt","helper","Symbol","version","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPropertyKey","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","P","toLength","toPaddingObject","padding","rects","placement","arrow","_ref","_state$modifiersData$","name","arrowElement","elements","popperOffsets","modifiersData","basePlacement","axis","isVertical","paddingObject","arrowRect","minProp","maxProp","endDiff","reference","popper","startDiff","arrowOffsetParent","clientSize","clientHeight","clientWidth","centerToReference","min","max","center","offset","axisProp","centerOffset","effect","_ref2","_options$element","element","querySelector","enabled","phase","requires","requiresIfExists","applyStyles","style","styles","attributes","removeAttribute","setAttribute","initialStyles","position","strategy","left","top","margin","styleProperties","hasOwnProperty","property","attribute","RangeError","number","isConstructor","SPECIES","originalArray","constructor","setToStringTag","_hoisted_1","class","render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","mounted","existingScript","document","getElementById","parentNode","script","createElement","src","body","appendChild","__exports__","floor","Math","replace","stringSlice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","fails","a","IS_PURE","ITERATOR","url","URL","searchParams","pathname","toJSON","sort","href","URLSearchParams","username","host","hash","argument","tryNodeRequire","getBuiltIn","redefine","anInstance","anObject","errorToString","normalizeStringArgument","DOMExceptionConstants","clearErrorStack","InternalStateModule","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","MessageChannel","port1","postMessage","WeakMap","code","NativeDOMExceptionPrototype","ErrorPrototype","setInternalState","getInternalState","getterFor","HAS_STACK","codeFor","c","$DOMException","DOMExceptionPrototype","argumentsLength","message","stack","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_TO_STRING","toString","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","s","descriptor","getBoundingClientRect","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","width","height","right","bottom","x","y","$RegExp","RegExp","groups","InternalWeakMap","redefineAll","InternalMetadataModule","collection","collectionWeak","isExtensible","enforceInternalState","enforce","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","wrapper","init","$WeakMap","getConstructor","enable","WeakMapPrototype","nativeDelete","nativeHas","has","nativeGet","nativeSet","frozen","requireObjectCoercible","count","Infinity","fixRegExpWellKnownSymbolLogic","isRegExp","speciesConstructor","advanceStringIndex","getMethod","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","$push","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","index","splitter","rx","S","done","unicodeMatching","q","z","is","setPrototypeOf","stat","$reduce","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","STRICT_METHOD","CHROME_BUG","callbackfn","arrayFromConstructorAndList","typedArraySpeciesConstructor","instance","toAbsoluteIndex","copyWithin","start","to","from","end","inc","TypeError","R","DOMIterables","DOMTokenListPrototype","createNonEnumerableProperty","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","begin","beginIndex","buffer","byteOffset","BYTES_PER_ELEMENT","$forEach","toPositiveInteger","BYTES","createHTML","forcedStringHTMLMethod","anchor","isPrototypeOf","_hoisted_2","_component_SplideSlider","_resolveComponent","featuredProducts","_createElementVNode","_createVNode","imageArray","isCategory","tileCategory","infoLinkTo","_createCommentVNode","FeaturedProducts","loadInitialData","Products","productsFeaturedGet","log","resultData","items","mixins","UploadPath","Options","components","SplideSlider","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","globalConf","axios","CliftonAPI","basePath","process","Authentication","Categories","ProductTags","Blogs","BlogCategories","BannerItems","GeneralSettings","Clients","Countries","CustomizedProducts","Carts","CartItems","ProductBuilder","Payments","Users","UserAddresses","Orders","Enquiries","AdminOrders","AdminExtras","AdminExtraCustomizedProductItemTemplate","SEOSettings","Stores","StoreCustomizedProducts","BannerMessages","CarouselItems","Campaigns","FacebookConversionsApi","sham","getSideOffsets","overflow","preventedOffsets","isAnySideFullyClipped","some","side","hide","referenceRect","popperRect","preventOverflow","referenceOverflow","elementContext","popperAltOverflow","altBoundary","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","V8_VERSION","METHOD_NAME","array","foo","getWindow","node","ownerDocument","defaultView","d","t","o","r","depth","freeze","__proto__","setup","vm","b","tag","base","valueAttribute","charset","nameless","description","og","group","namespacedAttribute","keyAttribute","twitter","htmlAttrs","attributesFor","headAttrs","bodyAttrs","h","contentAsAttribute","meta","link","noscript","g","k","N","j","w","active","sources","Proxy","Reflect","u","l","deleteProperty","M","isSSR","vnode","querySelectorAll","el","attrs","U","tagNamespace","fullName","slotName","E","innerHTML","metainfo","slots","content","toStringTag","_","L","appContext","$metaManager","B","addMeta","T","inheritAttrs","D","props","H","J","resolver","component","removed","addSource","unmount","onRemoved","proxy","$el","offsetParent","MutationObserver","removedNodes","disconnect","reallyUnmount","observe","childList","delSource","ssrCleanedUp","readyState","addEventListener","once","compute","findIndex","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","Uint16Array","un$Sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","getSortCompare","comparefn","tryToString","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterator","iterFn","step","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","callFn","integer","setGlobal","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","noTargetGet","internalObjectKeys","enumBugKeys","hiddenKeys","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","$reduceRight","PROPER_FUNCTION_NAME","PROPER","$toString","regExpFlags","TO_STRING","RegExpPrototype","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","Constructor","isElement","OwnElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getParentNode","assignedSlot","Int8Array","kind","innerResult","innerError","sign","EOF","USE_NATIVE_URL","arrayFrom","codeAt","toASCII","validateArgumentsLength","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","getState","NativeURL","parseInt","pow","numberToString","shift","toLowerCase","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","input","partsLength","numbers","part","radix","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","seenAt","seenBracket","seenPasswordToken","scheme","password","port","query","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","facade","getHash","setHash","URLPrototype","accessorDescriptor","setter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","FunctionPrototype","MISSED_STICKY","location","defer","channel","html","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","counter","queue","ONREADYSTATECHANGE","run","runner","listener","post","nextTick","port2","onmessage","importScripts","setTimeout","Deno","versions","v8","$lastIndexOf","searchElement","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","getPrototypeOf","_hoisted_3","_hoisted_4","_toDisplayString","heading","_renderSlot","$slots","text","GenericPage","Vue","default","Iterators","getFreshSideObject","V8_PROTOTYPE_DEFINE_BUG","objectKeys","Properties","defaultModifiers","createPopper","$findIndex","predicate","__webpack_amd_options__","toOffset","Int8ArrayPrototype","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","Uint8ClampedArray","0","TO_OBJECT_BUG","NATIVE_ARRAY_BUFFER_VIEWS","arrayLike","defineIterator","STRING_ITERATOR","iterated","point","getVariation","HOOK_SETUP","HOOK_PLUGIN_SETTINGS_SET","hook","targetQueue","onQueue","defaultSettings","settings","defaultValue","localSettingsSaveId","currentSettings","raw","localStorage","getItem","fallbacks","setItem","pluginId","setSettings","proxiedOn","_target","prop","method","proxiedTarget","setupDevtoolsPlugin","pluginDescriptor","setupFn","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","__VUE_DEVTOOLS_PLUGINS__","_hoisted_5","_hoisted_6","_hoisted_7","tabindex","onClick","$event","$emit","_createTextVNode","dismiss","showConfirm","confirm","BasciPromptModal","emits","$map","mapfn","addToUnscopables","valueOf","platform","arch","execPath","pid","browser","env","argv","binding","cwd","chdir","dir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","propertyIsEnumerable","UNSCOPABLES","ArrayPrototype","MATCH","regExpExec","nativeMatch","regexp","matcher","fullUnicode","matchStr","aConstructor","defaultConstructor","pref","getOwnPropertySymbols","symbol","$trim","trim","forcedStringTrimMethod","nativeConstruct","ObjectPrototype","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","inheritIfRequired","setSpecies","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","NativeRegExp","SyntaxError","IS_NCG","re1","re2","CORRECT_NEW","BASE_FORCED","handleDotAll","brackets","handleNCG","named","ncg","groupid","groupname","RegExpWrapper","pattern","rawFlags","dotAll","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","createMethod","IS_INCLUDES","$this","fromIndex","createProperty","fin","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","callWithSafeIterationClosing","IS_CONSTRUCTOR","mapping","iteratorMethod","FAILS_ON_UNDEFINED","FAILS_ON_NULL","fromCharCode","itemsLength","arrayLength","collectionStrong","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","$entries","entries","webkit","getSubstitution","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","nativeReplace","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","objectDefinePropertyModule","mode","copyright","license","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getNodeName","nodeName","whitespaces","whitespace","ltrim","rtrim","TYPE","ceil","replaceAll","IS_REG_EXP","searchLength","advanceBy","endOfLastMatch","bitmap","writable","createTypedArrayConstructor","isDataDescriptor","getOwnPropertyDescriptorModule","propertyKey","receiver","computeOffsets","offsets","variation","commonX","commonY","mainAxis","getDescriptor","EXISTS","CONFIGURABLE","$join","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","charCodeAt","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","ArrayIterators","Uint8Array","arrayValues","values","arrayKeys","arrayEntries","TypedArrayPrototype","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","IndexedObject","$assign","alphabet","getWindowScrollBarX","scrollLeft","NATIVE_ARRAY_BUFFER","FunctionName","toIndex","IEEE754","arrayFill","CONFIGURABLE_FUNCTION_NAME","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","fill","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","isLittleEndian","intIndex","byteLength","bytes","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","$some","CONVERT_TO_STRING","pos","first","size","iterate","fastKey","internalStateGetterFor","IS_MAP","ADDER","last","define","previous","getEntry","prev","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","arraySpeciesConstructor","_component_router_link","params","slug","lang","$route","_withCtx","image","uploadPath","alt","_Fragment","_renderList","categories","category","_normalizeClass","selectedCategories","_normalizeStyle","hexValue","BlogPostTile","colour","paragraph","inspectSource","noop","empty","constructorRegExp","isConstructorModern","isConstructorLegacy","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","STATE","sfc","__vccOpts","hasSymbol","PolySymbol","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","isBrowser","isESModule","__esModule","applyToParams","newParams","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","currentLocation","searchPos","hashPos","resolveRelativePath","fullPath","stringifyURL","stringifyQuery","stripBase","startsWith","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","every","fromSegments","toSegments","toPosition","NavigationType","NavigationDirection","normalizeBase","baseEl","getAttribute","BEFORE_HASH_RE","createHref","getElementPosition","docRect","documentElement","elRect","behavior","computeScrollPosition","pageXOffset","pageYOffset","scrollToPosition","scrollToOptions","positionEl","isIdSelector","scrollTo","getScrollKey","history","scrollPositions","Map","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","delete","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","listeners","teardowns","pauseState","popStateHandler","fromState","direction","forward","back","unknown","pauseListeners","listen","callback","teardown","beforeUnloadListener","destroy","removeEventListener","buildState","current","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","redirectedFrom","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","subPattern","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","alias","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","mergeOptions","normalizedRecords","aliases","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","paramsFromLocation","find","parentMatcher","mergeMetaFields","redirect","beforeEnter","normalizeRecordProps","instances","leaveGuards","Set","updateGuards","enterCallbacks","propsObject","defaults","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","decodeURIComponent","hasLeadingIM","searchParam","eqPos","normalizeQuery","normalizedQuery","useCallbacks","handlers","reset","guardToPromiseFn","guard","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolved","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","required","activeClass","exactActiveClass","custom","ariaCurrentValue","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","preventDefault","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","matchedRouteRef","viewRef","oldInstance","oldName","matchedRoute","ViewComponent","currentName","normalizeSlot","Component","routePropsOption","routeProps","onVnodeUnmounted","isUnmounted","slot","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","force","shouldRedirect","toLocation","handleScroll","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","isPush","isFirstNavigation","markAsReady","removeHistoryListener","setupListeners","_from","info","ready","readyHandlers","errorHandlers","isReady","started","installedApps","beforeEach","beforeResolve","afterEach","onError","$router","reactiveRoute","unmountApp","promise","recordFrom","recordTo","useRoute","getHTMLElementScroll","scrollTop","getNodeScroll","getWindowScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","getDocumentElement","isScrollParent","clientLeft","clientTop","order","modifiers","visited","modifier","dep","depModifier","orderModifiers","orderedModifiers","acc","debounce","pending","mergeByName","merged","existing","DEFAULT_OPTIONS","areValidElements","_len","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","listScrollParents","contextElement","runModifierEffects","forceUpdate","_state$elements","getOffsetParent","getLayoutRect","_state$orderedModifie","_state$orderedModifie2","_ref3","_ref3$options","cleanupFn","noopFn","onFirstUpdate","checkCorrectnessOfIteration","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","TEMPLATE","simple","$propertyIsEnumerable","TO_ENTRIES","Wrapper","NewTarget","NewTargetPrototype","ReCaptchaInstance","getInstance","load","ReCaptchaLoader_1","ReCaptchaInstance_1","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","$fill","wrappedWellKnownSymbolModule","NAME","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","isIntegralNumber","isSymbol","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","TYPED_ARRAY_CONSTRUCTOR","TYPED_ARRAY_TAG","TypedArray","aTypedArrayConstructor","isTypedArray","fromList","isArrayBuffer","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","__generator","sent","trys","ops","verb","op","useReCaptcha","VueReCaptcha","recaptcha_v3_1","vue_1","VueReCaptchaInjectKey","globalConfig","loadedWaiters","inject","initializeReCaptcha","_a","siteKey","loaderOptions","recaptchaLoaded","isLoaded","recaptcha","_this","_b","execute","$recaptchaLoaded","$recaptcha","$recaptchaInstance","executeRecaptcha","abs","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","auto","basePlacements","clippingParents","viewport","variationPlacements","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","documentCreateElement","classList","featuredCategories","FeaturedCategories","categoriesFeaturedGet","errors","response","$notify","friendlyMessage","ignoreDuplicates","compile","isNullOrUndefined","isIndex","Number","toNumber","parseFloat","isNaN","RULES","defineRule","validator","guardExtend","resolveRule","FormContextKey","FieldContextKey","IS_ABSENT","isLocator","__locatorRef","isHTMLTag","isFileInputNode","isYupValidator","validate","hasCheckedAttr","isContainerValue","isEmptyContainer","isNotNestedPath","isNativeMultiSelect","isNativeSelect","multiple","tagName","isNativeMultiSelectNode","hasTruthyBindingValue","shouldHaveValueBinding","isFormSubmitEvent","evt","isEvent","Event","srcElement","isPropPresent","cleanupNonNestedPath","getFromPath","fallback","resolvedValue","propKey","setInPath","unset","unsetPath","pathValues","idx","keysOf","injectWithSelf","def","provides","resolveNextCheckboxValue","checkedValue","uncheckedValue","newVal","throttle","func","inThrottle","lastResult","debounceAsync","ms","timer","resolves","clearTimeout","normalizeChildren","slotProps","getBoundValue","hasValueBinding","_value","normalizeEventValue","files","opt","selected","disabled","selectedOption","normalizeRules","rules","_$$isNormalized","curr","buildParams","rule","parsedRule","parseRule","provided","mapValueToLocator","createLocator","locator","crossTable","extractLocators","DEFAULT_CONFIG","generateMessage","field","bails","validateOnBlur","validateOnChange","validateOnInput","validateOnModelUpdate","currentConfig","getConfig","async","shouldBail","formData","_validate","validateFieldWithYup","ctx","form","isValid","_generateFieldError","normalizedContext","rulesKeys","_test","opts","abortEarly","fillTargetValues","fieldCtx","normalize","validateYupSchema","schema","errorObjects","messages","validateObjectSchema","paths","validations","_c","fieldResult","bailsMap","isAllValid","validationResults","klona","tmp","es6","equal","isView","ID_COUNTER","useFieldState","initialValue","setInitialValue","_useFieldValue","modelValue","standalone","errorMessage","setErrors","_useFieldErrors","_useFieldMeta","MAX_SAFE_INTEGER","setState","touched","shouldInjectForm","modelRef","resolveInitialValue","initialValues","setFieldInitialValue","stageInitialValue","setFieldValue","validated","dirty","immediate","normalizeErrors","errorBag","setFieldErrorBag","API","useField","useCheckboxField","_useField","validateOnMount","validateOnValueUpdate","normalizeOptions","handleBlur","normalizedRules","rulesValue","extractRuleFromSchema","validateCurrentValue","validateSchema","validateWithStateMutation","validateValidStateOnly","validate$1","handleChange","shouldValidate","newValue","setTouched","isTouched","unwatchValue","watchValue","resetField","setValue","handleReset","oldValue","dependencies","rulesVal","deps","depAcc","depName","depValue","oldDeps","valueProp","fieldName","patchCheckboxApi","checked","checkedVal","handleCheckboxChange","FieldImpl","as","modelModifiers","hasModelEvents","validateField","onChangeHandler","handleInput","onInputHandler","fieldProps","resolveValidationTriggers","baseOnBlur","onBlur","baseOnInput","onInput","baseOnChange","onChange","resolveTag","newModelValue","applyModifiers","expose","_d","Field","FORM_COUNTER","useForm","formId","RESET_LOCK","fieldsByPath","isSubmitting","submitCount","fieldArraysLookup","formValues","setErrorBag","useErrorBag","initialErrors","bag","getFirstFieldAtPath","fieldOrGroup","fieldExists","fieldNames","fieldBailsMap","originalInitialValues","setInitialValues","useFormInitialValues","useFormMeta","validationSchema","formCtx","registerField","unregisterField","setValues","setFieldError","setFieldTouched","resetForm","handleSubmit","unsetInitialValue","isFieldGroup","applyFieldMutation","mutateAllFields","fields","fieldInstance","clonedValue","insertFieldAtPath","rawField","fieldPath","fieldAtPath","removeFieldFromPath","newPath","oldPath","initialErrorMessage","validation","onValidationError","stopPropagation","returnVal","_validateSchema","schemaValue","formResult","debouncedSchemaValidation","fieldsById","currentErrorsPaths","wasValidated","submitForm","submit","initialTouched","currentValues","MERGE_STRATEGIES","isDirty","calculateFlags","flag","mergeMethod","providedValues","updateFields","wasTouched","normalizeErrorItem","FormImpl","onSubmit","onInvalidSubmit","handleFormReset","onReset","handleScopedSlotSubmit","onSuccess","formAttrs","novalidate","Form","FIELD_ARRAY_COUNTER","useFieldArray","arrayPath","noOp","noOpApi","remove","insert","entryCounter","initFields","createEntry","updateEntryFlags","fieldsLength","isFirst","isLast","pathName","pathValue","normalizedPathValue","indexA","indexB","newFields","temp","tempEntry","arr","ErrorMessageImpl","role","ErrorMessage","factory","_defineProperties","_createClass","protoProps","staticProps","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr2","_createForOfIteratorHelperLoose","allowArrayLike","getDefaults","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","smartLists","smartypants","tokenizer","walkTokens","xhtml","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","escape","unescapeTest","unescape","substring","caret","edit","regex","getRegex","nonWordAndColonTest","originIndependentUrl","cleanUrl","prot","resolveUrl","baseUrls","justDomain","domain","relativeBase","noopTest","merge","splitCells","tableRow","row","escaped","cells","invert","suffLen","currChar","substr","findClosingBracket","level","checkSanitizeDeprecation","repeatString","outputLink","cap","lexer","inLink","inlineTokens","indentCodeCompensation","matchIndentToCode","indentToCode","matchIndentInNode","indentInNode","Tokenizer","_proto","space","block","newline","codeBlockStyle","fences","trimmed","inline","hr","blockquote","blockTokens","istask","ischecked","indent","blankLine","endsWithBlankLine","line","nextLine","rawLine","itemContents","endEarly","bull","isordered","ordered","loose","itemRegex","trimLeft","nextBulletRegex","task","trimRight","spacers","hasMultipleLineBreaks","_step","chars","lineBreaks","_iterator","_char","pre","table","header","align","rows","lheading","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","_escapes","reflink","links","nolink","emStrong","maskedSrc","prevChar","lDelim","nextChar","punctuation","rDelim","rLength","lLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","_text","codespan","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","prevCapZero","_backpedal","inlineText","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","normal","reflinkSearch","out","random","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Lexer","inlineQueue","lex","lexInline","lastToken","cutSrc","lastParagraphClipped","extTokenizer","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","_this2","keepPrevChar","lastIndexOf","startInline","Renderer","_code","infostring","quote","_html","slugger","startatt","listitem","checkbox","tablerow","tablecell","TextRenderer","Slugger","seen","getNextSafeSlug","originalSlug","isDryRun","occurenceAccumulator","dryrun","Parser","textRenderer","parseInline","l2","l3","cell","itemBody","ret","renderers","marked","_tokens","use","hasExtensions","childTokens","ext","prevRenderer","_len2","_key2","_loop","_len3","_key3","_loop2","prevTokenizer","_len4","_key4","_walkTokens","_loop3","_step2","_iterator2","_step3","_iterator3","_step4","_iterator4","_cell","activeXDocument","definePropertiesModule","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","close","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","open","NullProtoObject","unsetSides","roundOffsetsByDPR","win","dpr","devicePixelRatio","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","visualViewport","offsetX","_Object$assign","commonStyles","_ref4","transform","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","$find","FIND","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","IteratorConstructor","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","n$ParseFloat","trimmedString","ERRORS","STRIPE_NOT_LOADED","INSTANCE_NOT_DEFINED","ELEMENTS_NOT_DEFINED","ELEMENT_TYPE_NOT_DEFINED","initStripe","Stripe","stripeInstance","createElements","elementType","_export_sfc","_sfc_main$1","domElement","stripeElement","mountPoint","mountElement","mount","wrapperFn","handleEvents","eventTypes","_hoisted_1$1","_sfc_render$1","StripeElement","_sfc_main","stripeKey","instanceOptions","elementsOptions","elementsUsable","_sfc_render","StripeElements","V","existingDescriptor","ownDescriptor","MS_EDGE_BUG","contains","rootNode","getRootNode","isSameNode","ctoi","disallowed","finalEq","$atob","NO_SPACES_IGNORE","atob","NO_ARG_RECEIVING_CHECK","bs","bc","endPos","$includes","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","quot","p1","functionToString","un$EndsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","endPosition","getUser","PushPixelEvent","eventName","consoleString","currency","user","eventID","facebookConversionsPostEventPost","email","capiResponse","succeeded","fbq","FacebookAddPaymentInfoEvent","FacebookConversionsEventTypes","AddPaymentInfo","facebookAddToCartEvent","AddToCart","FacebookLeadEvent","Lead","FacebookCustomizeProductEvent","CustomizeProduct","FacebookInitiateCheckoutEvent","InitiateCheckout","cart","total","totalItems","quantities","itemQuanities","quantity","itemIdList","customizedProduct","product_price","price","totalQuantity","orderReferenceNumber","qty","subtotal","calculatePrice","pricingMultiplier","Currency","CalculatePrice","FacebookPurchaseEvent","purchaseObj","Purchase","FacebookViewContentEvent","ViewContent","_imports_0","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_imports_3","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_62","_hoisted_63","_hoisted_64","_hoisted_65","_component_font_awesome_icon","_component_CartSummaryProductTile","_component_CurrencySelectorMobile","_component_ProductMenu","_component_ProductMenuMobile","_component_SearchBar","_component_NewCurrencySelector","_directive_click_away","_resolveDirective","isAdminQuote","_withDirectives","disableCountry","expandCurrencies","country","expandProducts","showNav","handleToEquire","zohoChatActive","startZohoChat","showModal","_imports_1","isLoggedIn","_imports_2","section","exitQuote","logout","_createBlock","returnUrl","itemsInCart","storeCart","product","thousandSeparator","totalPrice","cartId","toggleNavbar","displayName","onSelect","selectCountry","menuItems","productMenuItems","menuStatus","onClose","clearSearch","_Teleport","show","_component_GlobalSearchResultTile","_component_Spinner","searchTerm","placeholder","_vModelText","displayedSearchItems","tileName","productSlug","categorySlug","$filters","splitSlug","primaryCategory","fullSlug","tileBgUrl","thumbnailImages","imageUrl","loading","visible","ProductGlobalSearchResultTile","SearchBar","searchedProductPages","hasNextPage","hasPreviousPage","pageIndex","totalCount","totalPages","pageSize","modal","$watch","searchProductPages","searchModal","focusInput","elemTop","elemBottom","isVisible","innerHeight","allRefs","$refs","onscroll","scrolledTo","isScrolledIntoView","loadMoreProducts","refs","focus","page","productsSearchGet","GlobalSearchResultTile","Spinner","navColumns","col","navMax","ProductMenu","ProdcutMenuMobile","_createStaticVNode","changeCountry","selectedCountry","allCountries","newCountry","_vModelSelect","countryGroup","countries","CurrencyGroup","CurrencySelectorMobile","countriesGet","Country","_component_PreviewImage","previewImageUrl","quantityPerItem","CartSummaryProductTile","QuantityPerItem","ThousandSeparator","PreviewImage","_Transition","NewCurrencySelector","NavBar","toggleClickOutsideCurrencies","toggleClickOutsideProducts","cartTotal","allowedRoles","isQuote","roles","disable","getProductMenuItems","onresize","resetDropDowns","categoriesGetProductCategoryMenuGroupsGet","leadIn","enquiryCartId","savedDesignId","design","innerWidth","getElementsByClassName","click","mobile","getDefaultDelivery","accessKey","cartsGetCartDeliveryOptionsIdGet","updatedCart","cartsUpdateCartIdPut","selectedDeliveryType","cartDelivery","deliveryTypeId","getDeliveryOptions","deliveryOptions","typeAvailable","countryId","currencyId","updateCart","targetParent","hidden","searchNav","nav","authedPages","IsLoggedIn","HandleSlug","ZohoChat","ProductMenuMobile","relativeIndex","postfix","regexpFlags","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","charsAdded","strCopy","getAltAxis","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","boundary","rootBoundary","_options$tether","tether","_options$tetherOffset","tetherOffset","detectOverflow","getBasePlacement","isBasePlacement","getMainAxisFromPlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","within","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","math","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","defineWellKnownSymbol","feature","detection","POLYFILL","NATIVE","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","destination","sourcePrototype","attr","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","createTypedArrayFactory","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","idPrefix","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","tOfVal","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","_workerSelf","createWorker","Worker","Blob","blob","setupWorker","dataFunctionManager","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","completeChars","assets","findComp","__used","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","checkChars","charData","ip","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","completeData","__complete","moduleOb","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","responseText","loadAsset","errorCallback","XMLHttpRequest","onreadystatechange","status","send","animation","onComplete","createProcess","loadAnimation","processId","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","box","getBBox","_imageLoaded","clearInterval","createImageData","ob","setAttributeNS","_elementHelper","append","createImgData","crossOrigin","createFootageData","footageData","_footageLoaded","loadAssets","images","_createImageData","setPath","setAssetsPath","getAsset","loadedImages","loadedFootages","setCacheType","elementHelper","ImagePreloaderFactory","BaseEvent","triggerEvent","_cbs","callbacks","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","registerRenderer","getRenderer","_typeof$4","AnimationItem","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","setParams","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","fileName","trigger","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","getDuration","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","getRegisteredAnimations","lenAnims","animations","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","searchAnimations","animElements","getElementsByTagName","innerText","div","unfreeze","BezierFactory","getBezierEasing","beziers","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","points","_p","_mSampleValues","_precomputed","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","pooling","_double","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","getPointInSegment","percent","t1","u1","ptX","ptY","bezierSegmentPoints","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","getShapeProp","dataProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skewFromAxis","scale","sz","setTransform","translate","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_e","_f","_typeof$3","lottie","queryString","setLocation","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","bodymovin","ShapeModifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","applyToMatrix","mat","rz","ry","px","py","pz","forceRender","_isDirty","precalculateMatrix","appliedTransformations","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styleName","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","elemsData","_currentCopies","_elements","_groups","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","maxWaitingTime","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","trimFontOptions","font","familyArray","enabledFamilies","setUpNode","family","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","checkLoadedFonts","loadedCount","loaded","fOrigin","monoCase","sansCase","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","tHelper","fontProps","fFamily","textContent","fClass","tCanvasHelper","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","rel","sc","cache","found","getCharData","_warned","measureText","_char2","fontName","getFontByName","doubleSize","getComputedTextLength","singleSize","fName","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","setIsLoaded","Font","typekitLoaded","fontPrototype","RenderableElement","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","MaskManager","maskManager","_masksInterfaces","viewData","maskFunction","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","getVelocityAtTime","numKeys","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","opacity","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","propMatrix","_elem","transformMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_registerMaskInterface","_thisLayerFunction","_registerEffectsInterface","effects","shapeInterface","textInterface","toComp","anchorPointDescriptor","hasParent","layerInterface","anchor_point","startTime","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","_propertyGroup","EffectsExpressionInterface","createEffectsInterface","effectsManager","effectElements","effectsData","ef","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","contentsInterfaceFactory","interfaces","transformInterfaceFactory","cix","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","parentGroupWrapper","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","getBlendMode","blendModeEnums","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","getType","prepareProperties","_isParent","FootageInterface","outlineInterfaceFactory","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","dataInterfaceFactory","outlineInterface","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_placeholder","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","expansor","feMorph","properties","currentMasks","maskType","maskRef","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","setupGlobalData","fontsContainer","animationItem","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","SVGTintFilter","filterManager","matrixFilter","feMergeNode","feMerge","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","filterSize","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","colorBlack","colorWhite","initialize","groupPath","elemChildren","childNodes","masker","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","matteElement","transformedElement","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","insertBefore","setElementAsMask","hd","setMatte","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode","registeredEffects","SVGEffects","filters","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","_sizeChanged","gg","layerElementParent","maskGroup","maskGrouper","feCTr","alphaRect","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","initHierarchy","checkParenting","_prototype","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","shouldBreakProcess","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","renderNoop","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","GradientConstructor","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getTextSelectorProp","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","currentGlobalAlpha","contextData","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","startPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","_typeof$1","seedRandom","nodecrypto","chunks","digits","rngname","startdenom","significance","seedrandom","seed","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","int32","quick","pass","is_math_call","copy","keylen","me","typ","smear","stringseed","randomBytes","crypto","msCrypto","getRandomValues","screen","initialize$2","propTypes","SHAPE","_typeof","ExpressionManager","fetch","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","vec","rgbToHsl","hue2rgb","hslToRgb","linear","value1","value2","_tMin","rnd","rndm","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","speed","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","endFrame","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","lastTime","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","initialize$1","addDecorator","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","ctor","mark","awrap","iter","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","distanceAndSkiddingToXY","invertDistance","skidding","_options$offset","_data$state$placement","expandToHashMap","hashMap","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","plus","percentSequence","percentDecode","deserialize","replacements","URLSearchParamsIterator","URLSearchParamsState","parseObject","entryIterator","entryNext","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","getAll","headersHas","headersSet","wrapRequestOptions","headers","RequestConstructor","Request","BasicVueModal","slice$1","apply$1","raf","typeOf$1","subject","isArray$1","toArray$1","forEach$1","iteratee","ownKeys$1","forOwn$1","assign$1","min$1","EventBinder","targets","events","forEachEvent","isEventTarget","remover","unbind","detail","bubbles","CustomEvent","createEvent","initCustomEvent","dispatchEvent","events2","eventNS","EVENT_MOVE","EVENT_MOVED","EVENT_UPDATED","EVENT_DRAG","EVENT_DRAGGED","EVENT_SCROLL","EVENT_SCROLLED","EVENT_DESTROY","EventInterface","Splide2","bus","createDocumentFragment","binder","off","RequestInterval","interval","onInterval","onUpdate","paused","cancel","rewind","cancelAnimationFrame","Throttle","throttled","CLASS_ACTIVE","SLIDE","FADE","typeOf","isNull","isUndefined","toArray","toggleClass","elm","classes","ownKeys","forOwn","elms","maximum","DEFAULTS","autoStart","pauseOnHover","pauseOnFocus","I18N","startScroll","pauseScroll","AutoScroll","Components2","getPosition","getLimit","Move","setIndex","getIndex","Controller","orient","Direction","toggle","Elements","Live","throttledUpdateArrows","Arrows","hovered","focused","busy","currPosition","autoScrollOptions","autoScroll","move","autoToggle","useToggleButton","updateButton","computeDestination","updateIndex","getEnd","Slides","Pagination","lazyLoad","LazyLoad","check","i18n","IS_CONCAT_SPREADABLE","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","usingIterator","$ArrayCopyWithin","u$ArrayCopyWithin","__decorate","decorators","desc","decorate","$defineProperty","ENUMERABLE","WRITABLE","Attributes","bankersRoundingFunc","decimalPlaces","toFixed","ScrollTop","toScrollSelector","scrollIfAbove","navBar","scrollOffset","offsetTop","scrollY","IsIOS","UserRole","LoadImage","loadImage","BankersRounding","multiplier","totalQty","isDefault","deliveryTypes","allowBankTransfers","bankTransferDetails","GetPriceByQuantity","prices","range","minimumQuantity","MIN_SAFE_INTEGER","maximumQuantity","FormatDate","date","uppercase","appendLeadingZeroes","months","dateLocale","toLocaleDateString","dateToFormat","formattedDate","getDate","getMonth","getFullYear","SetMetaData","hasProp","definer","seoTitle","seoDescription","keywords","seoKeywords","noIndex","Name","canonicalUrl","CompareObjects","obj1","obj2","obj1Keys","obj2Keys","areEqual","objValue1","objValue2","FormatEnum","$zoho","openButton","HandleError","forceDisplayError","customMessage","Newsletter","generalSettingsKeyGet","generalSettingsGetGeneralSettingsGet","mailList","getMailingList","PUBLIC_API_KEY","LIST_ID","revision","custom_source","profile","relationships","HasAdminRoles","ENUMERABLE_NEXT","toPrimitive","un$Join","ES3_STRINGS","activeEffectScope","EffectScope","detached","cleanups","scopes","fromParent","effectScope","recordEffectScope","scope","getCurrentScope","onScopeDispose","createDep","wasTracked","trackOpBit","newTracked","initDepMarkers","finalizeDepMarkers","ptr","targetMap","effectTrackDepth","maxMarkerBits","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ReactiveEffect","scheduler","lastShouldTrack","shouldTrack","cleanupEffect","onStop","_effect","lazy","trackStack","pauseTracking","resetTracking","track","depsMap","eventInfo","trackEffects","debuggerEventExtraInfo","oldTarget","triggerEffects","allowRecurse","isNonTrackableKeys","builtInSymbols","createGetter","shallowGet","readonlyGet","shallowReadonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","toRaw","isReadonly","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","shouldUnwrap","readonly","reactive","createSetter","shallowSet","isShallow","hadKey","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","get$1","rawTarget","rawKey","toReadonly","toReactive","has$1","set$1","deleteEntry","hadItems","createForEach","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","createReadonlyMethod","createInstrumentations","mutableInstrumentations","shallowInstrumentations","readonlyInstrumentations","shallowReadonlyInstrumentations","iteratorMethods","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","isReactive","isProxy","markRaw","trackRefValue","triggerRefValue","__v_isRef","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","_rawValue","triggerRef","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","_get","_set","customRef","toRefs","toRef","ObjectRefImpl","_object","_defaultValue","ComputedRefImpl","_setter","_dirty","computed","_cacheable","getterOrOptions","debugOptions","onlyGetter","cRef","original","mapper","elementLen","targetIndex","sourceIndex","mapFn","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","NATIVE_SYMBOL","nativeObjectCreate","getOwnPropertyNamesExternal","uid","HIDDEN","SYMBOL","TO_PRIMITIVE","SymbolPrototype","QObject","$stringify","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","$create","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","hint","_defineProperty","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","preconnectOrigin","onload","onerror","mergeDeep","validateScreenviewShape","app_name","screen_name","getPathWithBase","pathAsArray","baseAsArray","getDefaultParams","bootstrap","onReady","onBeforeTrack","onAfterTrack","pageTrackerTemplate","customResourceURL","customPreconnectOrigin","deferScriptLoad","pageTrackerExcludedRoutes","pageTrackerEnabled","disableScriptLoad","pageTrackerScreenviewEnabled","appName","pageTrackerUseFullPath","pageTrackerPrependBase","pageTrackerSkipSamePath","globalDataLayerName","globalObjectName","defaultGroupName","send_page_view","defaultParams","getOptions","_window","_getOptions","assignGlobalProperty","optOut","optIn","setRouter","getRouter","send_to","pageview","template","page_path","useFullPath","useBase","page_title","page_location","screenview","linker","refund","purchase","customMap","custom_map","attachApi","$gtag","registerGlobals","mergeDefaultParams","addConfiguration","useScreenview","skipSamePath","isRouteExcluded","addRoutesTracker","_getOptions2","isPageTrackerEnabled","INCORRECT_ITERATION","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","isFunction","$every","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","maxCode","NumberWrapper","nativeErrorToString","error1","error2","cause","getDevtoolsGlobalHook","getTarget","__VUE_DEVTOOLS_GLOBAL_HOOK__","isProxyAvailable","getWeakData","ArrayIterationModule","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","$parseFloat","passive","_options$scroll","_options$resize","scrollParent","mergeSort","insertionSort","llength","rlength","lindex","rindex","_getComputedStyle","overflowX","overflowY","bgImage","bgColor","textColour","InfoPageBlock","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","_component_NewsletterForm","_component_SplideCarousel","_component_DesignNowSvg","_component_CarouselBanner","_component_ChooseCreateOrderBanner","_component_FeaturedAll","_component_InstagramCarousel","_component_TrustpilotBanner","_component_ClientSection","banners","altText","hoverColour","aboveDesignNowButton","clientLogos","_component_SplideSlide","_component_Splide","carouselItems","spliderConfig","backgroundColour","backgroundImageUrl","featuredImageUrl","sclass","formattedMarkdown","titleFontColour","contentFontColour","buttonText","buttonUrl","buttonFontColour","buttonBackgroundColour","SplideCarousel","pagination","arrows","markedDetails","carouselItemsGet","Splide","SplideSlide","Markdown","_withScopeId","_pushScopeId","_popScopeId","featuredItems","isNew","fetchpriority","getFromToPrice","defaultQuantityPrice","defaultQuantity","FeaturedAll","resetProgress","clones","mediaQuery","rewindSpeed","perMove","perPage","breakpoints","1600","991","767","575","mergeFeatured","defaultPrice","defaultQty","minQty","products","randomIndex","TrustpilotBanner","xmlns","viewBox","DesignNowSvg","HomePage","tempBannerArray","useMeta","setMetaData","json","alternateName","sameAs","clientsGet","bannerItemsGet","loadBannerItems","loadClientLogos","NewsletterForm","CarouselBanner","ProductTile","ClientSection","InstagramCarousel","ChooseCreateOrderBanner","authGuard","correctCart","pathPrefix","ProductSelectorPage","DesignerPage","LoginPage","RegistrationPage","ForgotPasswordPage","EmailVerificationPage","CategoriesPage","ProductPage","ProfilePage","QuotePage","CartPage","CheckoutPage","PrintQuotePage","PaymentCompletePage","OutstandingPaymentCompletePage","EFTPaymentPage","OrderPaymentsPage","CustomStoreCustomerPaymentCompletePage","CustomStoreAdminStorePage","CustomStoreOrderPage","CheckOrderStatusPage","ResupplyAssetsPage","BlogPostsPage","BlogPostPage","CampaignPage","AboutUsPage","OurValuesPage","HowItWorksPage","CanYouMakeThisPage","CustomStoreInfoPage","EnquiryPage","FAQsPage","TncsPage","PrivacyPolicyPage","CookiePolicyPage","DataDeletionPage","ShippingAndReturnsPage","PageNotFoundPage","savedPosition","reCapthca","exceptionRoutes","quoteId","TO_STRING_TAG_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","recaptchaID","styleContainer","enterprise","getSiteKey","hideBadge","showBadge","getComputedStyle","notify","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","enter","createTextNode","characterData","getViewportRect","offsetLeft","getDocumentRect","_element$ownerDocumen","winScroll","scrollWidth","scrollHeight","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","mainClippingParents","firstClippingParent","clippingRect","accRect","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","_options$altBoundary","_options$padding","mergePaddingObject","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","USE_SYMBOL_AS_UID","symbolFor","createWellKnownSymbol","withoutSetter","isTableElement","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","contain","willChange","nativeKeys","trunc","$repeat","repeat","un$ToFixed","divide","dataToString","fractionDigits","fractDigits","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","filterReject","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","itoc","preventExtensions","_component_SecurePaymentInfo","shortForm","Footer","hasName","SecurePaymentInfo","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","findScript","injectScript","advancedFraudSignals","headOrBody","registerWrapper","stripe","_registerWrapper","stripePromise","loadScript","maybeStripe","stripePromise$1","loadCalled","loadStripe","ordinaryToPrimitive","exoticToPrim","_component_HeadingBanner","bannerSrc","PageNotFoundBanner","HeadingBanner","bannerMessages","showAnyMessagesOnQuote","hideOnPages","bannerMessage","showMessageOnQuote","BannerMessage","hideCount","showOnQuotes","bannerMessagesGet","arrayBufferModule","fromSpeciesAndList","$parseInt","statement","StatementBanner","statements","linkTo","sendLeadIn","SHARED","FIND_INDEX","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","animationLink","autoPlay","delay","playOnHover","pauseAnimation","lottieAnimation","elementid","checkIfContainerExists","elementID","loadLottie","getCurrentStyle","cssVariables","hoverStarted","hoverEnded","direction2","frame","setSubFrame","useSubFrame","inFrames","makeid","characters","charactersLength","setupLottie","onMouseenter","onMouseleave","Vue3Lottie","non","$IndexOf","un$IndexOf","NEGATIVE_ZERO","getSingleParam","paramName","isEmpty","confirmedValidator","emailValidator","isEmptyArray","minValidator","ar","numericValidator","testValue","strValue","regexValidator","requiredValidator","getTime","ConfigureAxios","interceptors","request","req","tkn","refreshTokenExpiration","expiration","Authorization","encodedToken","MutationTypes","recentlyViewedProducts","anonymousSavedDesigns","customPatterns","zohoActive","checkForDuplicates","SetUserProfile","SetRole","SetRecentlyViewedProducts","SetAnonymousSavedDesigns","SetCustomPatterns","SetZohoActive","getInfoFromToken","base64Url","base64","jsonPayload","parsedJSON","UserModule","getProfile","usersGetUserGet","tokenInfo","updateProfile","usersUpdateUserPut","updatePassword","usersUpdateUserPasswordPut","clearProfile","addRecentlyViewedProduct","exists","removeRecentlyViewedProduct","addCustomPattern","patterns","lowResExists","highResExists","highQualityPatternImageUrl","patternImageUrl","addAnonymousSavedDesign","savedDesigns","allocateAnonymousSavedDesigns","customizedProductsClaimPut","updateZohoStatus","SetCountry","LocationModule","ensureLocationSet","countriesGetCountryByIpGeolocationGet","getDefaultSelection","countriesGetLastSelectedCountryGet","setDefaultSelection","countriesSetLastSelectedCountryPost","library","defaultButtonConfig","theme","clientId","popupType","prompt","autoLogin","idConfiguration","buttonConfig","apiLoaded","apiLoadIntitited","google","I","client_id","credential","accounts","renderButton","oauth2","initCodeClient","ux_mode","requestCode","initTokenClient","access_token","requestAccessToken","auto_select","cancelOnTapOutside","cancel_on_tap_outside","onNotification","notification","isNotDisplayed","getNotDisplayedReason","isSkippedMoment","getSkippedReason","ref_key","insertAt","firstChild","styleSheet","cssText","__scopeId","__file","border","logoSize","logoPosition","labelPosition","onFailure","dataBorder","appleScript","AppleId","AppleID","redirectURI","usePopup","auth","callOnSuccess","callOnFailure","beforeUnmount","getAppleDataFromToken","authorization","id_token","userData","FB","onResponse","facebookScript","appId","cookie","xfbml","login","authResponse","accessToken","clickEventType","ontouchstart","UNIQUE_ID","onMounted","onUnmounted","onUpdated","directive","unmounted","SetCart","SetCartId","createCart","DeliveryType","Standard","marketingOptIn","cartsCreateCartPost","fetchCart","cartsGetCartGet","resultFailureType","CheckoutModule","getCart","cartsGetCartIdGet","addCartItem","cartPost","customizedProductId","orderId","cartItemsCreateCartItemPost","dataLayer","updateCartItem","cartItemsUpdateCartItemIdPut","removeCartItem","cartItemsIdDelete","refreshCart","setStore","cartData","orderStatusId","clearCartStates","faLock","faTruck","faTruckFast","faShareNodes","faCircleXmark","faSquarePlus","faCcMastercard","faCcApplePay","faCcAmex","faCcVisa","faChevronLeft","faCirclePlus","faTrash","faPrint","faXmark","faFacebook","faInstagram","faLinkedin","faPinterest","faAngleDown","faAngleRight","faSearch","faAngleLeft","faCameraRotate","faEye","faEyeSlash","faPenToSquare","faCopy","faEnvelope","faPlus","faFont","faMinus","faClone","faAnglesUp","faEllipsisVertical","faCircleInfo","faEyeDropper","faCircleQuestion","faCartShopping","faAngleUp","faCirclePlay","faMagnifyingGlassPlus","faCalculator","faXTwitter","faTiktok","faLocationDot","AuthModule","confirmed","numeric","createApp","App","metaManager","createMetaManager","FontAwesomeIcon","Notifications","VueClickAway","useEnterprise","VueFacebookLogin","vue3GoogleLogin","VueAppleLogin","VUE_APP_ROOT","VueGoogleMaps","libraries","VueGtag","allow_enhanced_conversions","createGtm","compatibility","debug","formatter","dayjs","format","joinSlug","$dayjs","SocialProviders","getTokenState","SetToken","_refreshingToken","completeAuth","identityAuthenticationLoginPost","refresh","refreshToken","identityAuthenticationRefreshTokenPost","finally","socialAuth","provider","Google","identityAuthenticationLoginGoogleLoginGooglePost","Facebook","identityAuthenticationLoginFacebookLoginFacebookPost","Apple","identityAuthenticationRegisterPost","googleRecaptchaResponse","resetPasswordComplete","identityAuthenticationResetForgotPasswordPost","forgotPassword","identityAuthenticationForgotPasswordPost","newPromiseCapability","promiseCapability","_classCallCheck","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","_construct","Parent","Class","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Super","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","defineGetter","defineProxy","getSuper","Ctor","superProto","getOwn","VueImpl","_this$__h","__h","Props","propsMeta","PropsMixin","_super","__b","__c","_promise","dataKeys","plainData","__s","setupState","injections","__o","Ctors","_Vue","MixedVue","onFreeze","FREEZING","$preventExtensions","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","_component_Field","_component_ErrorMessage","_component_Form","displayCSSClass","closeNewsletter","newsletterCopy","newsletterTitle","subscriptionResult","_resolveDynamicComponent","newsletterSubtitle","newsletterTnCCopy","newsletterSubscribe","subscribeResult","isPopupClose","sessionStorage","getNewsletterCopy","aFunction","return","unlock","fireonempty","listenTo","defaultTime","fireOnEmpty","cancelOnEmpty","cancelonempty","vue3Debounce","created","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","imageSrc","InfoPageParagraph","TAG","Pebble","IS_RIGHT","memo","passed","SHAM","DELEGATES_TO_SYMBOL","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","UA","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","ERROR_NAME","exportWebAssemblyErrorCauseWrapper","$freeze","ArrayIteratorMethods","ArrayValues","_hoisted_66","_hoisted_67","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_hoisted_75","_component_Breadcrumbs","_component_SelectedItemTrigger","_component_PriceTracker","_component_ControlSections","_component_ProductView","_component_PurchaseOptions","_component_GeneralOptions","_component_FeaturesTextEditor","_component_TextEditor","_component_CustomizationPicker","_component_CommonActions","_component_FabricColourPicker","_component_StyleDesignPicker","_component_FeaturesPicker","_component_TextAdd","_component_ArtAssetPicker","_component_ArtAssetUpload","_component_ResetTemplate","_component_CustomFullPageSpinner","_component_BasicVueModal","_component_ShareModal","storeInfo","designState","isAdminOrder","adminConfigureExtraId","extraInfo","orderEnquiryNumbers","savedCustomizedProductId","originSlug","apiRet","productName","productId","selectedItem","showTools","onOpenTools","openTools","selectedTextFeature","onGetLocation","handleTriggerLocation","toolsLocation","selectedSection","onAllowQuantityChange","lockQty","allPrices","onQuantityChange","quantityChange","minQuantity","storeId","forceDisable","disablePriceTracker","showMinimum","styleArrow","hasFeatures","handleDisableFlag","hasText","hasArtwork","sectionArray","filterSections","hasSelectedItem","onHandleClick","handleControlSectionClick","onToggleControls","showControls","designing","isConfigureExtra","showGeneral","selectedView","selectedStyle","onRemoveElement","onItemSelected","itemSelected","renderedView","hideControls","fontPathKey","selectLayer","frontShadowMaskUrl","backShadowMaskUrl","isInCurrentCart","enableSave","onCheckout","saveAndSelectDefaultSizes","generalOptionClick","onAddToCart","onSave","onReturn","returnToPage","isInStore","onAddToStore","enableConfigureExtraSave","setSectionHeight","onFocus","maxlength","designTitle","showClose","handleRemoveMask","onSwap","changeSelectedView","onToggleGeneral","handleClose","extraId","sectionHeight","adminExtraOverride","onHandleFeature","addRemoveTextFeature","onSelectCustomization","selectFeatureCustomization","designExtras","extras","onClear","clearTextFeatureCustomization","customizations","getCustomizations","designItems","onLayer","onSelected","selectItemCustomization","customization","onRemove","onDuplicate","addObjectToDesign","onSwapView","swapView","onTab","selectedStyleDesignColourTab","selectedTab","onSelectDesign","selectDesign","onSelectStyle","selectStyle","onSetHeight","setHeight","selectedDesign","savePatternMsg","onHandleDesigning","onSetColour","setLayerColour","selectedLayers","setPrevColour","onResetSetPrevColour","fabricChannels","onSetFabric","setFabric","onAddFeature","toggleFeature","selectedFeatures","onAddText","onToUpload","onAddArtAsset","artAssetCategories","onUploading","resetTemplate","showAddToCartChoices","sizesFor","showAnonSaveMessage","footer","shareId","productTitle","previewPath","showShareModal","_component_InvertTransform","_component_ControlBox","crossorigin","onMouseup","eventStop","onTouchend","onTouchcancel","selectItem","fabric","localPattern","convertToSnakeCase","repeatCount","frontMaskUrl","backMaskUrl","viewItems","dynamicComponent","onSizeUpdated","sizeUpdated","cursor","controlboxWidth","controlboxHeight","scalable","onScaleStart","scaleStart","onScaleStop","onRotateStart","rotateStart","onRotateStop","onDrag","drag","onDragStop","imageTransform","imageTransformOrigin","BuilderImage","transformString","textTransform","textTransformOrigin","fontFileUrl","splitText","dy","spanX","magicPadding","BuilderText","onloadingdone","setSize","$nextTick","textRef","tableValues","InvertTransform","cx","cy","onMousedown","onTouchstart","ControlBox","ProductView","dragOffsetX","dragOffsetY","dragging","controlBoxCenterPt","testCenterPt","initialHeight","initialWidth","noEmit","isDuplicate","tempId","touch","touches","clientX","clientY","baseVal","getEvent","xDiff","yDiff","clearEvents","_component_PatternDesigner","handleDesignPattern","selectedColour","onPatternUpdated","patternUpdated","groupedFabricChannels","fabricChannel","handleChannelClick","selectedfabricChannel","externalName","fabrics","getFabricDescription","selectedId","setFabricOnLayers","correctSymbol","fabricPrice","getPriceByQuantity","isSublimate","ref_for","selectedLayer","fabricChannelId","handleSelectLayer","determineLayerThumbnail","getSelectedLayerFromID","selectedFabric","sortedFreeFabrics","colours","handleColourSelect","sortedPaidFabrics","customPattern","customPatternInfo","customPatternPrices","FabricColourPicker","previousColourInfo","grouped","layersWithoutFabricChannel","fabricChannelIds","hasFabric","defaultLayer","initiatePopovers","popoverTriggerList","popoverTriggerEl","dataset","bsContent","Popover","selectedFabrics","backupColour","checkCustomPatterns","firstNonPatternColour","checkNewFabricHasColour","constructionTypeId","hasId","hasLocal","customPatternPrice","isCustom","toDesigner","selectColour","patternData","layerFabric","PatternDesigner","editorText","addText","TextAdd","textSvgUrl","isFromLibrary","textObject","for","randomiseFont","isIOS","iosDropdownDisplay","fontDropdownToggle","textAlignmentOptions","toggleBorder","borderEnabled","emitChange","option","CustomizationPicker","TextEditor","usedRandomFonts","lastBorder","closest","scrollIntoView","outsideClickListener","selectedItemToDisplay","selectCustomization","handleAddUpdate","isIndividualCustomization","individualCustomizationActions","isExisting","handleReturnRemove","FeaturesTextEditor","disabledOnConfigureExtra","individualCustomizationItem","customizationTypeId","isExtraDismissed","_component_ElementTile","relatedFeatures","imgPath","comparisonType","includesItem","handleClick","ElementTile","itemId","FeaturesPicker","categoryName","relatedAssets","asset","imageObject","toUpload","artAssets","selectCategory","ArtAssetPicker","allAssets","getAllAssets","metaData","allIds","artAsset","selectTab","designs","StyleDesignPicker","stylesTab","coloursTab","designsTab","tab","_component_BackgroundReplaceImageUploader","userImages","showUploader","isInitial","isSaving","onLoading","emitLoading","onFilesChanged","backgroundRemoved","onHasImage","removeFromBackgroundReplace","setImageFile","accept","deleteItem","imgs","replaceBG","setImage","debouceImageSet","getFile","imageWidth","imageHeight","backgroundImage","recoverImgUrl","BackgroundReplaceImageUploader","imageFile","setTimer","filElem","MouseEvent","inputFile","reader","FileReader","readAsDataURL","inputImage","file2DataURI","imageData","getImageData","colourRGB","hexToRgb","colorMin","colorMax","putImageData","replaceImageColour","toDataURL","File","STATUS_INITIAL","STATUS_SAVING","STATUS_SUCCESS","STATUS_FAILED","ArtAssetUpload","currentStatus","localStoreImages","bgrep","imageJSON","fileList","FormData","b64Data","contentType","sliceSize","byteCharacters","byteArrays","byteNumbers","byteArray","imgData","b64toBlob","upload","addToLocalStorage","uploadError","globalAxios","relativePath","ResetTemplate","handleDisable","isDuplicateAction","showQuantityPrompt","decrement","updateQuantity","quantityClone","increment","allowQuantityChange","PriceTracker","_component_DesignerMobileNav","DesignerMobileNav","ControlSections","emptyFeature","emptyImageApplication","emptyTextApplication","configureExtraDisabled","constantButtons","isDisabled","isNotAvailable","buyButtonText","admin","GeneralOptions","customer","currentView","isGift","OrderStatus","Cart","currencyPricingMultiplyer","requiresCustomerApproval","additionalCostsConvertedTotal","orderDocuments","referenceNumber","deliveryAddress","addressLine1","area","postalCode","billingAddress","customerContact","phoneNumber","allowedPaymentProviders","paymentsTotal","paymentsConvertedTotal","customerContacts","userRole","enableSaveByRole","PurchaseOptions","_component_ProductSelectorCategoryTile","_component_ProductSelectorProductTile","productInfo","categoryBgUrl","getImage","onClearArrays","clearArrays","priceinfo","ProductSelectorCategoryTile","browseLinkTo","ProductSelectorProductTile","ProductSelector","categoryPages","productPages","bannerImage","loadAllCategories","loadNestedCategories","loadMoreItems","categoriesGet","hasProducts","getProducts","categoriesParentCategorySlugGet","productsParentCategorySlugGet","beforeRouteUpdate","beforeRouteLeave","down","onMousemove","onTouchmove","SelectedItemTrigger","nx","ny","dx","xPum","yPum","moveDiv","ProductDesigner","showContent","maxParentHeight","maxChildHeight","anonMessageDisplayCount","magicSeparator","isAdminOrderEnquiry","isAdminConfigureExtra","hasCustomizationText","customizedProductItemTemplate","borderColour","borderStyle","borderWidth","frontPreviewImageUrl","backPreviewImageUrl","CustomizationType","Text","countryName","startDate","endDate","deliveryFeePerCustomer","storeStatusId","StoreStatus","Editing","storeProducts","storeProduct","expectedQuantity","customizedProductPreviewImageUrl","customizedProductBackPreviewImageUrl","customizedProductTitle","customizedProductName","customizedProductStyleId","canUpdateQuantity","vh","sections","itemUpdateSizeError","enquiryReferenceNumbers","facebookCustomizeProductEvent","enquiry","hasAdminRoles","loadCustomizedProduct","getProduct","setClientHeight","mobileSetArrowOnLoad","storesIdGet","getStoreDesigns","adminExtrasIdGet","storeCustomizedProductsStoreIdGet","present","mediaMd","matchMedia","matches","mediaLg","checkQty","customizedProductsIdGet","getStoreInfo","productBuilderProductIdGet","resp","customerCanUpdate","adminCanUpdate","loadSavedDesign","handleError","adminView","enquiryId","toCart","saveOrUpdateDesign","getPriceByExpectedQuantity","recommendedPrice","storeCustomizedProductsPost","savetype","locHost","designLink","isMobile","sharing","share","clipboard","writeText","leadInUrl","adminExtraCustomizedProductItemTemplateExtraIdPut","getExtraInfo","storeCustomizedProductsIdPut","eachLine","tspans","convertTextSvgToPath","converted","outerHTML","replaceAllInString","mapHandler","fontMap","outputResult","textToPathResult","outputSvg","groupMetrics","attributeCleanUp","saveType","mySVG","frontBlob","backBlob","stateToSave","uploadImage","svgIndex","constructTextSVG","lastModifiedDate","customizedProductsIdPut","customizedProductsPost","cartItemsCalculatePriceForCustomizedProductsPost","gotoCheckout","addToCart","deselect","nodeNames","activeElement","setProperty","sectionName","productView","updateDesignState","frontOverlay","backOverlay","mapFabricColour","infoToRetain","customizationFromProduct","guid","extraFromProduct","extraCustomizationId","newItem","hasMatchingCustomization","selectedColourId","layerFromProduct","layerColour","setCustomPatternPrice","_item","selection","splitPrice","onlyAdd","checkLocal","viewIndex","itemOverride","selectedItemIndex","skip","itemIndex","typeId","idToUse","validateExtra","itemExtra","Extra","noLongerTextExtra","hasBeenAltered","S4","selectedFeature","SizeNameSelector","CustomSpinner","CommonActions","ShareModal","Breadcrumbs","CustomFullPageSpinner","normalizeArray","allowAboveRoot","up","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","relative","fromParts","toParts","samePartsLength","outputParts","sep","dirname","hasRoot","extname","startDot","startPart","preDotState","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","ARRAY_ITERATOR","Arguments","clientRect","$default","withinMaxClamp","short","smallerText","banner","uniqueHeight","keepHeight","floatingImg","isH1","buttonLink","GenericBanner","installErrorCause","ERROR_STACK_INSTALLABLE","FULL_NAME","IS_AGGREGATE_ERROR","OPTIONS_POSITION","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","exceptions","$indexOf","tester","low","hi","fix","getScrollParent","isBody","updatedList","isInteger","isFinite","Uint8ClampedArrayPrototype","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int32Array","Uint32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","ARRAY","exportTypedArrayStaticMethod","TrackPurchase","transaction_id","orderTotal","shipping","deliveryTotal","coupon","voucher","redemptionCode","orderItems","item_id","item_name","item_brand","enhanced_conversion_data","getOppositePlacement","getOppositeVariationPlacement","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","preferredPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","numberOfChecks","fittingPlacement","_ret","PromiseCapability","$$resolve","$$reject","getOwnPropertyNamesExternalModule","REQUIRED","METADATA","setMetadata","objectID","weakData","codePointAt","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","un$Slice","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","MEDIA_PREFERS_REDUCED_MOTION","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","STATES","isObject$1","isString","addClass","children2","ref2","selector","child2","firstElementChild","merge$1","omit","display2","preventScroll","hasClass","parseHtml","DOMParser","parseFromString","prevent","stopImmediatePropagation","queryAll","removeClass","timeOf","timeStamp","unit","PROJECT_CODE","DATA_ATTRIBUTE","approximatelyEqual","epsilon","between","exclusive","pad","ids","uniqueId","EVENT_MOUNTED","EVENT_READY","EVENT_CLICK","EVENT_ACTIVE","EVENT_INACTIVE","EVENT_VISIBLE","EVENT_HIDDEN","EVENT_REFRESH","EVENT_RESIZE","EVENT_RESIZED","EVENT_DRAGGING","EVENT_OVERFLOW","EVENT_ARROWS_MOUNTED","EVENT_ARROWS_UPDATED","EVENT_PAGINATION_MOUNTED","EVENT_PAGINATION_UPDATED","EVENT_NAVIGATION_MOUNTED","EVENT_AUTOPLAY_PLAY","EVENT_AUTOPLAY_PLAYING","EVENT_AUTOPLAY_PAUSE","EVENT_LAZYLOAD_LOADED","EVENT_SLIDE_KEYDOWN","EVENT_SHIFTED","EVENT_END_INDEX_CHANGED","State","initialState","Media","reducedMotion","queries","isMin","completely","options2","query2","queryList","merged2","ARROW","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","RTL","TTB","ORIENTATION_MAP","X","Y","ArrowLeft","ArrowRight","axisOnly","toUpperCase","ROLE","TAB_INDEX","DISABLED","ARIA_PREFIX","ARIA_CONTROLS","ARIA_CURRENT","ARIA_SELECTED","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_HIDDEN","ARIA_ORIENTATION","ARIA_ROLEDESCRIPTION","ARIA_LIVE","ARIA_BUSY","ARIA_ATOMIC","ALL_ATTRIBUTES","CLASS_PREFIX","STATUS_CLASS_PREFIX","CLASS_ROOT","CLASS_TRACK","CLASS_LIST","CLASS_SLIDE","CLASS_CLONE","CLASS_CONTAINER","CLASS_ARROWS","CLASS_ARROW","CLASS_ARROW_PREV","CLASS_ARROW_NEXT","CLASS_PAGINATION","CLASS_PAGINATION_PAGE","CLASS_PROGRESS","CLASS_PROGRESS_BAR","CLASS_TOGGLE","CLASS_SPINNER","CLASS_SR","CLASS_INITIALIZED","CLASS_PREV","CLASS_NEXT","CLASS_VISIBLE","CLASS_LOADING","CLASS_FOCUS_IN","CLASS_OVERFLOW","STATUS_CLASSES","CLASSES","slide","spinner","nodeType","parentElement","FRICTION","LOG_INTERVAL","POINTER_DOWN_EVENTS","POINTER_MOVE_EVENTS","POINTER_UP_EVENTS","isUsingKey","_EventInterface","slides","rootClasses","trackClasses","collect","getClasses","labelledby","bar","carousel","isNavigation","LOOP","Slide$1","slideIndex","Components","updateOnMove","slideFocus","isClone","slideLabel","initNavigation","onMove","controls","splides","Slide2","splide","getAt","slideX","updateActivity","updateVisibility","focusableNodes","style$1","useContainer","cloneStatus","trackRect","slideRect","isWithin","_EventInterface2","_Components2$Elements","Slides2","Slide1","excludeClones","getIn","Controller2","max2","hasFocus","observeImages","remove$1","style2","getLength","isEnough","Layout","vertical","rootRect","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","newRect","cssTrackHeight","gap","cssSlideWidth","cssSlideHeight","isOverflow","cssHeight","heightRatio","autoWidth","fixedWidth","cssSlideSize","fixedHeight","autoHeight","listSize","slideSize","withoutGap","getGap","totalSize","sliderSize","getPadding","MULTIPLIER","Clones","cloneCount","Elements2","remount","computeCloneCount","generate","isHead","cloneDeep","cloneNode","clones2","fixedSize","fixedCount","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","dest","canShift","preventLoop","exceededMax","exceededMin","backwards","excess","minDistance","trimming","trimSpace","focus2","shifted","exceededLimit","slideCount","_EventInterface5","Move2","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","control","allowSameIndex","snap","indicator","computeDestIndex","snapPage","computeMovableDestIndex","toPage","toDest","closest2","waitForTransition","XML_NAME_SPACE","SIZE","wrapperClasses","createArrows","createArrow","prev2","arrowPath","nextIndex","prevLabel","nextLabel","INTERVAL_DATA_ATTRIBUTE","Autoplay","_EventInterface6","onAnimationFrame","_Components2$Elements4","Cover","_EventInterface7","cover","cover2","BOUNCE_DIFF_THRESHOLD","BOUNCE_DURATION","FRICTION_FACTOR","BASE_VELOCITY","MIN_DURATION","_EventInterface8","friction","onScrolled","noConstrain","noDistance","onEnd","easing","easingFunc","SCROLL_LISTENER_OPTIONS","Drag","basePosition","baseEvent","prevBaseEvent","isFree","clickPrevented","_EventInterface9","Scroll2","_Components2$Directio2","exceeded","onPointerDown","isTouch","isTouchEvent","isDraggable","onPointerMove","onPointerUp","cancelable","constrain","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","shouldStart","computeVelocity","rewindByDrag","thresholds","dragMinThreshold","isObj","mouse","flickPower","flickMaxPages","orthogonal","coordOf","getBaseEvent","changedTouches","target2","noDrag","TouchEvent","isDragging","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","KEYBOARD_EVENT","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","SRC_DATA_ATTRIBUTE","SRCSET_DATA_ATTRIBUTE","IMAGE_SELECTOR","_EventInterface11","isSequential","loadNext","srcset","preloadPages","onLoad","paginationClasses","createPagination","getDirection","select","li","pageX","paginationKeyboard","nextPage","paginationDirection","_button","TRIGGER_KEYS","Sync","isParent","sync","Wheel","_EventInterface12","wheel","onWheel","deltaY","wheelMinThreshold","sleep","wheelSleep","shouldPrevent","releaseWheel","SR_REMOVAL_DELAY","_EventInterface13","live","ComponentConstructors","Fade","Slide","endCallback","transition","getSpeed","useScroll","_Splide","_Splide2","_E","Extensions","_C","_T","Constructors","_this$event","Splide$1","EVENTS","SPLIDE_INJECTION_KEY","_sfc_main$2","_sfc_render$2","SplideTrack","hasTrack","splide2","_component_SplideTrack","ELoadingState","ReCaptchaLoader","getLoadingState","LOADED","LOADING","instanceSiteKey","successfulLoadingConsumers","errorLoadingRunnable","setLoadingState","loader","useRecaptchaNet","renderParameters","customUrl","widgetID","doExplicitRender","grecaptcha","explicitRenderParameters","autoHideBadge","loadingState","NOT_LOADED","scriptElement","scriptBase","parametersQuery","buildQueryString","waitForScriptToLoad","parameters","parameterKeys","parameterKey","SCRIPT_LOAD_DELAY","isEnterprise","augmentedParameters","sitekey","badge"],"mappings":"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","file":"js/app~0cb1574f.d1edec15.js","sourcesContent":["'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar Error = global.Error;\nvar un$Test = uncurryThis(/./.test);\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n var exec = this.exec;\n if (!isCallable(exec)) return un$Test(this, str);\n var result = call(exec, this, str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BlogPostTile.vue?vue&type=style&index=0&id=9d6b3b40&lang=scss\"","/*!\n * vuex v4.0.2\n * (c) 2021 Evan You\n * @license MIT\n */\nimport { inject, reactive, watch } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nvar storeKey = 'store';\n\nfunction useStore (key) {\n if ( key === void 0 ) key = null;\n\n return inject(key !== null ? key : storeKey)\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset state\n resetStoreState(store, state, hot);\n}\n\nfunction resetStoreState (store, state, hot) {\n var oldState = store._state;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computedObj = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldState.\n // using partial to return function with only arguments preserved in closure environment.\n computedObj[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n // TODO: use `computed` when it's possible. at the moment we can't due to\n // https://github.com/vuejs/vuex/pull/1883\n get: function () { return computedObj[key](); },\n enumerable: true // for local getters\n });\n });\n\n store._state = reactive({\n data: state\n });\n\n // enable strict mode for new state\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldState) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldState.data = null;\n });\n }\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && true) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n parentState[moduleName] = module.state;\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (!store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by state update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n watch(function () { return store._state.data; }, function () {\n {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, flush: 'sync' });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nvar LABEL_VUEX_BINDINGS = 'vuex bindings';\nvar MUTATIONS_LAYER_ID = 'vuex:mutations';\nvar ACTIONS_LAYER_ID = 'vuex:actions';\nvar INSPECTOR_ID = 'vuex';\n\nvar actionId = 0;\n\nfunction addDevtools (app, store) {\n setupDevtoolsPlugin(\n {\n id: 'org.vuejs.vuex',\n app: app,\n label: 'Vuex',\n homepage: 'https://next.vuex.vuejs.org/',\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\n packageName: 'vuex',\n componentStateTypes: [LABEL_VUEX_BINDINGS]\n },\n function (api) {\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: 'Vuex Mutations',\n color: COLOR_LIME_500\n });\n\n api.addTimelineLayer({\n id: ACTIONS_LAYER_ID,\n label: 'Vuex Actions',\n color: COLOR_LIME_500\n });\n\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Vuex',\n icon: 'storage',\n treeFilterPlaceholder: 'Filter stores...'\n });\n\n api.on.getInspectorTree(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n if (payload.filter) {\n var nodes = [];\n flattenStoreForInspectorTree(nodes, store._modules.root, payload.filter, '');\n payload.rootNodes = nodes;\n } else {\n payload.rootNodes = [\n formatStoreForInspectorTree(store._modules.root, '')\n ];\n }\n }\n });\n\n api.on.getInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n makeLocalGetters(store, modulePath);\n payload.state = formatStoreForInspectorState(\n getStoreModule(store._modules, modulePath),\n modulePath === 'root' ? store.getters : store._makeLocalGettersCache,\n modulePath\n );\n }\n });\n\n api.on.editInspectorState(function (payload) {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n var modulePath = payload.nodeId;\n var path = payload.path;\n if (modulePath !== 'root') {\n path = modulePath.split('/').filter(Boolean).concat( path);\n }\n store._withCommit(function () {\n payload.set(store._state.data, path, payload.state.value);\n });\n }\n });\n\n store.subscribe(function (mutation, state) {\n var data = {};\n\n if (mutation.payload) {\n data.payload = mutation.payload;\n }\n\n data.state = state;\n\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: mutation.type,\n data: data\n }\n });\n });\n\n store.subscribeAction({\n before: function (action, state) {\n var data = {};\n if (action.payload) {\n data.payload = action.payload;\n }\n action._id = actionId++;\n action._time = Date.now();\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: action._time,\n title: action.type,\n groupId: action._id,\n subtitle: 'start',\n data: data\n }\n });\n },\n after: function (action, state) {\n var data = {};\n var duration = Date.now() - action._time;\n data.duration = {\n _custom: {\n type: 'duration',\n display: (duration + \"ms\"),\n tooltip: 'Action duration',\n value: duration\n }\n };\n if (action.payload) {\n data.payload = action.payload;\n }\n data.state = state;\n\n api.addTimelineEvent({\n layerId: ACTIONS_LAYER_ID,\n event: {\n time: Date.now(),\n title: action.type,\n groupId: action._id,\n subtitle: 'end',\n data: data\n }\n });\n }\n });\n }\n );\n}\n\n// extracted from tailwind palette\nvar COLOR_LIME_500 = 0x84cc16;\nvar COLOR_DARK = 0x666666;\nvar COLOR_WHITE = 0xffffff;\n\nvar TAG_NAMESPACED = {\n label: 'namespaced',\n textColor: COLOR_WHITE,\n backgroundColor: COLOR_DARK\n};\n\n/**\n * @param {string} path\n */\nfunction extractNameFromPath (path) {\n return path && path !== 'root' ? path.split('/').slice(-2, -1)[0] : 'Root'\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorNode}\n */\nfunction formatStoreForInspectorTree (module, path) {\n return {\n id: path || 'root',\n // all modules end with a `/`, we want the last segment only\n // cart/ -> cart\n // nested/cart/ -> cart\n label: extractNameFromPath(path),\n tags: module.namespaced ? [TAG_NAMESPACED] : [],\n children: Object.keys(module._children).map(function (moduleName) { return formatStoreForInspectorTree(\n module._children[moduleName],\n path + moduleName + '/'\n ); }\n )\n }\n}\n\n/**\n * @param {import('@vue/devtools-api').CustomInspectorNode[]} result\n * @param {*} module\n * @param {string} filter\n * @param {string} path\n */\nfunction flattenStoreForInspectorTree (result, module, filter, path) {\n if (path.includes(filter)) {\n result.push({\n id: path || 'root',\n label: path.endsWith('/') ? path.slice(0, path.length - 1) : path || 'Root',\n tags: module.namespaced ? [TAG_NAMESPACED] : []\n });\n }\n Object.keys(module._children).forEach(function (moduleName) {\n flattenStoreForInspectorTree(result, module._children[moduleName], filter, path + moduleName + '/');\n });\n}\n\n/**\n * @param {*} module\n * @return {import('@vue/devtools-api').CustomInspectorState}\n */\nfunction formatStoreForInspectorState (module, getters, path) {\n getters = path === 'root' ? getters : getters[path];\n var gettersKeys = Object.keys(getters);\n var storeState = {\n state: Object.keys(module.state).map(function (key) { return ({\n key: key,\n editable: true,\n value: module.state[key]\n }); })\n };\n\n if (gettersKeys.length) {\n var tree = transformPathsToObjectTree(getters);\n storeState.getters = Object.keys(tree).map(function (key) { return ({\n key: key.endsWith('/') ? extractNameFromPath(key) : key,\n editable: false,\n value: canThrow(function () { return tree[key]; })\n }); });\n }\n\n return storeState\n}\n\nfunction transformPathsToObjectTree (getters) {\n var result = {};\n Object.keys(getters).forEach(function (key) {\n var path = key.split('/');\n if (path.length > 1) {\n var target = result;\n var leafKey = path.pop();\n path.forEach(function (p) {\n if (!target[p]) {\n target[p] = {\n _custom: {\n value: {},\n display: p,\n tooltip: 'Module',\n abstract: true\n }\n };\n }\n target = target[p]._custom.value;\n });\n target[leafKey] = canThrow(function () { return getters[key]; });\n } else {\n result[key] = canThrow(function () { return getters[key]; });\n }\n });\n return result\n}\n\nfunction getStoreModule (moduleMap, path) {\n var names = path.split('/').filter(function (n) { return n; });\n return names.reduce(\n function (module, moduleName, i) {\n var child = module[moduleName];\n if (!child) {\n throw new Error((\"Missing module \\\"\" + moduleName + \"\\\" for path \\\"\" + path + \"\\\".\"))\n }\n return i === names.length - 1 ? child : child._children\n },\n path === 'root' ? moduleMap : moduleMap.root._children\n )\n}\n\nfunction canThrow (cb) {\n try {\n return cb()\n } catch (e) {\n return e\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nfunction createStore (options) {\n return new Store(options)\n}\n\nvar Store = function Store (options) {\n var this$1$1 = this;\n if ( options === void 0 ) options = {};\n\n {\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n var devtools = options.devtools;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._makeLocalGettersCache = Object.create(null);\n this._devtools = devtools;\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store state, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreState(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1$1); });\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nStore.prototype.install = function install (app, injectKey) {\n app.provide(injectKey || storeKey, this);\n app.config.globalProperties.$store = this;\n\n var useDevtools = this._devtools !== undefined\n ? this._devtools\n : true ;\n\n if (useDevtools) {\n addDevtools(app, this);\n }\n};\n\nprototypeAccessors.state.get = function () {\n return this._state.data\n};\n\nprototypeAccessors.state.set = function (v) {\n {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1$1.state); });\n\n if (\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1$1.state); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1$1.state, error); });\n } catch (e) {\n {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch$1 (getter, cb, options) {\n var this$1$1 = this;\n\n {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return watch(function () { return getter(this$1$1.state, this$1$1.getters); }, cb, Object.assign({}, options))\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1$1 = this;\n\n this._withCommit(function () {\n this$1$1._state.data = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreState(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1$1.state, path.slice(0, -1));\n delete parentState[path[path.length - 1]];\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if (!isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if (!isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if (!isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (!(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if (!isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (!module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n version: '4.0.2',\n Store: Store,\n storeKey: storeKey,\n createStore: createStore,\n useStore: useStore,\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, storeKey, useStore };\n","import { InjectionKey } from \"vue\";\nimport { createStore, Store } from \"vuex\";\nexport interface RootState {\n version: string;\n}\n\nexport const key: InjectionKey> = Symbol();\n\nexport const store = createStore({\n state: {\n version: \"\",\n },\n getters: {},\n mutations: {},\n actions: {},\n modules: {},\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProductSelectorProductTile.vue?vue&type=style&index=0&id=069dce06&lang=scss\"","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","var global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar RangeError = global.RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"py-3 py-sm-5 col-11 col-lg-9\",\n name: \"termly-embed\",\n \"data-id\": \"00708678-8a82-4aab-bd2b-e1c0df26e13f\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1))\n}","\nexport default { \n name: 'TermlyPolicy', \n mounted() { \n // Remove any existing Termly script to avoid duplicates \n const existingScript = document.getElementById('termly-jssdk'); \n existingScript?.parentNode?.removeChild(existingScript);\n \n // Create a new script element \n const script = document.createElement('script'); \n script.id = 'termly-jssdk'; \n script.src = \"https://app.termly.io/embed-policy.min.js\"; \n document.body.appendChild(script); \n } \n} \n","import { render } from \"./TermlyPolicy.vue?vue&type=template&id=798efcec&ts=true\"\nimport script from \"./TermlyPolicy.vue?vue&type=script&lang=ts\"\nexport * from \"./TermlyPolicy.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProductDesigner.vue?vue&type=style&index=0&id=d4fd5a3e&lang=scss\"","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) defineProperties(DOMExceptionPrototype, {\n name: getterFor('name'),\n message: getterFor('message'),\n code: getterFor('code')\n});\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n redefine(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n var nativeSet = uncurryThis(WeakMapPrototype.set);\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","export * from \"./enums.js\";\nexport * from \"./modifiers/index.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { popperGenerator, detectOverflow, createPopper as createPopperBase } from \"./createPopper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper } from \"./popper.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\";","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var global = require('../internals/global');\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar RangeError = global.RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"section-products-container container-fluid w-100\"\n}\nconst _hoisted_2 = { class: \"row\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SplideSlider = _resolveComponent(\"SplideSlider\")!\n\n return (_ctx.featuredProducts.length >= 4)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_SplideSlider, {\n imageArray: _ctx.featuredProducts,\n isCategory: false,\n tileCategory: 'Featured Product',\n infoLinkTo: 'Product'\n }, null, 8, [\"imageArray\"])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport { Products } from \"@/network/api\";\nimport { ProductViewModel } from \"@/api-client\";\nimport SplideSlider from \"../carousel/SplideSlider.vue\";\nimport { UploadPath } from \"@/mixins/utilities\";\n\n@Options({\n components: {\n SplideSlider\n },\n})\nexport default class FeaturedProducts extends mixins(UploadPath) {\n featuredProducts: Array = [];\n\n created() {\n this.loadInitialData();\n }\n\n loadInitialData() {\n Products.productsFeaturedGet(1, 99999)\n .then((res) => {\n console.log(res);\n this.featuredProducts = res.data.resultData\n ?.items as Array;\n })\n .catch((error) => {\nconsole.log(error)\n console.log(error);\n });\n }\n}\n","import { render } from \"./FeaturedProducts.vue?vue&type=template&id=dc7b4454&ts=true\"\nimport script from \"./FeaturedProducts.vue?vue&type=script&lang=ts\"\nexport * from \"./FeaturedProducts.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","import axios from \"axios\";\nimport * as CliftonAPI from \"@/api-client\";\nexport const axiosInstance = axios.create();\n\nconst globalConf = new CliftonAPI.Configuration({\n basePath: process.env.VUE_APP_ROOT_API,\n});\n\nconst Authentication: CliftonAPI.IdentityAuthenticationApi =\n new CliftonAPI.IdentityAuthenticationApi(globalConf);\nconst Categories: CliftonAPI.CategoriesApi = new CliftonAPI.CategoriesApi(\n globalConf\n);\nconst Files: CliftonAPI.FilesApi = new CliftonAPI.FilesApi(globalConf);\nconst Products: CliftonAPI.ProductsApi = new CliftonAPI.ProductsApi(globalConf);\nconst ProductTags: CliftonAPI.ProductTagsApi = new CliftonAPI.ProductTagsApi(globalConf);\nconst Blogs: CliftonAPI.BlogsApi = new CliftonAPI.BlogsApi(globalConf);\nconst BlogCategories: CliftonAPI.BlogCategoriesApi = new CliftonAPI.BlogCategoriesApi(globalConf);\nconst BannerItems: CliftonAPI.BannerItemsApi = new CliftonAPI.BannerItemsApi(globalConf);\nconst GeneralSettings: CliftonAPI.GeneralSettingsApi = new CliftonAPI.GeneralSettingsApi(globalConf);\nconst ProductBundles: CliftonAPI.ProductBundlesApi = new CliftonAPI.ProductBundlesApi(globalConf);\nconst Clients: CliftonAPI.ClientsApi = new CliftonAPI.ClientsApi(globalConf);\nconst Countries: CliftonAPI.CountriesApi = new CliftonAPI.CountriesApi(globalConf);\nconst CustomizedProducts: CliftonAPI.CustomizedProductsApi = new CliftonAPI.CustomizedProductsApi(globalConf);\nconst Carts: CliftonAPI.CartsApi = new CliftonAPI.CartsApi(globalConf);\nconst CartItems: CliftonAPI.CartItemsApi = new CliftonAPI.CartItemsApi(globalConf);\nconst ProductBuilder: CliftonAPI.ProductBuilderApi = new CliftonAPI.ProductBuilderApi(globalConf);\nconst Payments: CliftonAPI.PaymentsApi = new CliftonAPI.PaymentsApi(globalConf);\nconst Users: CliftonAPI.UsersApi = new CliftonAPI.UsersApi(globalConf);\nconst UserAddresses: CliftonAPI.UserAddressesApi = new CliftonAPI.UserAddressesApi(globalConf);\nconst Orders: CliftonAPI.OrdersApi = new CliftonAPI.OrdersApi(globalConf);\nconst Enquiries: CliftonAPI.EnquiriesApi = new CliftonAPI.EnquiriesApi(globalConf);\nconst AdminOrders: CliftonAPI.AdminOrdersApi = new CliftonAPI.AdminOrdersApi(globalConf);\nconst AdminExtras: CliftonAPI.AdminExtrasApi = new CliftonAPI.AdminExtrasApi(globalConf);\nconst AdminExtraCustomizedProductItemTemplate: CliftonAPI.AdminExtraCustomizedProductItemTemplateApi = new CliftonAPI.AdminExtraCustomizedProductItemTemplateApi(globalConf);\nconst SEOSettings: CliftonAPI.PageSeoSettingsApi = new CliftonAPI.PageSeoSettingsApi(globalConf);\nconst Stores: CliftonAPI.StoresApi = new CliftonAPI.StoresApi(globalConf);\nconst StoreCustomizedProducts: CliftonAPI.StoreCustomizedProductsApi = new CliftonAPI.StoreCustomizedProductsApi(globalConf);\nconst BannerMessages: CliftonAPI.BannerMessagesApi = new CliftonAPI.BannerMessagesApi(globalConf);\nconst CarouselItems: CliftonAPI.CarouselItemsApi = new CliftonAPI.CarouselItemsApi(globalConf);\nconst Campaigns: CliftonAPI.CampaignsApi = new CliftonAPI.CampaignsApi(globalConf);\nconst FacebookConversionsApi: CliftonAPI.FacebookConversionsApi = new CliftonAPI.FacebookConversionsApi(globalConf);\n\nexport { Authentication, Categories, Files, Products, ProductTags, Blogs, BlogCategories, BannerItems, GeneralSettings, ProductBundles, Clients, Countries, CustomizedProducts, Carts, CartItems, ProductBuilder, Payments, Users, UserAddresses, Orders, Enquiries, AdminOrders, SEOSettings, Stores, StoreCustomizedProducts, BannerMessages, AdminExtras, AdminExtraCustomizedProductItemTemplate, CarouselItems, Campaigns, FacebookConversionsApi };\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","/**\n * vue-meta v3.0.0-alpha.10\n * (c) 2022\n * - Pim (@pimlie)\n * - All the amazing contributors\n * @license MIT\n */\nimport{markRaw as t,h as e,getCurrentInstance as o,isProxy as r,watch as n,inject as s,defineComponent as i,reactive as c,onUnmounted as a,Teleport as u,Comment as l,computed as f}from\"vue\";const d=(t,e)=>(o,r)=>{let n=-1;if(r.reduce(((e,o,r)=>{const s=t(e,o);return s!==e?(n=r,s):e}),e),n>-1)return o[n]},p=d(((t,e)=>{const{depth:o}=e;return!t||o>t?o:t}));var m=Object.freeze({__proto__:null,setup:t=>{let e=0;if(t.vm){let{vm:o}=t;do{o.parent&&(e++,o=o.parent)}while(o&&o.parent&&o!==o.root)}t.depth=e},resolve:p});const b={body:{tag:\"script\",to:\"body\"},base:{valueAttribute:\"href\"},charset:{tag:\"meta\",nameless:!0,valueAttribute:\"charset\"},description:{tag:\"meta\"},og:{group:!0,namespacedAttribute:!0,tag:\"meta\",keyAttribute:\"property\"},twitter:{group:!0,namespacedAttribute:!0,tag:\"meta\"},htmlAttrs:{attributesFor:\"html\"},headAttrs:{attributesFor:\"head\"},bodyAttrs:{attributesFor:\"body\"}},h={title:{attributes:!1},base:{contentAsAttribute:!0,attributes:[\"href\",\"target\"]},meta:{contentAsAttribute:!0,keyAttribute:\"name\",attributes:[\"content\",\"name\",\"http-equiv\",\"charset\"]},link:{contentAsAttribute:!0,attributes:[\"href\",\"crossorigin\",\"rel\",\"media\",\"integrity\",\"hreflang\",\"type\",\"referrerpolicy\",\"sizes\",\"imagesrcset\",\"imagesizes\",\"as\",\"color\"]},style:{attributes:[\"media\"]},script:{attributes:[\"src\",\"type\",\"nomodule\",\"async\",\"defer\",\"crossorigin\",\"integrity\",\"referrerpolicy\"]},noscript:{attributes:!1}};Object.freeze({}),Object.freeze([]);const g=Array.isArray,y=t=>\"function\"==typeof t,v=t=>\"string\"==typeof t,S=t=>null!==t&&\"object\"==typeof t,A=Object.prototype.toString,k=t=>\"[object Object]\"===A.call(t),N=Symbol(\"kIsProxy\"),j=Symbol(\"kProxySources\"),R=Symbol(\"kProxyTarget\"),w=Symbol(\"kResolveContext\");function x(t){if(g(t))return t.map(x);if(S(t)){const e={};for(const o in t)e[o]=\"context\"===o?t[o]:x(t[o]);return e}return t}const O=(t,e,o)=>{const r=[];for(const n of t)n&&e in n&&(r.push(n[e]),o&&o(n));return r},$=(t,e=[],o,r)=>{if(!o&&!r&&(({active:o,sources:r}=t),e.length))for(let t=0;tt[n])).filter(Boolean)}if(!o||!r)return;const n=((t,...e)=>{const o=t?Object.keys(t):[];if(e)for(const t of e)if(t&&S(t))for(const e in t)o.includes(e)||o.push(e);return o})(...r),s=Object.keys(o);for(const t of s)n.includes(t)||delete o[t];for(const s of n){let n=!1;for(let t=0;ti.push(t[w])));let a=t.resolve(c,i,o[s],s,e);k(a)&&(a=x(a)),o[s]=a}},P=(e,o,r,n=[])=>{const s=C(e,r,n),i=t(new Proxy(o,s));return!n.length&&e.sources&&e.sources.push(i),i},C=(t,e,o=[])=>({get:(r,n,s)=>{if(n===N)return!0;if(n===j)return t.sources;if(n===R)return r;if(n===w)return e;let i=Reflect.get(r,n,s);if(!S(i))return i;if(!i[N]){const s=[...o,n];i=P(t,i,e,s),Reflect.set(r,n,i)}return i},set:(e,r,n)=>{const s=Reflect.set(e,r,n);if(s){const i=g(e);let c,a=!1,{sources:u,active:l}=t,f=0;for(const t of o){if(u=O(u,t),i&&f===o.length-1){c=t;break}g(l)&&(a=!0),l=l[t],f++}if(a)return $(t),s;if(k(n))return $(t,o),s;let d,p=[];i?(d=u,p=u.map((t=>t[w]))):d=O(u,r,(t=>p.push(t[w])));let m=t.resolve(d,p,l,r,o);k(m)&&(m=x(m)),i&&c?l[c]=m:l[r]=m}return s},deleteProperty:(e,r)=>{const n=Reflect.deleteProperty(e,r);if(n){const n=g(e);let s,i=t.sources,c=t.active,a=0;for(const t of o){if(i=i.map((e=>e&&e[t])),n&&a===o.length-1){s=t;break}c=c[t],a++}if(i.some((t=>t&&r in t))){let e,a=[];n?(e=i,a=i.map((t=>t[w]))):e=O(i,r,(t=>a.push(t[w])));let u=t.resolve(e,a,c,r,o);k(u)&&(u=x(u)),n&&s?c[s]=u:c[r]=u}else delete c[r]}return n}}),M={};function F(t,o,r,n){return\"attributesFor\"in n?function(t,o,r,n){const{attributesFor:s}=n;if(!s||!r)return;if(t.isSSR)return{to:\"\",vnode:e(`ssr-${s}`,r)};if(!M[s]){const[t,e]=Array.from(document.querySelectorAll(s));if(!t)return void console.error(\"Could not find element for selector\",s,\", won't render attributes\");e&&console.warn(\"Found multiple elements for selector\",s),M[s]={el:t,attrs:[]}}const{el:i,attrs:c}=M[s];for(const e in r){let n=U(t,`${o}(${e})`,r[e],r);g(n)&&(n=n.join(\",\")),i.setAttribute(e,n||\"\"),c.includes(e)||c.push(e)}const a=c.filter((t=>!r[t]));for(const t of a)i.removeAttribute(t)}(t,o,r,n):\"group\"in n?function(t,e,o,r){if(g(o))return console.warn(\"Specifying an array for group properties isnt supported\"),[];return Object.keys(o).map((n=>{const s={group:e,data:o};if(r.namespaced)s.tagNamespace=!0===r.namespaced?e:r.namespaced;else if(r.namespacedAttribute){const t=!0===r.namespacedAttribute?e:r.namespacedAttribute;s.fullName=`${t}:${n}`,s.slotName=`${t}(${n})`}return E(t,e,o[n],r,s)})).filter(Boolean).flat()}(t,o,r,n):E(t,o,r,n)}function E(t,o,r,n={},s){const i=[\"content\",\"json\",\"rawContent\"],c=t=>function(t,e){for(const o of t){const t=h[o];if(o&&t)return t[e]}}([a,n.tag],t);if(g(r))return r.map((e=>E(t,o,e,n,s))).filter(Boolean).flat();const{tag:a=n.tag||o}=r;let u=\"\",l=!1,f=!1;if(v(r))u=r;else if(r.children&&g(r.children))l=!0,u=r.children.map((e=>{const r=E(t,o,e,n,s);return g(r)?r.map((({vnode:t})=>t)):r&&r.vnode}));else{let t=0;for(const e of i){if(!u&&r[e]){u=1===t?JSON.stringify(r[e]):r[e],f=t>1;break}t++}}const d=s&&s.fullName||o,p=s&&s.slotName||o;let{attrs:m}=r;if(m||\"object\"!=typeof r)m||(m={});else{m={...r},delete m.tag,delete m.children,delete m.to;for(const t of i)delete m[t]}if(l)u=U(t,p,u,r);else{const e=!!c(\"contentAsAttribute\");let{valueAttribute:o}=n;if(!o&&e){const[t]=c(\"attributes\");o=v(e)?e:t}if(o){const{nameless:e}=n;if(!e){const t=n.keyAttribute||c(\"keyAttribute\");t&&(m[t]=d)}m[o]=U(t,p,m[o]||u,s),u=\"\"}else u=U(t,p,u,r)}const b=s&&s.tagNamespace?`${s.tagNamespace}:${a}`:a;if(\"title\"===b&&!t.isSSR)return void(document.title=u);f&&u&&(m.innerHTML=u);const y=e(b,m,u||void 0);return{to:r.to,vnode:y}}function U({metainfo:t,slots:e},o,r,n){const s=e&&e[o];if(!s||!y(s))return r;const i={content:r,metainfo:t};if(n&&n.group){const{group:t,data:e}=n;i[t]=e}const c=s(i);if(c&&c.length){const{children:t}=c[0];return t?t.toString():\"\"}return r}const z=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.toStringTag,_=(t=>z?Symbol(\"[vue-meta]: \"+t):\"[vue-meta]: \"+t)(\"meta_active\");function L(t,e,o){for(const r in e)r in o?S(t[r])?L(t[r],e[r],o[r]):e[r]!==o[r]&&(t[r]=e[r]):t[r]=e[r];for(const r in o)e&&r in e||delete t[r]}function q(t){if(t||(t=o()||void 0),t)return t.appContext.config.globalProperties.$metaManager}function B(t,e){const s=o()||void 0;if(!e&&s&&(e=q(s)),!e)throw new Error(\"No manager or current instance\");r(t)&&(n(t,((t,e)=>{L(i.meta,t,e)})),t=t.value);const i=e.addMeta(t,s);return i}function I(){return s(_)}const T=i({name:\"Metainfo\",inheritAttrs:!1,setup:(t,{slots:e})=>()=>{const t=q();if(t)return t.render({slots:e})}});function D(t,e,o,r){const n=g(r)?r:[r];t?o.endsWith(\"Attrs\")||n.forEach((t=>{t.props||(t.props={}),t.props[\"data-vm-ssr\"]=!0})):n.forEach(((t,e)=>{t.type===l&&n.splice(e,1)})),e[o]||(e[o]=[]),e[o].push(...n)}const H=(t=!1,e,o)=>J.create(t,e||b,o||m);class J{isSSR=!1;config;target;resolver;ssrCleanedUp=!1;constructor(t,e,o,r){this.isSSR=t,this.config=e,this.target=o,r&&\"setup\"in r&&y(r.setup)&&(this.resolver=r)}static create=(t,e,o)=>{const r=((t,e)=>{const o=[],r={active:e,resolve:t,sources:o},n=()=>$(r);return{context:r,compute:n,addSource:(t,e,o=!1)=>{const s=P(r,t,e||{});return o&&n(),s},delSource:(t,e=!0)=>{const r=o.findIndex((e=>e===t||e[R]===t));return r>-1&&(o.splice(r,1),e&&n(),!0)}}})(((t,e,r,n,s)=>y(o)?o(t,e,r,n,s):o.resolve(t,e,r,n,s)),c({}));return new J(t,e,r,o)};install(t){t.component(\"Metainfo\",T),t.config.globalProperties.$metaManager=this,t.provide(_,this.target.context.active)}addMeta(t,e){e||(e=o()||void 0);const r={removed:[]},n={vm:e},{resolver:s}=this;s&&s.setup&&s.setup(n);const i=this.target.addSource(t,n,!0),c=t=>this.unmount(!!t,i,r,e);return e&&a(c),{meta:i,onRemoved:t=>r.removed.push(t),unmount:c}}unmount(t,e,o,r){if(r){const{$el:n}=r.proxy;if(n&&n.offsetParent){let r=new MutationObserver((s=>{for(const{removedNodes:i}of s)i&&i.forEach((s=>{s===n&&r&&(r.disconnect(),r=void 0,this.reallyUnmount(t,e,o))}))}));return void r.observe(n.parentNode,{childList:!0})}}this.reallyUnmount(t,e,o)}async reallyUnmount(t,e,o){this.target.delSource(e),!t&&o&&await Promise.all(o.removed.map((t=>t())))}render({slots:t}={}){const o=this.target.context.active,{isSSR:r}=this;if(!r&&!this.ssrCleanedUp){this.ssrCleanedUp=!0;const t=()=>{const t=document.querySelectorAll(\"[data-vm-ssr]\");t&&t.length&&t.forEach((t=>t.parentNode&&t.parentNode.removeChild(t)))};\"loading\"===document.readyState?window.addEventListener(\"DOMContentLoaded\",t,{once:!0}):t()}const n={};for(const e in o){const s=this.config[e]||{};let i=F({isSSR:r,metainfo:o,slots:t},e,o[e],s);if(!i)continue;g(i)||(i=[i]);let c=\"base\"!==e&&o[e].to;!c&&\"to\"in s&&(c=s.to),!c&&\"attributesFor\"in s&&(c=e);for(const{to:t,vnode:e}of i)D(this.isSSR,n,t||c||\"head\",e)}if(t)for(const e in t){const r=\"default\"===e?\"head\":e;if(\"head\"!==r&&\"body\"!==r)continue;const s=t[e];y(s)&&D(this.isSSR,n,r,s({metainfo:o}))}return Object.keys(n).map((t=>e(u,{to:t},n[t])))}}const W={keyName:\"metaInfo\"},G=t=>({created(){const e=o();if(!e?.type||!(t.keyName in e.type))return;const r=e.type[t.keyName];if(y(r)){B(f(r.bind(this)))}else B(r)}}),K=(t,e={})=>{const o=Object.assign({},W,e);t.mixin(G(o))};export{H as createMetaManager,m as deepestResolver,b as defaultConfig,q as getCurrentManager,K as plugin,d as resolveOption,I as useActiveMeta,B as useMeta};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar Array = global.Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar un$Sort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () {\n un$Sort(new Uint16Array(2), null);\n}) && fails(function () {\n un$Sort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!un$Sort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n un$Sort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return un$Sort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CustomizationPicker.vue?vue&type=style&index=0&id=56b56912&lang=scss\"","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=4d7588b6&lang=scss&scoped=true\"","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar MISSED_STICKY = require('../internals/regexp-sticky-helpers').MISSED_STICKY;\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.sticky` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky\nif (DESCRIPTORS && MISSED_STICKY) {\n defineProperty(RegExpPrototype, 'sticky', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).sticky;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TrustpilotBanner.vue?vue&type=style&index=0&id=446bf116&lang=scss\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"container-fluid generic-page-container col-12 mt-5\" }\nconst _hoisted_2 = { class: \"row d-flex justify-content-center align-items-center\" }\nconst _hoisted_3 = {\n class: \"text-uppercase w-auto h-lg-secondary text-center\",\n style: {\"letter-spacing\":\"6px\"}\n}\nconst _hoisted_4 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, _toDisplayString(_ctx.heading), 1),\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.text,\n class: \"text p-sm-primary py-3 py-sm-5 col-11 col-lg-9\"\n }, null, 8, _hoisted_4)\n ])\n ])\n ]))\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options ({\n props: {\n heading: { default: 'No heading available' },\n text: { type: String }\n }\n})\nexport default class GenericPage extends Vue {}\n","import { render } from \"./GenericPage.vue?vue&type=template&id=4f5c5e65&ts=true\"\nimport script from \"./GenericPage.vue?vue&type=script&lang=ts\"\nexport * from \"./GenericPage.vue?vue&type=script&lang=ts\"\n\nimport \"./GenericPage.vue?vue&type=style&index=0&id=4f5c5e65&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./GenericPage.vue?vue&type=style&index=0&id=4f5c5e65&lang=scss\"","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BackgroundReplaceImageUploader.vue?vue&type=style&index=0&id=c80f05be&lang=scss&scoped=true\"","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env';\nimport { HOOK_SETUP } from './const';\nimport { ApiProxy } from './proxy';\nexport * from './api';\nexport * from './plugin';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && pluginDescriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(pluginDescriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","module.exports = {};\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ChooseCreateOrderBanner.vue?vue&type=style&index=0&id=2b71b302&lang=scss&scoped=true\"","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5f29c4f2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = { class: \"modal-dialog modal-dialog-centered modal-dialog-scrollable\" }\nconst _hoisted_3 = { class: \"modal-content\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"modal-header\"\n}\nconst _hoisted_5 = {\n class: \"modal-title text-uppercase primary-font-bold text-primary\",\n id: \"basciPromptModalLabel\"\n}\nconst _hoisted_6 = { class: \"modal-body p-sm-primary\" }\nconst _hoisted_7 = { class: \"modal-footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"modal fade\",\n id: _ctx.id,\n tabindex: \"-1\",\n \"aria-labelledby\": \"basciPromptModalLabel\",\n \"aria-hidden\": \"true\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.title)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"h5\", _hoisted_5, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (this.$emit('dismiss'))),\n type: \"button\",\n class: \"btn-close\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\"\n })\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.content) + \" \", 1),\n _renderSlot(_ctx.$slots, \"extraContent\", {}, undefined, true)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (this.$emit('dismiss'))),\n type: \"button\",\n class: \"btn-sm-secondary text-uppercase\",\n \"data-bs-dismiss\": \"modal\"\n }, _toDisplayString(_ctx.dismiss), 1),\n (_ctx.showConfirm)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[2] || (_cache[2] = ($event: any) => (this.$emit('confirm'))),\n type: \"button\",\n class: \"btn-sm-secondary text-uppercase\",\n \"data-bs-dismiss\": \"modal\"\n }, _toDisplayString(_ctx.confirm), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ], 8, _hoisted_1))\n}","\nimport { Vue, Options } from \"vue-class-component\";\n\n@Options({\n components: { },\n props: {\n content: { default: '' },\n dismiss: { default: 'Close'},\n html: { default: '' },\n confirm: { default: 'Yes'},\n title: { default: null },\n showConfirm: { default: true },\n id: { default: 'basciPromptModal' }\n },\n emits: [\"dismiss\", \"confirm\"]\n})\nexport default class BasciPromptModal extends Vue {\n}\n","import { render } from \"./BasicPromptModal.vue?vue&type=template&id=5f29c4f2&scoped=true&ts=true\"\nimport script from \"./BasicPromptModal.vue?vue&type=script&lang=ts\"\nexport * from \"./BasicPromptModal.vue?vue&type=script&lang=ts\"\n\nimport \"./BasicPromptModal.vue?vue&type=style&index=0&id=5f29c4f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5f29c4f2\"]])\n\nexport default __exports__","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ArtAssetUpload.vue?vue&type=style&index=0&id=387783a8&lang=scss&scoped=true\"","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./InfoPageBlock.vue?vue&type=style&index=0&id=647c97a8&lang=scss\"","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectDefinePropertyModule = require('../internals/object-define-property');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy';\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) objectDefinePropertyModule.f(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProductMenuMobile.vue?vue&type=style&index=0&id=25476c60&lang=scss\"","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\nvar getFlags = uncurryThis(regExpFlags);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return indexOf(string, searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getFlags(searchValue)\n ));\n if (!~indexOf(flags, 'g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ControlSections.vue?vue&type=style&index=0&id=18578800&lang=scss\"","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","module.exports = typeof window == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"blog-container col-12 col-sm-6 col-lg-4 flex-centered\" }\nconst _hoisted_2 = { class: \"post-img w-100 h-100 d-flex justify-content-center align-item-center\" }\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"blog-text pb-2 pt-3 px-4 d-flex flex-column justify-content-start align-items-center text-center\" }\nconst _hoisted_5 = { class: \"d-flex\" }\nconst _hoisted_6 = { class: \"blog-title\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_link, {\n to: {name: 'BlogPost', params: {'slug': _ctx.slug, lang: _ctx.$route.params.lang}},\n class: \"blog-box d-flex justify-content-center align-items-center flex-column\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n src: _ctx.image ? `${_ctx.uploadPath}/${_ctx.image}` : `/img/no-load.png`,\n alt: \"Blog preview image\"\n }, null, 8, _hoisted_3)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.categories, (category) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"category-tabs mx-2 mb-3\", {'selected-category': _ctx.selectedCategories.includes(category.id)}]),\n key: category.id,\n style: _normalizeStyle(`background-color:#${category.hexValue};`)\n }, null, 6))\n }), 128))\n ]),\n _createElementVNode(\"h2\", _hoisted_6, _toDisplayString(_ctx.heading), 1)\n ])\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n}","\nimport { UploadPath } from \"@/mixins/utilities\";\nimport { mixins, Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n heading: {default: ''},\n categories: {default: []},\n selectedCategories: {default: []},\n colour: {default: ''},\n paragraph: {default: ''},\n image: {default: ''},\n slug: {default: ''}\n }\n\n})\nexport default class BlogPostTile extends mixins(UploadPath) {\n heading = '';\n categories = [];\n selectedCategories = [];\n colour = '';\n paragraph = '';\n image = '';\n slug = '';\n\n get truncatedHeading() {\n if (this.heading.length <= 60) {\n return this.heading;\n }\n return this.heading.slice(0, 60) + '...'\n }\n\n // get truncatedParagraph() {\n // if (this.paragraph.length < 130) {\n // return this.paragraph;\n // } \n // return this.paragraph.slice(0, 130) + '...'\n // }\n}\n","import { render } from \"./BlogPostTile.vue?vue&type=template&id=9d6b3b40&ts=true\"\nimport script from \"./BlogPostTile.vue?vue&type=script&lang=ts\"\nexport * from \"./BlogPostTile.vue?vue&type=script&lang=ts\"\n\nimport \"./BlogPostTile.vue?vue&type=style&index=0&id=9d6b3b40&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./HomePage.vue?vue&type=style&index=0&id=234d7911&lang=scss\"","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*!\n * vue-router v4.0.12\n * (c) 2021 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst PolySymbol = (name) => \r\n// vr = vue router\r\nhasSymbol\r\n ? Symbol((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' + name : name)\r\n : ((process.env.NODE_ENV !== 'production') ? '[vue-router]: ' : '_vr_') + name;\r\n// rvlm = Router View Location Matched\r\n/**\r\n * RouteRecord being rendered by the closest ancestor Router View. Used for\r\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\r\n * Location Matched\r\n *\r\n * @internal\r\n */\r\nconst matchedRouteKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : 'rvlm');\r\n/**\r\n * Allows overriding the router view depth to control which component in\r\n * `matched` is rendered. rvd stands for Router View Depth\r\n *\r\n * @internal\r\n */\r\nconst viewDepthKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : 'rvd');\r\n/**\r\n * Allows overriding the router instance returned by `useRouter` in tests. r\r\n * stands for router\r\n *\r\n * @internal\r\n */\r\nconst routerKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router' : 'r');\r\n/**\r\n * Allows overriding the current route returned by `useRoute` in tests. rl\r\n * stands for route location\r\n *\r\n * @internal\r\n */\r\nconst routeLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'route location' : 'rl');\r\n/**\r\n * Allows overriding the current route used by router-view. Internally this is\r\n * used when the `route` prop is passed.\r\n *\r\n * @internal\r\n */\r\nconst routerViewLocationKey = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'router view location' : 'rvl');\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction isESModule(obj) {\r\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');\r\n}\r\nconst assign = Object.assign;\r\nfunction applyToParams(fn, params) {\r\n const newParams = {};\r\n for (const key in params) {\r\n const value = params[key];\r\n newParams[key] = Array.isArray(value) ? value.map(fn) : fn(value);\r\n }\r\n return newParams;\r\n}\r\nconst noop = () => { };\n\nfunction warn(msg) {\r\n // avoid using ...args as it breaks in older Edge builds\r\n const args = Array.from(arguments).slice(1);\r\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\r\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\r\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\r\n/**\r\n * Transforms an URI into a normalized history location\r\n *\r\n * @param parseQuery\r\n * @param location - URI to normalize\r\n * @param currentLocation - current absolute location. Allows resolving relative\r\n * paths. Must start with `/`. Defaults to `/`\r\n * @returns a normalized history location\r\n */\r\nfunction parseURL(parseQuery, location, currentLocation = '/') {\r\n let path, query = {}, searchString = '', hash = '';\r\n // Could use URL and URLSearchParams but IE 11 doesn't support it\r\n const searchPos = location.indexOf('?');\r\n const hashPos = location.indexOf('#', searchPos > -1 ? searchPos : 0);\r\n if (searchPos > -1) {\r\n path = location.slice(0, searchPos);\r\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\r\n query = parseQuery(searchString);\r\n }\r\n if (hashPos > -1) {\r\n path = path || location.slice(0, hashPos);\r\n // keep the # character\r\n hash = location.slice(hashPos, location.length);\r\n }\r\n // no search and no query\r\n path = resolveRelativePath(path != null ? path : location, currentLocation);\r\n // empty path means a relative query or hash `?foo=f`, `#thing`\r\n return {\r\n fullPath: path + (searchString && '?') + searchString + hash,\r\n path,\r\n query,\r\n hash,\r\n };\r\n}\r\n/**\r\n * Stringifies a URL object\r\n *\r\n * @param stringifyQuery\r\n * @param location\r\n */\r\nfunction stringifyURL(stringifyQuery, location) {\r\n const query = location.query ? stringifyQuery(location.query) : '';\r\n return location.path + (query && '?') + query + (location.hash || '');\r\n}\r\n/**\r\n * Strips off the base from the beginning of a location.pathname in a non\r\n * case-sensitive way.\r\n *\r\n * @param pathname - location.pathname\r\n * @param base - base to strip off\r\n */\r\nfunction stripBase(pathname, base) {\r\n // no base or base is not found at the beginning\r\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\r\n return pathname;\r\n return pathname.slice(base.length) || '/';\r\n}\r\n/**\r\n * Checks if two RouteLocation are equal. This means that both locations are\r\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\r\n * parameters and `hash` are the same\r\n *\r\n * @param a - first {@link RouteLocation}\r\n * @param b - second {@link RouteLocation}\r\n */\r\nfunction isSameRouteLocation(stringifyQuery, a, b) {\r\n const aLastIndex = a.matched.length - 1;\r\n const bLastIndex = b.matched.length - 1;\r\n return (aLastIndex > -1 &&\r\n aLastIndex === bLastIndex &&\r\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\r\n isSameRouteLocationParams(a.params, b.params) &&\r\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\r\n a.hash === b.hash);\r\n}\r\n/**\r\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\r\n * considered equal to the `RouteRecord` they are aliasing.\r\n *\r\n * @param a - first {@link RouteRecord}\r\n * @param b - second {@link RouteRecord}\r\n */\r\nfunction isSameRouteRecord(a, b) {\r\n // since the original record has an undefined value for aliasOf\r\n // but all aliases point to the original record, this will always compare\r\n // the original record\r\n return (a.aliasOf || a) === (b.aliasOf || b);\r\n}\r\nfunction isSameRouteLocationParams(a, b) {\r\n if (Object.keys(a).length !== Object.keys(b).length)\r\n return false;\r\n for (const key in a) {\r\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction isSameRouteLocationParamsValue(a, b) {\r\n return Array.isArray(a)\r\n ? isEquivalentArray(a, b)\r\n : Array.isArray(b)\r\n ? isEquivalentArray(b, a)\r\n : a === b;\r\n}\r\n/**\r\n * Check if two arrays are the same or if an array with one single entry is the\r\n * same as another primitive value. Used to check query and parameters\r\n *\r\n * @param a - array of values\r\n * @param b - array of values or a single value\r\n */\r\nfunction isEquivalentArray(a, b) {\r\n return Array.isArray(b)\r\n ? a.length === b.length && a.every((value, i) => value === b[i])\r\n : a.length === 1 && a[0] === b;\r\n}\r\n/**\r\n * Resolves a relative path that starts with `.`.\r\n *\r\n * @param to - path location we are resolving\r\n * @param from - currentLocation.path, should start with `/`\r\n */\r\nfunction resolveRelativePath(to, from) {\r\n if (to.startsWith('/'))\r\n return to;\r\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\r\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\r\n return to;\r\n }\r\n if (!to)\r\n return from;\r\n const fromSegments = from.split('/');\r\n const toSegments = to.split('/');\r\n let position = fromSegments.length - 1;\r\n let toPosition;\r\n let segment;\r\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\r\n segment = toSegments[toPosition];\r\n // can't go below zero\r\n if (position === 1 || segment === '.')\r\n continue;\r\n if (segment === '..')\r\n position--;\r\n // found something that is not relative path\r\n else\r\n break;\r\n }\r\n return (fromSegments.slice(0, position).join('/') +\r\n '/' +\r\n toSegments\r\n .slice(toPosition - (toPosition === toSegments.length ? 1 : 0))\r\n .join('/'));\r\n}\n\nvar NavigationType;\r\n(function (NavigationType) {\r\n NavigationType[\"pop\"] = \"pop\";\r\n NavigationType[\"push\"] = \"push\";\r\n})(NavigationType || (NavigationType = {}));\r\nvar NavigationDirection;\r\n(function (NavigationDirection) {\r\n NavigationDirection[\"back\"] = \"back\";\r\n NavigationDirection[\"forward\"] = \"forward\";\r\n NavigationDirection[\"unknown\"] = \"\";\r\n})(NavigationDirection || (NavigationDirection = {}));\r\n/**\r\n * Starting location for Histories\r\n */\r\nconst START = '';\r\n// Generic utils\r\n/**\r\n * Normalizes a base by removing any trailing slash and reading the base tag if\r\n * present.\r\n *\r\n * @param base - base to normalize\r\n */\r\nfunction normalizeBase(base) {\r\n if (!base) {\r\n if (isBrowser) {\r\n // respect tag\r\n const baseEl = document.querySelector('base');\r\n base = (baseEl && baseEl.getAttribute('href')) || '/';\r\n // strip full URL origin\r\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\r\n }\r\n else {\r\n base = '/';\r\n }\r\n }\r\n // ensure leading slash when it was removed by the regex above avoid leading\r\n // slash with hash because the file could be read from the disk like file://\r\n // and the leading slash would cause problems\r\n if (base[0] !== '/' && base[0] !== '#')\r\n base = '/' + base;\r\n // remove the trailing slash so all other method can just do `base + fullPath`\r\n // to build an href\r\n return removeTrailingSlash(base);\r\n}\r\n// remove any character before the hash\r\nconst BEFORE_HASH_RE = /^[^#]+#/;\r\nfunction createHref(base, location) {\r\n return base.replace(BEFORE_HASH_RE, '#') + location;\r\n}\n\nfunction getElementPosition(el, offset) {\r\n const docRect = document.documentElement.getBoundingClientRect();\r\n const elRect = el.getBoundingClientRect();\r\n return {\r\n behavior: offset.behavior,\r\n left: elRect.left - docRect.left - (offset.left || 0),\r\n top: elRect.top - docRect.top - (offset.top || 0),\r\n };\r\n}\r\nconst computeScrollPosition = () => ({\r\n left: window.pageXOffset,\r\n top: window.pageYOffset,\r\n});\r\nfunction scrollToPosition(position) {\r\n let scrollToOptions;\r\n if ('el' in position) {\r\n const positionEl = position.el;\r\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\r\n /**\r\n * `id`s can accept pretty much any characters, including CSS combinators\r\n * like `>` or `~`. It's still possible to retrieve elements using\r\n * `document.getElementById('~')` but it needs to be escaped when using\r\n * `document.querySelector('#\\\\~')` for it to be valid. The only\r\n * requirements for `id`s are them to be unique on the page and to not be\r\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\r\n * be properly escaped for it to work with `querySelector`. We could check\r\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\r\n * would make things inconsistent since they are valid characters for an\r\n * `id` but would need to be escaped when using `querySelector`, breaking\r\n * their usage and ending up in no selector returned. Selectors need to be\r\n * escaped:\r\n *\r\n * - `#1-thing` becomes `#\\31 -thing`\r\n * - `#with~symbols` becomes `#with\\\\~symbols`\r\n *\r\n * - More information about the topic can be found at\r\n * https://mathiasbynens.be/notes/html5-id-class.\r\n * - Practical example: https://mathiasbynens.be/demo/html5-id\r\n */\r\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\r\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\r\n try {\r\n const foundEl = document.querySelector(position.el);\r\n if (isIdSelector && foundEl) {\r\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n catch (err) {\r\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\r\n // return to avoid other warnings\r\n return;\r\n }\r\n }\r\n }\r\n const el = typeof positionEl === 'string'\r\n ? isIdSelector\r\n ? document.getElementById(positionEl.slice(1))\r\n : document.querySelector(positionEl)\r\n : positionEl;\r\n if (!el) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\r\n return;\r\n }\r\n scrollToOptions = getElementPosition(el, position);\r\n }\r\n else {\r\n scrollToOptions = position;\r\n }\r\n if ('scrollBehavior' in document.documentElement.style)\r\n window.scrollTo(scrollToOptions);\r\n else {\r\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);\r\n }\r\n}\r\nfunction getScrollKey(path, delta) {\r\n const position = history.state ? history.state.position - delta : -1;\r\n return position + path;\r\n}\r\nconst scrollPositions = new Map();\r\nfunction saveScrollPosition(key, scrollPosition) {\r\n scrollPositions.set(key, scrollPosition);\r\n}\r\nfunction getSavedScrollPosition(key) {\r\n const scroll = scrollPositions.get(key);\r\n // consume it so it's not used again\r\n scrollPositions.delete(key);\r\n return scroll;\r\n}\r\n// TODO: RFC about how to save scroll position\r\n/**\r\n * ScrollBehavior instance used by the router to compute and restore the scroll\r\n * position when navigating.\r\n */\r\n// export interface ScrollHandler {\r\n// // returns a scroll position that can be saved in history\r\n// compute(): ScrollPositionEntry\r\n// // can take an extended ScrollPositionEntry\r\n// scroll(position: ScrollPosition): void\r\n// }\r\n// export const scrollHandler: ScrollHandler = {\r\n// compute: computeScroll,\r\n// scroll: scrollToPosition,\r\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\r\n/**\r\n * Creates a normalized history location from a window.location object\r\n * @param location -\r\n */\r\nfunction createCurrentLocation(base, location) {\r\n const { pathname, search, hash } = location;\r\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\r\n const hashPos = base.indexOf('#');\r\n if (hashPos > -1) {\r\n let slicePos = hash.includes(base.slice(hashPos))\r\n ? base.slice(hashPos).length\r\n : 1;\r\n let pathFromHash = hash.slice(slicePos);\r\n // prepend the starting slash to hash so the url starts with /#\r\n if (pathFromHash[0] !== '/')\r\n pathFromHash = '/' + pathFromHash;\r\n return stripBase(pathFromHash, '');\r\n }\r\n const path = stripBase(pathname, base);\r\n return path + search + hash;\r\n}\r\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\r\n let listeners = [];\r\n let teardowns = [];\r\n // TODO: should it be a stack? a Dict. Check if the popstate listener\r\n // can trigger twice\r\n let pauseState = null;\r\n const popStateHandler = ({ state, }) => {\r\n const to = createCurrentLocation(base, location);\r\n const from = currentLocation.value;\r\n const fromState = historyState.value;\r\n let delta = 0;\r\n if (state) {\r\n currentLocation.value = to;\r\n historyState.value = state;\r\n // ignore the popstate and reset the pauseState\r\n if (pauseState && pauseState === from) {\r\n pauseState = null;\r\n return;\r\n }\r\n delta = fromState ? state.position - fromState.position : 0;\r\n }\r\n else {\r\n replace(to);\r\n }\r\n // console.log({ deltaFromCurrent })\r\n // Here we could also revert the navigation by calling history.go(-delta)\r\n // this listener will have to be adapted to not trigger again and to wait for the url\r\n // to be updated before triggering the listeners. Some kind of validation function would also\r\n // need to be passed to the listeners so the navigation can be accepted\r\n // call all listeners\r\n listeners.forEach(listener => {\r\n listener(currentLocation.value, from, {\r\n delta,\r\n type: NavigationType.pop,\r\n direction: delta\r\n ? delta > 0\r\n ? NavigationDirection.forward\r\n : NavigationDirection.back\r\n : NavigationDirection.unknown,\r\n });\r\n });\r\n };\r\n function pauseListeners() {\r\n pauseState = currentLocation.value;\r\n }\r\n function listen(callback) {\r\n // setup the listener and prepare teardown callbacks\r\n listeners.push(callback);\r\n const teardown = () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n teardowns.push(teardown);\r\n return teardown;\r\n }\r\n function beforeUnloadListener() {\r\n const { history } = window;\r\n if (!history.state)\r\n return;\r\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\r\n }\r\n function destroy() {\r\n for (const teardown of teardowns)\r\n teardown();\r\n teardowns = [];\r\n window.removeEventListener('popstate', popStateHandler);\r\n window.removeEventListener('beforeunload', beforeUnloadListener);\r\n }\r\n // setup the listeners and prepare teardown callbacks\r\n window.addEventListener('popstate', popStateHandler);\r\n window.addEventListener('beforeunload', beforeUnloadListener);\r\n return {\r\n pauseListeners,\r\n listen,\r\n destroy,\r\n };\r\n}\r\n/**\r\n * Creates a state object\r\n */\r\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\r\n return {\r\n back,\r\n current,\r\n forward,\r\n replaced,\r\n position: window.history.length,\r\n scroll: computeScroll ? computeScrollPosition() : null,\r\n };\r\n}\r\nfunction useHistoryStateNavigation(base) {\r\n const { history, location } = window;\r\n // private variables\r\n const currentLocation = {\r\n value: createCurrentLocation(base, location),\r\n };\r\n const historyState = { value: history.state };\r\n // build current history entry as this is a fresh navigation\r\n if (!historyState.value) {\r\n changeLocation(currentLocation.value, {\r\n back: null,\r\n current: currentLocation.value,\r\n forward: null,\r\n // the length is off by one, we need to decrease it\r\n position: history.length - 1,\r\n replaced: true,\r\n // don't add a scroll as the user may have an anchor and we want\r\n // scrollBehavior to be triggered without a saved position\r\n scroll: null,\r\n }, true);\r\n }\r\n function changeLocation(to, state, replace) {\r\n /**\r\n * if a base tag is provided and we are on a normal domain, we have to\r\n * respect the provided `base` attribute because pushState() will use it and\r\n * potentially erase anything before the `#` like at\r\n * https://github.com/vuejs/vue-router-next/issues/685 where a base of\r\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\r\n * there is no host, the `` tag makes no sense and if there isn't a\r\n * base tag we can just use everything after the `#`.\r\n */\r\n const hashIndex = base.indexOf('#');\r\n const url = hashIndex > -1\r\n ? (location.host && document.querySelector('base')\r\n ? base\r\n : base.slice(hashIndex)) + to\r\n : createBaseLocation() + base + to;\r\n try {\r\n // BROWSER QUIRK\r\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\r\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\r\n historyState.value = state;\r\n }\r\n catch (err) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('Error with push/replace State', err);\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n // Force the navigation, this also resets the call count\r\n location[replace ? 'replace' : 'assign'](url);\r\n }\r\n }\r\n function replace(to, data) {\r\n const state = assign({}, history.state, buildState(historyState.value.back, \r\n // keep back and forward entries but override current position\r\n to, historyState.value.forward, true), data, { position: historyState.value.position });\r\n changeLocation(to, state, true);\r\n currentLocation.value = to;\r\n }\r\n function push(to, data) {\r\n // Add to current entry the information of where we are going\r\n // as well as saving the current position\r\n const currentState = assign({}, \r\n // use current history state to gracefully handle a wrong call to\r\n // history.replaceState\r\n // https://github.com/vuejs/vue-router-next/issues/366\r\n historyState.value, history.state, {\r\n forward: to,\r\n scroll: computeScrollPosition(),\r\n });\r\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\r\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\r\n `history.replaceState(history.state, '', url)\\n\\n` +\r\n `You can find more information at https://next.router.vuejs.org/guide/migration/#usage-of-history-state.`);\r\n }\r\n changeLocation(currentState.current, currentState, true);\r\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\r\n changeLocation(to, state, false);\r\n currentLocation.value = to;\r\n }\r\n return {\r\n location: currentLocation,\r\n state: historyState,\r\n push,\r\n replace,\r\n };\r\n}\r\n/**\r\n * Creates an HTML5 history. Most common history for single page applications.\r\n *\r\n * @param base -\r\n */\r\nfunction createWebHistory(base) {\r\n base = normalizeBase(base);\r\n const historyNavigation = useHistoryStateNavigation(base);\r\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\r\n function go(delta, triggerListeners = true) {\r\n if (!triggerListeners)\r\n historyListeners.pauseListeners();\r\n history.go(delta);\r\n }\r\n const routerHistory = assign({\r\n // it's overridden right after\r\n location: '',\r\n base,\r\n go,\r\n createHref: createHref.bind(null, base),\r\n }, historyNavigation, historyListeners);\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => historyNavigation.location.value,\r\n });\r\n Object.defineProperty(routerHistory, 'state', {\r\n enumerable: true,\r\n get: () => historyNavigation.state.value,\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\r\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\r\n *\r\n * @param base - Base applied to all urls, defaults to '/'\r\n * @returns a history object that can be passed to the router constructor\r\n */\r\nfunction createMemoryHistory(base = '') {\r\n let listeners = [];\r\n let queue = [START];\r\n let position = 0;\r\n base = normalizeBase(base);\r\n function setLocation(location) {\r\n position++;\r\n if (position === queue.length) {\r\n // we are at the end, we can simply append a new entry\r\n queue.push(location);\r\n }\r\n else {\r\n // we are in the middle, we remove everything from here in the queue\r\n queue.splice(position);\r\n queue.push(location);\r\n }\r\n }\r\n function triggerListeners(to, from, { direction, delta }) {\r\n const info = {\r\n direction,\r\n delta,\r\n type: NavigationType.pop,\r\n };\r\n for (const callback of listeners) {\r\n callback(to, from, info);\r\n }\r\n }\r\n const routerHistory = {\r\n // rewritten by Object.defineProperty\r\n location: START,\r\n // TODO: should be kept in queue\r\n state: {},\r\n base,\r\n createHref: createHref.bind(null, base),\r\n replace(to) {\r\n // remove current entry and decrement position\r\n queue.splice(position--, 1);\r\n setLocation(to);\r\n },\r\n push(to, data) {\r\n setLocation(to);\r\n },\r\n listen(callback) {\r\n listeners.push(callback);\r\n return () => {\r\n const index = listeners.indexOf(callback);\r\n if (index > -1)\r\n listeners.splice(index, 1);\r\n };\r\n },\r\n destroy() {\r\n listeners = [];\r\n queue = [START];\r\n position = 0;\r\n },\r\n go(delta, shouldTrigger = true) {\r\n const from = this.location;\r\n const direction = \r\n // we are considering delta === 0 going forward, but in abstract mode\r\n // using 0 for the delta doesn't make sense like it does in html5 where\r\n // it reloads the page\r\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\r\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\r\n if (shouldTrigger) {\r\n triggerListeners(this.location, from, {\r\n direction,\r\n delta,\r\n });\r\n }\r\n },\r\n };\r\n Object.defineProperty(routerHistory, 'location', {\r\n enumerable: true,\r\n get: () => queue[position],\r\n });\r\n return routerHistory;\r\n}\n\n/**\r\n * Creates a hash history. Useful for web applications with no host (e.g.\r\n * `file://`) or when configuring a server to handle any URL is not possible.\r\n *\r\n * @param base - optional base to provide. Defaults to `location.pathname +\r\n * location.search` If there is a `` tag in the `head`, its value will be\r\n * ignored in favor of this parameter **but note it affects all the\r\n * history.pushState() calls**, meaning that if you use a `` tag, it's\r\n * `href` value **has to match this parameter** (ignoring anything after the\r\n * `#`).\r\n *\r\n * @example\r\n * ```js\r\n * // at https://example.com/folder\r\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\r\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\r\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\r\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\r\n * // you should avoid doing this because it changes the original url and breaks copying urls\r\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\r\n *\r\n * // at file:///usr/etc/folder/index.html\r\n * // for locations with no `host`, the base is ignored\r\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\r\n * ```\r\n */\r\nfunction createWebHashHistory(base) {\r\n // Make sure this implementation is fine in terms of encoding, specially for IE11\r\n // for `file://`, directly use the pathname and ignore the base\r\n // location.pathname contains an initial `/` even at the root: `https://example.com`\r\n base = location.host ? base || location.pathname + location.search : '';\r\n // allow the user to provide a `#` in the middle: `/base/#/app`\r\n if (!base.includes('#'))\r\n base += '#';\r\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\r\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\r\n }\r\n return createWebHistory(base);\r\n}\n\nfunction isRouteLocation(route) {\r\n return typeof route === 'string' || (route && typeof route === 'object');\r\n}\r\nfunction isRouteName(name) {\r\n return typeof name === 'string' || typeof name === 'symbol';\r\n}\n\n/**\r\n * Initial route location where the router is. Can be used in navigation guards\r\n * to differentiate the initial navigation.\r\n *\r\n * @example\r\n * ```js\r\n * import { START_LOCATION } from 'vue-router'\r\n *\r\n * router.beforeEach((to, from) => {\r\n * if (from === START_LOCATION) {\r\n * // initial navigation\r\n * }\r\n * })\r\n * ```\r\n */\r\nconst START_LOCATION_NORMALIZED = {\r\n path: '/',\r\n name: undefined,\r\n params: {},\r\n query: {},\r\n hash: '',\r\n fullPath: '/',\r\n matched: [],\r\n meta: {},\r\n redirectedFrom: undefined,\r\n};\n\nconst NavigationFailureSymbol = /*#__PURE__*/ PolySymbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : 'nf');\r\n/**\r\n * Enumeration with all possible types for navigation failures. Can be passed to\r\n * {@link isNavigationFailure} to check for specific failures.\r\n */\r\nvar NavigationFailureType;\r\n(function (NavigationFailureType) {\r\n /**\r\n * An aborted navigation is a navigation that failed because a navigation\r\n * guard returned `false` or called `next(false)`\r\n */\r\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\r\n /**\r\n * A cancelled navigation is a navigation that failed because a more recent\r\n * navigation finished started (not necessarily finished).\r\n */\r\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\r\n /**\r\n * A duplicated navigation is a navigation that failed because it was\r\n * initiated while already being at the exact same location.\r\n */\r\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\r\n})(NavigationFailureType || (NavigationFailureType = {}));\r\n// DEV only debug messages\r\nconst ErrorTypeMessages = {\r\n [1 /* MATCHER_NOT_FOUND */]({ location, currentLocation }) {\r\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\r\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\r\n : ''}`;\r\n },\r\n [2 /* NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\r\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\r\n },\r\n [4 /* NAVIGATION_ABORTED */]({ from, to }) {\r\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\r\n },\r\n [8 /* NAVIGATION_CANCELLED */]({ from, to }) {\r\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\r\n },\r\n [16 /* NAVIGATION_DUPLICATED */]({ from, to }) {\r\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\r\n },\r\n};\r\nfunction createRouterError(type, params) {\r\n // keep full error messages in cjs versions\r\n if ((process.env.NODE_ENV !== 'production') || !true) {\r\n return assign(new Error(ErrorTypeMessages[type](params)), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n else {\r\n return assign(new Error(), {\r\n type,\r\n [NavigationFailureSymbol]: true,\r\n }, params);\r\n }\r\n}\r\nfunction isNavigationFailure(error, type) {\r\n return (error instanceof Error &&\r\n NavigationFailureSymbol in error &&\r\n (type == null || !!(error.type & type)));\r\n}\r\nconst propertiesToLog = ['params', 'query', 'hash'];\r\nfunction stringifyRoute(to) {\r\n if (typeof to === 'string')\r\n return to;\r\n if ('path' in to)\r\n return to.path;\r\n const location = {};\r\n for (const key of propertiesToLog) {\r\n if (key in to)\r\n location[key] = to[key];\r\n }\r\n return JSON.stringify(location, null, 2);\r\n}\n\n// default pattern for a param: non greedy everything but /\r\nconst BASE_PARAM_PATTERN = '[^/]+?';\r\nconst BASE_PATH_PARSER_OPTIONS = {\r\n sensitive: false,\r\n strict: false,\r\n start: true,\r\n end: true,\r\n};\r\n// Special Regex characters that must be escaped in static tokens\r\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\r\n/**\r\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\r\n *\r\n * @param segments - array of segments returned by tokenizePath\r\n * @param extraOptions - optional options for the regexp\r\n * @returns a PathParser\r\n */\r\nfunction tokensToParser(segments, extraOptions) {\r\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\r\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\r\n const score = [];\r\n // the regexp as a string\r\n let pattern = options.start ? '^' : '';\r\n // extracted keys\r\n const keys = [];\r\n for (const segment of segments) {\r\n // the root segment needs special treatment\r\n const segmentScores = segment.length ? [] : [90 /* Root */];\r\n // allow trailing slash\r\n if (options.strict && !segment.length)\r\n pattern += '/';\r\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\r\n const token = segment[tokenIndex];\r\n // resets the score if we are inside a sub segment /:a-other-:b\r\n let subSegmentScore = 40 /* Segment */ +\r\n (options.sensitive ? 0.25 /* BonusCaseSensitive */ : 0);\r\n if (token.type === 0 /* Static */) {\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n pattern += '/';\r\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\r\n subSegmentScore += 40 /* Static */;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional, regexp } = token;\r\n keys.push({\r\n name: value,\r\n repeatable,\r\n optional,\r\n });\r\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\r\n // the user provided a custom regexp /:id(\\\\d+)\r\n if (re !== BASE_PARAM_PATTERN) {\r\n subSegmentScore += 10 /* BonusCustomRegExp */;\r\n // make sure the regexp is valid before using it\r\n try {\r\n new RegExp(`(${re})`);\r\n }\r\n catch (err) {\r\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\r\n err.message);\r\n }\r\n }\r\n // when we repeat we must take care of the repeating leading slash\r\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\r\n // prepend the slash if we are starting a new segment\r\n if (!tokenIndex)\r\n subPattern =\r\n // avoid an optional / if there are more segments e.g. /:p?-static\r\n // or /:p?-:p2\r\n optional && segment.length < 2\r\n ? `(?:/${subPattern})`\r\n : '/' + subPattern;\r\n if (optional)\r\n subPattern += '?';\r\n pattern += subPattern;\r\n subSegmentScore += 20 /* Dynamic */;\r\n if (optional)\r\n subSegmentScore += -8 /* BonusOptional */;\r\n if (repeatable)\r\n subSegmentScore += -20 /* BonusRepeatable */;\r\n if (re === '.*')\r\n subSegmentScore += -50 /* BonusWildcard */;\r\n }\r\n segmentScores.push(subSegmentScore);\r\n }\r\n // an empty array like /home/ -> [[{home}], []]\r\n // if (!segment.length) pattern += '/'\r\n score.push(segmentScores);\r\n }\r\n // only apply the strict bonus to the last score\r\n if (options.strict && options.end) {\r\n const i = score.length - 1;\r\n score[i][score[i].length - 1] += 0.7000000000000001 /* BonusStrict */;\r\n }\r\n // TODO: dev only warn double trailing slash\r\n if (!options.strict)\r\n pattern += '/?';\r\n if (options.end)\r\n pattern += '$';\r\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\r\n else if (options.strict)\r\n pattern += '(?:/|$)';\r\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\r\n function parse(path) {\r\n const match = path.match(re);\r\n const params = {};\r\n if (!match)\r\n return null;\r\n for (let i = 1; i < match.length; i++) {\r\n const value = match[i] || '';\r\n const key = keys[i - 1];\r\n params[key.name] = value && key.repeatable ? value.split('/') : value;\r\n }\r\n return params;\r\n }\r\n function stringify(params) {\r\n let path = '';\r\n // for optional parameters to allow to be empty\r\n let avoidDuplicatedSlash = false;\r\n for (const segment of segments) {\r\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\r\n path += '/';\r\n avoidDuplicatedSlash = false;\r\n for (const token of segment) {\r\n if (token.type === 0 /* Static */) {\r\n path += token.value;\r\n }\r\n else if (token.type === 1 /* Param */) {\r\n const { value, repeatable, optional } = token;\r\n const param = value in params ? params[value] : '';\r\n if (Array.isArray(param) && !repeatable)\r\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\r\n const text = Array.isArray(param) ? param.join('/') : param;\r\n if (!text) {\r\n if (optional) {\r\n // if we have more than one optional param like /:a?-static we\r\n // don't need to care about the optional param\r\n if (segment.length < 2) {\r\n // remove the last slash as we could be at the end\r\n if (path.endsWith('/'))\r\n path = path.slice(0, -1);\r\n // do not append a slash on the next iteration\r\n else\r\n avoidDuplicatedSlash = true;\r\n }\r\n }\r\n else\r\n throw new Error(`Missing required param \"${value}\"`);\r\n }\r\n path += text;\r\n }\r\n }\r\n }\r\n return path;\r\n }\r\n return {\r\n re,\r\n score,\r\n keys,\r\n parse,\r\n stringify,\r\n };\r\n}\r\n/**\r\n * Compares an array of numbers as used in PathParser.score and returns a\r\n * number. This function can be used to `sort` an array\r\n *\r\n * @param a - first array of numbers\r\n * @param b - second array of numbers\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n * should be sorted first\r\n */\r\nfunction compareScoreArray(a, b) {\r\n let i = 0;\r\n while (i < a.length && i < b.length) {\r\n const diff = b[i] - a[i];\r\n // only keep going if diff === 0\r\n if (diff)\r\n return diff;\r\n i++;\r\n }\r\n // if the last subsegment was Static, the shorter segments should be sorted first\r\n // otherwise sort the longest segment first\r\n if (a.length < b.length) {\r\n return a.length === 1 && a[0] === 40 /* Static */ + 40 /* Segment */\r\n ? -1\r\n : 1;\r\n }\r\n else if (a.length > b.length) {\r\n return b.length === 1 && b[0] === 40 /* Static */ + 40 /* Segment */\r\n ? 1\r\n : -1;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * Compare function that can be used with `sort` to sort an array of PathParser\r\n *\r\n * @param a - first PathParser\r\n * @param b - second PathParser\r\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\r\n */\r\nfunction comparePathParserScore(a, b) {\r\n let i = 0;\r\n const aScore = a.score;\r\n const bScore = b.score;\r\n while (i < aScore.length && i < bScore.length) {\r\n const comp = compareScoreArray(aScore[i], bScore[i]);\r\n // do not return if both are equal\r\n if (comp)\r\n return comp;\r\n i++;\r\n }\r\n // if a and b share the same score entries but b has more, sort b first\r\n return bScore.length - aScore.length;\r\n // this is the ternary version\r\n // return aScore.length < bScore.length\r\n // ? 1\r\n // : aScore.length > bScore.length\r\n // ? -1\r\n // : 0\r\n}\n\nconst ROOT_TOKEN = {\r\n type: 0 /* Static */,\r\n value: '',\r\n};\r\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\r\n// After some profiling, the cache seems to be unnecessary because tokenizePath\r\n// (the slowest part of adding a route) is very fast\r\n// const tokenCache = new Map()\r\nfunction tokenizePath(path) {\r\n if (!path)\r\n return [[]];\r\n if (path === '/')\r\n return [[ROOT_TOKEN]];\r\n if (!path.startsWith('/')) {\r\n throw new Error((process.env.NODE_ENV !== 'production')\r\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\r\n : `Invalid path \"${path}\"`);\r\n }\r\n // if (tokenCache.has(path)) return tokenCache.get(path)!\r\n function crash(message) {\r\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\r\n }\r\n let state = 0 /* Static */;\r\n let previousState = state;\r\n const tokens = [];\r\n // the segment will always be valid because we get into the initial state\r\n // with the leading /\r\n let segment;\r\n function finalizeSegment() {\r\n if (segment)\r\n tokens.push(segment);\r\n segment = [];\r\n }\r\n // index on the path\r\n let i = 0;\r\n // char at index\r\n let char;\r\n // buffer of the value read\r\n let buffer = '';\r\n // custom regexp for a param\r\n let customRe = '';\r\n function consumeBuffer() {\r\n if (!buffer)\r\n return;\r\n if (state === 0 /* Static */) {\r\n segment.push({\r\n type: 0 /* Static */,\r\n value: buffer,\r\n });\r\n }\r\n else if (state === 1 /* Param */ ||\r\n state === 2 /* ParamRegExp */ ||\r\n state === 3 /* ParamRegExpEnd */) {\r\n if (segment.length > 1 && (char === '*' || char === '+'))\r\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\r\n segment.push({\r\n type: 1 /* Param */,\r\n value: buffer,\r\n regexp: customRe,\r\n repeatable: char === '*' || char === '+',\r\n optional: char === '*' || char === '?',\r\n });\r\n }\r\n else {\r\n crash('Invalid state to consume buffer');\r\n }\r\n buffer = '';\r\n }\r\n function addCharToBuffer() {\r\n buffer += char;\r\n }\r\n while (i < path.length) {\r\n char = path[i++];\r\n if (char === '\\\\' && state !== 2 /* ParamRegExp */) {\r\n previousState = state;\r\n state = 4 /* EscapeNext */;\r\n continue;\r\n }\r\n switch (state) {\r\n case 0 /* Static */:\r\n if (char === '/') {\r\n if (buffer) {\r\n consumeBuffer();\r\n }\r\n finalizeSegment();\r\n }\r\n else if (char === ':') {\r\n consumeBuffer();\r\n state = 1 /* Param */;\r\n }\r\n else {\r\n addCharToBuffer();\r\n }\r\n break;\r\n case 4 /* EscapeNext */:\r\n addCharToBuffer();\r\n state = previousState;\r\n break;\r\n case 1 /* Param */:\r\n if (char === '(') {\r\n state = 2 /* ParamRegExp */;\r\n }\r\n else if (VALID_PARAM_RE.test(char)) {\r\n addCharToBuffer();\r\n }\r\n else {\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n }\r\n break;\r\n case 2 /* ParamRegExp */:\r\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\r\n // it already works by escaping the closing )\r\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\r\n // is this really something people need since you can also write\r\n // /prefix_:p()_suffix\r\n if (char === ')') {\r\n // handle the escaped )\r\n if (customRe[customRe.length - 1] == '\\\\')\r\n customRe = customRe.slice(0, -1) + char;\r\n else\r\n state = 3 /* ParamRegExpEnd */;\r\n }\r\n else {\r\n customRe += char;\r\n }\r\n break;\r\n case 3 /* ParamRegExpEnd */:\r\n // same as finalizing a param\r\n consumeBuffer();\r\n state = 0 /* Static */;\r\n // go back one character if we were not modifying\r\n if (char !== '*' && char !== '?' && char !== '+')\r\n i--;\r\n customRe = '';\r\n break;\r\n default:\r\n crash('Unknown state');\r\n break;\r\n }\r\n }\r\n if (state === 2 /* ParamRegExp */)\r\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\r\n consumeBuffer();\r\n finalizeSegment();\r\n // tokenCache.set(path, tokens)\r\n return tokens;\r\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\r\n const parser = tokensToParser(tokenizePath(record.path), options);\r\n // warn against params with the same name\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const existingKeys = new Set();\r\n for (const key of parser.keys) {\r\n if (existingKeys.has(key.name))\r\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\r\n existingKeys.add(key.name);\r\n }\r\n }\r\n const matcher = assign(parser, {\r\n record,\r\n parent,\r\n // these needs to be populated by the parent\r\n children: [],\r\n alias: [],\r\n });\r\n if (parent) {\r\n // both are aliases or both are not aliases\r\n // we don't want to mix them because the order is used when\r\n // passing originalRecord in Matcher.addRoute\r\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\r\n parent.children.push(matcher);\r\n }\r\n return matcher;\r\n}\n\n/**\r\n * Creates a Router Matcher.\r\n *\r\n * @internal\r\n * @param routes - array of initial routes\r\n * @param globalOptions - global route options\r\n */\r\nfunction createRouterMatcher(routes, globalOptions) {\r\n // normalized ordered array of matchers\r\n const matchers = [];\r\n const matcherMap = new Map();\r\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\r\n function getRecordMatcher(name) {\r\n return matcherMap.get(name);\r\n }\r\n function addRoute(record, parent, originalRecord) {\r\n // used later on to remove by name\r\n const isRootAdd = !originalRecord;\r\n const mainNormalizedRecord = normalizeRouteRecord(record);\r\n // we might be the child of an alias\r\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\r\n const options = mergeOptions(globalOptions, record);\r\n // generate an array of records to correctly handle aliases\r\n const normalizedRecords = [\r\n mainNormalizedRecord,\r\n ];\r\n if ('alias' in record) {\r\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\r\n for (const alias of aliases) {\r\n normalizedRecords.push(assign({}, mainNormalizedRecord, {\r\n // this allows us to hold a copy of the `components` option\r\n // so that async components cache is hold on the original record\r\n components: originalRecord\r\n ? originalRecord.record.components\r\n : mainNormalizedRecord.components,\r\n path: alias,\r\n // we might be the child of an alias\r\n aliasOf: originalRecord\r\n ? originalRecord.record\r\n : mainNormalizedRecord,\r\n // the aliases are always of the same kind as the original since they\r\n // are defined on the same record\r\n }));\r\n }\r\n }\r\n let matcher;\r\n let originalMatcher;\r\n for (const normalizedRecord of normalizedRecords) {\r\n const { path } = normalizedRecord;\r\n // Build up the path for nested routes if the child isn't an absolute\r\n // route. Only add the / delimiter if the child path isn't empty and if the\r\n // parent path doesn't have a trailing slash\r\n if (parent && path[0] !== '/') {\r\n const parentPath = parent.record.path;\r\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\r\n normalizedRecord.path =\r\n parent.record.path + (path && connectingSlash + path);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\r\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\r\n 'See more at https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes.');\r\n }\r\n // create the object before hand so it can be passed to children\r\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\r\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\r\n checkMissingParamsInAbsolutePath(matcher, parent);\r\n // if we are an alias we must tell the original record that we exist\r\n // so we can be removed\r\n if (originalRecord) {\r\n originalRecord.alias.push(matcher);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n checkSameParams(originalRecord, matcher);\r\n }\r\n }\r\n else {\r\n // otherwise, the first record is the original and others are aliases\r\n originalMatcher = originalMatcher || matcher;\r\n if (originalMatcher !== matcher)\r\n originalMatcher.alias.push(matcher);\r\n // remove the route if named and only for the top record (avoid in nested calls)\r\n // this works because the original record is the first one\r\n if (isRootAdd && record.name && !isAliasRecord(matcher))\r\n removeRoute(record.name);\r\n }\r\n if ('children' in mainNormalizedRecord) {\r\n const children = mainNormalizedRecord.children;\r\n for (let i = 0; i < children.length; i++) {\r\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\r\n }\r\n }\r\n // if there was no original record, then the first one was not an alias and all\r\n // other alias (if any) need to reference this record when adding children\r\n originalRecord = originalRecord || matcher;\r\n // TODO: add normalized records for more flexibility\r\n // if (parent && isAliasRecord(originalRecord)) {\r\n // parent.children.push(originalRecord)\r\n // }\r\n insertMatcher(matcher);\r\n }\r\n return originalMatcher\r\n ? () => {\r\n // since other matchers are aliases, they should be removed by the original matcher\r\n removeRoute(originalMatcher);\r\n }\r\n : noop;\r\n }\r\n function removeRoute(matcherRef) {\r\n if (isRouteName(matcherRef)) {\r\n const matcher = matcherMap.get(matcherRef);\r\n if (matcher) {\r\n matcherMap.delete(matcherRef);\r\n matchers.splice(matchers.indexOf(matcher), 1);\r\n matcher.children.forEach(removeRoute);\r\n matcher.alias.forEach(removeRoute);\r\n }\r\n }\r\n else {\r\n const index = matchers.indexOf(matcherRef);\r\n if (index > -1) {\r\n matchers.splice(index, 1);\r\n if (matcherRef.record.name)\r\n matcherMap.delete(matcherRef.record.name);\r\n matcherRef.children.forEach(removeRoute);\r\n matcherRef.alias.forEach(removeRoute);\r\n }\r\n }\r\n }\r\n function getRoutes() {\r\n return matchers;\r\n }\r\n function insertMatcher(matcher) {\r\n let i = 0;\r\n // console.log('i is', { i })\r\n while (i < matchers.length &&\r\n comparePathParserScore(matcher, matchers[i]) >= 0)\r\n i++;\r\n // console.log('END i is', { i })\r\n // while (i < matchers.length && matcher.score <= matchers[i].score) i++\r\n matchers.splice(i, 0, matcher);\r\n // only add the original record to the name map\r\n if (matcher.record.name && !isAliasRecord(matcher))\r\n matcherMap.set(matcher.record.name, matcher);\r\n }\r\n function resolve(location, currentLocation) {\r\n let matcher;\r\n let params = {};\r\n let path;\r\n let name;\r\n if ('name' in location && location.name) {\r\n matcher = matcherMap.get(location.name);\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n });\r\n name = matcher.record.name;\r\n params = assign(\r\n // paramsFromLocation is a new object\r\n paramsFromLocation(currentLocation.params, \r\n // only keep params that exist in the resolved location\r\n // TODO: only keep optional params coming from a parent record\r\n matcher.keys.filter(k => !k.optional).map(k => k.name)), location.params);\r\n // throws if cannot be stringified\r\n path = matcher.stringify(params);\r\n }\r\n else if ('path' in location) {\r\n // no need to resolve the path with the matcher as it was provided\r\n // this also allows the user to control the encoding\r\n path = location.path;\r\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\r\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next.`);\r\n }\r\n matcher = matchers.find(m => m.re.test(path));\r\n // matcher should have a value after the loop\r\n if (matcher) {\r\n // TODO: dev warning of unused params if provided\r\n // we know the matcher works because we tested the regexp\r\n params = matcher.parse(path);\r\n name = matcher.record.name;\r\n }\r\n // location is a relative path\r\n }\r\n else {\r\n // match by name or path of current route\r\n matcher = currentLocation.name\r\n ? matcherMap.get(currentLocation.name)\r\n : matchers.find(m => m.re.test(currentLocation.path));\r\n if (!matcher)\r\n throw createRouterError(1 /* MATCHER_NOT_FOUND */, {\r\n location,\r\n currentLocation,\r\n });\r\n name = matcher.record.name;\r\n // since we are navigating to the same location, we don't need to pick the\r\n // params like when `name` is provided\r\n params = assign({}, currentLocation.params, location.params);\r\n path = matcher.stringify(params);\r\n }\r\n const matched = [];\r\n let parentMatcher = matcher;\r\n while (parentMatcher) {\r\n // reversed order so parents are at the beginning\r\n matched.unshift(parentMatcher.record);\r\n parentMatcher = parentMatcher.parent;\r\n }\r\n return {\r\n name,\r\n path,\r\n params,\r\n matched,\r\n meta: mergeMetaFields(matched),\r\n };\r\n }\r\n // add initial routes\r\n routes.forEach(route => addRoute(route));\r\n return { addRoute, resolve, removeRoute, getRoutes, getRecordMatcher };\r\n}\r\nfunction paramsFromLocation(params, keys) {\r\n const newParams = {};\r\n for (const key of keys) {\r\n if (key in params)\r\n newParams[key] = params[key];\r\n }\r\n return newParams;\r\n}\r\n/**\r\n * Normalizes a RouteRecordRaw. Creates a copy\r\n *\r\n * @param record\r\n * @returns the normalized version\r\n */\r\nfunction normalizeRouteRecord(record) {\r\n return {\r\n path: record.path,\r\n redirect: record.redirect,\r\n name: record.name,\r\n meta: record.meta || {},\r\n aliasOf: undefined,\r\n beforeEnter: record.beforeEnter,\r\n props: normalizeRecordProps(record),\r\n children: record.children || [],\r\n instances: {},\r\n leaveGuards: new Set(),\r\n updateGuards: new Set(),\r\n enterCallbacks: {},\r\n components: 'components' in record\r\n ? record.components || {}\r\n : { default: record.component },\r\n };\r\n}\r\n/**\r\n * Normalize the optional `props` in a record to always be an object similar to\r\n * components. Also accept a boolean for components.\r\n * @param record\r\n */\r\nfunction normalizeRecordProps(record) {\r\n const propsObject = {};\r\n // props does not exist on redirect records but we can set false directly\r\n const props = record.props || false;\r\n if ('component' in record) {\r\n propsObject.default = props;\r\n }\r\n else {\r\n // NOTE: we could also allow a function to be applied to every component.\r\n // Would need user feedback for use cases\r\n for (const name in record.components)\r\n propsObject[name] = typeof props === 'boolean' ? props : props[name];\r\n }\r\n return propsObject;\r\n}\r\n/**\r\n * Checks if a record or any of its parent is an alias\r\n * @param record\r\n */\r\nfunction isAliasRecord(record) {\r\n while (record) {\r\n if (record.record.aliasOf)\r\n return true;\r\n record = record.parent;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Merge meta fields of an array of records\r\n *\r\n * @param matched - array of matched records\r\n */\r\nfunction mergeMetaFields(matched) {\r\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\r\n}\r\nfunction mergeOptions(defaults, partialOptions) {\r\n const options = {};\r\n for (const key in defaults) {\r\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\r\n }\r\n return options;\r\n}\r\nfunction isSameParam(a, b) {\r\n return (a.name === b.name &&\r\n a.optional === b.optional &&\r\n a.repeatable === b.repeatable);\r\n}\r\n/**\r\n * Check if a path and its alias have the same required params\r\n *\r\n * @param a - original record\r\n * @param b - alias record\r\n */\r\nfunction checkSameParams(a, b) {\r\n for (const key of a.keys) {\r\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n for (const key of b.keys) {\r\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" should have the exact same param named \"${key.name}\"`);\r\n }\r\n}\r\nfunction checkMissingParamsInAbsolutePath(record, parent) {\r\n for (const key of parent.keys) {\r\n if (!record.keys.find(isSameParam.bind(null, key)))\r\n return warn(`Absolute path \"${record.record.path}\" should have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\r\n }\r\n}\n\n/**\r\n * Encoding Rules ␣ = Space Path: ␣ \" < > # ? { } Query: ␣ \" < > # & = Hash: ␣ \"\r\n * < > `\r\n *\r\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\r\n * defines some extra characters to be encoded. Most browsers do not encode them\r\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\r\n * also encode `!'()*`. Leaving unencoded only ASCII alphanumeric(`a-zA-Z0-9`)\r\n * plus `-._~`. This extra safety should be applied to query by patching the\r\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\r\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\r\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\r\n * encoded everywhere because some browsers like FF encode it when directly\r\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\r\n */\r\n// const EXTRA_RESERVED_RE = /[!'()*]/g\r\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\r\nconst HASH_RE = /#/g; // %23\r\nconst AMPERSAND_RE = /&/g; // %26\r\nconst SLASH_RE = /\\//g; // %2F\r\nconst EQUAL_RE = /=/g; // %3D\r\nconst IM_RE = /\\?/g; // %3F\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\r\n * seems to be less flexible than not doing so and I can't find out the legacy\r\n * systems requiring this for regular requests like text/html. In the standard,\r\n * the encoding of the plus character is only mentioned for\r\n * application/x-www-form-urlencoded\r\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\r\n * leave the plus character as is in queries. To be more flexible, we allow the\r\n * plus character on the query but it can also be manually encoded by the user.\r\n *\r\n * Resources:\r\n * - https://url.spec.whatwg.org/#urlencoded-parsing\r\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\r\n */\r\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\r\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\r\nconst ENC_CARET_RE = /%5E/g; // ^\r\nconst ENC_BACKTICK_RE = /%60/g; // `\r\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\r\nconst ENC_PIPE_RE = /%7C/g; // |\r\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\r\nconst ENC_SPACE_RE = /%20/g; // }\r\n/**\r\n * Encode characters that need to be encoded on the path, search and hash\r\n * sections of the URL.\r\n *\r\n * @internal\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction commonEncode(text) {\r\n return encodeURI('' + text)\r\n .replace(ENC_PIPE_RE, '|')\r\n .replace(ENC_BRACKET_OPEN_RE, '[')\r\n .replace(ENC_BRACKET_CLOSE_RE, ']');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the hash section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeHash(text) {\r\n return commonEncode(text)\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^');\r\n}\r\n/**\r\n * Encode characters that need to be encoded query values on the query\r\n * section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeQueryValue(text) {\r\n return (commonEncode(text)\r\n // Encode the space as +, encode the + to differentiate it from the space\r\n .replace(PLUS_RE, '%2B')\r\n .replace(ENC_SPACE_RE, '+')\r\n .replace(HASH_RE, '%23')\r\n .replace(AMPERSAND_RE, '%26')\r\n .replace(ENC_BACKTICK_RE, '`')\r\n .replace(ENC_CURLY_OPEN_RE, '{')\r\n .replace(ENC_CURLY_CLOSE_RE, '}')\r\n .replace(ENC_CARET_RE, '^'));\r\n}\r\n/**\r\n * Like `encodeQueryValue` but also encodes the `=` character.\r\n *\r\n * @param text - string to encode\r\n */\r\nfunction encodeQueryKey(text) {\r\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodePath(text) {\r\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\r\n}\r\n/**\r\n * Encode characters that need to be encoded on the path section of the URL as a\r\n * param. This function encodes everything {@link encodePath} does plus the\r\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\r\n * string instead.\r\n *\r\n * @param text - string to encode\r\n * @returns encoded string\r\n */\r\nfunction encodeParam(text) {\r\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) {\r\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\r\n }\r\n return '' + text;\r\n}\n\n/**\r\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\r\n * version with the leading `?` and without Should work as URLSearchParams\r\n\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n const eqPos = searchParam.indexOf('=');\r\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!Array.isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n/**\r\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\r\n * doesn't prepend a `?`\r\n *\r\n * @internal\r\n *\r\n * @param query - query object to stringify\r\n * @returns string version of the query without the leading `?`\r\n */\r\nfunction stringifyQuery(query) {\r\n let search = '';\r\n for (let key in query) {\r\n const value = query[key];\r\n key = encodeQueryKey(key);\r\n if (value == null) {\r\n // only null adds the value\r\n if (value !== undefined) {\r\n search += (search.length ? '&' : '') + key;\r\n }\r\n continue;\r\n }\r\n // keep null values\r\n const values = Array.isArray(value)\r\n ? value.map(v => v && encodeQueryValue(v))\r\n : [value && encodeQueryValue(value)];\r\n values.forEach(value => {\r\n // skip undefined values in arrays as if they were not present\r\n // smaller code than using filter\r\n if (value !== undefined) {\r\n // only append & with non-empty search\r\n search += (search.length ? '&' : '') + key;\r\n if (value != null)\r\n search += '=' + value;\r\n }\r\n });\r\n }\r\n return search;\r\n}\r\n/**\r\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\r\n * numbers into strings, removing keys with an undefined value and replacing\r\n * undefined with null in arrays\r\n *\r\n * @param query - query object to normalize\r\n * @returns a normalized query object\r\n */\r\nfunction normalizeQuery(query) {\r\n const normalizedQuery = {};\r\n for (const key in query) {\r\n const value = query[key];\r\n if (value !== undefined) {\r\n normalizedQuery[key] = Array.isArray(value)\r\n ? value.map(v => (v == null ? null : '' + v))\r\n : value == null\r\n ? value\r\n : '' + value;\r\n }\r\n }\r\n return normalizedQuery;\r\n}\n\n/**\r\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\r\n */\r\nfunction useCallbacks() {\r\n let handlers = [];\r\n function add(handler) {\r\n handlers.push(handler);\r\n return () => {\r\n const i = handlers.indexOf(handler);\r\n if (i > -1)\r\n handlers.splice(i, 1);\r\n };\r\n }\r\n function reset() {\r\n handlers = [];\r\n }\r\n return {\r\n add,\r\n list: () => handlers,\r\n reset,\r\n };\r\n}\n\nfunction registerGuard(record, name, guard) {\r\n const removeFromList = () => {\r\n record[name].delete(guard);\r\n };\r\n onUnmounted(removeFromList);\r\n onDeactivated(removeFromList);\r\n onActivated(() => {\r\n record[name].add(guard);\r\n });\r\n record[name].add(guard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the component for the current\r\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\r\n * used in any component. The guard is removed when the component is unmounted.\r\n *\r\n * @param leaveGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteLeave(leaveGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\r\n}\r\n/**\r\n * Add a navigation guard that triggers whenever the current location is about\r\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\r\n * component. The guard is removed when the component is unmounted.\r\n *\r\n * @param updateGuard - {@link NavigationGuard}\r\n */\r\nfunction onBeforeRouteUpdate(updateGuard) {\r\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\r\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\r\n return;\r\n }\r\n const activeRecord = inject(matchedRouteKey, \r\n // to avoid warning\r\n {}).value;\r\n if (!activeRecord) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside of a component child of . Maybe you called it inside of App.vue?');\r\n return;\r\n }\r\n registerGuard(activeRecord, 'updateGuards', updateGuard);\r\n}\r\nfunction guardToPromiseFn(guard, to, from, record, name) {\r\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\r\n const enterCallbackArray = record &&\r\n // name is defined if record is because of the function overload\r\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\r\n return () => new Promise((resolve, reject) => {\r\n const next = (valid) => {\r\n if (valid === false)\r\n reject(createRouterError(4 /* NAVIGATION_ABORTED */, {\r\n from,\r\n to,\r\n }));\r\n else if (valid instanceof Error) {\r\n reject(valid);\r\n }\r\n else if (isRouteLocation(valid)) {\r\n reject(createRouterError(2 /* NAVIGATION_GUARD_REDIRECT */, {\r\n from: to,\r\n to: valid,\r\n }));\r\n }\r\n else {\r\n if (enterCallbackArray &&\r\n // since enterCallbackArray is truthy, both record and name also are\r\n record.enterCallbacks[name] === enterCallbackArray &&\r\n typeof valid === 'function')\r\n enterCallbackArray.push(valid);\r\n resolve();\r\n }\r\n };\r\n // wrapping with Promise.resolve allows it to work with both async and sync guards\r\n const guardReturn = guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next);\r\n let guardCall = Promise.resolve(guardReturn);\r\n if (guard.length < 3)\r\n guardCall = guardCall.then(next);\r\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\r\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\r\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\r\n guardCall = guardCall.then(resolvedValue => {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n return Promise.reject(new Error('Invalid navigation guard'));\r\n }\r\n return resolvedValue;\r\n });\r\n // TODO: test me!\r\n }\r\n else if (guardReturn !== undefined) {\r\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\r\n if (!next._called) {\r\n warn(message);\r\n reject(new Error('Invalid navigation guard'));\r\n return;\r\n }\r\n }\r\n }\r\n guardCall.catch(err => reject(err));\r\n });\r\n}\r\nfunction canOnlyBeCalledOnce(next, to, from) {\r\n let called = 0;\r\n return function () {\r\n if (called++ === 1)\r\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\r\n // @ts-expect-error: we put it in the original one because it's easier to check\r\n next._called = true;\r\n if (called === 1)\r\n next.apply(null, arguments);\r\n };\r\n}\r\nfunction extractComponentsGuards(matched, guardType, to, from) {\r\n const guards = [];\r\n for (const record of matched) {\r\n for (const name in record.components) {\r\n let rawComponent = record.components[name];\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!rawComponent ||\r\n (typeof rawComponent !== 'object' &&\r\n typeof rawComponent !== 'function')) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\r\n ` a valid component. Received \"${String(rawComponent)}\".`);\r\n // throw to ensure we stop here but warn to ensure the message isn't\r\n // missed by the user\r\n throw new Error('Invalid route component');\r\n }\r\n else if ('then' in rawComponent) {\r\n // warn if user wrote import('/component.vue') instead of () =>\r\n // import('./component.vue')\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\r\n `Promise instead of a function that returns a Promise. Did you ` +\r\n `write \"import('./MyPage.vue')\" instead of ` +\r\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\r\n `production if not fixed.`);\r\n const promise = rawComponent;\r\n rawComponent = () => promise;\r\n }\r\n else if (rawComponent.__asyncLoader &&\r\n // warn only once per component\r\n !rawComponent.__warnedDefineAsync) {\r\n rawComponent.__warnedDefineAsync = true;\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\r\n `using \"defineAsyncComponent()\". ` +\r\n `Write \"() => import('./MyPage.vue')\" instead of ` +\r\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\r\n }\r\n }\r\n // skip update and leave guards if the route component is not mounted\r\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\r\n continue;\r\n if (isRouteComponent(rawComponent)) {\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = rawComponent.__vccOpts || rawComponent;\r\n const guard = options[guardType];\r\n guard && guards.push(guardToPromiseFn(guard, to, from, record, name));\r\n }\r\n else {\r\n // start requesting the chunk already\r\n let componentPromise = rawComponent();\r\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\r\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\r\n componentPromise = Promise.resolve(componentPromise);\r\n }\r\n guards.push(() => componentPromise.then(resolved => {\r\n if (!resolved)\r\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`));\r\n const resolvedComponent = isESModule(resolved)\r\n ? resolved.default\r\n : resolved;\r\n // replace the function with the resolved component\r\n record.components[name] = resolvedComponent;\r\n // __vccOpts is added by vue-class-component and contain the regular options\r\n const options = resolvedComponent.__vccOpts || resolvedComponent;\r\n const guard = options[guardType];\r\n return guard && guardToPromiseFn(guard, to, from, record, name)();\r\n }));\r\n }\r\n }\r\n }\r\n return guards;\r\n}\r\n/**\r\n * Allows differentiating lazy components from functional components and vue-class-component\r\n *\r\n * @param component\r\n */\r\nfunction isRouteComponent(component) {\r\n return (typeof component === 'object' ||\r\n 'displayName' in component ||\r\n 'props' in component ||\r\n '__vccOpts' in component);\r\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\r\n// `isExactActive` behavior should go through an RFC\r\nfunction useLink(props) {\r\n const router = inject(routerKey);\r\n const currentRoute = inject(routeLocationKey);\r\n const route = computed(() => router.resolve(unref(props.to)));\r\n const activeRecordIndex = computed(() => {\r\n const { matched } = route.value;\r\n const { length } = matched;\r\n const routeMatched = matched[length - 1];\r\n const currentMatched = currentRoute.matched;\r\n if (!routeMatched || !currentMatched.length)\r\n return -1;\r\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\r\n if (index > -1)\r\n return index;\r\n // possible parent record\r\n const parentRecordPath = getOriginalPath(matched[length - 2]);\r\n return (\r\n // we are dealing with nested routes\r\n length > 1 &&\r\n // if the parent and matched route have the same path, this link is\r\n // referring to the empty child. Or we currently are on a different\r\n // child of the same parent\r\n getOriginalPath(routeMatched) === parentRecordPath &&\r\n // avoid comparing the child with its parent\r\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\r\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\r\n : index);\r\n });\r\n const isActive = computed(() => activeRecordIndex.value > -1 &&\r\n includesParams(currentRoute.params, route.value.params));\r\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\r\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\r\n isSameRouteLocationParams(currentRoute.params, route.value.params));\r\n function navigate(e = {}) {\r\n if (guardEvent(e)) {\r\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\r\n // avoid uncaught errors are they are logged anyway\r\n ).catch(noop);\r\n }\r\n return Promise.resolve();\r\n }\r\n // devtools only\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n const instance = getCurrentInstance();\r\n if (instance) {\r\n const linkContextDevtools = {\r\n route: route.value,\r\n isActive: isActive.value,\r\n isExactActive: isExactActive.value,\r\n };\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools = instance.__vrl_devtools || [];\r\n // @ts-expect-error: this is internal\r\n instance.__vrl_devtools.push(linkContextDevtools);\r\n watchEffect(() => {\r\n linkContextDevtools.route = route.value;\r\n linkContextDevtools.isActive = isActive.value;\r\n linkContextDevtools.isExactActive = isExactActive.value;\r\n }, { flush: 'post' });\r\n }\r\n }\r\n return {\r\n route,\r\n href: computed(() => route.value.href),\r\n isActive,\r\n isExactActive,\r\n navigate,\r\n };\r\n}\r\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterLink',\r\n props: {\r\n to: {\r\n type: [String, Object],\r\n required: true,\r\n },\r\n replace: Boolean,\r\n activeClass: String,\r\n // inactiveClass: String,\r\n exactActiveClass: String,\r\n custom: Boolean,\r\n ariaCurrentValue: {\r\n type: String,\r\n default: 'page',\r\n },\r\n },\r\n useLink,\r\n setup(props, { slots }) {\r\n const link = reactive(useLink(props));\r\n const { options } = inject(routerKey);\r\n const elClass = computed(() => ({\r\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\r\n // [getLinkClass(\r\n // props.inactiveClass,\r\n // options.linkInactiveClass,\r\n // 'router-link-inactive'\r\n // )]: !link.isExactActive,\r\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\r\n }));\r\n return () => {\r\n const children = slots.default && slots.default(link);\r\n return props.custom\r\n ? children\r\n : h('a', {\r\n 'aria-current': link.isExactActive\r\n ? props.ariaCurrentValue\r\n : null,\r\n href: link.href,\r\n // this would override user added attrs but Vue will still add\r\n // the listener so we end up triggering both\r\n onClick: link.navigate,\r\n class: elClass.value,\r\n }, children);\r\n };\r\n },\r\n});\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to render a link that triggers a navigation on click.\r\n */\r\nconst RouterLink = RouterLinkImpl;\r\nfunction guardEvent(e) {\r\n // don't redirect with control keys\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\r\n return;\r\n // don't redirect when preventDefault called\r\n if (e.defaultPrevented)\r\n return;\r\n // don't redirect on right click\r\n if (e.button !== undefined && e.button !== 0)\r\n return;\r\n // don't redirect if `target=\"_blank\"`\r\n // @ts-expect-error getAttribute does exist\r\n if (e.currentTarget && e.currentTarget.getAttribute) {\r\n // @ts-expect-error getAttribute exists\r\n const target = e.currentTarget.getAttribute('target');\r\n if (/\\b_blank\\b/i.test(target))\r\n return;\r\n }\r\n // this may be a Weex event which doesn't have this method\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n return true;\r\n}\r\nfunction includesParams(outer, inner) {\r\n for (const key in inner) {\r\n const innerValue = inner[key];\r\n const outerValue = outer[key];\r\n if (typeof innerValue === 'string') {\r\n if (innerValue !== outerValue)\r\n return false;\r\n }\r\n else {\r\n if (!Array.isArray(outerValue) ||\r\n outerValue.length !== innerValue.length ||\r\n innerValue.some((value, i) => value !== outerValue[i]))\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the original path value of a record by following its aliasOf\r\n * @param record\r\n */\r\nfunction getOriginalPath(record) {\r\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\r\n}\r\n/**\r\n * Utility class to get the active class based on defaults.\r\n * @param propClass\r\n * @param globalClass\r\n * @param defaultClass\r\n */\r\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\r\n ? propClass\r\n : globalClass != null\r\n ? globalClass\r\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\r\n name: 'RouterView',\r\n // #674 we manually inherit them\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n default: 'default',\r\n },\r\n route: Object,\r\n },\r\n setup(props, { attrs, slots }) {\r\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\r\n const injectedRoute = inject(routerViewLocationKey);\r\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\r\n const depth = inject(viewDepthKey, 0);\r\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth]);\r\n provide(viewDepthKey, depth + 1);\r\n provide(matchedRouteKey, matchedRouteRef);\r\n provide(routerViewLocationKey, routeToDisplay);\r\n const viewRef = ref();\r\n // watch at the same time the component instance, the route record we are\r\n // rendering, and the name\r\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\r\n // copy reused instances\r\n if (to) {\r\n // this will update the instance for new instances as well as reused\r\n // instances when navigating to a new route\r\n to.instances[name] = instance;\r\n // the component instance is reused for a different route or name so\r\n // we copy any saved update or leave guards. With async setup, the\r\n // mounting component will mount before the matchedRoute changes,\r\n // making instance === oldInstance, so we check if guards have been\r\n // added before. This works because we remove guards when\r\n // unmounting/deactivating components\r\n if (from && from !== to && instance && instance === oldInstance) {\r\n if (!to.leaveGuards.size) {\r\n to.leaveGuards = from.leaveGuards;\r\n }\r\n if (!to.updateGuards.size) {\r\n to.updateGuards = from.updateGuards;\r\n }\r\n }\r\n }\r\n // trigger beforeRouteEnter next callbacks\r\n if (instance &&\r\n to &&\r\n // if there is no instance but to and from are the same this might be\r\n // the first visit\r\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\r\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\r\n }\r\n }, { flush: 'post' });\r\n return () => {\r\n const route = routeToDisplay.value;\r\n const matchedRoute = matchedRouteRef.value;\r\n const ViewComponent = matchedRoute && matchedRoute.components[props.name];\r\n // we need the value at the time we render because when we unmount, we\r\n // navigated to a different location so the value is different\r\n const currentName = props.name;\r\n if (!ViewComponent) {\r\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\r\n }\r\n // props from route configuration\r\n const routePropsOption = matchedRoute.props[props.name];\r\n const routeProps = routePropsOption\r\n ? routePropsOption === true\r\n ? route.params\r\n : typeof routePropsOption === 'function'\r\n ? routePropsOption(route)\r\n : routePropsOption\r\n : null;\r\n const onVnodeUnmounted = vnode => {\r\n // remove the instance reference to prevent leak\r\n if (vnode.component.isUnmounted) {\r\n matchedRoute.instances[currentName] = null;\r\n }\r\n };\r\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\r\n onVnodeUnmounted,\r\n ref: viewRef,\r\n }));\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n isBrowser &&\r\n component.ref) {\r\n // TODO: can display if it's an alias, its props\r\n const info = {\r\n depth,\r\n name: matchedRoute.name,\r\n path: matchedRoute.path,\r\n meta: matchedRoute.meta,\r\n };\r\n const internalInstances = Array.isArray(component.ref)\r\n ? component.ref.map(r => r.i)\r\n : [component.ref.i];\r\n internalInstances.forEach(instance => {\r\n // @ts-expect-error\r\n instance.__vrv_devtools = info;\r\n });\r\n }\r\n return (\r\n // pass the vnode to the slot as a prop.\r\n // h and both accept vnodes\r\n normalizeSlot(slots.default, { Component: component, route }) ||\r\n component);\r\n };\r\n },\r\n});\r\nfunction normalizeSlot(slot, data) {\r\n if (!slot)\r\n return null;\r\n const slotContent = slot(data);\r\n return slotContent.length === 1 ? slotContent[0] : slotContent;\r\n}\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\n/**\r\n * Component to display the current route the user is at.\r\n */\r\nconst RouterView = RouterViewImpl;\r\n// warn against deprecated usage with & \r\n// due to functional component being no longer eager in Vue 3\r\nfunction warnDeprecatedUsage() {\r\n const instance = getCurrentInstance();\r\n const parentName = instance.parent && instance.parent.type.name;\r\n if (parentName &&\r\n (parentName === 'KeepAlive' || parentName.includes('Transition'))) {\r\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\r\n warn(` can no longer be used directly inside or .\\n` +\r\n `Use slot props instead:\\n\\n` +\r\n `\\n` +\r\n ` <${comp}>\\n` +\r\n ` \\n` +\r\n ` \\n` +\r\n ``);\r\n }\r\n}\n\nfunction formatRouteLocation(routeLocation, tooltip) {\r\n const copy = assign({}, routeLocation, {\r\n // remove variables that can contain vue instances\r\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\r\n });\r\n return {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: routeLocation.fullPath,\r\n tooltip,\r\n value: copy,\r\n },\r\n };\r\n}\r\nfunction formatDisplay(display) {\r\n return {\r\n _custom: {\r\n display,\r\n },\r\n };\r\n}\r\n// to support multiple router instances\r\nlet routerId = 0;\r\nfunction addDevtools(app, router, matcher) {\r\n // Take over router.beforeEach and afterEach\r\n // make sure we are not registering the devtool twice\r\n if (router.__hasDevtools)\r\n return;\r\n router.__hasDevtools = true;\r\n // increment to support multiple router instances\r\n const id = routerId++;\r\n setupDevtoolsPlugin({\r\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\r\n label: 'Vue Router',\r\n packageName: 'vue-router',\r\n homepage: 'https://next.router.vuejs.org/',\r\n logo: 'https://vuejs.org/images/icons/favicon-96x96.png',\r\n componentStateTypes: ['Routing'],\r\n app,\r\n }, api => {\r\n // display state added by the router\r\n api.on.inspectComponent((payload, ctx) => {\r\n if (payload.instanceData) {\r\n payload.instanceData.state.push({\r\n type: 'Routing',\r\n key: '$route',\r\n editable: false,\r\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\r\n });\r\n }\r\n });\r\n // mark router-link as active and display tags on router views\r\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\r\n if (componentInstance.__vrv_devtools) {\r\n const info = componentInstance.__vrv_devtools;\r\n node.tags.push({\r\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\r\n textColor: 0,\r\n tooltip: 'This component is rendered by <router-view>',\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n // if multiple useLink are used\r\n if (Array.isArray(componentInstance.__vrl_devtools)) {\r\n componentInstance.__devtoolsApi = api;\r\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\r\n let backgroundColor = ORANGE_400;\r\n let tooltip = '';\r\n if (devtoolsData.isExactActive) {\r\n backgroundColor = LIME_500;\r\n tooltip = 'This is exactly active';\r\n }\r\n else if (devtoolsData.isActive) {\r\n backgroundColor = BLUE_600;\r\n tooltip = 'This link is active';\r\n }\r\n node.tags.push({\r\n label: devtoolsData.route.path,\r\n textColor: 0,\r\n tooltip,\r\n backgroundColor,\r\n });\r\n });\r\n }\r\n });\r\n watch(router.currentRoute, () => {\r\n // refresh active state\r\n refreshRoutesView();\r\n api.notifyComponentUpdate();\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n const navigationsLayerId = 'router:navigations:' + id;\r\n api.addTimelineLayer({\r\n id: navigationsLayerId,\r\n label: `Router${id ? ' ' + id : ''} Navigations`,\r\n color: 0x40a8c4,\r\n });\r\n // const errorsLayerId = 'router:errors'\r\n // api.addTimelineLayer({\r\n // id: errorsLayerId,\r\n // label: 'Router Errors',\r\n // color: 0xea5455,\r\n // })\r\n router.onError((error, to) => {\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'Error during Navigation',\r\n subtitle: to.fullPath,\r\n logType: 'error',\r\n time: Date.now(),\r\n data: { error },\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n // attached to `meta` and used to group events\r\n let navigationId = 0;\r\n router.beforeEach((to, from) => {\r\n const data = {\r\n guard: formatDisplay('beforeEach'),\r\n from: formatRouteLocation(from, 'Current Location during this navigation'),\r\n to: formatRouteLocation(to, 'Target location'),\r\n };\r\n // Used to group navigations together, hide from devtools\r\n Object.defineProperty(to.meta, '__navigationId', {\r\n value: navigationId++,\r\n });\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n time: Date.now(),\r\n title: 'Start of navigation',\r\n subtitle: to.fullPath,\r\n data,\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n router.afterEach((to, from, failure) => {\r\n const data = {\r\n guard: formatDisplay('afterEach'),\r\n };\r\n if (failure) {\r\n data.failure = {\r\n _custom: {\r\n type: Error,\r\n readOnly: true,\r\n display: failure ? failure.message : '',\r\n tooltip: 'Navigation Failure',\r\n value: failure,\r\n },\r\n };\r\n data.status = formatDisplay('❌');\r\n }\r\n else {\r\n data.status = formatDisplay('✅');\r\n }\r\n // we set here to have the right order\r\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\r\n data.to = formatRouteLocation(to, 'Target location');\r\n api.addTimelineEvent({\r\n layerId: navigationsLayerId,\r\n event: {\r\n title: 'End of navigation',\r\n subtitle: to.fullPath,\r\n time: Date.now(),\r\n data,\r\n logType: failure ? 'warning' : 'default',\r\n groupId: to.meta.__navigationId,\r\n },\r\n });\r\n });\r\n /**\r\n * Inspector of Existing routes\r\n */\r\n const routerInspectorId = 'router-inspector:' + id;\r\n api.addInspector({\r\n id: routerInspectorId,\r\n label: 'Routes' + (id ? ' ' + id : ''),\r\n icon: 'book',\r\n treeFilterPlaceholder: 'Search routes',\r\n });\r\n function refreshRoutesView() {\r\n // the routes view isn't active\r\n if (!activeRoutesPayload)\r\n return;\r\n const payload = activeRoutesPayload;\r\n // children routes will appear as nested\r\n let routes = matcher.getRoutes().filter(route => !route.parent);\r\n // reset match state to false\r\n routes.forEach(resetMatchStateOnRouteRecord);\r\n // apply a match state if there is a payload\r\n if (payload.filter) {\r\n routes = routes.filter(route => \r\n // save matches state based on the payload\r\n isRouteMatching(route, payload.filter.toLowerCase()));\r\n }\r\n // mark active routes\r\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\r\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\r\n }\r\n let activeRoutesPayload;\r\n api.on.getInspectorTree(payload => {\r\n activeRoutesPayload = payload;\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n refreshRoutesView();\r\n }\r\n });\r\n /**\r\n * Display information about the currently selected route record\r\n */\r\n api.on.getInspectorState(payload => {\r\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\r\n const routes = matcher.getRoutes();\r\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\r\n if (route) {\r\n payload.state = {\r\n options: formatRouteRecordMatcherForStateInspector(route),\r\n };\r\n }\r\n }\r\n });\r\n api.sendInspectorTree(routerInspectorId);\r\n api.sendInspectorState(routerInspectorId);\r\n });\r\n}\r\nfunction modifierForKey(key) {\r\n if (key.optional) {\r\n return key.repeatable ? '*' : '?';\r\n }\r\n else {\r\n return key.repeatable ? '+' : '';\r\n }\r\n}\r\nfunction formatRouteRecordMatcherForStateInspector(route) {\r\n const { record } = route;\r\n const fields = [\r\n { editable: false, key: 'path', value: record.path },\r\n ];\r\n if (record.name != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'name',\r\n value: record.name,\r\n });\r\n }\r\n fields.push({ editable: false, key: 'regexp', value: route.re });\r\n if (route.keys.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'keys',\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.keys\r\n .map(key => `${key.name}${modifierForKey(key)}`)\r\n .join(' '),\r\n tooltip: 'Param keys',\r\n value: route.keys,\r\n },\r\n },\r\n });\r\n }\r\n if (record.redirect != null) {\r\n fields.push({\r\n editable: false,\r\n key: 'redirect',\r\n value: record.redirect,\r\n });\r\n }\r\n if (route.alias.length) {\r\n fields.push({\r\n editable: false,\r\n key: 'aliases',\r\n value: route.alias.map(alias => alias.record.path),\r\n });\r\n }\r\n fields.push({\r\n key: 'score',\r\n editable: false,\r\n value: {\r\n _custom: {\r\n type: null,\r\n readOnly: true,\r\n display: route.score.map(score => score.join(', ')).join(' | '),\r\n tooltip: 'Score used to sort routes',\r\n value: route.score,\r\n },\r\n },\r\n });\r\n return fields;\r\n}\r\n/**\r\n * Extracted from tailwind palette\r\n */\r\nconst PINK_500 = 0xec4899;\r\nconst BLUE_600 = 0x2563eb;\r\nconst LIME_500 = 0x84cc16;\r\nconst CYAN_400 = 0x22d3ee;\r\nconst ORANGE_400 = 0xfb923c;\r\n// const GRAY_100 = 0xf4f4f5\r\nconst DARK = 0x666666;\r\nfunction formatRouteRecordForInspector(route) {\r\n const tags = [];\r\n const { record } = route;\r\n if (record.name != null) {\r\n tags.push({\r\n label: String(record.name),\r\n textColor: 0,\r\n backgroundColor: CYAN_400,\r\n });\r\n }\r\n if (record.aliasOf) {\r\n tags.push({\r\n label: 'alias',\r\n textColor: 0,\r\n backgroundColor: ORANGE_400,\r\n });\r\n }\r\n if (route.__vd_match) {\r\n tags.push({\r\n label: 'matches',\r\n textColor: 0,\r\n backgroundColor: PINK_500,\r\n });\r\n }\r\n if (route.__vd_exactActive) {\r\n tags.push({\r\n label: 'exact',\r\n textColor: 0,\r\n backgroundColor: LIME_500,\r\n });\r\n }\r\n if (route.__vd_active) {\r\n tags.push({\r\n label: 'active',\r\n textColor: 0,\r\n backgroundColor: BLUE_600,\r\n });\r\n }\r\n if (record.redirect) {\r\n tags.push({\r\n label: 'redirect: ' +\r\n (typeof record.redirect === 'string' ? record.redirect : 'Object'),\r\n textColor: 0xffffff,\r\n backgroundColor: DARK,\r\n });\r\n }\r\n // add an id to be able to select it. Using the `path` is not possible because\r\n // empty path children would collide with their parents\r\n let id = record.__vd_id;\r\n if (id == null) {\r\n id = String(routeRecordId++);\r\n record.__vd_id = id;\r\n }\r\n return {\r\n id,\r\n label: record.path,\r\n tags,\r\n children: route.children.map(formatRouteRecordForInspector),\r\n };\r\n}\r\n// incremental id for route records and inspector state\r\nlet routeRecordId = 0;\r\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\r\nfunction markRouteRecordActive(route, currentRoute) {\r\n // no route will be active if matched is empty\r\n // reset the matching state\r\n const isExactActive = currentRoute.matched.length &&\r\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\r\n route.__vd_exactActive = route.__vd_active = isExactActive;\r\n if (!isExactActive) {\r\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\r\n }\r\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\r\n}\r\nfunction resetMatchStateOnRouteRecord(route) {\r\n route.__vd_match = false;\r\n route.children.forEach(resetMatchStateOnRouteRecord);\r\n}\r\nfunction isRouteMatching(route, filter) {\r\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\r\n route.__vd_match = false;\r\n if (!found || found.length < 3) {\r\n return false;\r\n }\r\n // use a regexp without $ at the end to match nested routes better\r\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\r\n if (nonEndingRE.test(filter)) {\r\n // mark children as matches\r\n route.children.forEach(child => isRouteMatching(child, filter));\r\n // exception case: `/`\r\n if (route.record.path !== '/' || filter === '/') {\r\n route.__vd_match = route.re.test(filter);\r\n return true;\r\n }\r\n // hide the / route\r\n return false;\r\n }\r\n const path = route.record.path.toLowerCase();\r\n const decodedPath = decode(path);\r\n // also allow partial matching on the path\r\n if (!filter.startsWith('/') &&\r\n (decodedPath.includes(filter) || path.includes(filter)))\r\n return true;\r\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\r\n return true;\r\n if (route.record.name && String(route.record.name).includes(filter))\r\n return true;\r\n return route.children.some(child => isRouteMatching(child, filter));\r\n}\r\nfunction omit(obj, keys) {\r\n const ret = {};\r\n for (const key in obj) {\r\n if (!keys.includes(key)) {\r\n // @ts-expect-error\r\n ret[key] = obj[key];\r\n }\r\n }\r\n return ret;\r\n}\n\n/**\r\n * Creates a Router instance that can be used by a Vue app.\r\n *\r\n * @param options - {@link RouterOptions}\r\n */\r\nfunction createRouter(options) {\r\n const matcher = createRouterMatcher(options.routes, options);\r\n const parseQuery$1 = options.parseQuery || parseQuery;\r\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\r\n const routerHistory = options.history;\r\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\r\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\r\n ' https://next.router.vuejs.org/api/#history.');\r\n const beforeGuards = useCallbacks();\r\n const beforeResolveGuards = useCallbacks();\r\n const afterGuards = useCallbacks();\r\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\r\n let pendingLocation = START_LOCATION_NORMALIZED;\r\n // leave the scrollRestoration if no scrollBehavior is provided\r\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\r\n history.scrollRestoration = 'manual';\r\n }\r\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\r\n const encodeParams = applyToParams.bind(null, encodeParam);\r\n const decodeParams = \r\n // @ts-expect-error: intentionally avoid the type check\r\n applyToParams.bind(null, decode);\r\n function addRoute(parentOrRoute, route) {\r\n let parent;\r\n let record;\r\n if (isRouteName(parentOrRoute)) {\r\n parent = matcher.getRecordMatcher(parentOrRoute);\r\n record = route;\r\n }\r\n else {\r\n record = parentOrRoute;\r\n }\r\n return matcher.addRoute(record, parent);\r\n }\r\n function removeRoute(name) {\r\n const recordMatcher = matcher.getRecordMatcher(name);\r\n if (recordMatcher) {\r\n matcher.removeRoute(recordMatcher);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\r\n }\r\n }\r\n function getRoutes() {\r\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\r\n }\r\n function hasRoute(name) {\r\n return !!matcher.getRecordMatcher(name);\r\n }\r\n function resolve(rawLocation, currentLocation) {\r\n // const objectLocation = routerLocationAsObject(rawLocation)\r\n // we create a copy to modify it later\r\n currentLocation = assign({}, currentLocation || currentRoute.value);\r\n if (typeof rawLocation === 'string') {\r\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\r\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\r\n const href = routerHistory.createHref(locationNormalized.fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//'))\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${rawLocation}\"`);\r\n }\r\n }\r\n // locationNormalized is always a new object\r\n return assign(locationNormalized, matchedRoute, {\r\n params: decodeParams(matchedRoute.params),\r\n hash: decode(locationNormalized.hash),\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n let matcherLocation;\r\n // path could be relative in object as well\r\n if ('path' in rawLocation) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n 'params' in rawLocation &&\r\n !('name' in rawLocation) &&\r\n // @ts-expect-error: the type is never\r\n Object.keys(rawLocation.params).length) {\r\n warn(`Path \"${\r\n // @ts-expect-error: the type is never\r\n rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\r\n }\r\n matcherLocation = assign({}, rawLocation, {\r\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\r\n });\r\n }\r\n else {\r\n // remove any nullish param\r\n const targetParams = assign({}, rawLocation.params);\r\n for (const key in targetParams) {\r\n if (targetParams[key] == null) {\r\n delete targetParams[key];\r\n }\r\n }\r\n // pass encoded values to the matcher so it can produce encoded path and fullPath\r\n matcherLocation = assign({}, rawLocation, {\r\n params: encodeParams(rawLocation.params),\r\n });\r\n // current location params are decoded, we need to encode them in case the\r\n // matcher merges the params\r\n currentLocation.params = encodeParams(currentLocation.params);\r\n }\r\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\r\n const hash = rawLocation.hash || '';\r\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\r\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\r\n }\r\n // decoding them) the matcher might have merged current location params so\r\n // we need to run the decoding again\r\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\r\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\r\n hash: encodeHash(hash),\r\n path: matchedRoute.path,\r\n }));\r\n const href = routerHistory.createHref(fullPath);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (href.startsWith('//')) {\r\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\r\n }\r\n else if (!matchedRoute.matched.length) {\r\n warn(`No match found for location with path \"${'path' in rawLocation ? rawLocation.path : rawLocation}\"`);\r\n }\r\n }\r\n return assign({\r\n fullPath,\r\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\r\n // hash\r\n hash,\r\n query: \r\n // if the user is using a custom query lib like qs, we might have\r\n // nested objects, so we keep the query as is, meaning it can contain\r\n // numbers at `$route.query`, but at the point, the user will have to\r\n // use their own type anyway.\r\n // https://github.com/vuejs/vue-router-next/issues/328#issuecomment-649481567\r\n stringifyQuery$1 === stringifyQuery\r\n ? normalizeQuery(rawLocation.query)\r\n : (rawLocation.query || {}),\r\n }, matchedRoute, {\r\n redirectedFrom: undefined,\r\n href,\r\n });\r\n }\r\n function locationAsObject(to) {\r\n return typeof to === 'string'\r\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\r\n : assign({}, to);\r\n }\r\n function checkCanceledNavigation(to, from) {\r\n if (pendingLocation !== to) {\r\n return createRouterError(8 /* NAVIGATION_CANCELLED */, {\r\n from,\r\n to,\r\n });\r\n }\r\n }\r\n function push(to) {\r\n return pushWithRedirect(to);\r\n }\r\n function replace(to) {\r\n return push(assign(locationAsObject(to), { replace: true }));\r\n }\r\n function handleRedirectRecord(to) {\r\n const lastMatched = to.matched[to.matched.length - 1];\r\n if (lastMatched && lastMatched.redirect) {\r\n const { redirect } = lastMatched;\r\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\r\n if (typeof newTargetLocation === 'string') {\r\n newTargetLocation =\r\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\r\n ? (newTargetLocation = locationAsObject(newTargetLocation))\r\n : // force empty params\r\n { path: newTargetLocation };\r\n // @ts-expect-error: force empty params when a string is passed to let\r\n // the router parse them again\r\n newTargetLocation.params = {};\r\n }\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n !('path' in newTargetLocation) &&\r\n !('name' in newTargetLocation)) {\r\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\r\n throw new Error('Invalid redirect');\r\n }\r\n return assign({\r\n query: to.query,\r\n hash: to.hash,\r\n params: to.params,\r\n }, newTargetLocation);\r\n }\r\n }\r\n function pushWithRedirect(to, redirectedFrom) {\r\n const targetLocation = (pendingLocation = resolve(to));\r\n const from = currentRoute.value;\r\n const data = to.state;\r\n const force = to.force;\r\n // to could be a string where `replace` is a function\r\n const replace = to.replace === true;\r\n const shouldRedirect = handleRedirectRecord(targetLocation);\r\n if (shouldRedirect)\r\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // keep original redirectedFrom if it exists\r\n redirectedFrom || targetLocation);\r\n // if it was a redirect we already called `pushWithRedirect` above\r\n const toLocation = targetLocation;\r\n toLocation.redirectedFrom = redirectedFrom;\r\n let failure;\r\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\r\n failure = createRouterError(16 /* NAVIGATION_DUPLICATED */, { to: toLocation, from });\r\n // trigger scroll to allow scrolling to the same anchor\r\n handleScroll(from, from, \r\n // this is a push, the only way for it to be triggered from a\r\n // history.listen is with a redirect, which makes it become a push\r\n true, \r\n // This cannot be the first navigation because the initial location\r\n // cannot be manually navigated to\r\n false);\r\n }\r\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\r\n .catch((error) => isNavigationFailure(error)\r\n ? error\r\n : // reject any unknown error\r\n triggerError(error, toLocation, from))\r\n .then((failure) => {\r\n if (failure) {\r\n if (isNavigationFailure(failure, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n // we are redirecting to the same location we were already at\r\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\r\n // and we have done it a couple of times\r\n redirectedFrom &&\r\n // @ts-expect-error: added only in dev\r\n (redirectedFrom._count = redirectedFrom._count\r\n ? // @ts-expect-error\r\n redirectedFrom._count + 1\r\n : 1) > 10) {\r\n warn(`Detected an infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow. This will break in production if not fixed.`);\r\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\r\n }\r\n return pushWithRedirect(\r\n // keep options\r\n assign(locationAsObject(failure.to), {\r\n state: data,\r\n force,\r\n replace,\r\n }), \r\n // preserve the original redirectedFrom if any\r\n redirectedFrom || toLocation);\r\n }\r\n }\r\n else {\r\n // if we fail we don't finalize the navigation\r\n failure = finalizeNavigation(toLocation, from, true, replace, data);\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n return failure;\r\n });\r\n }\r\n /**\r\n * Helper to reject and skip all navigation guards if a new navigation happened\r\n * @param to\r\n * @param from\r\n */\r\n function checkCanceledNavigationAndReject(to, from) {\r\n const error = checkCanceledNavigation(to, from);\r\n return error ? Promise.reject(error) : Promise.resolve();\r\n }\r\n // TODO: refactor the whole before guards by internally using router.beforeEach\r\n function navigate(to, from) {\r\n let guards;\r\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\r\n // all components here have been resolved once because we are leaving\r\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\r\n // leavingRecords is already reversed\r\n for (const record of leavingRecords) {\r\n record.leaveGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeRouteLeave guards\r\n return (runGuardQueue(guards)\r\n .then(() => {\r\n // check global guards beforeEach\r\n guards = [];\r\n for (const guard of beforeGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check in components beforeRouteUpdate\r\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\r\n for (const record of updatingRecords) {\r\n record.updateGuards.forEach(guard => {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n });\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check the route beforeEnter\r\n guards = [];\r\n for (const record of to.matched) {\r\n // do not trigger beforeEnter on reused views\r\n if (record.beforeEnter && !from.matched.includes(record)) {\r\n if (Array.isArray(record.beforeEnter)) {\r\n for (const beforeEnter of record.beforeEnter)\r\n guards.push(guardToPromiseFn(beforeEnter, to, from));\r\n }\r\n else {\r\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\r\n }\r\n }\r\n }\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise\r\n // clear existing enterCallbacks, these are added by extractComponentsGuards\r\n to.matched.forEach(record => (record.enterCallbacks = {}));\r\n // check in-component beforeRouteEnter\r\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from);\r\n guards.push(canceledNavigationCheck);\r\n // run the queue of per route beforeEnter guards\r\n return runGuardQueue(guards);\r\n })\r\n .then(() => {\r\n // check global guards beforeResolve\r\n guards = [];\r\n for (const guard of beforeResolveGuards.list()) {\r\n guards.push(guardToPromiseFn(guard, to, from));\r\n }\r\n guards.push(canceledNavigationCheck);\r\n return runGuardQueue(guards);\r\n })\r\n // catch any navigation canceled\r\n .catch(err => isNavigationFailure(err, 8 /* NAVIGATION_CANCELLED */)\r\n ? err\r\n : Promise.reject(err)));\r\n }\r\n function triggerAfterEach(to, from, failure) {\r\n // navigation is confirmed, call afterGuards\r\n // TODO: wrap with error handlers\r\n for (const guard of afterGuards.list())\r\n guard(to, from, failure);\r\n }\r\n /**\r\n * - Cleans up any navigation guards\r\n * - Changes the url if necessary\r\n * - Calls the scrollBehavior\r\n */\r\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\r\n // a more recent navigation took place\r\n const error = checkCanceledNavigation(toLocation, from);\r\n if (error)\r\n return error;\r\n // only consider as push if it's not the first navigation\r\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\r\n const state = !isBrowser ? {} : history.state;\r\n // change URL only if the user did a push/replace and if it's not the initial navigation because\r\n // it's just reflecting the url\r\n if (isPush) {\r\n // on the initial navigation, we want to reuse the scroll position from\r\n // history state if it exists\r\n if (replace || isFirstNavigation)\r\n routerHistory.replace(toLocation.fullPath, assign({\r\n scroll: isFirstNavigation && state && state.scroll,\r\n }, data));\r\n else\r\n routerHistory.push(toLocation.fullPath, data);\r\n }\r\n // accept current navigation\r\n currentRoute.value = toLocation;\r\n handleScroll(toLocation, from, isPush, isFirstNavigation);\r\n markAsReady();\r\n }\r\n let removeHistoryListener;\r\n // attach listener to history to trigger navigations\r\n function setupListeners() {\r\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\r\n // cannot be a redirect route because it was in history\r\n const toLocation = resolve(to);\r\n // due to dynamic routing, and to hash history with manual navigation\r\n // (manually changing the url or calling history.hash = '#/somewhere'),\r\n // there could be a redirect record in history\r\n const shouldRedirect = handleRedirectRecord(toLocation);\r\n if (shouldRedirect) {\r\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\r\n return;\r\n }\r\n pendingLocation = toLocation;\r\n const from = currentRoute.value;\r\n // TODO: should be moved to web history?\r\n if (isBrowser) {\r\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\r\n }\r\n navigate(toLocation, from)\r\n .catch((error) => {\r\n if (isNavigationFailure(error, 4 /* NAVIGATION_ABORTED */ | 8 /* NAVIGATION_CANCELLED */)) {\r\n return error;\r\n }\r\n if (isNavigationFailure(error, 2 /* NAVIGATION_GUARD_REDIRECT */)) {\r\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\r\n // false) but this is bug prone as we have no way to wait the\r\n // navigation to be finished before calling pushWithRedirect. Using\r\n // a setTimeout of 16ms seems to work but there is not guarantee for\r\n // it to work on every browser. So Instead we do not restore the\r\n // history entry and trigger a new navigation as requested by the\r\n // navigation guard.\r\n // the error is already handled by router.push we just want to avoid\r\n // logging the error\r\n pushWithRedirect(error.to, toLocation\r\n // avoid an uncaught rejection, let push call triggerError\r\n )\r\n .then(failure => {\r\n // manual change in hash history #916 ending up in the URL not\r\n // changing but it was changed by the manual url change, so we\r\n // need to manually change it ourselves\r\n if (isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ |\r\n 16 /* NAVIGATION_DUPLICATED */) &&\r\n !info.delta &&\r\n info.type === NavigationType.pop) {\r\n routerHistory.go(-1, false);\r\n }\r\n })\r\n .catch(noop);\r\n // avoid the then branch\r\n return Promise.reject();\r\n }\r\n // do not restore history on unknown direction\r\n if (info.delta)\r\n routerHistory.go(-info.delta, false);\r\n // unrecognized error, transfer to the global handler\r\n return triggerError(error, toLocation, from);\r\n })\r\n .then((failure) => {\r\n failure =\r\n failure ||\r\n finalizeNavigation(\r\n // after navigation, all matched components are resolved\r\n toLocation, from, false);\r\n // revert the navigation\r\n if (failure) {\r\n if (info.delta) {\r\n routerHistory.go(-info.delta, false);\r\n }\r\n else if (info.type === NavigationType.pop &&\r\n isNavigationFailure(failure, 4 /* NAVIGATION_ABORTED */ | 16 /* NAVIGATION_DUPLICATED */)) {\r\n // manual change in hash history #916\r\n // it's like a push but lacks the information of the direction\r\n routerHistory.go(-1, false);\r\n }\r\n }\r\n triggerAfterEach(toLocation, from, failure);\r\n })\r\n .catch(noop);\r\n });\r\n }\r\n // Initialization and Errors\r\n let readyHandlers = useCallbacks();\r\n let errorHandlers = useCallbacks();\r\n let ready;\r\n /**\r\n * Trigger errorHandlers added via onError and throws the error as well\r\n *\r\n * @param error - error to throw\r\n * @param to - location we were navigating to when the error happened\r\n * @param from - location we were navigating from when the error happened\r\n * @returns the error as a rejected promise\r\n */\r\n function triggerError(error, to, from) {\r\n markAsReady(error);\r\n const list = errorHandlers.list();\r\n if (list.length) {\r\n list.forEach(handler => handler(error, to, from));\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn('uncaught error during route navigation:');\r\n }\r\n console.error(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n function isReady() {\r\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\r\n return Promise.resolve();\r\n return new Promise((resolve, reject) => {\r\n readyHandlers.add([resolve, reject]);\r\n });\r\n }\r\n /**\r\n * Mark the router as ready, resolving the promised returned by isReady(). Can\r\n * only be called once, otherwise does nothing.\r\n * @param err - optional error\r\n */\r\n function markAsReady(err) {\r\n if (ready)\r\n return;\r\n ready = true;\r\n setupListeners();\r\n readyHandlers\r\n .list()\r\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\r\n readyHandlers.reset();\r\n }\r\n // Scroll behavior\r\n function handleScroll(to, from, isPush, isFirstNavigation) {\r\n const { scrollBehavior } = options;\r\n if (!isBrowser || !scrollBehavior)\r\n return Promise.resolve();\r\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\r\n ((isFirstNavigation || !isPush) &&\r\n history.state &&\r\n history.state.scroll) ||\r\n null;\r\n return nextTick()\r\n .then(() => scrollBehavior(to, from, scrollPosition))\r\n .then(position => position && scrollToPosition(position))\r\n .catch(err => triggerError(err, to, from));\r\n }\r\n const go = (delta) => routerHistory.go(delta);\r\n let started;\r\n const installedApps = new Set();\r\n const router = {\r\n currentRoute,\r\n addRoute,\r\n removeRoute,\r\n hasRoute,\r\n getRoutes,\r\n resolve,\r\n options,\r\n push,\r\n replace,\r\n go,\r\n back: () => go(-1),\r\n forward: () => go(1),\r\n beforeEach: beforeGuards.add,\r\n beforeResolve: beforeResolveGuards.add,\r\n afterEach: afterGuards.add,\r\n onError: errorHandlers.add,\r\n isReady,\r\n install(app) {\r\n const router = this;\r\n app.component('RouterLink', RouterLink);\r\n app.component('RouterView', RouterView);\r\n app.config.globalProperties.$router = router;\r\n Object.defineProperty(app.config.globalProperties, '$route', {\r\n enumerable: true,\r\n get: () => unref(currentRoute),\r\n });\r\n // this initial navigation is only necessary on client, on server it doesn't\r\n // make sense because it will create an extra unnecessary navigation and could\r\n // lead to problems\r\n if (isBrowser &&\r\n // used for the initial navigation client side to avoid pushing\r\n // multiple times when the router is used in multiple apps\r\n !started &&\r\n currentRoute.value === START_LOCATION_NORMALIZED) {\r\n // see above\r\n started = true;\r\n push(routerHistory.location).catch(err => {\r\n if ((process.env.NODE_ENV !== 'production'))\r\n warn('Unexpected error when starting the router:', err);\r\n });\r\n }\r\n const reactiveRoute = {};\r\n for (const key in START_LOCATION_NORMALIZED) {\r\n // @ts-expect-error: the key matches\r\n reactiveRoute[key] = computed(() => currentRoute.value[key]);\r\n }\r\n app.provide(routerKey, router);\r\n app.provide(routeLocationKey, reactive(reactiveRoute));\r\n app.provide(routerViewLocationKey, currentRoute);\r\n const unmountApp = app.unmount;\r\n installedApps.add(app);\r\n app.unmount = function () {\r\n installedApps.delete(app);\r\n // the router is not attached to an app anymore\r\n if (installedApps.size < 1) {\r\n // invalidate the current navigation\r\n pendingLocation = START_LOCATION_NORMALIZED;\r\n removeHistoryListener && removeHistoryListener();\r\n currentRoute.value = START_LOCATION_NORMALIZED;\r\n started = false;\r\n ready = false;\r\n }\r\n unmountApp();\r\n };\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\r\n addDevtools(app, router, matcher);\r\n }\r\n },\r\n };\r\n return router;\r\n}\r\nfunction runGuardQueue(guards) {\r\n return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());\r\n}\r\nfunction extractChangingRecords(to, from) {\r\n const leavingRecords = [];\r\n const updatingRecords = [];\r\n const enteringRecords = [];\r\n const len = Math.max(from.matched.length, to.matched.length);\r\n for (let i = 0; i < len; i++) {\r\n const recordFrom = from.matched[i];\r\n if (recordFrom) {\r\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\r\n updatingRecords.push(recordFrom);\r\n else\r\n leavingRecords.push(recordFrom);\r\n }\r\n const recordTo = to.matched[i];\r\n if (recordTo) {\r\n // the type doesn't matter because we are comparing per reference\r\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\r\n enteringRecords.push(recordTo);\r\n }\r\n }\r\n }\r\n return [leavingRecords, updatingRecords, enteringRecords];\r\n}\n\n/**\r\n * Returns the router instance. Equivalent to using `$router` inside\r\n * templates.\r\n */\r\nfunction useRouter() {\r\n return inject(routerKey);\r\n}\r\n/**\r\n * Returns the current route location. Equivalent to using `$route` inside\r\n * templates.\r\n */\r\nfunction useRoute() {\r\n return inject(routeLocationKey);\r\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DesignNowSvg.vue?vue&type=style&index=0&id=1969c387&lang=scss\"","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = exports.getInstance = exports.load = void 0;\nvar ReCaptchaLoader_1 = require(\"./ReCaptchaLoader\");\nObject.defineProperty(exports, \"load\", { enumerable: true, get: function () { return ReCaptchaLoader_1.load; } });\nObject.defineProperty(exports, \"getInstance\", { enumerable: true, get: function () { return ReCaptchaLoader_1.getInstance; } });\nvar ReCaptchaInstance_1 = require(\"./ReCaptchaInstance\");\nObject.defineProperty(exports, \"ReCaptchaInstance\", { enumerable: true, get: function () { return ReCaptchaInstance_1.ReCaptchaInstance; } });\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ResetTemplate.vue?vue&type=style&index=0&id=dca3ff7c&lang=scss&scoped=true\"","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar call = require('../internals/function-call');\nvar $fill = require('../internals/array-fill');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n return call(\n $fill,\n aTypedArray(this),\n value,\n length > 1 ? arguments[1] : undefined,\n length > 2 ? arguments[2] : undefined\n );\n});\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor);\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SearchBar.vue?vue&type=style&index=0&id=e6e8cfb4&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CurrencySelectorMobile.vue?vue&type=style&index=0&id=5e244799&lang=scss\"","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useReCaptcha = exports.VueReCaptcha = void 0;\nvar recaptcha_v3_1 = require(\"recaptcha-v3\");\nvar vue_1 = require(\"vue\");\nvar VueReCaptchaInjectKey = Symbol('VueReCaptchaInjectKey');\nvar globalConfig = {\n loadedWaiters: [],\n error: null\n};\nexports.VueReCaptcha = {\n install: function (app, options) {\n var isLoaded = vue_1.ref(false);\n var instance = vue_1.ref(undefined);\n app.config.globalProperties.$recaptchaLoaded = recaptchaLoaded(isLoaded);\n initializeReCaptcha(options).then(function (wrapper) {\n isLoaded.value = true;\n instance.value = wrapper;\n app.config.globalProperties.$recaptcha = recaptcha(instance);\n app.config.globalProperties.$recaptchaInstance = instance;\n globalConfig.loadedWaiters.forEach(function (v) { return v.resolve(true); });\n }).catch(function (error) {\n globalConfig.error = error;\n globalConfig.loadedWaiters.forEach(function (v) { return v.reject(error); });\n });\n app.provide(VueReCaptchaInjectKey, {\n instance: instance,\n isLoaded: isLoaded,\n executeRecaptcha: recaptcha(instance),\n recaptchaLoaded: recaptchaLoaded(isLoaded)\n });\n }\n};\nfunction useReCaptcha() {\n return vue_1.inject(VueReCaptchaInjectKey);\n}\nexports.useReCaptcha = useReCaptcha;\nfunction initializeReCaptcha(options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4, recaptcha_v3_1.load(options.siteKey, options.loaderOptions)];\n case 1: return [2, _a.sent()];\n }\n });\n });\n}\nfunction recaptchaLoaded(isLoaded) {\n return function () { return new Promise(function (resolve, reject) {\n if (globalConfig.error !== null) {\n return reject(globalConfig.error);\n }\n if (isLoaded.value) {\n return resolve(true);\n }\n globalConfig.loadedWaiters.push({ resolve: resolve, reject: reject });\n }); };\n}\nfunction recaptcha(instance) {\n var _this = this;\n return function (action) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4, ((_a = instance.value) === null || _a === void 0 ? void 0 : _a.execute(action))];\n case 1: return [2, _b.sent()];\n }\n });\n }); };\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ControlBox.vue?vue&type=style&index=0&id=7c2b94e2&lang=scss\"","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar global = require('../internals/global');\n\nvar Array = global.Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"section-products-container container-fluid w-100\"\n}\nconst _hoisted_2 = { class: \"row\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SplideSlider = _resolveComponent(\"SplideSlider\")!\n\n return (_ctx.featuredCategories.length >= 2)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_SplideSlider, {\n imageArray: _ctx.featuredCategories,\n isCategory: true,\n tileCategory: 'Featured Category',\n infoLinkTo: 'Categories'\n }, null, 8, [\"imageArray\"])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport { Categories } from \"@/network/api\";\nimport { CategoryViewModel } from \"@/api-client\";\nimport SplideSlider from \"../carousel/SplideSlider.vue\";\nimport { UploadPath } from \"@/mixins/utilities\";\n\n@Options({\n components: {\n SplideSlider\n },\n})\nexport default class FeaturedCategories extends mixins(UploadPath) {\n featuredCategories: Array = [];\n\n created() {\n this.loadInitialData();\n }\n\n loadInitialData() {\n Categories.categoriesFeaturedGet(1, 99999)\n .then((res) => {\n console.log(res);\n this.featuredCategories = res.data.resultData\n ?.items as Array;\n })\n .catch((error) => {\nconsole.log(error)\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n}\n","import { render } from \"./FeaturedCategories.vue?vue&type=template&id=45a6a212&ts=true\"\nimport script from \"./FeaturedCategories.vue?vue&type=script&lang=ts\"\nexport * from \"./FeaturedCategories.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { initCustomFormatter, warn } from '@vue/runtime-dom';\nexport * from '@vue/runtime-dom';\n\nfunction initDev() {\r\n {\r\n initCustomFormatter();\r\n }\r\n}\n\n// This entry exports the runtime only, and is built as\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n initDev();\r\n}\r\nconst compile = () => {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Runtime compilation is not supported in this build of Vue.` +\r\n (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".`\r\n ) /* should not happen */);\r\n }\r\n};\n\nexport { compile };\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","/**\n * vee-validate v4.5.10\n * (c) 2022 Abdelrahman Awad\n * @license MIT\n */\nimport { inject, getCurrentInstance, warn as warn$1, ref, unref, computed, reactive, watch, onUnmounted, nextTick, onMounted, provide, isRef, onBeforeUnmount, defineComponent, toRef, resolveDynamicComponent, h, watchEffect, markRaw, readonly } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nfunction isCallable(fn) {\r\n return typeof fn === 'function';\r\n}\r\nfunction isNullOrUndefined(value) {\r\n return value === null || value === undefined;\r\n}\r\nconst isObject = (obj) => obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj);\r\nfunction isIndex(value) {\r\n return Number(value) >= 0;\r\n}\r\nfunction toNumber(value) {\r\n const n = parseFloat(value);\r\n return isNaN(n) ? value : n;\r\n}\n\nconst RULES = {};\r\n/**\r\n * Adds a custom validator to the list of validation rules.\r\n */\r\nfunction defineRule(id, validator) {\r\n // makes sure new rules are properly formatted.\r\n guardExtend(id, validator);\r\n RULES[id] = validator;\r\n}\r\n/**\r\n * Gets an already defined rule\r\n */\r\nfunction resolveRule(id) {\r\n return RULES[id];\r\n}\r\n/**\r\n * Guards from extension violations.\r\n */\r\nfunction guardExtend(id, validator) {\r\n if (isCallable(validator)) {\r\n return;\r\n }\r\n throw new Error(`Extension Error: The validator '${id}' must be a function.`);\r\n}\n\nconst FormContextKey = Symbol('vee-validate-form');\r\nconst FieldContextKey = Symbol('vee-validate-field-instance');\r\nconst IS_ABSENT = Symbol('Default empty value');\n\nfunction isLocator(value) {\r\n return isCallable(value) && !!value.__locatorRef;\r\n}\r\n/**\r\n * Checks if an tag name is a native HTML tag and not a Vue component\r\n */\r\nfunction isHTMLTag(tag) {\r\n return ['input', 'textarea', 'select'].includes(tag);\r\n}\r\n/**\r\n * Checks if an input is of type file\r\n */\r\nfunction isFileInputNode(tag, attrs) {\r\n return isHTMLTag(tag) && attrs.type === 'file';\r\n}\r\nfunction isYupValidator(value) {\r\n return !!value && isCallable(value.validate);\r\n}\r\nfunction hasCheckedAttr(type) {\r\n return type === 'checkbox' || type === 'radio';\r\n}\r\nfunction isContainerValue(value) {\r\n return isObject(value) || Array.isArray(value);\r\n}\r\n/**\r\n * True if the value is an empty object or array\r\n */\r\nfunction isEmptyContainer(value) {\r\n if (Array.isArray(value)) {\r\n return value.length === 0;\r\n }\r\n return isObject(value) && Object.keys(value).length === 0;\r\n}\r\n/**\r\n * Checks if the path opted out of nested fields using `[fieldName]` syntax\r\n */\r\nfunction isNotNestedPath(path) {\r\n return /^\\[.+\\]$/i.test(path);\r\n}\r\n/**\r\n * Checks if an element is a native HTML5 multi-select input element\r\n */\r\nfunction isNativeMultiSelect(el) {\r\n return isNativeSelect(el) && el.multiple;\r\n}\r\n/**\r\n * Checks if an element is a native HTML5 select input element\r\n */\r\nfunction isNativeSelect(el) {\r\n return el.tagName === 'SELECT';\r\n}\r\n/**\r\n * Checks if a tag name with attrs object will render a native multi-select element\r\n */\r\nfunction isNativeMultiSelectNode(tag, attrs) {\r\n // The falsy value array is the values that Vue won't add the `multiple` prop if it has one of these values\r\n const hasTruthyBindingValue = ![false, null, undefined, 0].includes(attrs.multiple) && !Number.isNaN(attrs.multiple);\r\n return tag === 'select' && 'multiple' in attrs && hasTruthyBindingValue;\r\n}\r\n/**\r\n * Checks if a node should have a `:value` binding or not\r\n *\r\n * These nodes should not have a value binding\r\n * For files, because they are not reactive\r\n * For multi-selects because the value binding will reset the value\r\n */\r\nfunction shouldHaveValueBinding(tag, attrs) {\r\n return isNativeMultiSelectNode(tag, attrs) || isFileInputNode(tag, attrs);\r\n}\r\nfunction isFormSubmitEvent(evt) {\r\n return isEvent(evt) && evt.target && 'submit' in evt.target;\r\n}\r\nfunction isEvent(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 and Cypress #3161\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 isPropPresent(obj, prop) {\r\n return prop in obj && obj[prop] !== IS_ABSENT;\r\n}\n\nfunction cleanupNonNestedPath(path) {\r\n if (isNotNestedPath(path)) {\r\n return path.replace(/\\[|\\]/gi, '');\r\n }\r\n return path;\r\n}\r\nfunction getFromPath(object, path, fallback) {\r\n if (!object) {\r\n return fallback;\r\n }\r\n if (isNotNestedPath(path)) {\r\n return object[cleanupNonNestedPath(path)];\r\n }\r\n const resolvedValue = (path || '')\r\n .split(/\\.|\\[(\\d+)\\]/)\r\n .filter(Boolean)\r\n .reduce((acc, propKey) => {\r\n if (isContainerValue(acc) && propKey in acc) {\r\n return acc[propKey];\r\n }\r\n return fallback;\r\n }, object);\r\n return resolvedValue;\r\n}\r\n/**\r\n * Sets a nested property value in a path, creates the path properties if it doesn't exist\r\n */\r\nfunction setInPath(object, path, value) {\r\n if (isNotNestedPath(path)) {\r\n object[cleanupNonNestedPath(path)] = value;\r\n return;\r\n }\r\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\r\n let acc = object;\r\n for (let i = 0; i < keys.length; i++) {\r\n // Last key, set it\r\n if (i === keys.length - 1) {\r\n acc[keys[i]] = value;\r\n return;\r\n }\r\n // Key does not exist, create a container for it\r\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\r\n // container can be either an object or an array depending on the next key if it exists\r\n acc[keys[i]] = isIndex(keys[i + 1]) ? [] : {};\r\n }\r\n acc = acc[keys[i]];\r\n }\r\n}\r\nfunction unset(object, key) {\r\n if (Array.isArray(object) && isIndex(key)) {\r\n object.splice(Number(key), 1);\r\n return;\r\n }\r\n if (isObject(object)) {\r\n delete object[key];\r\n }\r\n}\r\n/**\r\n * Removes a nested property from object\r\n */\r\nfunction unsetPath(object, path) {\r\n if (isNotNestedPath(path)) {\r\n delete object[cleanupNonNestedPath(path)];\r\n return;\r\n }\r\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\r\n let acc = object;\r\n for (let i = 0; i < keys.length; i++) {\r\n // Last key, unset it\r\n if (i === keys.length - 1) {\r\n unset(acc, keys[i]);\r\n break;\r\n }\r\n // Key does not exist, exit\r\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\r\n break;\r\n }\r\n acc = acc[keys[i]];\r\n }\r\n const pathValues = keys.map((_, idx) => {\r\n return getFromPath(object, keys.slice(0, idx).join('.'));\r\n });\r\n for (let i = pathValues.length - 1; i >= 0; i--) {\r\n if (!isEmptyContainer(pathValues[i])) {\r\n continue;\r\n }\r\n if (i === 0) {\r\n unset(object, keys[0]);\r\n continue;\r\n }\r\n unset(pathValues[i - 1], keys[i - 1]);\r\n }\r\n}\r\n/**\r\n * A typed version of Object.keys\r\n */\r\nfunction keysOf(record) {\r\n return Object.keys(record);\r\n}\r\n// Uses same component provide as its own injections\r\n// Due to changes in https://github.com/vuejs/vue-next/pull/2424\r\nfunction injectWithSelf(symbol, def = undefined) {\r\n const vm = getCurrentInstance();\r\n return (vm === null || vm === void 0 ? void 0 : vm.provides[symbol]) || inject(symbol, def);\r\n}\r\nfunction warn(message) {\r\n warn$1(`[vee-validate]: ${message}`);\r\n}\r\n/**\r\n * Ensures we deal with a singular field value\r\n */\r\nfunction normalizeField(field) {\r\n if (Array.isArray(field)) {\r\n return field[0];\r\n }\r\n return field;\r\n}\r\nfunction resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {\r\n if (Array.isArray(currentValue)) {\r\n const newVal = [...currentValue];\r\n const idx = newVal.indexOf(checkedValue);\r\n idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);\r\n return newVal;\r\n }\r\n return currentValue === checkedValue ? uncheckedValue : checkedValue;\r\n}\r\n/**\r\n * Creates a throttled function that only invokes the provided function (`func`) at most once per within a given number of milliseconds\r\n * (`limit`)\r\n */\r\nfunction throttle(func, limit) {\r\n let inThrottle;\r\n let lastResult;\r\n return function (...args) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const context = this;\r\n if (!inThrottle) {\r\n inThrottle = true;\r\n setTimeout(() => (inThrottle = false), limit);\r\n lastResult = func.apply(context, args);\r\n }\r\n return lastResult;\r\n };\r\n}\r\nfunction debounceAsync(inner, ms = 0) {\r\n let timer = null;\r\n let resolves = [];\r\n return function (...args) {\r\n // Run the function after a certain amount of time\r\n if (timer) {\r\n window.clearTimeout(timer);\r\n }\r\n timer = window.setTimeout(() => {\r\n // Get the result of the inner function, then apply it to the resolve function of\r\n // each promise that has been created since the last time the inner function was run\r\n const result = inner(...args);\r\n resolves.forEach(r => r(result));\r\n resolves = [];\r\n }, ms);\r\n return new Promise(resolve => resolves.push(resolve));\r\n };\r\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst normalizeChildren = (tag, context, slotProps) => {\r\n if (!context.slots.default) {\r\n return context.slots.default;\r\n }\r\n if (typeof tag === 'string' || !tag) {\r\n return context.slots.default(slotProps());\r\n }\r\n return {\r\n default: () => { var _a, _b; return (_b = (_a = context.slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, slotProps()); },\r\n };\r\n};\r\n/**\r\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\r\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\r\n */\r\nfunction getBoundValue(el) {\r\n if (hasValueBinding(el)) {\r\n return el._value;\r\n }\r\n return undefined;\r\n}\r\n/**\r\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\r\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\r\n */\r\nfunction hasValueBinding(el) {\r\n return '_value' in el;\r\n}\n\nfunction normalizeEventValue(value) {\r\n if (!isEvent(value)) {\r\n return value;\r\n }\r\n const input = value.target;\r\n // Vue sets the current bound value on `_value` prop\r\n // for checkboxes it it should fetch the value binding type as is (boolean instead of string)\r\n if (hasCheckedAttr(input.type) && hasValueBinding(input)) {\r\n return getBoundValue(input);\r\n }\r\n if (input.type === 'file' && input.files) {\r\n return Array.from(input.files);\r\n }\r\n if (isNativeMultiSelect(input)) {\r\n return Array.from(input.options)\r\n .filter(opt => opt.selected && !opt.disabled)\r\n .map(getBoundValue);\r\n }\r\n // makes sure we get the actual `option` bound value\r\n // #3440\r\n if (isNativeSelect(input)) {\r\n const selectedOption = Array.from(input.options).find(opt => opt.selected);\r\n return selectedOption ? getBoundValue(selectedOption) : input.value;\r\n }\r\n return input.value;\r\n}\n\n/**\r\n * Normalizes the given rules expression.\r\n */\r\nfunction normalizeRules(rules) {\r\n const 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((prev, curr) => {\r\n const params = normalizeParams(rules[curr]);\r\n if (rules[curr] !== false) {\r\n prev[curr] = buildParams(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 return acc;\r\n }\r\n return rules.split('|').reduce((prev, rule) => {\r\n const parsedRule = parseRule(rule);\r\n if (!parsedRule.name) {\r\n return prev;\r\n }\r\n prev[parsedRule.name] = buildParams(parsedRule.params);\r\n return prev;\r\n }, acc);\r\n}\r\n/**\r\n * Normalizes a rule param.\r\n */\r\nfunction normalizeParams(params) {\r\n if (params === true) {\r\n return [];\r\n }\r\n if (Array.isArray(params)) {\r\n return params;\r\n }\r\n if (isObject(params)) {\r\n return params;\r\n }\r\n return [params];\r\n}\r\nfunction buildParams(provided) {\r\n const mapValueToLocator = (value) => {\r\n // A target param using interpolation\r\n if (typeof value === 'string' && value[0] === '@') {\r\n return createLocator(value.slice(1));\r\n }\r\n return value;\r\n };\r\n if (Array.isArray(provided)) {\r\n return provided.map(mapValueToLocator);\r\n }\r\n // #3073\r\n if (provided instanceof RegExp) {\r\n return [provided];\r\n }\r\n return Object.keys(provided).reduce((prev, key) => {\r\n prev[key] = mapValueToLocator(provided[key]);\r\n return prev;\r\n }, {});\r\n}\r\n/**\r\n * Parses a rule string expression.\r\n */\r\nconst parseRule = (rule) => {\r\n let params = [];\r\n const name = rule.split(':')[0];\r\n if (rule.includes(':')) {\r\n params = rule.split(':').slice(1).join(':').split(',');\r\n }\r\n return { name, params };\r\n};\r\nfunction createLocator(value) {\r\n const locator = (crossTable) => {\r\n const val = getFromPath(crossTable, value) || crossTable[value];\r\n return 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(isLocator);\r\n }\r\n return keysOf(params)\r\n .filter(key => isLocator(params[key]))\r\n .map(key => params[key]);\r\n}\n\nconst DEFAULT_CONFIG = {\r\n generateMessage: ({ field }) => `${field} is not valid.`,\r\n bails: true,\r\n validateOnBlur: true,\r\n validateOnChange: true,\r\n validateOnInput: false,\r\n validateOnModelUpdate: true,\r\n};\r\nlet currentConfig = Object.assign({}, DEFAULT_CONFIG);\r\nconst getConfig = () => currentConfig;\r\nconst setConfig = (newConf) => {\r\n currentConfig = Object.assign(Object.assign({}, currentConfig), newConf);\r\n};\r\nconst configure = setConfig;\n\n/**\r\n * Validates a value against the rules.\r\n */\r\nasync function validate(value, rules, options = {}) {\r\n const shouldBail = options === null || options === void 0 ? void 0 : options.bails;\r\n const field = {\r\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\r\n rules,\r\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\r\n formData: (options === null || options === void 0 ? void 0 : options.values) || {},\r\n };\r\n const result = await _validate(field, value);\r\n const errors = result.errors;\r\n return {\r\n errors,\r\n valid: !errors.length,\r\n };\r\n}\r\n/**\r\n * Starts the validation process.\r\n */\r\nasync function _validate(field, value) {\r\n if (isYupValidator(field.rules)) {\r\n return validateFieldWithYup(value, field.rules, { bails: field.bails });\r\n }\r\n // if a generic function, use it as the pipeline.\r\n if (isCallable(field.rules)) {\r\n const ctx = {\r\n field: field.name,\r\n form: field.formData,\r\n value: value,\r\n };\r\n const result = await field.rules(value, ctx);\r\n const isValid = typeof result !== 'string' && result;\r\n const message = typeof result === 'string' ? result : _generateFieldError(ctx);\r\n return {\r\n errors: !isValid ? [message] : [],\r\n };\r\n }\r\n const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });\r\n const errors = [];\r\n const rulesKeys = Object.keys(normalizedContext.rules);\r\n const length = rulesKeys.length;\r\n for (let i = 0; i < length; i++) {\r\n const rule = rulesKeys[i];\r\n const result = await _test(normalizedContext, value, {\r\n name: rule,\r\n params: normalizedContext.rules[rule],\r\n });\r\n if (result.error) {\r\n errors.push(result.error);\r\n if (field.bails) {\r\n return {\r\n errors,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n errors,\r\n };\r\n}\r\n/**\r\n * Handles yup validation\r\n */\r\nasync function validateFieldWithYup(value, validator, opts) {\r\n var _a;\r\n const errors = await validator\r\n .validate(value, {\r\n abortEarly: (_a = opts.bails) !== null && _a !== void 0 ? _a : true,\r\n })\r\n .then(() => [])\r\n .catch((err) => {\r\n // Yup errors have a name prop one them.\r\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\r\n if (err.name === 'ValidationError') {\r\n return err.errors;\r\n }\r\n // re-throw the error so we don't hide it\r\n throw err;\r\n });\r\n return {\r\n errors,\r\n };\r\n}\r\n/**\r\n * Tests a single input value against a rule.\r\n */\r\nasync function _test(field, value, rule) {\r\n const validator = resolveRule(rule.name);\r\n if (!validator) {\r\n throw new Error(`No such validator '${rule.name}' exists.`);\r\n }\r\n const params = fillTargetValues(rule.params, field.formData);\r\n const ctx = {\r\n field: field.name,\r\n value,\r\n form: field.formData,\r\n rule: Object.assign(Object.assign({}, rule), { params }),\r\n };\r\n const result = await validator(value, params, ctx);\r\n if (typeof result === 'string') {\r\n return {\r\n error: result,\r\n };\r\n }\r\n return {\r\n error: result ? undefined : _generateFieldError(ctx),\r\n };\r\n}\r\n/**\r\n * Generates error messages.\r\n */\r\nfunction _generateFieldError(fieldCtx) {\r\n const message = getConfig().generateMessage;\r\n if (!message) {\r\n return 'Field is invalid';\r\n }\r\n return message(fieldCtx);\r\n}\r\nfunction fillTargetValues(params, crossTable) {\r\n const normalize = (value) => {\r\n if (isLocator(value)) {\r\n return value(crossTable);\r\n }\r\n return value;\r\n };\r\n if (Array.isArray(params)) {\r\n return params.map(normalize);\r\n }\r\n return Object.keys(params).reduce((acc, param) => {\r\n acc[param] = normalize(params[param]);\r\n return acc;\r\n }, {});\r\n}\r\nasync function validateYupSchema(schema, values) {\r\n const errorObjects = await schema\r\n .validate(values, { abortEarly: false })\r\n .then(() => [])\r\n .catch((err) => {\r\n // Yup errors have a name prop one them.\r\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\r\n if (err.name !== 'ValidationError') {\r\n throw err;\r\n }\r\n // list of aggregated errors\r\n return err.inner || [];\r\n });\r\n const results = {};\r\n const errors = {};\r\n for (const error of errorObjects) {\r\n const messages = error.errors;\r\n results[error.path] = { valid: !messages.length, errors: messages };\r\n if (messages.length) {\r\n errors[error.path] = messages[0];\r\n }\r\n }\r\n return {\r\n valid: !errorObjects.length,\r\n results,\r\n errors,\r\n };\r\n}\r\nasync function validateObjectSchema(schema, values, opts) {\r\n const paths = keysOf(schema);\r\n const validations = paths.map(async (path) => {\r\n var _a, _b, _c;\r\n const fieldResult = await validate(getFromPath(values, path), schema[path], {\r\n name: ((_a = opts === null || opts === void 0 ? void 0 : opts.names) === null || _a === void 0 ? void 0 : _a[path]) || path,\r\n values: values,\r\n bails: (_c = (_b = opts === null || opts === void 0 ? void 0 : opts.bailsMap) === null || _b === void 0 ? void 0 : _b[path]) !== null && _c !== void 0 ? _c : true,\r\n });\r\n return Object.assign(Object.assign({}, fieldResult), { path });\r\n });\r\n let isAllValid = true;\r\n const validationResults = await Promise.all(validations);\r\n const results = {};\r\n const errors = {};\r\n for (const result of validationResults) {\r\n results[result.path] = {\r\n valid: result.valid,\r\n errors: result.errors,\r\n };\r\n if (!result.valid) {\r\n isAllValid = false;\r\n errors[result.path] = result.errors[0];\r\n }\r\n }\r\n return {\r\n valid: isAllValid,\r\n results,\r\n errors,\r\n };\r\n}\n\nfunction set(obj, key, val) {\n\tif (typeof val.value === 'object') val.value = klona(val.value);\n\tif (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n\t\tObject.defineProperty(obj, key, val);\n\t} else obj[key] = val.value;\n}\n\nfunction klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar i=0, k, list, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\ttmp = Object.create(x.__proto__ || null);\n\t} else if (str === '[object Array]') {\n\t\ttmp = Array(x.length);\n\t} else if (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t} else if (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t} else if (str === '[object Date]') {\n\t\ttmp = new Date(+x);\n\t} else if (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t} else if (str === '[object DataView]') {\n\t\ttmp = new x.constructor( klona(x.buffer) );\n\t} else if (str === '[object ArrayBuffer]') {\n\t\ttmp = x.slice(0);\n\t} else if (str.slice(-6) === 'Array]') {\n\t\t// ArrayBuffer.isView(x)\n\t\t// ~> `new` bcuz `Buffer.slice` => ref\n\t\ttmp = new x.constructor(x);\n\t}\n\n\tif (tmp) {\n\t\tfor (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {\n\t\t\tset(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n\t\t}\n\n\t\tfor (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {\n\t\t\tif (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;\n\t\t\tset(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n\t\t}\n\t}\n\n\treturn tmp || x;\n}\n\nvar es6 = 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 if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\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\nlet ID_COUNTER = 0;\r\nfunction useFieldState(path, init) {\r\n const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, !init.standalone);\r\n const { errorMessage, errors, setErrors } = _useFieldErrors(path, !init.standalone);\r\n const meta = _useFieldMeta(value, initialValue, errors);\r\n const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;\r\n function setState(state) {\r\n var _a;\r\n if ('value' in state) {\r\n value.value = state.value;\r\n }\r\n if ('errors' in state) {\r\n setErrors(state.errors);\r\n }\r\n if ('touched' in state) {\r\n meta.touched = (_a = state.touched) !== null && _a !== void 0 ? _a : meta.touched;\r\n }\r\n if ('initialValue' in state) {\r\n setInitialValue(state.initialValue);\r\n }\r\n }\r\n return {\r\n id,\r\n path,\r\n value,\r\n initialValue,\r\n meta,\r\n errors,\r\n errorMessage,\r\n setState,\r\n };\r\n}\r\n/**\r\n * Creates the field value and resolves the initial value\r\n */\r\nfunction _useFieldValue(path, modelValue, shouldInjectForm) {\r\n const form = shouldInjectForm ? injectWithSelf(FormContextKey, undefined) : undefined;\r\n const modelRef = ref(unref(modelValue));\r\n function resolveInitialValue() {\r\n if (!form) {\r\n return unref(modelRef);\r\n }\r\n return getFromPath(form.meta.value.initialValues, unref(path), unref(modelRef));\r\n }\r\n function setInitialValue(value) {\r\n if (!form) {\r\n modelRef.value = value;\r\n return;\r\n }\r\n form.setFieldInitialValue(unref(path), value);\r\n }\r\n const initialValue = computed(resolveInitialValue);\r\n // if no form is associated, use a regular ref.\r\n if (!form) {\r\n const value = ref(resolveInitialValue());\r\n return {\r\n value,\r\n initialValue,\r\n setInitialValue,\r\n };\r\n }\r\n // to set the initial value, first check if there is a current value, if there is then use it.\r\n // otherwise use the configured initial value if it exists.\r\n // prioritize model value over form values\r\n // #3429\r\n const currentValue = modelValue ? unref(modelValue) : getFromPath(form.values, unref(path), unref(initialValue));\r\n form.stageInitialValue(unref(path), currentValue);\r\n // otherwise use a computed setter that triggers the `setFieldValue`\r\n const value = computed({\r\n get() {\r\n return getFromPath(form.values, unref(path));\r\n },\r\n set(newVal) {\r\n form.setFieldValue(unref(path), newVal);\r\n },\r\n });\r\n return {\r\n value,\r\n initialValue,\r\n setInitialValue,\r\n };\r\n}\r\n/**\r\n * Creates meta flags state and some associated effects with them\r\n */\r\nfunction _useFieldMeta(currentValue, initialValue, errors) {\r\n const meta = reactive({\r\n touched: false,\r\n pending: false,\r\n valid: true,\r\n validated: !!unref(errors).length,\r\n initialValue: computed(() => unref(initialValue)),\r\n dirty: computed(() => {\r\n return !es6(unref(currentValue), unref(initialValue));\r\n }),\r\n });\r\n watch(errors, value => {\r\n meta.valid = !value.length;\r\n }, {\r\n immediate: true,\r\n flush: 'sync',\r\n });\r\n return meta;\r\n}\r\n/**\r\n * Creates the error message state for the field state\r\n */\r\nfunction _useFieldErrors(path, shouldInjectForm) {\r\n const form = shouldInjectForm ? injectWithSelf(FormContextKey, undefined) : undefined;\r\n function normalizeErrors(messages) {\r\n if (!messages) {\r\n return [];\r\n }\r\n return Array.isArray(messages) ? messages : [messages];\r\n }\r\n if (!form) {\r\n const errors = ref([]);\r\n return {\r\n errors,\r\n errorMessage: computed(() => errors.value[0]),\r\n setErrors: (messages) => {\r\n errors.value = normalizeErrors(messages);\r\n },\r\n };\r\n }\r\n const errors = computed(() => form.errorBag.value[unref(path)] || []);\r\n return {\r\n errors,\r\n errorMessage: computed(() => errors.value[0]),\r\n setErrors: (messages) => {\r\n form.setFieldErrorBag(unref(path), normalizeErrors(messages));\r\n },\r\n };\r\n}\n\nfunction installDevtoolsPlugin(app) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n setupDevtoolsPlugin({\r\n id: 'vee-validate-devtools-plugin',\r\n label: 'VeeValidate Plugin',\r\n packageName: 'vee-validate',\r\n homepage: 'https://vee-validate.logaretm.com/v4',\r\n app,\r\n logo: 'https://vee-validate.logaretm.com/v4/logo.png',\r\n }, setupApiHooks);\r\n }\r\n}\r\nconst DEVTOOLS_FORMS = {};\r\nconst DEVTOOLS_FIELDS = {};\r\nlet API;\r\nconst refreshInspector = throttle(() => {\r\n setTimeout(async () => {\r\n await nextTick();\r\n API === null || API === void 0 ? void 0 : API.sendInspectorState(INSPECTOR_ID);\r\n API === null || API === void 0 ? void 0 : API.sendInspectorTree(INSPECTOR_ID);\r\n }, 100);\r\n}, 100);\r\nfunction registerFormWithDevTools(form) {\r\n const vm = getCurrentInstance();\r\n if (!API) {\r\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\r\n if (!app) {\r\n return;\r\n }\r\n installDevtoolsPlugin(app);\r\n }\r\n DEVTOOLS_FORMS[form.formId] = Object.assign({}, form);\r\n DEVTOOLS_FORMS[form.formId]._vm = vm;\r\n onUnmounted(() => {\r\n delete DEVTOOLS_FORMS[form.formId];\r\n refreshInspector();\r\n });\r\n refreshInspector();\r\n}\r\nfunction registerSingleFieldWithDevtools(field) {\r\n const vm = getCurrentInstance();\r\n if (!API) {\r\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\r\n if (!app) {\r\n return;\r\n }\r\n installDevtoolsPlugin(app);\r\n }\r\n DEVTOOLS_FIELDS[field.id] = Object.assign({}, field);\r\n DEVTOOLS_FIELDS[field.id]._vm = vm;\r\n onUnmounted(() => {\r\n delete DEVTOOLS_FIELDS[field.id];\r\n refreshInspector();\r\n });\r\n refreshInspector();\r\n}\r\nconst INSPECTOR_ID = 'vee-validate-inspector';\r\nconst COLORS = {\r\n error: 0xbd4b4b,\r\n success: 0x06d77b,\r\n unknown: 0x54436b,\r\n white: 0xffffff,\r\n black: 0x000000,\r\n blue: 0x035397,\r\n purple: 0xb980f0,\r\n orange: 0xf5a962,\r\n gray: 0xbbbfca,\r\n};\r\nlet SELECTED_NODE = null;\r\nfunction setupApiHooks(api) {\r\n API = api;\r\n api.addInspector({\r\n id: INSPECTOR_ID,\r\n icon: 'rule',\r\n label: 'vee-validate',\r\n noSelectionText: 'Select a vee-validate node to inspect',\r\n actions: [\r\n {\r\n icon: 'done_outline',\r\n tooltip: 'Validate selected item',\r\n action: async () => {\r\n if (!SELECTED_NODE) {\r\n console.error('There is not a valid selected vee-validate node or component');\r\n return;\r\n }\r\n const result = await SELECTED_NODE.validate();\r\n console.log(result);\r\n },\r\n },\r\n {\r\n icon: 'delete_sweep',\r\n tooltip: 'Clear validation state of the selected item',\r\n action: () => {\r\n if (!SELECTED_NODE) {\r\n console.error('There is not a valid selected vee-validate node or component');\r\n return;\r\n }\r\n if ('id' in SELECTED_NODE) {\r\n SELECTED_NODE.resetField();\r\n return;\r\n }\r\n SELECTED_NODE.resetForm();\r\n },\r\n },\r\n ],\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.inspectorId !== INSPECTOR_ID) {\r\n return;\r\n }\r\n const forms = Object.values(DEVTOOLS_FORMS);\r\n const fields = Object.values(DEVTOOLS_FIELDS);\r\n payload.rootNodes = [\r\n ...forms.map(mapFormForDevtoolsInspector),\r\n ...fields.map(field => mapFieldForDevtoolsInspector(field)),\r\n ];\r\n });\r\n api.on.getInspectorState((payload, ctx) => {\r\n if (payload.inspectorId !== INSPECTOR_ID || ctx.currentTab !== `custom-inspector:${INSPECTOR_ID}`) {\r\n return;\r\n }\r\n const { form, field, type } = decodeNodeId(payload.nodeId);\r\n if (form && type === 'form') {\r\n payload.state = buildFormState(form);\r\n SELECTED_NODE = form;\r\n return;\r\n }\r\n if (field && type === 'field') {\r\n payload.state = buildFieldState(field);\r\n SELECTED_NODE = field;\r\n return;\r\n }\r\n SELECTED_NODE = null;\r\n });\r\n}\r\nfunction mapFormForDevtoolsInspector(form) {\r\n const { textColor, bgColor } = getTagTheme(form);\r\n const formTreeNodes = {};\r\n Object.values(form.fieldsByPath.value).forEach(field => {\r\n const fieldInstance = Array.isArray(field) ? field[0] : field;\r\n if (!fieldInstance) {\r\n return;\r\n }\r\n setInPath(formTreeNodes, unref(fieldInstance.name), mapFieldForDevtoolsInspector(fieldInstance, form));\r\n });\r\n function buildFormTree(tree, path = []) {\r\n const key = [...path].pop();\r\n if ('id' in tree) {\r\n return Object.assign(Object.assign({}, tree), { label: key || tree.label });\r\n }\r\n if (isObject(tree)) {\r\n return {\r\n id: `${path.join('.')}`,\r\n label: key || '',\r\n children: Object.keys(tree).map(key => buildFormTree(tree[key], [...path, key])),\r\n };\r\n }\r\n if (Array.isArray(tree)) {\r\n return {\r\n id: `${path.join('.')}`,\r\n label: `${key}[]`,\r\n children: tree.map((c, idx) => buildFormTree(c, [...path, String(idx)])),\r\n };\r\n }\r\n return { id: '', label: '', children: [] };\r\n }\r\n const { children } = buildFormTree(formTreeNodes);\r\n return {\r\n id: encodeNodeId(form),\r\n label: 'Form',\r\n children,\r\n tags: [\r\n {\r\n label: 'Form',\r\n textColor,\r\n backgroundColor: bgColor,\r\n },\r\n {\r\n label: `${Object.keys(form.fieldsByPath.value).length} fields`,\r\n textColor: COLORS.white,\r\n backgroundColor: COLORS.unknown,\r\n },\r\n ],\r\n };\r\n}\r\nfunction mapFieldForDevtoolsInspector(field, form) {\r\n const fieldInstance = normalizeField(field);\r\n const { textColor, bgColor } = getTagTheme(fieldInstance);\r\n const isGroup = Array.isArray(field) && field.length > 1;\r\n return {\r\n id: encodeNodeId(form, fieldInstance, !isGroup),\r\n label: unref(fieldInstance.name),\r\n children: Array.isArray(field) ? field.map(fieldItem => mapFieldForDevtoolsInspector(fieldItem, form)) : undefined,\r\n tags: [\r\n isGroup\r\n ? undefined\r\n : {\r\n label: 'Field',\r\n textColor,\r\n backgroundColor: bgColor,\r\n },\r\n !form\r\n ? {\r\n label: 'Standalone',\r\n textColor: COLORS.black,\r\n backgroundColor: COLORS.gray,\r\n }\r\n : undefined,\r\n !isGroup && fieldInstance.type === 'checkbox'\r\n ? {\r\n label: 'Checkbox',\r\n textColor: COLORS.white,\r\n backgroundColor: COLORS.blue,\r\n }\r\n : undefined,\r\n !isGroup && fieldInstance.type === 'radio'\r\n ? {\r\n label: 'Radio',\r\n textColor: COLORS.white,\r\n backgroundColor: COLORS.purple,\r\n }\r\n : undefined,\r\n isGroup\r\n ? {\r\n label: 'Group',\r\n textColor: COLORS.black,\r\n backgroundColor: COLORS.orange,\r\n }\r\n : undefined,\r\n ].filter(Boolean),\r\n };\r\n}\r\nfunction encodeNodeId(form, field, encodeIndex = true) {\r\n const fieldPath = form ? unref(field === null || field === void 0 ? void 0 : field.name) : field === null || field === void 0 ? void 0 : field.id;\r\n const fieldGroup = fieldPath ? form === null || form === void 0 ? void 0 : form.fieldsByPath.value[fieldPath] : undefined;\r\n let idx;\r\n if (encodeIndex && field && Array.isArray(fieldGroup)) {\r\n idx = fieldGroup.indexOf(field);\r\n }\r\n const idObject = { f: form === null || form === void 0 ? void 0 : form.formId, ff: fieldPath, idx, type: field ? 'field' : 'form' };\r\n return btoa(JSON.stringify(idObject));\r\n}\r\nfunction decodeNodeId(nodeId) {\r\n try {\r\n const idObject = JSON.parse(atob(nodeId));\r\n const form = DEVTOOLS_FORMS[idObject.f];\r\n if (!form && idObject.ff) {\r\n const field = DEVTOOLS_FIELDS[idObject.ff];\r\n if (!field) {\r\n return {};\r\n }\r\n return {\r\n type: idObject.type,\r\n field,\r\n };\r\n }\r\n if (!form) {\r\n return {};\r\n }\r\n const fieldGroup = form.fieldsByPath.value[idObject.ff];\r\n return {\r\n type: idObject.type,\r\n form,\r\n field: Array.isArray(fieldGroup) ? fieldGroup[idObject.idx || 0] : fieldGroup,\r\n };\r\n }\r\n catch (err) {\r\n // console.error(`Devtools: [vee-validate] Failed to parse node id ${nodeId}`);\r\n }\r\n return {};\r\n}\r\nfunction buildFieldState(field) {\r\n const { errors, meta, value } = field;\r\n return {\r\n 'Field state': [\r\n { key: 'errors', value: errors.value },\r\n {\r\n key: 'initialValue',\r\n value: meta.initialValue,\r\n },\r\n {\r\n key: 'currentValue',\r\n value: value.value,\r\n },\r\n {\r\n key: 'touched',\r\n value: meta.touched,\r\n },\r\n {\r\n key: 'dirty',\r\n value: meta.dirty,\r\n },\r\n {\r\n key: 'valid',\r\n value: meta.valid,\r\n },\r\n ],\r\n };\r\n}\r\nfunction buildFormState(form) {\r\n const { errorBag, meta, values, isSubmitting, submitCount } = form;\r\n return {\r\n 'Form state': [\r\n {\r\n key: 'submitCount',\r\n value: submitCount.value,\r\n },\r\n {\r\n key: 'isSubmitting',\r\n value: isSubmitting.value,\r\n },\r\n {\r\n key: 'touched',\r\n value: meta.value.touched,\r\n },\r\n {\r\n key: 'dirty',\r\n value: meta.value.dirty,\r\n },\r\n {\r\n key: 'valid',\r\n value: meta.value.valid,\r\n },\r\n {\r\n key: 'initialValues',\r\n value: meta.value.initialValues,\r\n },\r\n {\r\n key: 'currentValues',\r\n value: values,\r\n },\r\n {\r\n key: 'errors',\r\n value: keysOf(errorBag.value).reduce((acc, key) => {\r\n var _a;\r\n const message = (_a = errorBag.value[key]) === null || _a === void 0 ? void 0 : _a[0];\r\n if (message) {\r\n acc[key] = message;\r\n }\r\n return acc;\r\n }, {}),\r\n },\r\n ],\r\n };\r\n}\r\n/**\r\n * Resolves the tag color based on the form state\r\n */\r\nfunction getTagTheme(fieldOrForm) {\r\n // const fallbackColors = {\r\n // bgColor: COLORS.unknown,\r\n // textColor: COLORS.white,\r\n // };\r\n const isValid = 'id' in fieldOrForm ? fieldOrForm.meta.valid : fieldOrForm.meta.value.valid;\r\n return {\r\n bgColor: isValid ? COLORS.success : COLORS.error,\r\n textColor: isValid ? COLORS.black : COLORS.white,\r\n };\r\n}\n\n/**\r\n * Creates a field composite.\r\n */\r\nfunction useField(name, rules, opts) {\r\n if (hasCheckedAttr(opts === null || opts === void 0 ? void 0 : opts.type)) {\r\n return useCheckboxField(name, rules, opts);\r\n }\r\n return _useField(name, rules, opts);\r\n}\r\nfunction _useField(name, rules, opts) {\r\n const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, standalone, } = normalizeOptions(unref(name), opts);\r\n const form = !standalone ? injectWithSelf(FormContextKey) : undefined;\r\n const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {\r\n modelValue,\r\n standalone,\r\n });\r\n /**\r\n * Handles common onBlur meta update\r\n */\r\n const handleBlur = () => {\r\n meta.touched = true;\r\n };\r\n const normalizedRules = computed(() => {\r\n let rulesValue = unref(rules);\r\n const schema = unref(form === null || form === void 0 ? void 0 : form.schema);\r\n if (schema && !isYupValidator(schema)) {\r\n rulesValue = extractRuleFromSchema(schema, unref(name)) || rulesValue;\r\n }\r\n if (isYupValidator(rulesValue) || isCallable(rulesValue)) {\r\n return rulesValue;\r\n }\r\n return normalizeRules(rulesValue);\r\n });\r\n async function validateCurrentValue(mode) {\r\n var _a, _b;\r\n if (form === null || form === void 0 ? void 0 : form.validateSchema) {\r\n return (_a = (await form.validateSchema(mode)).results[unref(name)]) !== null && _a !== void 0 ? _a : { valid: true, errors: [] };\r\n }\r\n return validate(value.value, normalizedRules.value, {\r\n name: unref(label) || unref(name),\r\n values: (_b = form === null || form === void 0 ? void 0 : form.values) !== null && _b !== void 0 ? _b : {},\r\n bails,\r\n });\r\n }\r\n async function validateWithStateMutation() {\r\n meta.pending = true;\r\n meta.validated = true;\r\n const result = await validateCurrentValue('validated-only');\r\n setState({ errors: result.errors });\r\n meta.pending = false;\r\n return result;\r\n }\r\n async function validateValidStateOnly() {\r\n const result = await validateCurrentValue('silent');\r\n meta.valid = result.valid;\r\n return result;\r\n }\r\n function validate$1(opts) {\r\n if (!(opts === null || opts === void 0 ? void 0 : opts.mode) || (opts === null || opts === void 0 ? void 0 : opts.mode) === 'force') {\r\n return validateWithStateMutation();\r\n }\r\n if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'validated-only') {\r\n return validateWithStateMutation();\r\n }\r\n return validateValidStateOnly();\r\n }\r\n // Common input/change event handler\r\n const handleChange = (e, shouldValidate = true) => {\r\n const newValue = normalizeEventValue(e);\r\n value.value = newValue;\r\n if (!validateOnValueUpdate && shouldValidate) {\r\n validateWithStateMutation();\r\n }\r\n };\r\n // Runs the initial validation\r\n onMounted(() => {\r\n if (validateOnMount) {\r\n return validateWithStateMutation();\r\n }\r\n // validate self initially if no form was handling this\r\n // forms should have their own initial silent validation run to make things more efficient\r\n if (!form || !form.validateSchema) {\r\n validateValidStateOnly();\r\n }\r\n });\r\n function setTouched(isTouched) {\r\n meta.touched = isTouched;\r\n }\r\n let unwatchValue;\r\n function watchValue() {\r\n unwatchValue = watch(value, validateOnValueUpdate ? validateWithStateMutation : validateValidStateOnly, {\r\n deep: true,\r\n });\r\n }\r\n watchValue();\r\n function resetField(state) {\r\n var _a;\r\n unwatchValue === null || unwatchValue === void 0 ? void 0 : unwatchValue();\r\n const newValue = state && 'value' in state ? state.value : initialValue.value;\r\n setState({\r\n value: klona(newValue),\r\n initialValue: klona(newValue),\r\n touched: (_a = state === null || state === void 0 ? void 0 : state.touched) !== null && _a !== void 0 ? _a : false,\r\n errors: (state === null || state === void 0 ? void 0 : state.errors) || [],\r\n });\r\n meta.pending = false;\r\n meta.validated = false;\r\n validateValidStateOnly();\r\n // need to watch at next tick to avoid triggering the value watcher\r\n nextTick(() => {\r\n watchValue();\r\n });\r\n }\r\n function setValue(newValue) {\r\n value.value = newValue;\r\n }\r\n function setErrors(errors) {\r\n setState({ errors: Array.isArray(errors) ? errors : [errors] });\r\n }\r\n const field = {\r\n id,\r\n name,\r\n label,\r\n value,\r\n meta,\r\n errors,\r\n errorMessage,\r\n type,\r\n checkedValue,\r\n uncheckedValue,\r\n bails,\r\n resetField,\r\n handleReset: () => resetField(),\r\n validate: validate$1,\r\n handleChange,\r\n handleBlur,\r\n setState,\r\n setTouched,\r\n setErrors,\r\n setValue,\r\n };\r\n provide(FieldContextKey, field);\r\n if (isRef(rules) && typeof unref(rules) !== 'function') {\r\n watch(rules, (value, oldValue) => {\r\n if (es6(value, oldValue)) {\r\n return;\r\n }\r\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\r\n }, {\r\n deep: true,\r\n });\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n field._vm = getCurrentInstance();\r\n watch(() => (Object.assign(Object.assign({ errors: errors.value }, meta), { value: value.value })), refreshInspector, {\r\n deep: true,\r\n });\r\n if (!form) {\r\n registerSingleFieldWithDevtools(field);\r\n }\r\n }\r\n // if no associated form return the field API immediately\r\n if (!form) {\r\n return field;\r\n }\r\n // associate the field with the given form\r\n form.register(field);\r\n onBeforeUnmount(() => {\r\n form.unregister(field);\r\n });\r\n // extract cross-field dependencies in a computed prop\r\n const dependencies = computed(() => {\r\n const rulesVal = normalizedRules.value;\r\n // is falsy, a function schema or a yup schema\r\n if (!rulesVal || isCallable(rulesVal) || isYupValidator(rulesVal)) {\r\n return {};\r\n }\r\n return Object.keys(rulesVal).reduce((acc, rule) => {\r\n const deps = extractLocators(rulesVal[rule])\r\n .map((dep) => dep.__locatorRef)\r\n .reduce((depAcc, depName) => {\r\n const depValue = getFromPath(form.values, depName) || form.values[depName];\r\n if (depValue !== undefined) {\r\n depAcc[depName] = depValue;\r\n }\r\n return depAcc;\r\n }, {});\r\n Object.assign(acc, deps);\r\n return acc;\r\n }, {});\r\n });\r\n // Adds a watcher that runs the validation whenever field dependencies change\r\n watch(dependencies, (deps, oldDeps) => {\r\n // Skip if no dependencies or if the field wasn't manipulated\r\n if (!Object.keys(deps).length) {\r\n return;\r\n }\r\n const shouldValidate = !es6(deps, oldDeps);\r\n if (shouldValidate) {\r\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\r\n }\r\n });\r\n return field;\r\n}\r\n/**\r\n * Normalizes partial field options to include the full options\r\n */\r\nfunction normalizeOptions(name, opts) {\r\n const defaults = () => ({\r\n initialValue: undefined,\r\n validateOnMount: false,\r\n bails: true,\r\n rules: '',\r\n label: name,\r\n validateOnValueUpdate: true,\r\n standalone: false,\r\n });\r\n if (!opts) {\r\n return defaults();\r\n }\r\n // TODO: Deprecate this in next major release\r\n const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;\r\n return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { checkedValue });\r\n}\r\n/**\r\n * Extracts the validation rules from a schema\r\n */\r\nfunction extractRuleFromSchema(schema, fieldName) {\r\n // no schema at all\r\n if (!schema) {\r\n return undefined;\r\n }\r\n // there is a key on the schema object for this field\r\n return schema[fieldName];\r\n}\r\nfunction useCheckboxField(name, rules, opts) {\r\n const form = !(opts === null || opts === void 0 ? void 0 : opts.standalone) ? injectWithSelf(FormContextKey) : undefined;\r\n const checkedValue = opts === null || opts === void 0 ? void 0 : opts.checkedValue;\r\n const uncheckedValue = opts === null || opts === void 0 ? void 0 : opts.uncheckedValue;\r\n function patchCheckboxApi(field) {\r\n const handleChange = field.handleChange;\r\n const checked = computed(() => {\r\n const currentValue = unref(field.value);\r\n const checkedVal = unref(checkedValue);\r\n return Array.isArray(currentValue) ? currentValue.includes(checkedVal) : checkedVal === currentValue;\r\n });\r\n function handleCheckboxChange(e, shouldValidate = true) {\r\n var _a, _b;\r\n if (checked.value === ((_b = (_a = e) === null || _a === void 0 ? void 0 : _a.target) === null || _b === void 0 ? void 0 : _b.checked)) {\r\n return;\r\n }\r\n let newValue = normalizeEventValue(e);\r\n // Single checkbox field without a form to toggle it's value\r\n if (!form) {\r\n newValue = resolveNextCheckboxValue(unref(field.value), unref(checkedValue), unref(uncheckedValue));\r\n }\r\n handleChange(newValue, shouldValidate);\r\n }\r\n onBeforeUnmount(() => {\r\n // toggles the checkbox value if it was checked\r\n if (checked.value) {\r\n handleCheckboxChange(unref(checkedValue), false);\r\n }\r\n });\r\n return Object.assign(Object.assign({}, field), { checked,\r\n checkedValue,\r\n uncheckedValue, handleChange: handleCheckboxChange });\r\n }\r\n return patchCheckboxApi(_useField(name, rules, opts));\r\n}\n\nconst FieldImpl = defineComponent({\r\n name: 'Field',\r\n inheritAttrs: false,\r\n props: {\r\n as: {\r\n type: [String, Object],\r\n default: undefined,\r\n },\r\n name: {\r\n type: String,\r\n required: true,\r\n },\r\n rules: {\r\n type: [Object, String, Function],\r\n default: undefined,\r\n },\r\n validateOnMount: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n validateOnBlur: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n validateOnChange: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n validateOnInput: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n validateOnModelUpdate: {\r\n type: Boolean,\r\n default: undefined,\r\n },\r\n bails: {\r\n type: Boolean,\r\n default: () => getConfig().bails,\r\n },\r\n label: {\r\n type: String,\r\n default: undefined,\r\n },\r\n uncheckedValue: {\r\n type: null,\r\n default: undefined,\r\n },\r\n modelValue: {\r\n type: null,\r\n default: IS_ABSENT,\r\n },\r\n modelModifiers: {\r\n type: null,\r\n default: () => ({}),\r\n },\r\n 'onUpdate:modelValue': {\r\n type: null,\r\n default: undefined,\r\n },\r\n standalone: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n setup(props, ctx) {\r\n const rules = toRef(props, 'rules');\r\n const name = toRef(props, 'name');\r\n const label = toRef(props, 'label');\r\n const uncheckedValue = toRef(props, 'uncheckedValue');\r\n const hasModelEvents = isPropPresent(props, 'onUpdate:modelValue');\r\n const { errors, value, errorMessage, validate: validateField, handleChange, handleBlur, setTouched, resetField, handleReset, meta, checked, setErrors, } = useField(name, rules, {\r\n validateOnMount: props.validateOnMount,\r\n bails: props.bails,\r\n standalone: props.standalone,\r\n type: ctx.attrs.type,\r\n initialValue: resolveInitialValue(props, ctx),\r\n // Only for checkboxes and radio buttons\r\n checkedValue: ctx.attrs.value,\r\n uncheckedValue,\r\n label,\r\n validateOnValueUpdate: false,\r\n });\r\n // If there is a v-model applied on the component we need to emit the `update:modelValue` whenever the value binding changes\r\n const onChangeHandler = hasModelEvents\r\n ? function handleChangeWithModel(e, shouldValidate = true) {\r\n handleChange(e, shouldValidate);\r\n ctx.emit('update:modelValue', value.value);\r\n }\r\n : handleChange;\r\n const handleInput = (e) => {\r\n if (!hasCheckedAttr(ctx.attrs.type)) {\r\n value.value = normalizeEventValue(e);\r\n }\r\n };\r\n const onInputHandler = hasModelEvents\r\n ? function handleInputWithModel(e) {\r\n handleInput(e);\r\n ctx.emit('update:modelValue', value.value);\r\n }\r\n : handleInput;\r\n const fieldProps = computed(() => {\r\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = resolveValidationTriggers(props);\r\n const baseOnBlur = [handleBlur, ctx.attrs.onBlur, validateOnBlur ? validateField : undefined].filter(Boolean);\r\n const baseOnInput = [(e) => onChangeHandler(e, validateOnInput), ctx.attrs.onInput].filter(Boolean);\r\n const baseOnChange = [(e) => onChangeHandler(e, validateOnChange), ctx.attrs.onChange].filter(Boolean);\r\n const attrs = {\r\n name: props.name,\r\n onBlur: baseOnBlur,\r\n onInput: baseOnInput,\r\n onChange: baseOnChange,\r\n };\r\n attrs['onUpdate:modelValue'] = e => onChangeHandler(e, validateOnModelUpdate);\r\n if (hasCheckedAttr(ctx.attrs.type) && checked) {\r\n attrs.checked = checked.value;\r\n }\r\n else {\r\n attrs.value = value.value;\r\n }\r\n const tag = resolveTag(props, ctx);\r\n if (shouldHaveValueBinding(tag, ctx.attrs)) {\r\n delete attrs.value;\r\n }\r\n return attrs;\r\n });\r\n const modelValue = toRef(props, 'modelValue');\r\n watch(modelValue, newModelValue => {\r\n // Don't attempt to sync absent values\r\n if (newModelValue === IS_ABSENT && value.value === undefined) {\r\n return;\r\n }\r\n if (newModelValue !== applyModifiers(value.value, props.modelModifiers)) {\r\n value.value = newModelValue === IS_ABSENT ? undefined : newModelValue;\r\n validateField();\r\n }\r\n });\r\n function slotProps() {\r\n return {\r\n field: fieldProps.value,\r\n value: value.value,\r\n meta,\r\n errors: errors.value,\r\n errorMessage: errorMessage.value,\r\n validate: validateField,\r\n resetField,\r\n handleChange: onChangeHandler,\r\n handleInput: onInputHandler,\r\n handleReset,\r\n handleBlur,\r\n setTouched,\r\n setErrors,\r\n };\r\n }\r\n ctx.expose({\r\n setErrors,\r\n setTouched,\r\n reset: resetField,\r\n validate: validateField,\r\n handleChange,\r\n });\r\n return () => {\r\n const tag = resolveDynamicComponent(resolveTag(props, ctx));\r\n const children = normalizeChildren(tag, ctx, slotProps);\r\n if (tag) {\r\n return h(tag, Object.assign(Object.assign({}, ctx.attrs), fieldProps.value), children);\r\n }\r\n return children;\r\n };\r\n },\r\n});\r\nfunction resolveTag(props, ctx) {\r\n let tag = props.as || '';\r\n if (!props.as && !ctx.slots.default) {\r\n tag = 'input';\r\n }\r\n return tag;\r\n}\r\nfunction resolveValidationTriggers(props) {\r\n var _a, _b, _c, _d;\r\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = getConfig();\r\n return {\r\n validateOnInput: (_a = props.validateOnInput) !== null && _a !== void 0 ? _a : validateOnInput,\r\n validateOnChange: (_b = props.validateOnChange) !== null && _b !== void 0 ? _b : validateOnChange,\r\n validateOnBlur: (_c = props.validateOnBlur) !== null && _c !== void 0 ? _c : validateOnBlur,\r\n validateOnModelUpdate: (_d = props.validateOnModelUpdate) !== null && _d !== void 0 ? _d : validateOnModelUpdate,\r\n };\r\n}\r\nfunction applyModifiers(value, modifiers) {\r\n if (modifiers.number) {\r\n return toNumber(value);\r\n }\r\n return value;\r\n}\r\nfunction resolveInitialValue(props, ctx) {\r\n // Gets the initial value either from `value` prop/attr or `v-model` binding (modelValue)\r\n // For checkboxes and radio buttons it will always be the model value not the `value` attribute\r\n if (!hasCheckedAttr(ctx.attrs.type)) {\r\n return isPropPresent(props, 'modelValue') ? props.modelValue : ctx.attrs.value;\r\n }\r\n return isPropPresent(props, 'modelValue') ? props.modelValue : undefined;\r\n}\r\nconst Field = FieldImpl;\n\nlet FORM_COUNTER = 0;\r\nfunction useForm(opts) {\r\n const formId = FORM_COUNTER++;\r\n // Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value\r\n // TODO: This won't be needed if we centralize all the state inside the `form` for form inputs\r\n let RESET_LOCK = false;\r\n // A lookup containing fields or field groups\r\n const fieldsByPath = ref({});\r\n // If the form is currently submitting\r\n const isSubmitting = ref(false);\r\n // The number of times the user tried to submit the form\r\n const submitCount = ref(0);\r\n // dictionary for field arrays to receive various signals like reset\r\n const fieldArraysLookup = {};\r\n // a private ref for all form values\r\n const formValues = reactive(klona(unref(opts === null || opts === void 0 ? void 0 : opts.initialValues) || {}));\r\n // the source of errors for the form fields\r\n const { errorBag, setErrorBag, setFieldErrorBag } = useErrorBag(opts === null || opts === void 0 ? void 0 : opts.initialErrors);\r\n // Gets the first error of each field\r\n const errors = computed(() => {\r\n return keysOf(errorBag.value).reduce((acc, key) => {\r\n const bag = errorBag.value[key];\r\n if (bag && bag.length) {\r\n acc[key] = bag[0];\r\n }\r\n return acc;\r\n }, {});\r\n });\r\n function getFirstFieldAtPath(path) {\r\n const fieldOrGroup = fieldsByPath.value[path];\r\n return Array.isArray(fieldOrGroup) ? fieldOrGroup[0] : fieldOrGroup;\r\n }\r\n function fieldExists(path) {\r\n return !!fieldsByPath.value[path];\r\n }\r\n /**\r\n * Holds a computed reference to all fields names and labels\r\n */\r\n const fieldNames = computed(() => {\r\n return keysOf(fieldsByPath.value).reduce((names, path) => {\r\n const field = getFirstFieldAtPath(path);\r\n if (field) {\r\n names[path] = unref(field.label || field.name) || '';\r\n }\r\n return names;\r\n }, {});\r\n });\r\n const fieldBailsMap = computed(() => {\r\n return keysOf(fieldsByPath.value).reduce((map, path) => {\r\n var _a;\r\n const field = getFirstFieldAtPath(path);\r\n if (field) {\r\n map[path] = (_a = field.bails) !== null && _a !== void 0 ? _a : true;\r\n }\r\n return map;\r\n }, {});\r\n });\r\n // mutable non-reactive reference to initial errors\r\n // we need this to process initial errors then unset them\r\n const initialErrors = Object.assign({}, ((opts === null || opts === void 0 ? void 0 : opts.initialErrors) || {}));\r\n // initial form values\r\n const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(fieldsByPath, formValues, opts === null || opts === void 0 ? void 0 : opts.initialValues);\r\n // form meta aggregations\r\n const meta = useFormMeta(fieldsByPath, formValues, initialValues, errors);\r\n const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;\r\n const formCtx = {\r\n formId,\r\n fieldsByPath,\r\n values: formValues,\r\n errorBag,\r\n errors,\r\n schema,\r\n submitCount,\r\n meta,\r\n isSubmitting,\r\n fieldArraysLookup,\r\n validateSchema: unref(schema) ? validateSchema : undefined,\r\n validate,\r\n register: registerField,\r\n unregister: unregisterField,\r\n setFieldErrorBag,\r\n validateField,\r\n setFieldValue,\r\n setValues,\r\n setErrors,\r\n setFieldError,\r\n setFieldTouched,\r\n setTouched,\r\n resetForm,\r\n handleSubmit,\r\n stageInitialValue,\r\n unsetInitialValue,\r\n setFieldInitialValue,\r\n };\r\n function isFieldGroup(fieldOrGroup) {\r\n return Array.isArray(fieldOrGroup);\r\n }\r\n function applyFieldMutation(fieldOrGroup, mutation) {\r\n if (Array.isArray(fieldOrGroup)) {\r\n return fieldOrGroup.forEach(mutation);\r\n }\r\n return mutation(fieldOrGroup);\r\n }\r\n function mutateAllFields(mutation) {\r\n Object.values(fieldsByPath.value).forEach(field => {\r\n if (!field) {\r\n return;\r\n }\r\n // avoid resetting the field values, because they should've been reset already.\r\n applyFieldMutation(field, mutation);\r\n });\r\n }\r\n /**\r\n * Manually sets an error message on a specific field\r\n */\r\n function setFieldError(field, message) {\r\n setFieldErrorBag(field, message);\r\n }\r\n /**\r\n * Sets errors for the fields specified in the object\r\n */\r\n function setErrors(fields) {\r\n setErrorBag(fields);\r\n }\r\n /**\r\n * Sets a single field value\r\n */\r\n function setFieldValue(field, value, { force } = { force: false }) {\r\n var _a;\r\n const fieldInstance = fieldsByPath.value[field];\r\n const clonedValue = klona(value);\r\n // field wasn't found, create a virtual field as a placeholder\r\n if (!fieldInstance) {\r\n setInPath(formValues, field, clonedValue);\r\n return;\r\n }\r\n if (isFieldGroup(fieldInstance) && ((_a = fieldInstance[0]) === null || _a === void 0 ? void 0 : _a.type) === 'checkbox' && !Array.isArray(value)) {\r\n // Multiple checkboxes, and only one of them got updated\r\n const newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field) || [], value, undefined));\r\n setInPath(formValues, field, newValue);\r\n return;\r\n }\r\n let newValue = value;\r\n // Single Checkbox: toggles the field value unless the field is being reset then force it\r\n if (!isFieldGroup(fieldInstance) && fieldInstance.type === 'checkbox' && !force && !RESET_LOCK) {\r\n newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field), value, unref(fieldInstance.uncheckedValue)));\r\n }\r\n setInPath(formValues, field, newValue);\r\n }\r\n /**\r\n * Sets multiple fields values\r\n */\r\n function setValues(fields) {\r\n // clean up old values\r\n keysOf(formValues).forEach(key => {\r\n delete formValues[key];\r\n });\r\n // set up new values\r\n keysOf(fields).forEach(path => {\r\n setFieldValue(path, fields[path]);\r\n });\r\n // regenerate the arrays when the form values change\r\n Object.values(fieldArraysLookup).forEach(f => f && f.reset());\r\n }\r\n /**\r\n * Sets the touched meta state on a field\r\n */\r\n function setFieldTouched(field, isTouched) {\r\n const fieldInstance = fieldsByPath.value[field];\r\n if (fieldInstance) {\r\n applyFieldMutation(fieldInstance, f => f.setTouched(isTouched));\r\n }\r\n }\r\n /**\r\n * Sets the touched meta state on multiple fields\r\n */\r\n function setTouched(fields) {\r\n keysOf(fields).forEach(field => {\r\n setFieldTouched(field, !!fields[field]);\r\n });\r\n }\r\n /**\r\n * Resets all fields\r\n */\r\n function resetForm(state) {\r\n RESET_LOCK = true;\r\n // set initial values if provided\r\n if (state === null || state === void 0 ? void 0 : state.values) {\r\n setInitialValues(state.values);\r\n setValues(state === null || state === void 0 ? void 0 : state.values);\r\n }\r\n else {\r\n // clean up the initial values back to the original\r\n setInitialValues(originalInitialValues.value);\r\n // otherwise clean the current values\r\n setValues(originalInitialValues.value);\r\n }\r\n // avoid resetting the field values, because they should've been reset already.\r\n mutateAllFields(f => f.resetField());\r\n if (state === null || state === void 0 ? void 0 : state.touched) {\r\n setTouched(state.touched);\r\n }\r\n setErrors((state === null || state === void 0 ? void 0 : state.errors) || {});\r\n submitCount.value = (state === null || state === void 0 ? void 0 : state.submitCount) || 0;\r\n nextTick(() => {\r\n RESET_LOCK = false;\r\n });\r\n }\r\n function insertFieldAtPath(field, path) {\r\n const rawField = markRaw(field);\r\n const fieldPath = path;\r\n // first field at that path\r\n if (!fieldsByPath.value[fieldPath]) {\r\n fieldsByPath.value[fieldPath] = rawField;\r\n return;\r\n }\r\n const fieldAtPath = fieldsByPath.value[fieldPath];\r\n if (fieldAtPath && !Array.isArray(fieldAtPath)) {\r\n fieldsByPath.value[fieldPath] = [fieldAtPath];\r\n }\r\n // add the new array to that path\r\n fieldsByPath.value[fieldPath] = [...fieldsByPath.value[fieldPath], rawField];\r\n }\r\n function removeFieldFromPath(field, path) {\r\n const fieldPath = path;\r\n const fieldAtPath = fieldsByPath.value[fieldPath];\r\n if (!fieldAtPath) {\r\n return;\r\n }\r\n // same field at path\r\n if (!isFieldGroup(fieldAtPath) && field.id === fieldAtPath.id) {\r\n delete fieldsByPath.value[fieldPath];\r\n return;\r\n }\r\n if (isFieldGroup(fieldAtPath)) {\r\n const idx = fieldAtPath.findIndex(f => f.id === field.id);\r\n if (idx === -1) {\r\n return;\r\n }\r\n fieldAtPath.splice(idx, 1);\r\n if (fieldAtPath.length === 1) {\r\n fieldsByPath.value[fieldPath] = fieldAtPath[0];\r\n return;\r\n }\r\n if (!fieldAtPath.length) {\r\n delete fieldsByPath.value[fieldPath];\r\n }\r\n }\r\n }\r\n function registerField(field) {\r\n const fieldPath = unref(field.name);\r\n insertFieldAtPath(field, fieldPath);\r\n if (isRef(field.name)) {\r\n // ensures when a field's name was already taken that it preserves its same value\r\n // necessary for fields generated by loops\r\n watch(field.name, async (newPath, oldPath) => {\r\n // cache the value\r\n await nextTick();\r\n removeFieldFromPath(field, oldPath);\r\n insertFieldAtPath(field, newPath);\r\n // re-validate if either path had errors before\r\n if (errors.value[oldPath] || errors.value[newPath]) {\r\n // clear up both paths errors\r\n setFieldError(oldPath, undefined);\r\n validateField(newPath);\r\n }\r\n // clean up the old path if no other field is sharing that name\r\n // #3325\r\n await nextTick();\r\n if (!fieldExists(oldPath)) {\r\n unsetPath(formValues, oldPath);\r\n }\r\n });\r\n }\r\n // if field already had errors (initial errors) that's not user-set, validate it again to ensure state is correct\r\n // the difference being that `initialErrors` will contain the error message while other errors (pre-validated schema) won't have them as initial errors\r\n // #3342\r\n const initialErrorMessage = unref(field.errorMessage);\r\n if (initialErrorMessage && (initialErrors === null || initialErrors === void 0 ? void 0 : initialErrors[fieldPath]) !== initialErrorMessage) {\r\n validateField(fieldPath);\r\n }\r\n // marks the initial error as \"consumed\" so it won't be matched later with same non-initial error\r\n delete initialErrors[fieldPath];\r\n }\r\n function unregisterField(field) {\r\n const fieldName = unref(field.name);\r\n removeFieldFromPath(field, fieldName);\r\n nextTick(() => {\r\n // clears a field error on unmounted\r\n // we wait till next tick to make sure if the field is completely removed and doesn't have any siblings like checkboxes\r\n // #3384\r\n if (!fieldExists(fieldName)) {\r\n setFieldError(fieldName, undefined);\r\n unsetPath(formValues, fieldName);\r\n }\r\n });\r\n }\r\n async function validate(opts) {\r\n mutateAllFields(f => (f.meta.validated = true));\r\n if (formCtx.validateSchema) {\r\n return formCtx.validateSchema((opts === null || opts === void 0 ? void 0 : opts.mode) || 'force');\r\n }\r\n // No schema, each field is responsible to validate itself\r\n const validations = await Promise.all(Object.values(fieldsByPath.value).map(field => {\r\n const fieldInstance = Array.isArray(field) ? field[0] : field;\r\n if (!fieldInstance) {\r\n return Promise.resolve({ key: '', valid: true, errors: [] });\r\n }\r\n return fieldInstance.validate(opts).then((result) => {\r\n return {\r\n key: unref(fieldInstance.name),\r\n valid: result.valid,\r\n errors: result.errors,\r\n };\r\n });\r\n }));\r\n const results = {};\r\n const errors = {};\r\n for (const validation of validations) {\r\n results[validation.key] = {\r\n valid: validation.valid,\r\n errors: validation.errors,\r\n };\r\n if (validation.errors.length) {\r\n errors[validation.key] = validation.errors[0];\r\n }\r\n }\r\n return {\r\n valid: validations.every(r => r.valid),\r\n results,\r\n errors,\r\n };\r\n }\r\n async function validateField(field) {\r\n const fieldInstance = fieldsByPath.value[field];\r\n if (!fieldInstance) {\r\n warn$1(`field with name ${field} was not found`);\r\n return Promise.resolve({ errors: [], valid: true });\r\n }\r\n if (Array.isArray(fieldInstance)) {\r\n return fieldInstance.map(f => f.validate())[0];\r\n }\r\n return fieldInstance.validate();\r\n }\r\n function handleSubmit(fn, onValidationError) {\r\n return function submissionHandler(e) {\r\n if (e instanceof Event) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n // Touch all fields\r\n setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {\r\n acc[field] = true;\r\n return acc;\r\n }, {}));\r\n isSubmitting.value = true;\r\n submitCount.value++;\r\n return validate()\r\n .then(result => {\r\n if (result.valid && typeof fn === 'function') {\r\n return fn(klona(formValues), {\r\n evt: e,\r\n setErrors,\r\n setFieldError,\r\n setTouched,\r\n setFieldTouched,\r\n setValues,\r\n setFieldValue,\r\n resetForm,\r\n });\r\n }\r\n if (!result.valid && typeof onValidationError === 'function') {\r\n onValidationError({\r\n values: klona(formValues),\r\n evt: e,\r\n errors: result.errors,\r\n results: result.results,\r\n });\r\n }\r\n })\r\n .then(returnVal => {\r\n isSubmitting.value = false;\r\n return returnVal;\r\n }, err => {\r\n isSubmitting.value = false;\r\n // re-throw the err so it doesn't go silent\r\n throw err;\r\n });\r\n };\r\n }\r\n function setFieldInitialValue(path, value) {\r\n setInPath(initialValues.value, path, klona(value));\r\n }\r\n function unsetInitialValue(path) {\r\n unsetPath(initialValues.value, path);\r\n }\r\n /**\r\n * Sneaky function to set initial field values\r\n */\r\n function stageInitialValue(path, value) {\r\n setInPath(formValues, path, value);\r\n setFieldInitialValue(path, value);\r\n }\r\n async function _validateSchema() {\r\n const schemaValue = unref(schema);\r\n if (!schemaValue) {\r\n return { valid: true, results: {}, errors: {} };\r\n }\r\n const formResult = isYupValidator(schemaValue)\r\n ? await validateYupSchema(schemaValue, formValues)\r\n : await validateObjectSchema(schemaValue, formValues, {\r\n names: fieldNames.value,\r\n bailsMap: fieldBailsMap.value,\r\n });\r\n return formResult;\r\n }\r\n /**\r\n * Batches validation runs in 5ms batches\r\n */\r\n const debouncedSchemaValidation = debounceAsync(_validateSchema, 5);\r\n async function validateSchema(mode) {\r\n const formResult = await debouncedSchemaValidation();\r\n // fields by id lookup\r\n const fieldsById = formCtx.fieldsByPath.value || {};\r\n // errors fields names, we need it to also check if custom errors are updated\r\n const currentErrorsPaths = keysOf(formCtx.errorBag.value);\r\n // collect all the keys from the schema and all fields\r\n // this ensures we have a complete keymap of all the fields\r\n const paths = [\r\n ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),\r\n ];\r\n // aggregates the paths into a single result object while applying the results on the fields\r\n return paths.reduce((validation, path) => {\r\n const field = fieldsById[path];\r\n const messages = (formResult.results[path] || { errors: [] }).errors;\r\n const fieldResult = {\r\n errors: messages,\r\n valid: !messages.length,\r\n };\r\n validation.results[path] = fieldResult;\r\n if (!fieldResult.valid) {\r\n validation.errors[path] = fieldResult.errors[0];\r\n }\r\n // field not rendered\r\n if (!field) {\r\n setFieldError(path, messages);\r\n return validation;\r\n }\r\n // always update the valid flag regardless of the mode\r\n applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));\r\n if (mode === 'silent') {\r\n return validation;\r\n }\r\n const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;\r\n if (mode === 'validated-only' && !wasValidated) {\r\n return validation;\r\n }\r\n applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));\r\n return validation;\r\n }, { valid: formResult.valid, results: {}, errors: {} });\r\n }\r\n const submitForm = handleSubmit((_, { evt }) => {\r\n if (isFormSubmitEvent(evt)) {\r\n evt.target.submit();\r\n }\r\n });\r\n // Trigger initial validation\r\n onMounted(() => {\r\n if (opts === null || opts === void 0 ? void 0 : opts.initialErrors) {\r\n setErrors(opts.initialErrors);\r\n }\r\n if (opts === null || opts === void 0 ? void 0 : opts.initialTouched) {\r\n setTouched(opts.initialTouched);\r\n }\r\n // if validate on mount was enabled\r\n if (opts === null || opts === void 0 ? void 0 : opts.validateOnMount) {\r\n validate();\r\n return;\r\n }\r\n // otherwise run initial silent validation through schema if available\r\n // the useField should skip their own silent validation if a yup schema is present\r\n if (formCtx.validateSchema) {\r\n formCtx.validateSchema('silent');\r\n }\r\n });\r\n if (isRef(schema)) {\r\n watch(schema, () => {\r\n var _a;\r\n (_a = formCtx.validateSchema) === null || _a === void 0 ? void 0 : _a.call(formCtx, 'validated-only');\r\n });\r\n }\r\n // Provide injections\r\n provide(FormContextKey, formCtx);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n registerFormWithDevTools(formCtx);\r\n watch(() => (Object.assign(Object.assign({ errors: errorBag.value }, meta.value), { values: formValues, isSubmitting: isSubmitting.value, submitCount: submitCount.value })), refreshInspector, {\r\n deep: true,\r\n });\r\n }\r\n return {\r\n errors,\r\n meta,\r\n values: formValues,\r\n isSubmitting,\r\n submitCount,\r\n validate,\r\n validateField,\r\n handleReset: () => resetForm(),\r\n resetForm,\r\n handleSubmit,\r\n submitForm,\r\n setFieldError,\r\n setErrors,\r\n setFieldValue,\r\n setValues,\r\n setFieldTouched,\r\n setTouched,\r\n };\r\n}\r\n/**\r\n * Manages form meta aggregation\r\n */\r\nfunction useFormMeta(fieldsByPath, currentValues, initialValues, errors) {\r\n const MERGE_STRATEGIES = {\r\n touched: 'some',\r\n pending: 'some',\r\n valid: 'every',\r\n };\r\n const isDirty = computed(() => {\r\n return !es6(currentValues, unref(initialValues));\r\n });\r\n function calculateFlags() {\r\n const fields = Object.values(fieldsByPath.value).flat(1).filter(Boolean);\r\n return keysOf(MERGE_STRATEGIES).reduce((acc, flag) => {\r\n const mergeMethod = MERGE_STRATEGIES[flag];\r\n acc[flag] = fields[mergeMethod](field => field.meta[flag]);\r\n return acc;\r\n }, {});\r\n }\r\n const flags = reactive(calculateFlags());\r\n watchEffect(() => {\r\n const value = calculateFlags();\r\n flags.touched = value.touched;\r\n flags.valid = value.valid;\r\n flags.pending = value.pending;\r\n });\r\n return computed(() => {\r\n return Object.assign(Object.assign({ initialValues: unref(initialValues) }, flags), { valid: flags.valid && !keysOf(errors.value).length, dirty: isDirty.value });\r\n });\r\n}\r\n/**\r\n * Manages the initial values prop\r\n */\r\nfunction useFormInitialValues(fields, formValues, providedValues) {\r\n // these are the mutable initial values as the fields are mounted/unmounted\r\n const initialValues = ref(klona(unref(providedValues)) || {});\r\n // these are the original initial value as provided by the user initially, they don't keep track of conditional fields\r\n // this is important because some conditional fields will overwrite the initial values for other fields who had the same name\r\n // like array fields, any push/insert operation will overwrite the initial values because they \"create new fields\"\r\n // so these are the values that the reset function should use\r\n // these only change when the user explicitly chanegs the initial values or when the user resets them with new values.\r\n const originalInitialValues = ref(klona(unref(providedValues)) || {});\r\n function setInitialValues(values, updateFields = false) {\r\n initialValues.value = klona(values);\r\n originalInitialValues.value = klona(values);\r\n if (!updateFields) {\r\n return;\r\n }\r\n // update the pristine non-touched fields\r\n // those are excluded because it's unlikely you want to change the form values using initial values\r\n // we mostly watch them for API population or newly inserted fields\r\n // if the user API is taking too much time before user interaction they should consider disabling or hiding their inputs until the values are ready\r\n keysOf(fields.value).forEach(fieldPath => {\r\n const field = fields.value[fieldPath];\r\n const wasTouched = Array.isArray(field) ? field.some(f => f.meta.touched) : field === null || field === void 0 ? void 0 : field.meta.touched;\r\n if (!field || wasTouched) {\r\n return;\r\n }\r\n const newValue = getFromPath(initialValues.value, fieldPath);\r\n setInPath(formValues, fieldPath, klona(newValue));\r\n });\r\n }\r\n if (isRef(providedValues)) {\r\n watch(providedValues, value => {\r\n setInitialValues(value, true);\r\n }, {\r\n deep: true,\r\n });\r\n }\r\n return {\r\n initialValues,\r\n originalInitialValues,\r\n setInitialValues,\r\n };\r\n}\r\nfunction useErrorBag(initialErrors) {\r\n const errorBag = ref({});\r\n function normalizeErrorItem(message) {\r\n return Array.isArray(message) ? message : message ? [message] : [];\r\n }\r\n /**\r\n * Manually sets an error message on a specific field\r\n */\r\n function setFieldErrorBag(field, message) {\r\n if (!message) {\r\n delete errorBag.value[field];\r\n return;\r\n }\r\n errorBag.value[field] = normalizeErrorItem(message);\r\n }\r\n /**\r\n * Sets errors for the fields specified in the object\r\n */\r\n function setErrorBag(fields) {\r\n errorBag.value = keysOf(fields).reduce((acc, key) => {\r\n const message = fields[key];\r\n if (message) {\r\n acc[key] = normalizeErrorItem(message);\r\n }\r\n return acc;\r\n }, {});\r\n }\r\n if (initialErrors) {\r\n setErrorBag(initialErrors);\r\n }\r\n return {\r\n errorBag,\r\n setErrorBag,\r\n setFieldErrorBag,\r\n };\r\n}\n\nconst FormImpl = defineComponent({\r\n name: 'Form',\r\n inheritAttrs: false,\r\n props: {\r\n as: {\r\n type: String,\r\n default: 'form',\r\n },\r\n validationSchema: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n initialValues: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n initialErrors: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n initialTouched: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n validateOnMount: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n onSubmit: {\r\n type: Function,\r\n default: undefined,\r\n },\r\n onInvalidSubmit: {\r\n type: Function,\r\n default: undefined,\r\n },\r\n },\r\n setup(props, ctx) {\r\n const initialValues = toRef(props, 'initialValues');\r\n const validationSchema = toRef(props, 'validationSchema');\r\n const { errors, values, meta, isSubmitting, submitCount, validate, validateField, handleReset, resetForm, handleSubmit, submitForm, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, } = useForm({\r\n validationSchema: validationSchema.value ? validationSchema : undefined,\r\n initialValues,\r\n initialErrors: props.initialErrors,\r\n initialTouched: props.initialTouched,\r\n validateOnMount: props.validateOnMount,\r\n });\r\n const onSubmit = props.onSubmit ? handleSubmit(props.onSubmit, props.onInvalidSubmit) : submitForm;\r\n function handleFormReset(e) {\r\n if (isEvent(e)) {\r\n // Prevent default form reset behavior\r\n e.preventDefault();\r\n }\r\n handleReset();\r\n if (typeof ctx.attrs.onReset === 'function') {\r\n ctx.attrs.onReset();\r\n }\r\n }\r\n function handleScopedSlotSubmit(evt, onSubmit) {\r\n const onSuccess = typeof evt === 'function' && !onSubmit ? evt : onSubmit;\r\n return handleSubmit(onSuccess, props.onInvalidSubmit)(evt);\r\n }\r\n function slotProps() {\r\n return {\r\n meta: meta.value,\r\n errors: errors.value,\r\n values: values,\r\n isSubmitting: isSubmitting.value,\r\n submitCount: submitCount.value,\r\n validate,\r\n validateField,\r\n handleSubmit: handleScopedSlotSubmit,\r\n handleReset,\r\n submitForm,\r\n setErrors,\r\n setFieldError,\r\n setFieldValue,\r\n setValues,\r\n setFieldTouched,\r\n setTouched,\r\n resetForm,\r\n };\r\n }\r\n // expose these functions and methods as part of public API\r\n ctx.expose({\r\n setFieldError,\r\n setErrors,\r\n setFieldValue,\r\n setValues,\r\n setFieldTouched,\r\n setTouched,\r\n resetForm,\r\n validate,\r\n validateField,\r\n });\r\n return function renderForm() {\r\n // avoid resolving the form component as itself\r\n const tag = props.as === 'form' ? props.as : resolveDynamicComponent(props.as);\r\n const children = normalizeChildren(tag, ctx, slotProps);\r\n if (!props.as) {\r\n return children;\r\n }\r\n // Attributes to add on a native `form` tag\r\n const formAttrs = props.as === 'form'\r\n ? {\r\n // Disables native validation as vee-validate will handle it.\r\n novalidate: true,\r\n }\r\n : {};\r\n return h(tag, Object.assign(Object.assign(Object.assign({}, formAttrs), ctx.attrs), { onSubmit, onReset: handleFormReset }), children);\r\n };\r\n },\r\n});\r\nconst Form = FormImpl;\n\nlet FIELD_ARRAY_COUNTER = 0;\r\nfunction useFieldArray(arrayPath) {\r\n const id = FIELD_ARRAY_COUNTER++;\r\n const form = injectWithSelf(FormContextKey, undefined);\r\n const fields = ref([]);\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n const noOp = () => { };\r\n const noOpApi = {\r\n fields: readonly(fields),\r\n remove: noOp,\r\n push: noOp,\r\n swap: noOp,\r\n insert: noOp,\r\n update: noOp,\r\n replace: noOp,\r\n prepend: noOp,\r\n };\r\n if (!form) {\r\n warn('FieldArray requires being a child of `
` or `useForm` being called before it. Array fields may not work correctly');\r\n return noOpApi;\r\n }\r\n if (!unref(arrayPath)) {\r\n warn('FieldArray requires a field path to be provided, did you forget to pass the `name` prop?');\r\n return noOpApi;\r\n }\r\n let entryCounter = 0;\r\n function initFields() {\r\n const currentValues = getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []);\r\n fields.value = currentValues.map(createEntry);\r\n updateEntryFlags();\r\n }\r\n initFields();\r\n function updateEntryFlags() {\r\n const fieldsLength = fields.value.length;\r\n for (let i = 0; i < fieldsLength; i++) {\r\n const entry = fields.value[i];\r\n entry.isFirst = i === 0;\r\n entry.isLast = i === fieldsLength - 1;\r\n }\r\n }\r\n function createEntry(value) {\r\n const key = entryCounter++;\r\n const entry = {\r\n key,\r\n value: computed(() => {\r\n const currentValues = getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []);\r\n const idx = fields.value.findIndex(e => e.key === key);\r\n return idx === -1 ? value : currentValues[idx];\r\n }),\r\n isFirst: false,\r\n isLast: false,\r\n };\r\n return entry;\r\n }\r\n function remove(idx) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n if (!pathValue || !Array.isArray(pathValue)) {\r\n return;\r\n }\r\n const newValue = [...pathValue];\r\n newValue.splice(idx, 1);\r\n form === null || form === void 0 ? void 0 : form.unsetInitialValue(pathName + `[${idx}]`);\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\r\n fields.value.splice(idx, 1);\r\n updateEntryFlags();\r\n }\r\n function push(value) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\r\n if (!Array.isArray(normalizedPathValue)) {\r\n return;\r\n }\r\n const newValue = [...normalizedPathValue];\r\n newValue.push(value);\r\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\r\n fields.value.push(createEntry(value));\r\n updateEntryFlags();\r\n }\r\n function swap(indexA, indexB) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n if (!Array.isArray(pathValue) || !(indexA in pathValue) || !(indexB in pathValue)) {\r\n return;\r\n }\r\n const newValue = [...pathValue];\r\n const newFields = [...fields.value];\r\n // the old switcheroo\r\n const temp = newValue[indexA];\r\n newValue[indexA] = newValue[indexB];\r\n newValue[indexB] = temp;\r\n const tempEntry = newFields[indexA];\r\n newFields[indexA] = newFields[indexB];\r\n newFields[indexB] = tempEntry;\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\r\n fields.value = newFields;\r\n updateEntryFlags();\r\n }\r\n function insert(idx, value) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n if (!Array.isArray(pathValue) || pathValue.length < idx) {\r\n return;\r\n }\r\n const newValue = [...pathValue];\r\n const newFields = [...fields.value];\r\n newValue.splice(idx, 0, value);\r\n newFields.splice(idx, 0, createEntry(value));\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\r\n fields.value = newFields;\r\n updateEntryFlags();\r\n }\r\n function replace(arr) {\r\n const pathName = unref(arrayPath);\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, arr);\r\n initFields();\r\n }\r\n function update(idx, value) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n if (!Array.isArray(pathValue) || pathValue.length - 1 < idx) {\r\n return;\r\n }\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(`${pathName}[${idx}]`, value);\r\n }\r\n function prepend(value) {\r\n const pathName = unref(arrayPath);\r\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\r\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\r\n if (!Array.isArray(normalizedPathValue)) {\r\n return;\r\n }\r\n const newValue = [value, ...normalizedPathValue];\r\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\r\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\r\n fields.value.unshift(createEntry(value));\r\n updateEntryFlags();\r\n }\r\n form.fieldArraysLookup[id] = {\r\n reset: initFields,\r\n };\r\n onBeforeUnmount(() => {\r\n delete form.fieldArraysLookup[id];\r\n });\r\n return {\r\n fields: readonly(fields),\r\n remove,\r\n push,\r\n swap,\r\n insert,\r\n update,\r\n replace,\r\n prepend,\r\n };\r\n}\n\nconst FieldArrayImpl = defineComponent({\r\n name: 'FieldArray',\r\n inheritAttrs: false,\r\n props: {\r\n name: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n setup(props, ctx) {\r\n const { push, remove, swap, insert, replace, update, prepend, fields } = useFieldArray(toRef(props, 'name'));\r\n function slotProps() {\r\n return {\r\n fields: fields.value,\r\n push,\r\n remove,\r\n swap,\r\n insert,\r\n update,\r\n replace,\r\n prepend,\r\n };\r\n }\r\n ctx.expose({\r\n push,\r\n remove,\r\n swap,\r\n insert,\r\n update,\r\n replace,\r\n prepend,\r\n });\r\n return () => {\r\n const children = normalizeChildren(undefined, ctx, slotProps);\r\n return children;\r\n };\r\n },\r\n});\r\nconst FieldArray = FieldArrayImpl;\n\nconst ErrorMessageImpl = defineComponent({\r\n name: 'ErrorMessage',\r\n props: {\r\n as: {\r\n type: String,\r\n default: undefined,\r\n },\r\n name: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n setup(props, ctx) {\r\n const form = inject(FormContextKey, undefined);\r\n const message = computed(() => {\r\n return form === null || form === void 0 ? void 0 : form.errors.value[props.name];\r\n });\r\n function slotProps() {\r\n return {\r\n message: message.value,\r\n };\r\n }\r\n return () => {\r\n // Renders nothing if there are no messages\r\n if (!message.value) {\r\n return undefined;\r\n }\r\n const tag = (props.as ? resolveDynamicComponent(props.as) : props.as);\r\n const children = normalizeChildren(tag, ctx, slotProps);\r\n const attrs = Object.assign({ role: 'alert' }, ctx.attrs);\r\n // If no tag was specified and there are children\r\n // render the slot as is without wrapping it\r\n if (!tag && (Array.isArray(children) || !children) && (children === null || children === void 0 ? void 0 : children.length)) {\r\n return children;\r\n }\r\n // If no children in slot\r\n // render whatever specified and fallback to a with the message in it's contents\r\n if ((Array.isArray(children) || !children) && !(children === null || children === void 0 ? void 0 : children.length)) {\r\n return h(tag || 'span', attrs, message.value);\r\n }\r\n return h(tag, attrs, children);\r\n };\r\n },\r\n});\r\nconst ErrorMessage = ErrorMessageImpl;\n\nfunction useResetForm() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return function resetForm(state) {\r\n if (!form) {\r\n return;\r\n }\r\n return form.resetForm(state);\r\n };\r\n}\n\n/**\r\n * If a field is dirty or not\r\n */\r\nfunction useIsFieldDirty(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n let field = path ? undefined : inject(FieldContextKey);\r\n return computed(() => {\r\n if (path) {\r\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\r\n }\r\n if (!field) {\r\n warn(`field with name ${unref(path)} was not found`);\r\n return false;\r\n }\r\n return field.meta.dirty;\r\n });\r\n}\n\n/**\r\n * If a field is touched or not\r\n */\r\nfunction useIsFieldTouched(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n let field = path ? undefined : inject(FieldContextKey);\r\n return computed(() => {\r\n if (path) {\r\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\r\n }\r\n if (!field) {\r\n warn(`field with name ${unref(path)} was not found`);\r\n return false;\r\n }\r\n return field.meta.touched;\r\n });\r\n}\n\n/**\r\n * If a field is validated and is valid\r\n */\r\nfunction useIsFieldValid(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n let field = path ? undefined : inject(FieldContextKey);\r\n return computed(() => {\r\n if (path) {\r\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\r\n }\r\n if (!field) {\r\n warn(`field with name ${unref(path)} was not found`);\r\n return false;\r\n }\r\n return field.meta.valid;\r\n });\r\n}\n\n/**\r\n * If the form is submitting or not\r\n */\r\nfunction useIsSubmitting() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n var _a;\r\n return (_a = form === null || form === void 0 ? void 0 : form.isSubmitting.value) !== null && _a !== void 0 ? _a : false;\r\n });\r\n}\n\n/**\r\n * Validates a single field\r\n */\r\nfunction useValidateField(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n let field = path ? undefined : inject(FieldContextKey);\r\n return function validateField() {\r\n if (path) {\r\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\r\n }\r\n if (!field) {\r\n warn(`field with name ${unref(path)} was not found`);\r\n return Promise.resolve({\r\n errors: [],\r\n valid: true,\r\n });\r\n }\r\n return field.validate();\r\n };\r\n}\n\n/**\r\n * If the form is dirty or not\r\n */\r\nfunction useIsFormDirty() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n var _a;\r\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.dirty) !== null && _a !== void 0 ? _a : false;\r\n });\r\n}\n\n/**\r\n * If the form is touched or not\r\n */\r\nfunction useIsFormTouched() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n var _a;\r\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.touched) !== null && _a !== void 0 ? _a : false;\r\n });\r\n}\n\n/**\r\n * If the form has been validated and is valid\r\n */\r\nfunction useIsFormValid() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n var _a;\r\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.valid) !== null && _a !== void 0 ? _a : false;\r\n });\r\n}\n\n/**\r\n * Validate multiple fields\r\n */\r\nfunction useValidateForm() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return function validateField() {\r\n if (!form) {\r\n return Promise.resolve({ results: {}, errors: {}, valid: true });\r\n }\r\n return form.validate();\r\n };\r\n}\n\n/**\r\n * The number of form's submission count\r\n */\r\nfunction useSubmitCount() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n var _a;\r\n return (_a = form === null || form === void 0 ? void 0 : form.submitCount.value) !== null && _a !== void 0 ? _a : 0;\r\n });\r\n}\n\n/**\r\n * Gives access to a field's current value\r\n */\r\nfunction useFieldValue(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n // We don't want to use self injected context as it doesn't make sense\r\n const field = path ? undefined : inject(FieldContextKey);\r\n return computed(() => {\r\n if (path) {\r\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(path));\r\n }\r\n return unref(field === null || field === void 0 ? void 0 : field.value);\r\n });\r\n}\n\n/**\r\n * Gives access to a form's values\r\n */\r\nfunction useFormValues() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n return (form === null || form === void 0 ? void 0 : form.values) || {};\r\n });\r\n}\n\n/**\r\n * Gives access to all form errors\r\n */\r\nfunction useFormErrors() {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n return computed(() => {\r\n return ((form === null || form === void 0 ? void 0 : form.errors.value) || {});\r\n });\r\n}\n\n/**\r\n * Gives access to a single field error\r\n */\r\nfunction useFieldError(path) {\r\n const form = injectWithSelf(FormContextKey);\r\n // We don't want to use self injected context as it doesn't make sense\r\n const field = path ? undefined : inject(FieldContextKey);\r\n return computed(() => {\r\n if (path) {\r\n return form === null || form === void 0 ? void 0 : form.errors.value[unref(path)];\r\n }\r\n return field === null || field === void 0 ? void 0 : field.errorMessage.value;\r\n });\r\n}\n\nfunction useSubmitForm(cb) {\r\n const form = injectWithSelf(FormContextKey);\r\n if (!form) {\r\n warn('No vee-validate or `useForm` was detected in the component tree');\r\n }\r\n const onSubmit = form ? form.handleSubmit(cb) : undefined;\r\n return function submitForm(e) {\r\n if (!onSubmit) {\r\n return;\r\n }\r\n return onSubmit(e);\r\n };\r\n}\n\nexport { ErrorMessage, Field, FieldArray, FieldContextKey, Form, FormContextKey, configure, defineRule, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useResetForm, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate };\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\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.marked = {}));\n})(this, (function (exports) { 'use strict';\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\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 _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n }\n exports.defaults = getDefaults();\n function changeDefaults(newDefaults) {\n exports.defaults = newDefaults;\n }\n\n /**\n * Helpers\n */\n var escapeTest = /[&<>\"']/;\n var escapeReplace = /[&<>\"']/g;\n var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n var escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n var getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n };\n\n function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n }\n var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n }\n var caret = /(^|[^\\[])\\^/g;\n function edit(regex, opt) {\n regex = regex.source || regex;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n }\n var nonWordAndColonTest = /[^\\w:]/g;\n var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n function cleanUrl(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n }\n var baseUrls = {};\n var justDomain = /^[^:]+:\\/*[^/]*$/;\n var protocol = /^([^:]+:)[\\s\\S]*$/;\n var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n function resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n }\n var noopTest = {\n exec: function noopTest() {}\n };\n function merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n }\n function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n\n if (!cells[0].trim()) {\n cells.shift();\n }\n\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n } // Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n // /c*$/ is vulnerable to REDOS.\n // invert: Remove suffix of non-c chars instead. Default falsey.\n\n function rtrim(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.substr(0, l - suffLen);\n }\n function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n }\n function checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n } // copied from https://stackoverflow.com/a/5450113/806777\n\n function repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n }\n\n function outputLink(cap, link, raw, lexer) {\n var href = link.href;\n var title = link.title ? escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n var token = {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n } else {\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: escape(text)\n };\n }\n }\n\n function indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var indentInNode = matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n }\n /**\n * Tokenizer\n */\n\n\n var Tokenizer = /*#__PURE__*/function () {\n function Tokenizer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Tokenizer.prototype;\n\n _proto.space = function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n };\n\n _proto.code = function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n };\n\n _proto.fences = function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n };\n\n _proto.heading = function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.hr = function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n };\n\n _proto.blockquote = function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *> ?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text: text\n };\n }\n };\n\n _proto.list = function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, nextLine, rawLine, itemContents, endEarly;\n var bull = cap[1].trim();\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? \"\\\\d{1,9}\\\\\" + bull.slice(-1) : \"\\\\\" + bull;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n } // Get next list item\n\n\n var itemRegex = new RegExp(\"^( {0,3}\" + bull + \")((?: [^\\\\n]*)?(?:\\\\n|$))\"); // Check if current bullet point can start a new List Item\n\n while (src) {\n endEarly = false;\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) {\n // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) {\n // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n var nextBulletRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])\"); // Check if following lines should be included in List Item\n\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine; // Re-align to follow commonmark nesting rules\n\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n } // End list item if found start of new bullet\n\n\n if (nextBulletRegex.test(line)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) {\n // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else {\n // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) {\n // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n list.raw += raw;\n } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n\n\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first\n\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n var spacers = list.items[i].tokens.filter(function (t) {\n return t.type === 'space';\n });\n var hasMultipleLineBreaks = spacers.every(function (t) {\n var chars = t.raw.split('');\n var lineBreaks = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(chars), _step; !(_step = _iterator()).done;) {\n var _char = _step.value;\n\n if (_char === '\\n') {\n lineBreaks += 1;\n }\n\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n };\n\n _proto.html = function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n var token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n\n return token;\n }\n };\n\n _proto.def = function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n };\n\n _proto.table = function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1]).map(function (c) {\n return {\n text: c\n };\n }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i, j, k, row;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {\n return {\n text: c\n };\n });\n } // parse child tokens inside headers and cells\n // header child tokens\n\n\n l = item.header.length;\n\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inlineTokens(item.header[j].text, item.header[j].tokens);\n } // cell child tokens\n\n\n l = item.rows.length;\n\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inlineTokens(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n };\n\n _proto.lheading = function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.paragraph = function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n var token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.text = function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n var token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n };\n\n _proto.escape = function escape$1(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n };\n\n _proto.tag = function tag(src) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.link = function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n };\n\n _proto.reflink = function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0], this.lexer);\n }\n };\n\n _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n if (prevChar === void 0) {\n prevChar = '';\n }\n\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n if (Math.min(lLength, rLength) % 2) {\n var _text = src.slice(1, lLength + match.index + rLength);\n\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: _text,\n tokens: this.lexer.inlineTokens(_text, [])\n };\n } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n var text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n };\n\n _proto.codespan = function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.br = function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n };\n\n _proto.del = function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n };\n\n _proto.autolink = function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.url = function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.inlineText = function inlineText(src, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n };\n\n return Tokenizer;\n }();\n\n /**\n * Block-Level Grammar\n */\n\n var block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)( [^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n };\n block._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\n block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n block.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n block.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\n block.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n block._comment = /|$)/;\n block.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n block.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n /**\n * Normal Block Grammar\n */\n\n block.normal = merge({}, block);\n /**\n * GFM Block Grammar\n */\n\n block.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n });\n block.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n block.gfm.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n /**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\n block.pedantic = merge({}, block.normal, {\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n });\n /**\n * Inline-Level Grammar\n */\n\n var inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment' + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan delim inside strong (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\n inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, \n\n inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n inline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n inline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n inline.reflink = edit(inline.reflink).replace('label', inline._label).replace('ref', block._label).getRegex();\n inline.nolink = edit(inline.nolink).replace('ref', block._label).getRegex();\n inline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n /**\n * Normal Inline Grammar\n */\n\n inline.normal = merge({}, inline);\n /**\n * Pedantic Inline Grammar\n */\n\n inline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n });\n /**\n * GFM Inline Grammar\n */\n\n inline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n /**\n * Block Lexer\n */\n\n\n var Lexer = /*#__PURE__*/function () {\n function Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || exports.defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n var rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n /**\n * Static Lex Method\n */\n Lexer.lex = function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n ;\n\n Lexer.lexInline = function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n ;\n\n var _proto = Lexer.prototype;\n\n _proto.lex = function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n').replace(/\\t/g, ' ');\n this.blockTokens(src, this.tokens);\n var next;\n\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n /**\n * Lexing\n */\n ;\n\n _proto.blockTokens = function blockTokens(src, tokens) {\n var _this = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (this.options.pedantic) {\n src = src.replace(/^ +$/gm, '');\n }\n\n var token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // newline\n\n\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startBlock) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n };\n\n _proto.inline = function inline(src, tokens) {\n this.inlineQueue.push({\n src: src,\n tokens: tokens\n });\n }\n /**\n * Lexing/Compiling\n */\n ;\n\n _proto.inlineTokens = function inlineTokens(src, tokens) {\n var _this2 = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // extensions\n\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this2\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // escape\n\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startInline) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _createClass(Lexer, null, [{\n key: \"rules\",\n get: function get() {\n return {\n block: block,\n inline: inline\n };\n }\n }]);\n\n return Lexer;\n }();\n\n /**\n * Renderer\n */\n\n var Renderer = /*#__PURE__*/function () {\n function Renderer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Renderer.prototype;\n\n _proto.code = function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
' + (escaped ? _code : escape(_code, true)) + '
\\n';\n }\n\n return '
' + (escaped ? _code : escape(_code, true)) + '
\\n';\n };\n\n _proto.blockquote = function blockquote(quote) {\n return '
\\n' + quote + '
\\n';\n };\n\n _proto.html = function html(_html) {\n return _html;\n };\n\n _proto.heading = function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n return '' + text + '\\n';\n } // ignore IDs\n\n\n return '' + text + '\\n';\n };\n\n _proto.hr = function hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n };\n\n _proto.list = function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n };\n\n _proto.listitem = function listitem(text) {\n return '
  • ' + text + '
  • \\n';\n };\n\n _proto.checkbox = function checkbox(checked) {\n return ' ';\n };\n\n _proto.paragraph = function paragraph(text) {\n return '

    ' + text + '

    \\n';\n };\n\n _proto.table = function table(header, body) {\n if (body) body = '' + body + '';\n return '\\n' + '\\n' + header + '\\n' + body + '
    \\n';\n };\n\n _proto.tablerow = function tablerow(content) {\n return '\\n' + content + '\\n';\n };\n\n _proto.tablecell = function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? '<' + type + ' align=\"' + flags.align + '\">' : '<' + type + '>';\n return tag + content + '\\n';\n } // span level renderer\n ;\n\n _proto.strong = function strong(text) {\n return '' + text + '';\n };\n\n _proto.em = function em(text) {\n return '' + text + '';\n };\n\n _proto.codespan = function codespan(text) {\n return '' + text + '';\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? '
    ' : '
    ';\n };\n\n _proto.del = function del(text) {\n return '' + text + '';\n };\n\n _proto.link = function link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '
    ';\n return out;\n };\n\n _proto.image = function image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '\"'' : '>';\n return out;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n return Renderer;\n }();\n\n /**\n * TextRenderer\n * returns only the textual part of the token\n */\n var TextRenderer = /*#__PURE__*/function () {\n function TextRenderer() {}\n\n var _proto = TextRenderer.prototype;\n\n // no need for block level renderers\n _proto.strong = function strong(text) {\n return text;\n };\n\n _proto.em = function em(text) {\n return text;\n };\n\n _proto.codespan = function codespan(text) {\n return text;\n };\n\n _proto.del = function del(text) {\n return text;\n };\n\n _proto.html = function html(text) {\n return text;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n _proto.link = function link(href, title, text) {\n return '' + text;\n };\n\n _proto.image = function image(href, title, text) {\n return '' + text;\n };\n\n _proto.br = function br() {\n return '';\n };\n\n return TextRenderer;\n }();\n\n /**\n * Slugger generates header id\n */\n var Slugger = /*#__PURE__*/function () {\n function Slugger() {\n this.seen = {};\n }\n\n var _proto = Slugger.prototype;\n\n _proto.serialize = function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n */\n ;\n\n _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} options\n * @param {boolean} options.dryrun Generates the next unique slug without updating the internal accumulator.\n */\n ;\n\n _proto.slug = function slug(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n };\n\n return Slugger;\n }();\n\n /**\n * Parsing & Compiling\n */\n\n var Parser = /*#__PURE__*/function () {\n function Parser(options) {\n this.options = options || exports.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n /**\n * Static Parse Method\n */\n\n\n Parser.parse = function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n ;\n\n Parser.parseInline = function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n ;\n\n var _proto = Parser.prototype;\n\n _proto.parse = function parse(tokens, top) {\n if (top === void 0) {\n top = true;\n }\n\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.rows.length;\n\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n ;\n\n _proto.parseInline = function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n };\n\n return Parser;\n }();\n\n /**\n * Marked\n */\n\n function marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n var _tokens = Lexer.lex(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser.parse(_tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n }\n /**\n * Options\n */\n\n marked.options = marked.setOptions = function (opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n };\n\n marked.getDefaults = getDefaults;\n marked.defaults = exports.defaults;\n /**\n * Use Extension\n */\n\n marked.use = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var opts = merge.apply(void 0, [{}].concat(args));\n var extensions = marked.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n var hasExtensions;\n args.forEach(function (pack) {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach(function (ext) {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n\n if (ext.renderer) {\n // Renderer extensions\n var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = ext.renderer.apply(this, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n\n if (ext.tokenizer) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n\n if (ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n } // ==-- Parse \"overwrite\" extensions --== //\n\n\n if (pack.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n renderer[prop] = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var ret = pack.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (pack.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n tokenizer[prop] = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n } // ==-- Parse WalkTokens extensions --== //\n\n\n if (pack.walkTokens) {\n var _walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n pack.walkTokens.call(this, token);\n\n if (_walkTokens) {\n _walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n };\n /**\n * Run callback for every token\n */\n\n\n marked.walkTokens = function (tokens, callback) {\n var _loop3 = function _loop3() {\n var token = _step.value;\n callback.call(marked, token);\n\n switch (token.type) {\n case 'table':\n {\n for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {\n var cell = _step2.value;\n marked.walkTokens(cell.tokens, callback);\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {\n var row = _step3.value;\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n var _cell = _step4.value;\n marked.walkTokens(_cell.tokens, callback);\n }\n }\n\n break;\n }\n\n case 'list':\n {\n marked.walkTokens(token.items, callback);\n break;\n }\n\n default:\n {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n _loop3();\n }\n };\n /**\n * Parse Inline\n */\n\n\n marked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n var tokens = Lexer.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n };\n /**\n * Expose\n */\n\n\n marked.Parser = Parser;\n marked.parser = Parser.parse;\n marked.Renderer = Renderer;\n marked.TextRenderer = TextRenderer;\n marked.Lexer = Lexer;\n marked.lexer = Lexer.lex;\n marked.Tokenizer = Tokenizer;\n marked.Slugger = Slugger;\n marked.parse = marked;\n var options = marked.options;\n var setOptions = marked.setOptions;\n var use = marked.use;\n var walkTokens = marked.walkTokens;\n var parseInline = marked.parseInline;\n var parse = marked;\n var parser = Parser.parse;\n var lexer = Lexer.lex;\n\n exports.Lexer = Lexer;\n exports.Parser = Parser;\n exports.Renderer = Renderer;\n exports.Slugger = Slugger;\n exports.TextRenderer = TextRenderer;\n exports.Tokenizer = Tokenizer;\n exports.getDefaults = getDefaults;\n exports.lexer = lexer;\n exports.marked = marked;\n exports.options = options;\n exports.parse = parse;\n exports.parseInline = parseInline;\n exports.parser = parser;\n exports.setOptions = setOptions;\n exports.use = use;\n exports.walkTokens = walkTokens;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","import { defineComponent, ref, onMounted, onBeforeUnmount, watch, openBlock, createElementBlock, computed, renderSlot, createCommentVNode } from \"vue\";\nconst ERRORS = {\n STRIPE_NOT_LOADED: \"Stripe v3 library is not loaded\",\n INSTANCE_NOT_DEFINED: \"Instance object is not defined. Make sure you initialized Stripe before creating elements\",\n ELEMENTS_NOT_DEFINED: \"Elements object is not defined. You can't create stripe element without it\",\n ELEMENT_TYPE_NOT_DEFINED: \"elementType is required. You can't create stripe element without it\"\n};\nconst initStripe = (key, options) => {\n try {\n if (!window.Stripe) {\n throw new Error(ERRORS.STRIPE_NOT_LOADED);\n }\n const stripeInstance = window.Stripe(key, options);\n return stripeInstance;\n } catch (error) {\n console.error(error);\n return error;\n }\n};\nconst createElements = (instance, options) => {\n try {\n if (!instance) {\n throw new Error(ERRORS.INSTANCE_NOT_DEFINED);\n }\n const elements = instance.elements(options);\n return elements;\n } catch (error) {\n console.error(error);\n return error;\n }\n};\nconst createElement = (elements, elementType, options) => {\n try {\n if (!elements) {\n throw new Error(ERRORS.ELEMENTS_NOT_DEFINED);\n }\n if (!elementType) {\n throw new Error(ERRORS.ELEMENT_TYPE_NOT_DEFINED);\n }\n const element = elements.create(elementType, options);\n return element;\n } catch (error) {\n console.error(error);\n return error;\n }\n};\nvar _export_sfc = (sfc, props) => {\n for (const [key, val] of props) {\n sfc[key] = val;\n }\n return sfc;\n};\nconst _sfc_main$1 = defineComponent({\n name: \"StripeElement\",\n props: {\n elements: {\n type: Object,\n required: true\n },\n type: {\n type: String,\n default: () => \"card\"\n },\n options: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props, { emit }) {\n const domElement = ref(document.createElement(\"div\"));\n const stripeElement = ref();\n const mountPoint = ref();\n onMounted(() => {\n const mountElement = () => {\n const { elements, type, options } = props;\n stripeElement.value = createElement(elements, type, options);\n stripeElement.value.mount(domElement.value);\n mountPoint.value.appendChild(domElement.value);\n };\n const wrapperFn = (t, e) => {\n emit(t, e);\n };\n const handleEvents = () => {\n const eventTypes = [\n \"change\",\n \"ready\",\n \"focus\",\n \"blur\",\n \"click\",\n \"escape\"\n ];\n eventTypes.forEach((t) => {\n stripeElement.value.on(t, wrapperFn.bind(null, t));\n });\n };\n try {\n mountElement();\n handleEvents();\n } catch (error) {\n console.error(error);\n }\n });\n onBeforeUnmount(() => {\n var _a, _b;\n (_a = stripeElement.value) == null ? void 0 : _a.unmount();\n (_b = stripeElement.value) == null ? void 0 : _b.destroy();\n });\n watch(props.options, () => {\n var _a;\n (_a = stripeElement.value) == null ? void 0 : _a.update(props.options);\n });\n return {\n stripeElement,\n domElement,\n mountPoint\n };\n }\n});\nconst _hoisted_1$1 = { ref: \"mountPoint\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, null, 512);\n}\nvar StripeElement = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst _sfc_main = defineComponent({\n name: \"StripeElements\",\n props: {\n stripeKey: {\n type: String,\n required: true\n },\n instanceOptions: {\n type: Object,\n default: () => ({})\n },\n elementsOptions: {\n type: Object,\n default: () => ({})\n }\n },\n setup(props) {\n const instance = ref();\n const elements = ref();\n const elementsUsable = computed(() => {\n return elements.value ? Object.keys(elements.value).length > 0 : false;\n });\n onMounted(() => {\n const { stripeKey, instanceOptions, elementsOptions } = props;\n instance.value = initStripe(stripeKey, instanceOptions);\n elements.value = createElements(instance.value, elementsOptions);\n });\n watch(props.elementsOptions, () => {\n var _a;\n (_a = elements.value) == null ? void 0 : _a.update(props.elementsOptions);\n });\n return {\n elements,\n instance,\n elementsUsable\n };\n }\n});\nconst _hoisted_1 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return _ctx.elementsUsable ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\", {\n instance: _ctx.instance,\n elements: _ctx.elements\n })\n ])) : createCommentVNode(\"\", true);\n}\nvar StripeElements = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport { StripeElement, StripeElements, createElement, createElements, initStripe };\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar fails = require('../internals/fails');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\n// `Reflect.set` method\n// https://tc39.es/ecma262/#sec-reflect.set\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);\n var existingDescriptor, prototype, setter;\n if (!ownDescriptor) {\n if (isObject(prototype = getPrototypeOf(target))) {\n return set(prototype, propertyKey, V, receiver);\n }\n ownDescriptor = createPropertyDescriptor(0);\n }\n if (isDataDescriptor(ownDescriptor)) {\n if (ownDescriptor.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n definePropertyModule.f(receiver, propertyKey, existingDescriptor);\n } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));\n } else {\n setter = ownDescriptor.set;\n if (setter === undefined) return false;\n call(setter, receiver, V);\n } return true;\n}\n\n// MS Edge 17-18 Reflect.set allows setting the property to object\n// with non-writable property on the prototype\nvar MS_EDGE_BUG = fails(function () {\n var Constructor = function () { /* empty */ };\n var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });\n // eslint-disable-next-line es/no-reflect -- required for testing\n return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;\n});\n\n$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {\n set: set\n});\n","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n return atob(' ') !== '';\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !fails(function () {\n $atob();\n});\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ARG_RECEIVING_CHECK }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n if (NO_ARG_RECEIVING_CHECK) return $atob(data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var chr, bs;\n if (string.length % 4 == 0) {\n string = replace(string, finalEq, '');\n }\n if (string.length % 4 == 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (chr = charAt(string, position++)) {\n if (hasOwn(ctoi, chr)) {\n bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n }\n } return output;\n }\n});\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CurrencyGroup.vue?vue&type=style&index=0&id=1cd1abb8&lang=scss&scoped=true\"","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./HeadingBanner.vue?vue&type=style&index=0&id=3dcc2662&lang=scss\"","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FeaturesPicker.vue?vue&type=style&index=0&id=3b52859c&lang=scss\"","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StatementBanner.vue?vue&type=style&index=0&id=2e319ab1&lang=scss\"","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar un$EndsWith = uncurryThis(''.endsWith);\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","import { FacebookConversionsApi } from \"@/network/api\";\nimport { FacebookConversionsEventTypes } from \"@/api-client\";\nimport { mixins, Vue } from \"vue-class-component\";\nimport { CalculatePrice, Currency } from \"@/mixins/utilities\";\nimport { store } from \"@/store\";\n\n//https://www.facebook.com/business/help/402791146561655?id=1205376682832142\nfunction getUser() {\n return store.getters[\"user/profile\"];\n}\n\nasync function PushPixelEvent(eventName: FacebookConversionsEventTypes, consoleString: string, object: any = null) {\n const currency = object != null && object.currency ? object.currency : undefined;\n const value = object != null && object.value ? object.value : undefined;\n const user = getUser();\n\n let eventID = null;\n const capiResponse = await FacebookConversionsApi.facebookConversionsPostEventPost(eventName, user != null ? user.email : undefined, currency, value)\n if(capiResponse && capiResponse.data.succeeded) {\n eventID = { eventID: capiResponse.data.resultData };\n if(process.env.VUE_APP_ENABLE_GTM === 'true') {\n window.fbq('track', eventName, object, eventID);\n }\n else {\n console.log(`%cPixel Event ${eventName}${consoleString}`, \"font-size: 20px\", object, `ID: ${JSON.stringify(eventID)}`)\n }\n }\n else {\n console.error(`%cAn error occurred pushing the Pixel Event ${eventName}${consoleString}`, \"font-size: 20px\")\n }\n}\n\nexport class FacebookAddPaymentInfoEvent extends Vue {\n //The addition of customer payment information during a checkout process. For example, a person clicks on a button to save their billing information.\n facebookAddPaymentInfoEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.AddPaymentInfo, \"💳\");\n }\n}\n\nexport class FacebookAddToCartEvent extends Vue {\n //The addition of an item to a shopping cart or basket. For example, clicking an Add to cart button on a website.\n facebookAddToCartEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.AddToCart, \"🛒\");\n }\n}\nexport function facebookAddToCartEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.AddToCart, \"🛒\");\n}\n\nexport class FacebookLeadEvent extends Vue {\n //A submission of information by a customer with the understanding that they may be contacted at a later date by your business.\n //This will be when someone clicks 'send enquiry'.\n facebookLeadEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.Lead, \"💬\");\n }\n}\n\nexport class FacebookCustomizeProductEvent extends Vue {\n //The customisation of products through a configuration tool or other application that your business owns.\n facebookCustomizeProductEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.CustomizeProduct, \"🎨\");\n }\n}\n\nexport class FacebookInitiateCheckoutEvent extends mixins(Currency, CalculatePrice) {\n //The start of a checkout process. For example, clicking a Checkout button.\n facebookInitiateCheckoutEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.InitiateCheckout, \"🛍️\");\n }\n\n itemCount(cart: any, total: any) {\n // const cartObj: any = {\n // num_items : this.itemCount(cart.items),\n // content_ids : this.itemsIds(cart.items),\n // contents : this.itemsInCart(cart.items),\n // currency : this.currency().code,\n // value : this.productSubtotal(total),\n // }\n if(cart) {\n let totalItems = 0;\n cart.forEach((item: any) => {\n item.quantities.forEach((itemQuanities: any) => {\n totalItems += itemQuanities.quantity;\n })\n });\n return totalItems;\n }\n return 0\n }\n\n itemsIds(cart: any) {\n const itemIdList: any = [];\n if(cart) {\n cart.forEach((item: any) => {\n itemIdList.push(item.id);\n });\n }\n return itemIdList\n }\n\n itemsInCart(cart: any) {\n const itemIdList: any = [];\n if(cart) {\n cart.forEach((item: any) => {\n itemIdList.push({\n id: item.customizedProduct.id,\n name: item.customizedProduct.name,\n product_price: item.price,\n totalQuantity: item.customizedProduct.quantities,\n quantities: {},\n orderReferenceNumber: item.customizedProduct.orderReferenceNumber,\n });\n item.quantities.forEach((qty: any) => {\n itemIdList.quantities.push(qty);\n });\n });\n }\n return itemIdList\n }\n \n productSubtotal(total: any) {\n const subtotal: any = this.calculatePrice(total, this.currency().pricingMultiplier)\n return subtotal * 1\n }\n}\n\nexport class FacebookPurchaseEvent extends Vue {\n //The completion of a purchase, usually signified by receiving order or purchase confirmation, or a transaction receipt. For example, landing on a thank you or confirmation page.\n facebookPurchaseEvent(purchaseObj: any) {\n PushPixelEvent(FacebookConversionsEventTypes.Purchase, \"💲\", purchaseObj);\n }\n}\n\nexport class FacebookViewContentEvent extends Vue {\n //A visit to a web page that you care about. For example, a product or landing page. View content tells you if someone visits a web page's URL, but not what they do or see on that web page.\n //To fire when a collection or product page is visited\n facebookViewContentEvent() {\n PushPixelEvent(FacebookConversionsEventTypes.ViewContent, \"👀\");\n \n // details: any, categoryOverride: any = []\n // const categoryObj: any = {\n // content_name: details.name ? details.name : \"All Categories\",\n // content_type: categoryOverride.length > 0 || details.primaryCategory ? 'product' : 'product_group',\n // }\n // if(details.id) {\n // categoryObj['content_ids'] = [details.id];\n // }\n // if(categoryOverride.length > 0) {\n // categoryObj['content_category'] = categoryOverride[0];\n // }\n // else if(details.primaryCategory) {\n // categoryObj['content_category'] = details.primaryCategory.slug; //.name\n // }\n\n // if (categoryObj['content_name'] == \"All Categories\" && window.location.href != \"http://localhost:8080/all\") {\n // return false;\n // }\n }\n}","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FeaturesTextEditor.vue?vue&type=style&index=0&id=af23957a&lang=scss\"","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createTextVNode as _createTextVNode, createBlock as _createBlock, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, resolveDirective as _resolveDirective, withDirectives as _withDirectives, Teleport as _Teleport } from \"vue\"\nimport _imports_0 from '@/assets/nav-logo-with-slogan.png'\nimport _imports_1 from '@/assets/search-icon.png'\nimport _imports_2 from '@/assets/profile-icon.png'\nimport _imports_3 from '@/assets/cart-icon.png'\n\n\nconst _hoisted_1 = { class: \"container-fluid m-0 p-0\" }\nconst _hoisted_2 = { class: \"row flex-row w-100 justify-content-between\" }\nconst _hoisted_3 = { class: \"nav-image col-5 col-sm-4 col-md-3 col-lg-2 col-xl-2 d-flex align-items-center\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"d-sm-inline w-100 h-auto\",\n src: _imports_0,\n alt: \"Logo\",\n style: {\"max-width\":\"270px\"}\n}, null, -1)\nconst _hoisted_5 = { class: \"d-flex col-7 col-sm-8 col-md-9 justify-content-end align-items-center d-lg-none\" }\nconst _hoisted_6 = { class: \"d-flex country-details px-lg-2 px-xl-3\" }\nconst _hoisted_7 = {\n class: \"navbar-toggler navbar-collapse-button bg-light mx-1 mx-sm-3 col-1 col-lg-0\",\n style: {\"max-height\":\"45px\"},\n type: \"button\",\n \"data-bs-toggle\": \"collapse\",\n \"data-bs-target\": \"#navbarCollapse\",\n \"aria-controls\": \"navbarCollapse\",\n \"aria-expanded\": \"false\",\n \"aria-label\": \"Toggle navigation\"\n}\nconst _hoisted_8 = { class: \"nav-links-container col-12 col-lg-10 col-xl-10 d-flex\" }\nconst _hoisted_9 = {\n class: \"collapse navbar-collapse nav-links\",\n id: \"navbarCollapse\"\n}\nconst _hoisted_10 = { class: \"d-flex flex-column flex-lg-row justify-content-between align-items-start align-items-lg-center w-100\" }\nconst _hoisted_11 = { class: \"mt-0 mt-sm-3 mt-lg-0 navbar-nav ms-1 ms-xl-2 col-12 col-lg-5\" }\nconst _hoisted_12 = { class: \"navbar-nav align-items-start align-items-lg-center text-lg-end list-unstyled\" }\nconst _hoisted_13 = { class: \"d-inline d-lg-none mt-2 mt-lg-0 mx-2 mx-xxl-4 nav-link-text\" }\nconst _hoisted_14 = /*#__PURE__*/_createTextVNode(\"HOME\")\nconst _hoisted_15 = { class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text\" }\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"div\", null, \"PRODUCTS\", -1)\nconst _hoisted_17 = { class: \"px-2\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"div\", null, \"PRODUCTS\", -1)\nconst _hoisted_19 = { class: \"px-2\" }\nconst _hoisted_20 = {\n key: 0,\n class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text\"\n}\nconst _hoisted_21 = /*#__PURE__*/_createTextVNode(\" GROUP ORDERING \")\nconst _hoisted_22 = {\n key: 1,\n class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text\"\n}\nconst _hoisted_23 = {\n key: 2,\n class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text\"\n}\nconst _hoisted_24 = /*#__PURE__*/_createTextVNode(\"FAQS\")\nconst _hoisted_25 = { class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text d-none design-nav\" }\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\"DESIGN NOW\")\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"nav-link text-white\",\n \"aria-current\": \"page\",\n href: \"#\"\n}, \"LIVE CHAT\", -1)\nconst _hoisted_28 = [\n _hoisted_27\n]\nconst _hoisted_29 = { class: \"nav-icons ps-3 px-sm-3 px-lg-0 my-3 my-lg-0 col-12 col-lg-6 text-white d-flex align-items-end align-items-lg-center justify-content-between justify-content-lg-end mobile-nav-icon-container\" }\nconst _hoisted_30 = { class: \"icons-container d-flex align-items-lg-center\" }\nconst _hoisted_31 = { class: \"d-flex country-details px-lg-2 px-xl-3\" }\nconst _hoisted_32 = {\n key: 0,\n class: \"btn-group cart-profile-with-dropdown\"\n}\nconst _hoisted_33 = {\n class: \"dropdown-menu profile-dropdown text-uppercase\",\n style: {\"cursor\":\"pointer\"}\n}\nconst _hoisted_34 = /*#__PURE__*/_createTextVNode(\"Profile\")\nconst _hoisted_35 = /*#__PURE__*/_createTextVNode(\"Orders\")\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"hr\", { class: \"dropdown-divider\" })\n], -1)\nconst _hoisted_37 = { key: 0 }\nconst _hoisted_38 = { key: 1 }\nconst _hoisted_39 = /*#__PURE__*/_createElementVNode(\"hr\", { class: \"dropdown-divider\" }, null, -1)\nconst _hoisted_40 = [\n _hoisted_39\n]\nconst _hoisted_41 = {\n key: 3,\n class: \"btn-group cart-profile-with-dropdown\"\n}\nconst _hoisted_42 = {\n class: \"dropdown-menu profile-dropdown text-uppercase\",\n style: {\"cursor\":\"pointer\"}\n}\nconst _hoisted_43 = /*#__PURE__*/_createTextVNode(\"Login / Register\")\nconst _hoisted_44 = {\n class: \"btn-group cart-profile-with-dropdown\",\n style: {\"display\":\"block\"}\n}\nconst _hoisted_45 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"ps-lg-2 pe-lg-3 px-xl-3\",\n src: _imports_3,\n alt: \"Shopping Cart\"\n}, null, -1)\nconst _hoisted_46 = { class: \"dropdown-menu cart-dropdown p-0\" }\nconst _hoisted_47 = {\n key: 0,\n class: \"basket-border\"\n}\nconst _hoisted_48 = { class: \"col-12 cart-summary-parent-container\" }\nconst _hoisted_49 = { class: \"p-3 flex-centered\" }\nconst _hoisted_50 = { class: \"d-flex\" }\nconst _hoisted_51 = {\n class: \"h5 text-uppercase p-sm-primary m-0 primary-font-bold\",\n style: {\"font-weight\":\"600\"}\n}\nconst _hoisted_52 = {\n key: 1,\n class: \"col-12\"\n}\nconst _hoisted_53 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"p-3 flex-centered\" }, [\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"p-sm-primary m-0\" }, \"Your cart is empty.\")\n], -1)\nconst _hoisted_54 = [\n _hoisted_53\n]\nconst _hoisted_55 = {\n key: 2,\n class: \"col-12 d-flex\"\n}\nconst _hoisted_56 = { class: \"h6 text-uppercase text-center h-xs-secondary text-light m-0 p-0\" }\nconst _hoisted_57 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"px-3 px-xl-3\",\n src: _imports_3,\n alt: \"Shopping Cart\"\n}, null, -1)\nconst _hoisted_58 = { class: \"d-flex align-items-lg-center flex-column\" }\nconst _hoisted_59 = {\n class: \"d-flex flex-column justify-content-center\",\n id: \"zohoNav\"\n}\nconst _hoisted_60 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"h3 m-0\" }, \"LIVE CHAT\", -1)\nconst _hoisted_61 = {\n key: 0,\n class: \"live-status m-0\"\n}\nconst _hoisted_62 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"cta-button design-now flex-centered mx-lg-2\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"h3 m-0\" }, \"DESIGN NOW\")\n], -1)\nconst _hoisted_63 = {\n key: 0,\n class: \"col-12 flex-centered position-fixed quote-nav\"\n}\nconst _hoisted_64 = { class: \"m-0 p-sm-primary text-center p-1 text-white\" }\nconst _hoisted_65 = /*#__PURE__*/_createTextVNode(\" You are editing a quote.\")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_CartSummaryProductTile = _resolveComponent(\"CartSummaryProductTile\")!\n const _component_CurrencySelectorMobile = _resolveComponent(\"CurrencySelectorMobile\")!\n const _component_ProductMenu = _resolveComponent(\"ProductMenu\")!\n const _component_ProductMenuMobile = _resolveComponent(\"ProductMenuMobile\")!\n const _component_SearchBar = _resolveComponent(\"SearchBar\")!\n const _component_NewCurrencySelector = _resolveComponent(\"NewCurrencySelector\")!\n const _directive_click_away = _resolveDirective(\"click-away\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"placeholder w-100\", { 'd-none d-lg-flex': _ctx.$route.name === 'Designer', 'extra-placeholder': _ctx.isAdminQuote}])\n }, null, 2),\n _withDirectives((_openBlock(), _createElementBlock(\"nav\", {\n id: \"navbar\",\n class: _normalizeClass([\"w-100 fixed-top navbar navbar-expand-lg navbar-light\", { 'd-none d-lg-flex': _ctx.$route.name === 'Designer'}])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, {\n class: \"navbar-brand\",\n to: {name: 'Home', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([{'disable-country': _ctx.disableCountry}, \"nav-link text-white nav-currency-mobile d-flex align-items-center justify-content-end col-2 d-lg-none\"]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.expandCurrencies = false)),\n \"data-bs-toggle\": \"modal\",\n \"data-bs-target\": \"#currencySelectorMobile\",\n \"aria-current\": \"page\"\n }, [\n _createElementVNode(\"div\", _hoisted_6, [\n (_ctx.country().code !== 'XX')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass([\"round-flag-icon country-flag\", _ctx.country().code === 'EU' ? `round-flag-european_union` : `round-flag-${_ctx.country().code.toLowerCase()}`])\n }, null, 2))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"country-bg-flag country-flag text-center\",\n style: _normalizeStyle(`background-image:url('/img/flags/rest-of-world-flag-light.png');`)\n }, null, 4))\n ])\n ], 2),\n _createElementVNode(\"button\", _hoisted_7, [\n _createElementVNode(\"span\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.expandCurrencies = false)),\n class: \"navbar-toggler-icon\"\n })\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"ul\", _hoisted_12, [\n _createElementVNode(\"li\", _hoisted_13, [\n _createVNode(_component_router_link, {\n to: { name: 'Home', params: {lang: _ctx.$route.params.lang} },\n class: \"nav-link text-white\",\n \"aria-current\": \"page\",\n href: \"#\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", _hoisted_15, [\n _createElementVNode(\"span\", {\n class: \"nav-link text-white d-none d-lg-flex\",\n \"aria-current\": \"page\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => ((_ctx.expandProducts = !_ctx.expandProducts), (_ctx.expandCurrencies = false)))\n }, [\n _hoisted_16,\n _createElementVNode(\"div\", _hoisted_17, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-angle-down \",\n class: _normalizeClass([\"dropdown-arrow p-0 m-0 d-none d-lg-inline-block\", { 'flip-dropdown-arrow': _ctx.expandProducts }])\n }, null, 8, [\"class\"])\n ])\n ]),\n _createElementVNode(\"span\", {\n class: \"nav-link text-white d-flex d-lg-none\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.expandProducts = false)),\n \"data-bs-toggle\": \"modal\",\n \"data-bs-target\": \"#productMenuMobile\",\n \"aria-current\": \"page\"\n }, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa-solid fa-angle-right\",\n class: \"product-dropdown-arrow p-0 m-0 d-inline-block d-lg-none\"\n })\n ])\n ])\n ]),\n (_ctx.showNav)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_20, [\n _createVNode(_component_router_link, {\n to: { name: 'CustomStoreInfo', params: {lang: _ctx.$route.params.lang} },\n id: \"CustomStoreNavLink\",\n class: \"nav-link text-white\",\n \"aria-current\": \"page\",\n href: \"#\"\n }, {\n default: _withCtx(() => [\n _hoisted_21\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showNav)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_22, [\n _createElementVNode(\"div\", {\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.handleToEquire && _ctx.handleToEquire(...args))),\n class: \"nav-link text-white\"\n }, \"CONTACT\")\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showNav)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_23, [\n _createVNode(_component_router_link, {\n to: { name: 'FAQs', params: {lang: _ctx.$route.params.lang} },\n class: \"nav-link text-white\",\n \"aria-current\": \"page\",\n href: \"#\"\n }, {\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"li\", _hoisted_25, [\n _createVNode(_component_router_link, {\n to: { name: 'AllProductSelector', params: {lang: _ctx.$route.params.lang} },\n class: \"nav-link text-white\",\n \"aria-current\": \"page\",\n href: \"#\"\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n (_ctx.zohoChatActive)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 3,\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.startZohoChat && _ctx.startZohoChat(...args))),\n class: \"mt-2 mt-lg-0 mx-2 mx-lg-1 mx-xxl-2 nav-link-text d-none design-nav\"\n }, _hoisted_28))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([{'disable-country': _ctx.disableCountry}, \"d-none nav-currency-container d-lg-flex align-items-center\"]),\n id: \"nav-currency\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.showModal = true))\n }, [\n _createElementVNode(\"div\", _hoisted_31, [\n (_ctx.country().code !== 'XX')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass([\"round-flag-icon country-flag\", _ctx.country().code === 'EU' ? `round-flag-european_union` : `round-flag-${_ctx.country().code.toLowerCase()}`])\n }, null, 2))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"country-bg-flag country-flag text-center\",\n style: _normalizeStyle(`background-image:url('/img/flags/rest-of-world-flag-light.png');`)\n }, null, 4))\n ])\n ], 2),\n _createElementVNode(\"img\", {\n class: \"nav-icon pe-3 px-lg-2 px-xl-3\",\n \"data-bs-toggle\": \"modal\",\n \"data-bs-target\": \"#searchModal\",\n onClick: _cache[7] || (_cache[7] = ($event: any) => ((_ctx.expandCurrencies = false), (_ctx.expandProducts = false))),\n src: _imports_1,\n alt: \"Search\"\n }),\n (_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [\n _createElementVNode(\"img\", {\n \"data-bs-toggle\": \"dropdown\",\n onClick: _cache[8] || (_cache[8] = ($event: any) => ((_ctx.expandProducts = false), (_ctx.expandCurrencies = false))),\n \"aria-expanded\": \"false\",\n class: \"nav-icon pe-4 px-lg-2 px-xl-3\",\n src: _imports_2,\n alt: \"Profile\"\n }),\n _createElementVNode(\"ul\", _hoisted_33, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: { name: 'Profile', params: {lang: _ctx.$route.params.lang}, query: { section: 'profile-details' } },\n class: \"dropdown-item\"\n }, {\n default: _withCtx(() => [\n _hoisted_34\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: { name: 'Profile', params: {lang: _ctx.$route.params.lang}, query: { section: 'order-history' } },\n class: \"dropdown-item d-none d-sm-flex\"\n }, {\n default: _withCtx(() => [\n _hoisted_35\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _hoisted_36,\n (!_ctx.showNav)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_37, [\n _createElementVNode(\"a\", {\n class: \"dropdown-item\",\n onClick: _cache[9] || (_cache[9] = \n//@ts-ignore\n(...args) => (_ctx.exitQuote && _ctx.exitQuote(...args)))\n }, \"Exit Quote\")\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.showNav)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_38, _hoisted_40))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", {\n class: \"dropdown-item\",\n onClick: _cache[10] || (_cache[10] = \n//@ts-ignore\n(...args) => (_ctx.logout && _ctx.logout(...args)))\n }, \"Logout\")\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isLoggedIn)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n to: { name: 'Profile', params: {lang: _ctx.$route.params.lang}, query: { section: 'profile-details' } },\n class: \"cart-profile-without-dropdown\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n onClick: _cache[11] || (_cache[11] = ($event: any) => ((_ctx.expandProducts = false), (_ctx.expandCurrencies = false))),\n class: \"nav-icon px-3 px-xl-3\",\n src: _imports_2,\n alt: \"Profile\"\n })\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.isLoggedIn)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n to: { name: 'Login', params: {lang: _ctx.$route.params.lang}, query: { returnUrl: _ctx.$route.fullPath} },\n class: \"cart-profile-without-dropdown\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"img\", {\n onClick: _cache[12] || (_cache[12] = ($event: any) => ((_ctx.expandProducts = false), (_ctx.expandCurrencies = false))),\n class: \"nav-icon px-3 px-xl-3\",\n src: _imports_2,\n alt: \"Profile\"\n })\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (!_ctx.isLoggedIn)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_41, [\n _createElementVNode(\"img\", {\n \"data-bs-toggle\": \"dropdown\",\n onClick: _cache[13] || (_cache[13] = ($event: any) => ((_ctx.expandProducts = false), (_ctx.expandCurrencies = false))),\n \"aria-expanded\": \"false\",\n class: \"nav-icon pe-4 px-lg-2 px-xl-3\",\n src: _imports_2,\n alt: \"Profile\"\n }),\n _createElementVNode(\"ul\", _hoisted_42, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: { name: 'Login', params: {lang: _ctx.$route.params.lang}, query: { returnUrl: _ctx.$route.fullPath} },\n class: \"dropdown-item a\"\n }, {\n default: _withCtx(() => [\n _hoisted_43\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_44, [\n _createElementVNode(\"div\", {\n \"data-bs-toggle\": \"dropdown\",\n \"aria-expanded\": \"false\",\n class: \"nav-icon position-relative d-flex justify-content-end\",\n onClick: _cache[14] || (_cache[14] = ($event: any) => ((_ctx.expandProducts = false), (_ctx.expandCurrencies = false)))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"cart-items flex-centered align-self-start\", {'quote-cart': _ctx.isAdminQuote}])\n }, _toDisplayString(_ctx.itemsInCart), 3),\n _hoisted_45\n ]),\n _createElementVNode(\"div\", _hoisted_46, [\n (_ctx.storeCart && _ctx.storeCart.items.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_47, [\n _createElementVNode(\"div\", _hoisted_48, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.storeCart.items, (product) => {\n return (_openBlock(), _createBlock(_component_CartSummaryProductTile, {\n key: product.id,\n product: product\n }, null, 8, [\"product\"]))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_49, [\n _createElementVNode(\"div\", _hoisted_50, [\n _createElementVNode(\"div\", _hoisted_51, \"Total: \" + _toDisplayString(_ctx.currency().symbol) + _toDisplayString(_ctx.thousandSeparator(_ctx.calculatePrice(_ctx.totalPrice, _ctx.currency().pricingMultiplier))), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_52, _hoisted_54)),\n (_ctx.storeCart && _ctx.storeCart.items.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_55, [\n _createVNode(_component_router_link, {\n to: { name: 'Cart', params: { id: _ctx.cartId, lang: _ctx.$route.params.lang } },\n class: \"col-12 bg-primary basket-button flex-centered py-2\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_56, _toDisplayString(_ctx.isAdminQuote ? 'Quote' : 'Cart'), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(_component_router_link, {\n to: { name: 'Cart', params: { id: _ctx.cartId, lang: _ctx.$route.params.lang } },\n class: \"cart-profile-without-dropdown nav-icon position-relative d-flex justify-content-end\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"cart-items-without-dropdown flex-centered align-self-start\", {'quote-cart': _ctx.isAdminQuote}])\n }, _toDisplayString(_ctx.itemsInCart), 3),\n _hoisted_57\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_58, [\n _createElementVNode(\"div\", {\n class: \"text-white\",\n style: {\"text-decoration\":\"none\"},\n onClick: _cache[15] || (_cache[15] = \n//@ts-ignore\n(...args) => (_ctx.startZohoChat && _ctx.startZohoChat(...args)))\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"cta-button live-chat flex-centered mx-lg-2\", {'zoho-disabled': !_ctx.zohoChatActive}])\n }, [\n _createElementVNode(\"div\", _hoisted_59, [\n _hoisted_60,\n (_ctx.zohoChatActive != 'loading')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_61, _toDisplayString(_ctx.zohoChatActive ? 'ONLINE' : 'OFFLINE'), 1))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ]),\n _createVNode(_component_router_link, {\n class: \"text-white\",\n style: {\"text-decoration\":\"none\"},\n to: { name: 'AllProductSelector', params: {lang: _ctx.$route.params.lang || undefined} }\n }, {\n default: _withCtx(() => [\n _hoisted_62\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ])\n ])\n ])\n ])\n ], 2)), [\n [_directive_click_away, _ctx.toggleNavbar]\n ]),\n (_ctx.isAdminQuote)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_63, [\n _createElementVNode(\"p\", _hoisted_64, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.user ? `${_ctx.user.displayName}: ` : ''), 1),\n _hoisted_65\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_CurrencySelectorMobile, {\n onSelect: _ctx.selectCountry,\n class: \"d-flex d-lg-none\"\n }, null, 8, [\"onSelect\"]),\n _createVNode(_component_ProductMenu, {\n menuItems: _ctx.productMenuItems,\n menuStatus: _ctx.expandProducts,\n onClose: _cache[16] || (_cache[16] = ($event: any) => (_ctx.expandProducts = false)),\n id: \"product-dropdown\",\n class: _normalizeClass([\"menu-dropdown-closed d-none d-lg-flex\", { 'menu-dropdown-open': _ctx.expandProducts }])\n }, null, 8, [\"menuItems\", \"menuStatus\", \"class\"]),\n _createVNode(_component_ProductMenuMobile, {\n class: \"d-flex d-lg-none\",\n menuItems: _ctx.productMenuItems\n }, null, 8, [\"menuItems\"]),\n _createVNode(_component_SearchBar, {\n clearSearch: _ctx.clearSearch,\n onReset: _cache[17] || (_cache[17] = ($event: any) => (_ctx.clearSearch = false))\n }, null, 8, [\"clearSearch\"]),\n (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createVNode(_component_NewCurrencySelector, {\n onSelect: _ctx.selectCountry,\n show: _ctx.showModal,\n onClose: _cache[18] || (_cache[18] = ($event: any) => (_ctx.showModal = false))\n }, null, 8, [\"onSelect\", \"show\"])\n ]))\n ], 64))\n}","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, vModelText as _vModelText, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"search-bar-container\" }\nconst _hoisted_2 = {\n class: \"modal right\",\n id: \"searchModal\",\n tabindex: \"-1\",\n role: \"dialog\",\n \"aria-labelledby\": \"searchModal\"\n}\nconst _hoisted_3 = {\n class: \"modal-dialog\",\n role: \"document\"\n}\nconst _hoisted_4 = { class: \"modal-content\" }\nconst _hoisted_5 = { class: \"modal-header\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { \"aria-hidden\": \"false\" }, \"×\", -1)\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"modal-body\" }\nconst _hoisted_9 = { class: \"searchbar-container flex-centered mx-3 mx-sm-1\" }\nconst _hoisted_10 = {\n ref: \"results\",\n class: \"results-container col-12\"\n}\nconst _hoisted_11 = { class: \"results\" }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { class: \"row g-2 flex-row justify-content-center justify-content-sm-start mt-3\" }\nconst _hoisted_14 = { ref: \"bottom\" }\nconst _hoisted_15 = {\n key: 1,\n class: \"col-12 flex-centered\"\n}\nconst _hoisted_16 = {\n key: 2,\n class: \"row text-center\"\n}\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"p-md-primary py-4\" }, \"No products match your search.\", -1)\nconst _hoisted_18 = [\n _hoisted_17\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_GlobalSearchResultTile = _resolveComponent(\"GlobalSearchResultTile\")!\n const _component_Spinner = _resolveComponent(\"Spinner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"close search-modal-button\",\n id: \"searchModalButton\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.searchTerm = ''))\n }, _hoisted_7)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_font_awesome_icon, {\n icon: \"fa fa-search\",\n class: \"py-2 ps-2\"\n }),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"myInput\",\n ref: \"search\",\n class: \"form-control\",\n type: \"search\",\n placeholder: \"SEARCH\",\n \"aria-label\": \"Search\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.searchTerm) = $event))\n }, null, 512), [\n [_vModelText, _ctx.searchTerm]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n (_ctx.displayedSearchItems.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.displayedSearchItems, (product) => {\n return (_openBlock(), _createBlock(_component_GlobalSearchResultTile, {\n key: product.id,\n tileName: product.name,\n infoLinkTo: {\n name: 'Product',\n params: {\n productSlug: product.slug,\n categorySlug: _ctx.$filters.splitSlug(product.primaryCategory.fullSlug),\n lang: _ctx.$route.params.lang\n },\n },\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.searchTerm = '')),\n tileBgUrl: `${_ctx.uploadPath}/${product.thumbnailImages[0].imageUrl}`\n }, null, 8, [\"tileName\", \"infoLinkTo\", \"tileBgUrl\"]))\n }), 128)),\n _createElementVNode(\"span\", _hoisted_14, null, 512)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_Spinner, { visible: _ctx.loading }, null, 8, [\"visible\"])\n ]))\n : (!_ctx.loading && !_ctx.displayedSearchItems.length && _ctx.searchTerm.length >= 3)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, _hoisted_18))\n : _createCommentVNode(\"\", true)\n ])\n ], 512)\n ])\n ])\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"result-tile-box-info w-100\" }\nconst _hoisted_2 = { class: \"text-center primary-font-bold px-3\" }\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"info-container primary-font-bold col-12 col-sm-11 col-xl-12 d-flex m-0 p-0\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-light bg-secondary info col-12 flex-centered\" }, \" INFO. \")\n], -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createBlock(_component_router_link, {\n to: _ctx.infoLinkTo,\n class: \"col-8 col-sm-6 result-tile-container\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: \"result-tile-box col-12 d-flex flex-column justify-content-end align-items-center\",\n style: _normalizeStyle({\n 'background-image': `linear-gradient(to bottom,rgba(255, 255, 255, 0),rgba(0, 0, 0, 0.1),rgba(0, 0, 0, 0.9)),url('${_ctx.tileBgUrl}')`,\n })\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"h3\", _hoisted_2, [\n _createTextVNode(_toDisplayString(_ctx.tileName), 1),\n _hoisted_3\n ]),\n _hoisted_4\n ])\n ], 4)\n ]),\n _: 1\n }, 8, [\"to\"]))\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n tileName: { type: String, default: \"Product\" },\n tileBgUrl: {\n type: String,\n default: \"/img/clifton-product-images-1.1.jpg\",\n },\n infoLinkTo: { default: { name: \"AllCategories\" } },\n },\n})\nexport default class ProductGlobalSearchResultTile extends Vue {\n tileName = \"Product\";\n tileBgUrl = \"/img/clifton-product-images-1.1.jpg\";\n infoLinkTo = \"AllCategories\";\n}\n","import { render } from \"./GlobalSearchResultTile.vue?vue&type=template&id=2635d57c&ts=true\"\nimport script from \"./GlobalSearchResultTile.vue?vue&type=script&lang=ts\"\nexport * from \"./GlobalSearchResultTile.vue?vue&type=script&lang=ts\"\n\nimport \"./GlobalSearchResultTile.vue?vue&type=style&index=0&id=2635d57c&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { ProductListViewModel, ProductListViewModelPaginatedList } from \"@/api-client\";\nimport { Products } from \"@/network/api\";\nimport GlobalSearchResultTile from \"@/components/navigation/search-bar/GlobalSearchResultTile.vue\";\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport { UploadPath } from \"@/mixins/utilities\";\nimport { ref } from \"@vue/reactivity\";\nimport Spinner from \"@/components/spinner/Spinner.vue\";\n\n@Options({\n components: { GlobalSearchResultTile, Spinner },\n props: {\n clearSearch: { default: false }\n },\n emits: ['reset']\n})\nexport default class SearchBar extends mixins(UploadPath) {\n searchTerm = \"\";\n searchedProductPages: ProductListViewModelPaginatedList = {\n hasNextPage: false,\n hasPreviousPage: false,\n items: [],\n pageIndex: 1,\n totalCount: 15,\n totalPages: 1,\n pageSize: 15,\n };\n displayedSearchItems: Array = [];\n pageIndex = 1;\n loading = false;\n debounce: any = null;\n clearSearch = false;\n modal = ref()\n searchModal:any;\n\n created() {\n this.$watch(\"searchTerm\", (v: any) => {\n this.pageIndex = 1;\n this.displayedSearchItems = [];\n this.loading = false;\n\n clearTimeout(this.debounce);\n if (this.searchTerm) {\n this.searchProductPages()\n }\n });\n\n this.$watch(\"clearSearch\", () => {\n if(this.clearSearch) {\n this.searchTerm = \"\";\n this.$emit('reset')\n }\n })\n }\n\n mounted() {\n this.searchModal = document.getElementById('searchModal')\n if(this.searchModal) {\n this.searchModal.addEventListener('shown.bs.modal', () => this.focusInput())\n }\n this.scroll();\n }\n\n unmounted() {\n this.searchModal.removeEventListener('shown.bs.modal', () => this.focusInput())\n }\n\n isScrolledIntoView(el: any) {\n let rect = el.getBoundingClientRect() as DOMRect;\n let elemTop = rect.top;\n let elemBottom = rect.bottom;\n let isVisible = elemTop < window.innerHeight && elemBottom >= 0;\n return isVisible;\n }\n\n scroll() {\n let allRefs = this.$refs as any;\n allRefs.results.onscroll = () => {\n let scrolledTo = allRefs.bottom;\n \n\n if (scrolledTo && this.isScrolledIntoView(scrolledTo)) {\n this.loadMoreProducts();\n }\n };\n }\n\n focusInput() {\n let refs = this.$refs as any;\n let search = refs.search; \n search.focus();\n }\n\n loadMoreProducts() {\n if ((this.loading === false) && (this.searchedProductPages.hasNextPage === true)) {\n this.loading = true;\n this.pageIndex += 1;\n \n this.searchProductPages(this.pageIndex);\n }\n }\n\n async searchProductPages(page = this.pageIndex) {\n if (this.searchTerm) {\n this.loading = true;\n this.debounce = setTimeout(async () => {\n await Products.productsSearchGet(page, 12, this.searchTerm)\n .then((res) => {\n if (res.data.resultData) {\n this.searchedProductPages = res.data.resultData;\n this.searchedProductPages.items.forEach((item:any) => {\n //this is for lazy loading\n this.displayedSearchItems.push(item);\n });\n this.loading = false;\n }\n })\n .catch((error) => {\nconsole.log(error)\n this.loading = false;\n clearTimeout(this.debounce);\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }, 400);\n } else {\n this.displayedSearchItems = [];\n this.loading = false;\n }\n }\n\n beforeUnmount() {\n clearTimeout(this.debounce);\n }\n\n}\n","import { render } from \"./SearchBar.vue?vue&type=template&id=e6e8cfb4&ts=true\"\nimport script from \"./SearchBar.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchBar.vue?vue&type=script&lang=ts\"\n\nimport \"./SearchBar.vue?vue&type=style&index=0&id=e6e8cfb4&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"menu-system-container col-12 d-flex justify-content-start position-fixed d-none d-lg-flex\",\n id: \"productMenu\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"d-none d-lg-flex col-2 py-4\" }, null, -1)\nconst _hoisted_3 = { class: \"d-flex px-1 list-unstyled mb-0\" }\nconst _hoisted_4 = { class: \"h6 text-uppercase h-xs-secondary text-secondary mb-2\" }\nconst _hoisted_5 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_6 = { class: \"col-12 d-flex\" }\nconst _hoisted_7 = { class: \"col-6 d-flex\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-uppercase text-center h-xs-secondary text-light m-0 p-0 text\" }, \"View All Categories\", -1)\nconst _hoisted_9 = { class: \"col-6 d-flex\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-uppercase text-center h-xs-secondary text-light m-0 p-0 text\" }, \"Special Requests\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_ctx.menuItems)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"d-flex flex-column groups-container\", `col-${2 * (_ctx.navColumns.count + 1)}`])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"col-12 bg-secondary-light menu-groups flex-wrap d-flex px-1 py-4\", _ctx.navColumns.count <= 2 ? '' : 'justify-content-around'])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menuItems, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: `menu-${index}-${item.name}`,\n class: _normalizeClass([\"d-flex columns\", {'d-none': !item.categories.length, [`col-${_ctx.navColumns.col} px-3`]: _ctx.navColumns.count <= 2 }]),\n style: _normalizeStyle(`max-width:${_ctx.navMax}%`)\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(item.name), 1),\n _createElementVNode(\"ul\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.categories, (category) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: category.id,\n class: \"category m-0 p-0 pb-2 p-sm-primary\"\n }, [\n _createVNode(_component_router_link, {\n to: {name: 'Categories', params: {slug: _ctx.$filters.splitSlug(category.slug), lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(category.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n }), 128))\n ])\n ])\n ])\n ], 6))\n }), 128))\n ], 2),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(_component_router_link, {\n to: {name: 'AllCategories', params: {lang: _ctx.$route.params.lang}},\n class: \"col-12 bg-primary all-container flex-centered py-2\"\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createVNode(_component_router_link, {\n to: {name: 'CanYouMakeThis', params: {lang: _ctx.$route.params.lang}},\n class: \"col-12 bg-primary all-container flex-centered py-2\"\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ], 2)\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { ProductCategoryMenuGroupViewModel } from \"@/api-client\";\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n menuItems: { default: null }\n },\n})\nexport default class ProductMenu extends Vue {\n menuItems: Array = []\n\n get navColumns() {\n let count = 0;\n this.menuItems.forEach(item => {\n if(item.categories.length) {\n count += 1;\n }\n })\n\n if(count <= 4) {\n return {count: count, col: 12 / count};\n }\n\n return {count: count, col: 3};\n }\n\n get navMax() {\n let count = 0;\n this.menuItems.forEach(item => {\n if(item.categories.length) {\n count += 1;\n }\n })\n\n if(count <= 4) {\n return 100 / count;\n }\n\n return 25;\n }\n}\n","import { render } from \"./ProductMenu.vue?vue&type=template&id=4d532afe&ts=true\"\nimport script from \"./ProductMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./ProductMenu.vue?vue&type=script&lang=ts\"\n\nimport \"./ProductMenu.vue?vue&type=style&index=0&id=4d532afe&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"product-menu-container d-flex d-lg-none\"\n}\nconst _hoisted_2 = {\n class: \"modal right\",\n id: \"productMenuMobile\",\n tabindex: \"-1\",\n role: \"dialog\",\n \"aria-labelledby\": \"productMenuMobile\"\n}\nconst _hoisted_3 = {\n class: \"modal-dialog\",\n role: \"document\"\n}\nconst _hoisted_4 = { class: \"modal-content\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"modal-header\" }, [\n /*#__PURE__*/_createElementVNode(\"button\", {\n type: \"button\",\n class: \"close close-menu-button\",\n id: \"productMenuMobileButton\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\"\n }, [\n /*#__PURE__*/_createElementVNode(\"span\", { \"aria-hidden\": \"false\" }, \"×\")\n ])\n], -1)\nconst _hoisted_6 = { class: \"modal-body col-12 d-flex justify-content-center\" }\nconst _hoisted_7 = { class: \"menu-groups d-flex flex-column col-11 align-items-center\" }\nconst _hoisted_8 = { class: \"d-flex flex-column\" }\nconst _hoisted_9 = { class: \"h6 text-uppercase h-xs-secondary text-secondary mb-2\" }\nconst _hoisted_10 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_11 = { class: \"col-12 d-flex my-2\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-uppercase text-center h-xs-secondary text-light m-0 p-0 text\" }, \"View All Categories\", -1)\nconst _hoisted_13 = { class: \"col-12 d-flex\" }\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"text-uppercase text-center h-xs-secondary text-light m-0 p-0 text\" }, \"Special Requests\", -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_ctx.menuItems)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menuItems, (item, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: `menu-${index}-${item.name}`,\n class: _normalizeClass([\"col-12 d-flex mb-3\", {'d-none' : !item.categories.length}])\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(item.name), 1),\n _createElementVNode(\"ul\", _hoisted_10, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(item.categories, (category) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: category.id,\n class: \"category m-0 p-0 pb-2 p-sm-primary\"\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'Categories', params: { slug: _ctx.$filters.splitSlug(category.slug), lang: _ctx.$route.params.lang } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(category.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n }), 128))\n ])\n ])\n ])\n ], 2))\n }), 128)),\n _createElementVNode(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n to: { name: 'AllCategories', params: {lang: _ctx.$route.params.lang} },\n class: \"col-12 bg-primary all-container flex-centered py-2\"\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(_component_router_link, {\n to: {name: 'CanYouMakeThis', params: {lang: _ctx.$route.params.lang}},\n class: \"col-12 bg-primary all-container flex-centered py-2\"\n }, {\n default: _withCtx(() => [\n _hoisted_14\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n components: {},\n props: {\n menuItems: { default: null }\n },\n})\nexport default class ProdcutMenuMobile extends Vue {\n}\n","import { render } from \"./ProductMenuMobile.vue?vue&type=template&id=25476c60&ts=true\"\nimport script from \"./ProductMenuMobile.vue?vue&type=script&lang=ts\"\nexport * from \"./ProductMenuMobile.vue?vue&type=script&lang=ts\"\n\nimport \"./ProductMenuMobile.vue?vue&type=style&index=0&id=25476c60&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, withDirectives as _withDirectives, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"mobile-currency-selector-container d-flex d-lg-none\" }\nconst _hoisted_2 = {\n class: \"modal right\",\n id: \"currencySelectorMobile\",\n tabindex: \"-1\",\n role: \"dialog\",\n \"aria-labelledby\": \"currencySelectorMobile\"\n}\nconst _hoisted_3 = {\n class: \"modal-dialog\",\n role: \"document\"\n}\nconst _hoisted_4 = { class: \"modal-content\" }\nconst _hoisted_5 = /*#__PURE__*/_createStaticVNode(\"

    Preferences

    \", 1)\nconst _hoisted_6 = { class: \"modal-body col-12 d-flex justify-content-center\" }\nconst _hoisted_7 = { class: \"h-100 col-12\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"p-xs-primary text-uppercase m-0 mb-1 px-2 mb-2\" }, \"Ship to:\", -1)\nconst _hoisted_9 = { class: \"px-2\" }\nconst _hoisted_10 = [\"value\", \"selected\"]\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"p-xs-primary text-uppercase m-0 mt-4 mb-1 ps-2 mb-2\" }, \"Currency:\", -1)\nconst _hoisted_12 = { class: \"p-sm-primary px-2 m-0\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"bg-secondary-light px-2 py-3\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { name: \"col-12 d-flex\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", { class: \"px-2\" }, [\n /*#__PURE__*/_createElementVNode(\"div\", {\n type: \"button\",\n \"data-bs-dismiss\": \"modal\",\n \"aria-label\": \"Close\",\n class: \"btn-md-secondary text-uppercase col-12 flex-centered\"\n }, \"Close\")\n ])\n ])\n], -1)\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _withDirectives(_createElementVNode(\"select\", {\n onChange: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.changeCountry && _ctx.changeCountry(...args))),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.selectedCountry) = $event)),\n class: \"col-12 py-1 px-2\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.allCountries, (newCountry) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: newCountry.id,\n value: newCountry.id,\n selected: _ctx.country().id == newCountry.id\n }, _toDisplayString(newCountry.name), 9, _hoisted_10))\n }), 128))\n ], 544), [\n [_vModelSelect, _ctx.selectedCountry]\n ])\n ]),\n _hoisted_11,\n _createElementVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.country().currency.symbol) + \" - \" + _toDisplayString(_ctx.country().currency.name), 1)\n ])\n ]),\n _hoisted_13\n ])\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1cd1abb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"currency-group-container d-flex justify-content-center\"\n}\nconst _hoisted_2 = { class: \"col-12 text-md-center h-xs-secondary text-uppercase pb-1 pb-sm-0\" }\nconst _hoisted_3 = [\"onClick\"]\nconst _hoisted_4 = { class: \"d-flex currency-details\" }\nconst _hoisted_5 = { class: \"ps-2 d-flex flex-column justify-content-center currency-name p-xs-primary\" }\nconst _hoisted_6 = { class: \"m-0 p-0 d-none d-sm-inline\" }\nconst _hoisted_7 = { class: \"m-0 p-0\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.countryGroup.countries)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"h4\", _hoisted_2, _toDisplayString(_ctx.countryGroup.name === \"Rest of the World\" ? \"Rest of World\" : _ctx.countryGroup.name), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.countryGroup.countries, (country) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"col-12 d-flex align-items-center pb-2 pb-sm-3\", { 'selected': _ctx.selected === country.id }]),\n key: country.id,\n onClick: ($event: any) => (this.$emit('select', country))\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n (country.code !== 'XX')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass([\"round-flag-icon currency-flag\", country.code === 'EU' ? `round-flag-european_union` : `round-flag-${country.code.toLowerCase()}`])\n }, null, 2))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"currency-bg-flag currency-flag text-center\",\n style: _normalizeStyle(`background-image:url('/img/flags/rest-of-world-flag-dark.png')`)\n }, null, 4)),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(country.name), 1),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(country.currency.symbol) + \" \" + _toDisplayString(country.currency.code), 1)\n ])\n ])\n ], 10, _hoisted_3))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Options, Vue } from \"vue-class-component\";\nimport \"round-flag-icons/css/round-flag-icons.css\";\n\n@Options({\n components: { },\n props: {\n group: { default: \"\" },\n countryGroup: { default: [] },\n selected: { default: \"\" },\n },\n emits: [\"select\"],\n})\nexport default class CurrencyGroup extends Vue {\n}\n","import { render } from \"./CurrencyGroup.vue?vue&type=template&id=1cd1abb8&scoped=true&ts=true\"\nimport script from \"./CurrencyGroup.vue?vue&type=script&lang=ts\"\nexport * from \"./CurrencyGroup.vue?vue&type=script&lang=ts\"\n\nimport \"./CurrencyGroup.vue?vue&type=style&index=0&id=1cd1abb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1cd1abb8\"]])\n\nexport default __exports__","\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport CurrencyGroup from \"@/components/navigation/currency-selector/CurrencyGroup.vue\";\nimport { CountryViewModel } from \"@/api-client\";\nimport { Countries } from \"@/network/api\";\nimport { Country } from \"@/mixins/utilities\";\nimport { store } from \"@/store\";\n\n@Options({\n components: { CurrencyGroup },\n emits: [\"select\"]\n})\nexport default class CurrencySelectorMobile extends mixins(Country) {\n allCountries: Array = [];\n selectedCountry: any = {};\n\n created() {\n this.loadInitialData()\n\n this.$watch('countryWatcher', () => {\n this.selectedCountry = this.country().id;\n })\n }\n\n get countryWatcher() {\n return store.getters[\"location/country\"];\n }\n\n mounted() {\n this.selectedCountry = this.country().id;\n }\n\n // get sortedCountries() {\n // return this.allCountries.sort((a, b) => {\n // if(a.name < b.name){\n // return -1\n // }\n // if(a.name > b.name){\n // return 1\n // }\n // return 0\n // })\n // }\n\n changeCountry() {\n let newCountry = this.allCountries.find(country => country.id === this.selectedCountry);\n this.$emit('select', newCountry)\n }\n\n async loadInitialData() {\n await Countries.countriesGet().then((res) => {\n if (res.data.succeeded) {\n this.allCountries = res.data.resultData as Array;\n\n // if (groups) {\n // this.allCountries = [];\n // groups.forEach((group: CountryGroupViewModel) => {\n // group.countries.forEach((country: CountryViewModel) => {\n // //if (group.name !== \"Rest of the World\") {\n // this.allCountries = [...this.allCountries, country] as Array;\n // //}\n // });\n // });\n // }\n }\n });\n }\n}\n","import { render } from \"./CurrencySelectorMobile.vue?vue&type=template&id=5e244799&ts=true\"\nimport script from \"./CurrencySelectorMobile.vue?vue&type=script&lang=ts\"\nexport * from \"./CurrencySelectorMobile.vue?vue&type=script&lang=ts\"\n\nimport \"./CurrencySelectorMobile.vue?vue&type=style&index=0&id=5e244799&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74ce5c7a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"cart-summary-product-container col-12\" }\nconst _hoisted_2 = { class: \"px-2 pt-2 col-12\" }\nconst _hoisted_3 = { class: \"d-flex cart-product col-12 bg-secondary-light align-items-center p-1\" }\nconst _hoisted_4 = { class: \"col-8 product-info-container\" }\nconst _hoisted_5 = { class: \"ps-2 col-12\" }\nconst _hoisted_6 = { class: \"product-title col-12 p-xs-primary m-0 text-uppercase\" }\nconst _hoisted_7 = { class: \"col-12 p-xs-primary m-0 my-1\" }\nconst _hoisted_8 = { class: \"col-12 h-xs-secondary m-0\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_PreviewImage = _resolveComponent(\"PreviewImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.product.customizedProduct.previewImageUrl)\n ? (_openBlock(), _createBlock(_component_PreviewImage, {\n key: 0,\n class: \"product-image-container col-4 flex-centered\",\n path: `${_ctx.uploadPath}/${_ctx.product.customizedProduct.previewImageUrl}`\n }, null, 8, [\"path\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(_ctx.product.customizedProduct.name), 1),\n _createElementVNode(\"p\", _hoisted_7, \"Qty: \" + _toDisplayString(_ctx.quantityPerItem(_ctx.product)), 1),\n _createElementVNode(\"h6\", _hoisted_8, _toDisplayString(_ctx.currency().symbol) + _toDisplayString(_ctx.thousandSeparator(_ctx.calculatePrice(_ctx.product.price * _ctx.quantityPerItem(_ctx.product), _ctx.currency().pricingMultiplier))), 1)\n ])\n ])\n ])\n ])\n ]))\n}","\nimport { mixins, Options } from \"vue-class-component\";\nimport { CalculatePrice, Currency, QuantityPerItem, ThousandSeparator, UploadPath } from \"@/mixins/utilities\";\nimport PreviewImage from \"@/components/images/PreviewImage.vue\";\n\n@Options({\n components: { PreviewImage },\n props: {\n product: { default: {} },\n },\n})\nexport default class CartSummaryProductTile extends mixins(CalculatePrice, Currency, UploadPath, QuantityPerItem, ThousandSeparator) {\n}\n","import { render } from \"./CartSummaryProductTile.vue?vue&type=template&id=74ce5c7a&scoped=true&ts=true\"\nimport script from \"./CartSummaryProductTile.vue?vue&type=script&lang=ts\"\nexport * from \"./CartSummaryProductTile.vue?vue&type=script&lang=ts\"\n\nimport \"./CartSummaryProductTile.vue?vue&type=style&index=0&id=74ce5c7a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-74ce5c7a\"]])\n\nexport default __exports__","import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, vModelSelect as _vModelSelect, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"modal-mask new-currency-selector-modal\"\n}\nconst _hoisted_2 = { class: \"modal-wrapper\" }\nconst _hoisted_3 = { class: \"modal-container d-flex flex-column p-2 col-5 col-xl-4 col-xxl-3\" }\nconst _hoisted_4 = { class: \"modal-header p-0 col-12\" }\nconst _hoisted_5 = { class: \"d-flex col-12 position-relative\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"col-12 my-3 px-2\" }, [\n /*#__PURE__*/_createElementVNode(\"h3\", { class: \"h-xs-secondary text-uppercase m-0 mb-1\" }, \"Preferences\")\n], -1)\nconst _hoisted_7 = {\n key: 0,\n class: \"modal-body col-12 py-3 p-0 h-100\"\n}\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"p-xs-primary text-uppercase m-0 mb-1 px-2 mb-2\" }, \"Ship to:\", -1)\nconst _hoisted_9 = { class: \"px-2\" }\nconst _hoisted_10 = [\"value\", \"selected\"]\nconst _hoisted_11 = { class: \"mb-4 mb-xxl-5\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"p-xs-primary text-uppercase m-0 mt-4 mb-1 ps-2 mb-2\" }, \"Currency:\", -1)\nconst _hoisted_13 = { class: \"p-sm-primary px-2 m-0\" }\nconst _hoisted_14 = { class: \"modal-footer ps-1 p-0 col-12\" }\nconst _hoisted_15 = { class: \"col-12\" }\nconst _hoisted_16 = { class: \"px-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_Transition, { name: \"curency-modal\" }, {\n default: _withCtx(() => [\n (_ctx.show)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"header col-12\", {}, () => [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (this.$emit('close'))),\n type: \"button\",\n class: \"btn-close position-absolute\",\n style: {\"top\":\"10px\",\"right\":\"10px\",\"box-shadow\":\"none\"},\n \"aria-label\": \"Close\"\n }),\n _hoisted_6\n ])\n ])\n ]),\n (_ctx.allCountries.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _renderSlot(_ctx.$slots, \"body h-100 col-12\", {}, () => [\n _hoisted_8,\n _createElementVNode(\"div\", _hoisted_9, [\n _withDirectives(_createElementVNode(\"select\", {\n onChange: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.changeCountry && _ctx.changeCountry(...args))),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.selectedCountry) = $event)),\n class: \"col-12 py-1 px-2\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.allCountries, (newCountry) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n key: newCountry.id,\n value: newCountry.id,\n selected: _ctx.country().id == newCountry.id\n }, _toDisplayString(newCountry.name), 9, _hoisted_10))\n }), 128))\n ], 544), [\n [_vModelSelect, _ctx.selectedCountry]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _hoisted_12,\n _createElementVNode(\"p\", _hoisted_13, _toDisplayString(_ctx.country().currency.symbol) + \" - \" + _toDisplayString(_ctx.country().currency.name), 1)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_14, [\n _renderSlot(_ctx.$slots, \"footer col-12\", {}, () => [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (this.$emit('close'))),\n class: \"btn-md-secondary text-uppercase col-12 flex-centered\"\n }, \"Close\")\n ])\n ])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }))\n}","\nimport { CountryViewModel } from \"@/api-client\";\nimport { Country } from \"@/mixins/utilities\";\nimport { Countries } from \"@/network/api\";\nimport { store } from \"@/store\";\nimport { mixins, Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n show: Boolean,\n },\n emits: [\"close\", \"select\"],\n})\nexport default class NewCurrencySelector extends mixins(Country) {\n show = false;\n allCountries: Array = [];\n selectedCountry = '';\n\n created() {\n this.loadInitialData()\n\n this.$watch('countryWatcher', () => {\n this.selectedCountry = this.country().id;\n })\n }\n\n mounted() {\n this.selectedCountry = this.country().id;\n }\n\n get countryWatcher() {\n return store.getters[\"location/country\"];\n }\n\n // get sortedCountries() {\n // return this.allCountries.sort((a, b) => {\n // if(a.name < b.name){\n // return -1\n // }\n // if(a.name > b.name){\n // return 1\n // }\n // return 0\n // })\n // }\n\n changeCountry() {\n let newCountry = this.allCountries.find(country => country.id === this.selectedCountry);\n this.$emit('select', newCountry)\n }\n\n async loadInitialData() {\n await Countries.countriesGet().then((res) => {\n if (res.data.succeeded) {\n this.allCountries = res.data.resultData as Array;\n\n // if (groups) {\n // this.allCountries = [];\n // groups.forEach((group: CountryGroupViewModel) => {\n // group.countries.forEach((country: CountryViewModel) => {\n // //if (group.name !== \"Rest of the World\") {\n // this.allCountries = [...this.allCountries, country] as Array;\n // //}\n // });\n // });\n // }\n }\n });\n }\n\n // handleClickOutside() {\n // if (this.allowClickOutside) {\n // this.$emit(\"close\");\n // }\n // }\n}\n","import { render } from \"./NewCurrencySelector.vue?vue&type=template&id=58af977a&ts=true\"\nimport script from \"./NewCurrencySelector.vue?vue&type=script&lang=ts\"\nexport * from \"./NewCurrencySelector.vue?vue&type=script&lang=ts\"\n\nimport \"./NewCurrencySelector.vue?vue&type=style&index=0&id=58af977a&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { store } from \"@/store\";\nimport { mixins, Options } from \"vue-class-component\";\nimport SearchBar from \"@/components/navigation/search-bar/SearchBar.vue\";\nimport ProductMenu from \"@/components/navigation/product-menu/ProductMenu.vue\";\nimport ProductMenuMobile from \"@/components/navigation/product-menu/ProductMenuMobile.vue\";\nimport CurrencySelectorMobile from \"@/components/navigation/currency-selector/CurrencySelectorMobile.vue\";\nimport CartSummaryProductTile from \"@/components/navigation/cart-summary/CartSummaryProductTile.vue\";\nimport NewCurrencySelector from \"@/components/navigation/currency-selector/NewCurrencySelector.vue\";\nimport { CalculatePrice, Country, Currency, HandleSlug, IsLoggedIn, QuantityPerItem, ZohoChat, ThousandSeparator, UploadPath } from \"@/mixins/utilities\";\nimport { OrderCartDeliveryOptionViewModel, OrderCartItemViewModel, OrderCartViewModel, ProductCategoryMenuGroupViewModel } from \"@/api-client\";\nimport \"round-flag-icons/css/round-flag-icons.css\";\nimport { Carts, Categories } from \"@/network/api\";\n\n@Options({\n components: { SearchBar, ProductMenu, ProductMenuMobile, CartSummaryProductTile, CurrencySelectorMobile, NewCurrencySelector },\n})\nexport default class NavBar extends mixins(CalculatePrice, Currency, UploadPath, IsLoggedIn, QuantityPerItem, ThousandSeparator, Country, HandleSlug, ZohoChat) {\n expandCurrencies = false;\n toggleClickOutsideCurrencies = false;\n expandProducts = false;\n toggleClickOutsideProducts = false;\n clickOutsideTimeout: any;\n clearSearch = false;\n cart: Array = [];\n cartTotal = 0;\n showModal = false;\n allowedRoles = ['Admin', 'Operations', 'Sales', 'Sales Admin']\n productMenuItems: Array = [];\n\n get storeCart() {\n return store.getters[\"checkout/cart\"];\n }\n\n get user() {\n return store.getters[\"user/profile\"];\n }\n\n get roles() {\n return store.getters[\"user/role\"];\n }\n\n get cartId() {\n return store.getters[\"checkout/cartId\"];\n }\n\n get itemsInCart() {\n if(this.storeCart) {\n let totalItems = 0;\n this.storeCart.items.forEach((item: any) => {\n item.quantities.forEach((itemQuanities: any) => {\n totalItems += itemQuanities.quantity;\n })\n });\n if(totalItems <= 9999) {\n return totalItems;\n }\n return '9999+'\n }\n return 0\n }\n\n get totalPrice() {\n this.cartTotal = 0;\n this.storeCart.items.forEach((item: any) => {\n this.cartTotal += item.price * this.quantityPerItem(item);\n });\n return this.cartTotal;\n }\n\n get isAdminQuote() {\n return this.storeCart && this.storeCart.isQuote && this.allowedRoles.some(item => this.roles.includes(item));\n }\n\n get showNav() {\n return !this.isAdminQuote;\n }\n\n get disableCountry() {\n let disable = false;\n if((['Checkout', 'StoreCart', 'CustomStoreOrder'].includes(this.$route.name as string)) || (this.$route.name === 'Designer' && this.$route.query.store)) {\n disable = true\n }\n return disable;\n }\n\n created() {\n this.getProductMenuItems()\n }\n\n mounted() {\n window.onresize = () => this.resetDropDowns();\n }\n\n getProductMenuItems() {\n Categories.categoriesGetProductCategoryMenuGroupsGet()\n .then((res) => { \n if(res) {\n this.productMenuItems = res.data.resultData as Array;\n }\n })\n .catch((error) => {\n console.log(error)\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n\n async exitQuote() {\n await store.dispatch(\"checkout/refreshCart\", {id: null})\n .then(async () => {\n await store.dispatch(\"checkout/getCart\")\n if(this.$route.name == 'Cart' || this.$route.name == 'Designer') {\n this.$router.push({ name: 'Home', params: {lang: this.$route.params.lang} });\n }\n })\n }\n\n handleToEquire() {\n let leadIn = `${window.location.pathname}${window.location.search || \"\"}`;\n let enquiryCartId = ''\n let savedDesignId = ''\n\n if(leadIn.includes('/cart')) {\n enquiryCartId = this.cartId;\n }\n\n if(leadIn.includes('/designer') && this.$route.query['saved-design']) {\n savedDesignId = this.$route.query['saved-design'] as string;\n }\n\n this.$router.push({ name: 'Enquiries', params: {lang: this.$route.params.lang}, query: {from: leadIn, cart: enquiryCartId || undefined, design: savedDesignId || undefined} })\n }\n\n resetDropDowns() {\n if (window.innerWidth >= 992 && document.getElementById(\"productMenuMobile\")) {\n if (document.getElementsByClassName(\"modal-backdrop\")[0]) {\n document.getElementById(\"productMenuMobile\")!.click();\n }\n }\n\n if (window.innerWidth >= 992 && document.getElementById(\"currencySelectorMobile\")) {\n if (document.getElementsByClassName(\"modal-backdrop\")[0]) {\n document.getElementById(\"currencySelectorMobile\")!.click();\n }\n }\n\n if (window.innerWidth < 992 && this.expandProducts) {\n this.expandProducts = false;\n }\n\n if (window.innerWidth < 992 && this.showModal) {\n this.showModal = false;\n }\n }\n\n updated() {\n if (this.expandCurrencies || this.expandProducts) {\n let mobile = document.getElementById(\"navbarCollapse\");\n let currency = document.getElementById(\"currency-dropdown\");\n let product = document.getElementById(\"product-dropdown\");\n\n if (mobile?.classList.contains(\"show\")) {\n mobile?.classList.remove(\"show\");\n }\n\n if (!currency?.classList.contains(\"menu-dropdown-open\")) {\n this.expandCurrencies = false;\n }\n\n if (!product?.classList.contains(\"menu-dropdown-open\")) {\n this.expandProducts = false;\n }\n }\n }\n\n async selectCountry(country: any) {\n await store.dispatch(\"location/changeLocation\", { country });\n if(this.cartId && this.storeCart && (this.$route.name !== 'Cart')) {\n if(this.storeCart) {\n await this.getDefaultDelivery(country)\n }\n }\n this.expandCurrencies = false;\n }\n\n async getDeliveryOptions(country:any) {\n return new Promise>((resolve, reject) => {\n if(this.cartId) {\n let accessKey = (this.$route.params.accessKey as string) || undefined;\n Carts.cartsGetCartDeliveryOptionsIdGet(this.cartId, country.id, accessKey)\n .then((res) => {\n if (res.data.succeeded) {\n resolve(res.data.resultData as Array);\n }\n })\n .catch((error) => {\n console.log(error)\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject(error)\n });\n }\n })\n }\n\n async updateCart(updatedCart:OrderCartViewModel) {\n let accessKey = (this.$route.params.accessKey as string) || undefined;\n await Carts.cartsUpdateCartIdPut(updatedCart.id, accessKey, updatedCart)\n .catch((error) => {\n console.log(error);\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n\n async getDefaultDelivery(country:any) {\n let selectedDeliveryType:any = null\n const cartDelivery = this.storeCart.deliveryTypeId\n \n await this.getDeliveryOptions(country)\n .then(async (deliveryOptions) => {\n if (deliveryOptions.length) {\n let typeAvailable = deliveryOptions.filter((x) => x.deliveryTypeId === this.storeCart.deliveryTypeId).length > 0;\n if (typeAvailable) {\n deliveryOptions.forEach((type: OrderCartDeliveryOptionViewModel) => {\n if (this.storeCart.deliveryTypeId === type.deliveryTypeId) {\n selectedDeliveryType = type;\n }\n });\n }\n\n if ((!typeAvailable || cartDelivery === \"\") && deliveryOptions.length > 0) {\n selectedDeliveryType = deliveryOptions[0];\n }\n }\n let updatedCart: OrderCartViewModel = {...this.storeCart}\n updatedCart.deliveryTypeId = selectedDeliveryType.deliveryTypeId,\n updatedCart.countryId = country.id\n updatedCart.currencyId = country.currency.id\n await this.updateCart(updatedCart)\n });\n }\n\n toggleNavbar({target}:any) {\n let targetParent = target.offsetParent\n let hidden = target.classList.contains(\"d-none\")\n\n if(this.expandProducts && (!targetParent || (targetParent?.id !== 'product-dropdown') || hidden)) {\n this.expandProducts = false;\n }\n let searchNav = document.getElementById(\"searchModal\");\n let nav = document.getElementById(\"navbarCollapse\");\n if (!searchNav?.classList.contains(\"show\")) {\n nav?.classList.remove(\"show\");\n this.clearSearch = true;\n }\n }\n\n async logout() {\n await store.dispatch(\"auth/logout\");\n this.$notify({ type: \"success\", text: `Successfully logged out.` });\n const authedPages = ['CustomStoreAdminStore', 'Profile', 'Cart', 'Checkout', 'PaymentComplete', 'OutstandingPaymentComplete', 'EFTPaymentPage', 'OrderPayments', 'ResupplyAssets']\n if(authedPages.includes(this.$route.name as string)) {\n this.$router.push({ name: 'Home', params: {lang: this.$route.params.lang} });\n }\n }\n}\n","import { render } from \"./NavBar.vue?vue&type=template&id=20ed0f86&ts=true\"\nimport script from \"./NavBar.vue?vue&type=script&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=20ed0f86&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CommonActions.vue?vue&type=style&index=0&id=720f493b&lang=scss\"","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./PurchaseOptions.vue?vue&type=style&index=0&id=b45a6f36&lang=scss\"","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","(typeof navigator !== \"undefined\") && (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.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i]\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n case 'drawnFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.1';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString;\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(def, fontData) {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n var fontProps = getFontProperties(fontData);\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n var tCanvasHelper = createTag('canvas').getContext('2d');\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n return tHelper;\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(defs, fontArr[i]);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper; // Canvas version\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\n // SVG version\n // console.log(tHelper.getBBox().width)\n\n if (_char2 === ' ') {\n tHelper.textContent = '|' + _char2 + '|';\n var doubleSize = tHelper.getComputedTextLength();\n tHelper.textContent = '||';\n var singleSize = tHelper.getComputedTextLength();\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n tHelper.textContent = _char2;\n fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this.audio.volume(volumeValue);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n function SVGTintFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'f2');\n feMerge.appendChild(feMergeNode);\n }\n }\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(elem, filterManager) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n feComponentTransfer = createNS('feComponentTransfer');\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', 'drop_shadow_1');\n feOffset.setAttribute('result', 'drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', 'drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', 'drop_shadow_3');\n feComposite.setAttribute('in2', 'drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', 'drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n this.feMergeNode = feMergeNode;\n this.feMerge = feMerge;\n this.originalNodeAdded = false;\n feMerge.appendChild(feMergeNode);\n }\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\n\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n var registeredEffects = {};\n\n function SVGEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem);\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (elem.data.ef[i].ty === 20) {\n count += 1;\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 21) {\n count += 1;\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 22) {\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 23) {\n count += 1;\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 24) {\n count += 1;\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 25) {\n count += 1;\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 28) {\n // count += 1;\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n } else if (elem.data.ef[i].ty === 29) {\n count += 1;\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = charData.data;\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\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 undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n 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 define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n 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 method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n 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(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n 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","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./SelectedItemTrigger.vue?vue&type=style&index=0&id=104cca3e&lang=scss\"","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BannerMessage.vue?vue&type=style&index=0&id=2cd88354&lang=scss&scoped=true\"","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"modal-mask basic-modal\"\n}\nconst _hoisted_2 = { class: \"modal-wrapper\" }\nconst _hoisted_3 = { class: \"modal-container d-flex flex-column p-2\" }\nconst _hoisted_4 = { class: \"modal-header m-2 p-0 position-relative\" }\nconst _hoisted_5 = { class: \"h-sm-secondary\" }\nconst _hoisted_6 = { class: \"d-flex col-12 justify-content-end position-absolute close-button-container\" }\nconst _hoisted_7 = { class: \"modal-body m-2 py-3 p-0 h-100\" }\nconst _hoisted_8 = { class: \"modal-footer m-2 ps-1 p-0\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createBlock(_Transition, { name: \"basic-modal\" }, {\n default: _withCtx(() => [\n (_ctx.show)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _renderSlot(_ctx.$slots, \"header\")\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", {\n class: \"p-1 close-button\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-solid fa-xmark\" })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _renderSlot(_ctx.$slots, \"body\", {\n class: _normalizeClass([\"h-100\", {'invisible': !_ctx.show}])\n })\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _renderSlot(_ctx.$slots, \"footer\")\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }))\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n components: {},\n props: {\n show: Boolean,\n },\n emits: [\"close\"],\n})\nexport default class BasicVueModal extends Vue {\n show = false;\n}\n","import { render } from \"./BasicVueModal.vue?vue&type=template&id=416df79b&ts=true\"\nimport script from \"./BasicVueModal.vue?vue&type=script&lang=ts\"\nexport * from \"./BasicVueModal.vue?vue&type=script&lang=ts\"\n\nimport \"./BasicVueModal.vue?vue&type=style&index=0&id=416df79b&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","/*!\n * @splidejs/splide-extension-auto-scroll\n * Version : 0.5.3\n * License : MIT\n * Copyright: 2022 Naotoshi Fujita\n */\nfunction empty(array) {\n array.length = 0;\n}\n\nfunction slice$1(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply$1(func) {\n return func.bind.apply(func, [null].concat(slice$1(arguments, 1)));\n}\n\nfunction raf(func) {\n return requestAnimationFrame(func);\n}\n\nfunction typeOf$1(type, subject) {\n return typeof subject === type;\n}\n\nvar isArray$1 = Array.isArray;\napply$1(typeOf$1, \"function\");\napply$1(typeOf$1, \"string\");\napply$1(typeOf$1, \"undefined\");\n\nfunction toArray$1(value) {\n return isArray$1(value) ? value : [value];\n}\n\nfunction forEach$1(values, iteratee) {\n toArray$1(values).forEach(iteratee);\n}\n\nvar ownKeys$1 = Object.keys;\n\nfunction forOwn$1(object, iteratee, right) {\n if (object) {\n var keys = ownKeys$1(object);\n keys = right ? keys.reverse() : keys;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== \"__proto__\") {\n if (iteratee(object[key], key) === false) {\n break;\n }\n }\n }\n }\n\n return object;\n}\n\nfunction assign$1(object) {\n slice$1(arguments, 1).forEach(function (source) {\n forOwn$1(source, function (value, key) {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nvar min$1 = Math.min;\n\nfunction EventBinder() {\n var listeners = [];\n\n function bind(targets, events, callback, options) {\n forEachEvent(targets, events, function (target, event, namespace) {\n var isEventTarget = (\"addEventListener\" in target);\n var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target[\"removeListener\"].bind(target, callback);\n isEventTarget ? target.addEventListener(event, callback, options) : target[\"addListener\"](callback);\n listeners.push([target, event, namespace, callback, remover]);\n });\n }\n\n function unbind(targets, events, callback) {\n forEachEvent(targets, events, function (target, event, namespace) {\n listeners = listeners.filter(function (listener) {\n if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {\n listener[4]();\n return false;\n }\n\n return true;\n });\n });\n }\n\n function dispatch(target, type, detail) {\n var e;\n var bubbles = true;\n\n if (typeof CustomEvent === \"function\") {\n e = new CustomEvent(type, {\n bubbles: bubbles,\n detail: detail\n });\n } else {\n e = document.createEvent(\"CustomEvent\");\n e.initCustomEvent(type, bubbles, false, detail);\n }\n\n target.dispatchEvent(e);\n return e;\n }\n\n function forEachEvent(targets, events, iteratee) {\n forEach$1(targets, function (target) {\n target && forEach$1(events, function (events2) {\n events2.split(\" \").forEach(function (eventNS) {\n var fragment = eventNS.split(\".\");\n iteratee(target, fragment[0], fragment[1]);\n });\n });\n });\n }\n\n function destroy() {\n listeners.forEach(function (data) {\n data[4]();\n });\n empty(listeners);\n }\n\n return {\n bind: bind,\n unbind: unbind,\n dispatch: dispatch,\n destroy: destroy\n };\n}\nvar EVENT_MOVE = \"move\";\nvar EVENT_MOVED = \"moved\";\nvar EVENT_UPDATED = \"updated\";\nvar EVENT_DRAG = \"drag\";\nvar EVENT_DRAGGED = \"dragged\";\nvar EVENT_SCROLL = \"scroll\";\nvar EVENT_SCROLLED = \"scrolled\";\nvar EVENT_DESTROY = \"destroy\";\n\nfunction EventInterface(Splide2) {\n var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();\n var binder = EventBinder();\n\n function on(events, callback) {\n binder.bind(bus, toArray$1(events).join(\" \"), function (e) {\n callback.apply(callback, isArray$1(e.detail) ? e.detail : []);\n });\n }\n\n function emit(event) {\n binder.dispatch(bus, event, slice$1(arguments, 1));\n }\n\n if (Splide2) {\n Splide2.event.on(EVENT_DESTROY, binder.destroy);\n }\n\n return assign$1(binder, {\n bus: bus,\n on: on,\n off: apply$1(binder.unbind, bus),\n emit: emit\n });\n}\n\nfunction RequestInterval(interval, onInterval, onUpdate, limit) {\n var now = Date.now;\n var startTime;\n var rate = 0;\n var id;\n var paused = true;\n var count = 0;\n\n function update() {\n if (!paused) {\n rate = interval ? min$1((now() - startTime) / interval, 1) : 1;\n onUpdate && onUpdate(rate);\n\n if (rate >= 1) {\n onInterval();\n startTime = now();\n\n if (limit && ++count >= limit) {\n return pause();\n }\n }\n\n raf(update);\n }\n }\n\n function start(resume) {\n !resume && cancel();\n startTime = now() - (resume ? rate * interval : 0);\n paused = false;\n raf(update);\n }\n\n function pause() {\n paused = true;\n }\n\n function rewind() {\n startTime = now();\n rate = 0;\n\n if (onUpdate) {\n onUpdate(rate);\n }\n }\n\n function cancel() {\n id && cancelAnimationFrame(id);\n rate = 0;\n id = 0;\n paused = true;\n }\n\n function set(time) {\n interval = time;\n }\n\n function isPaused() {\n return paused;\n }\n\n return {\n start: start,\n rewind: rewind,\n pause: pause,\n cancel: cancel,\n set: set,\n isPaused: isPaused\n };\n}\n\nfunction Throttle(func, duration) {\n var interval;\n\n function throttled() {\n if (!interval) {\n interval = RequestInterval(duration || 0, function () {\n func();\n interval = null;\n }, null, 1);\n interval.start();\n }\n }\n\n return throttled;\n}\nvar CLASS_ACTIVE = \"is-active\";\n\nvar SLIDE = \"slide\";\nvar FADE = \"fade\";\n\nfunction slice(arrayLike, start, end) {\n return Array.prototype.slice.call(arrayLike, start, end);\n}\n\nfunction apply(func) {\n return func.bind(null, ...slice(arguments, 1));\n}\n\nfunction typeOf(type, subject) {\n return typeof subject === type;\n}\nfunction isObject(subject) {\n return !isNull(subject) && typeOf(\"object\", subject);\n}\nconst isArray = Array.isArray;\napply(typeOf, \"function\");\napply(typeOf, \"string\");\nconst isUndefined = apply(typeOf, \"undefined\");\nfunction isNull(subject) {\n return subject === null;\n}\n\nfunction toArray(value) {\n return isArray(value) ? value : [value];\n}\n\nfunction forEach(values, iteratee) {\n toArray(values).forEach(iteratee);\n}\n\nfunction toggleClass(elm, classes, add) {\n if (elm) {\n forEach(classes, (name) => {\n if (name) {\n elm.classList[add ? \"add\" : \"remove\"](name);\n }\n });\n }\n}\n\nconst ownKeys = Object.keys;\n\nfunction forOwn(object, iteratee, right) {\n if (object) {\n let keys = ownKeys(object);\n keys = right ? keys.reverse() : keys;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \"__proto__\") {\n if (iteratee(object[key], key) === false) {\n break;\n }\n }\n }\n }\n return object;\n}\n\nfunction assign(object) {\n slice(arguments, 1).forEach((source) => {\n forOwn(source, (value, key) => {\n object[key] = source[key];\n });\n });\n return object;\n}\n\nfunction removeAttribute(elms, attrs) {\n forEach(elms, (elm) => {\n forEach(attrs, (attr) => {\n elm && elm.removeAttribute(attr);\n });\n });\n}\n\nfunction setAttribute(elms, attrs, value) {\n if (isObject(attrs)) {\n forOwn(attrs, (value2, name) => {\n setAttribute(elms, name, value2);\n });\n } else {\n forEach(elms, (elm) => {\n isNull(value) || value === \"\" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));\n });\n }\n}\n\nconst { min, max, floor, ceil, abs } = Math;\n\nfunction clamp(number, x, y) {\n const minimum = min(x, y);\n const maximum = max(x, y);\n return min(max(minimum, number), maximum);\n}\n\nconst DEFAULTS = {\n speed: 1,\n autoStart: true,\n pauseOnHover: true,\n pauseOnFocus: true\n};\n\nconst I18N = {\n startScroll: \"Start auto scroll\",\n pauseScroll: \"Pause auto scroll\"\n};\n\nfunction AutoScroll(Splide2, Components2, options) {\n const { on, off, bind, unbind } = EventInterface(Splide2);\n const { translate, getPosition, toIndex, getLimit } = Components2.Move;\n const { setIndex, getIndex } = Components2.Controller;\n const { orient } = Components2.Direction;\n const { toggle } = Components2.Elements;\n const { Live } = Components2;\n const { root } = Splide2;\n const throttledUpdateArrows = Throttle(Components2.Arrows.update, 500);\n let autoScrollOptions = {};\n let interval;\n let stopped;\n let hovered;\n let focused;\n let busy;\n let currPosition;\n function setup() {\n const { autoScroll } = options;\n autoScrollOptions = assign({}, DEFAULTS, isObject(autoScroll) ? autoScroll : {});\n }\n function mount() {\n if (!Splide2.is(FADE)) {\n if (!interval && options.autoScroll !== false) {\n interval = RequestInterval(0, move);\n listen();\n autoStart();\n }\n }\n }\n function destroy() {\n if (interval) {\n interval.cancel();\n interval = null;\n currPosition = void 0;\n off([EVENT_MOVE, EVENT_DRAG, EVENT_SCROLL, EVENT_MOVED, EVENT_SCROLLED]);\n unbind(root, \"mouseenter mouseleave focusin focusout\");\n unbind(toggle, \"click\");\n }\n }\n function listen() {\n if (autoScrollOptions.pauseOnHover) {\n bind(root, \"mouseenter mouseleave\", (e) => {\n hovered = e.type === \"mouseenter\";\n autoToggle();\n });\n }\n if (autoScrollOptions.pauseOnFocus) {\n bind(root, \"focusin focusout\", (e) => {\n focused = e.type === \"focusin\";\n autoToggle();\n });\n }\n if (autoScrollOptions.useToggleButton) {\n bind(toggle, \"click\", () => {\n stopped ? play() : pause();\n });\n }\n on(EVENT_UPDATED, update);\n on([EVENT_MOVE, EVENT_DRAG, EVENT_SCROLL], () => {\n busy = true;\n pause(false);\n });\n on([EVENT_MOVED, EVENT_DRAGGED, EVENT_SCROLLED], () => {\n busy = false;\n autoToggle();\n });\n }\n function update() {\n const { autoScroll } = options;\n if (autoScroll !== false) {\n autoScrollOptions = assign({}, autoScrollOptions, isObject(autoScroll) ? autoScroll : {});\n mount();\n } else {\n destroy();\n }\n if (interval && !isUndefined(currPosition)) {\n translate(currPosition);\n }\n }\n function autoStart() {\n if (autoScrollOptions.autoStart) {\n if (document.readyState === \"complete\") {\n play();\n } else {\n bind(window, \"load\", play);\n }\n }\n }\n function play() {\n if (isPaused()) {\n interval.start(true);\n Live.disable(true);\n focused = hovered = stopped = false;\n updateButton();\n }\n }\n function pause(stop = true) {\n if (!stopped) {\n stopped = stop;\n updateButton();\n if (!isPaused()) {\n interval.pause();\n Live.disable(false);\n }\n }\n }\n function autoToggle() {\n if (!stopped) {\n hovered || focused || busy ? pause(false) : play();\n }\n }\n function move() {\n const position = getPosition();\n const destination = computeDestination(position);\n if (position !== destination) {\n translate(destination);\n updateIndex(currPosition = getPosition());\n } else {\n pause(false);\n if (autoScrollOptions.rewind) {\n Splide2.go(autoScrollOptions.speed > 0 ? 0 : Components2.Controller.getEnd());\n }\n }\n throttledUpdateArrows();\n }\n function computeDestination(position) {\n const speed = autoScrollOptions.speed || 1;\n position += orient(speed);\n if (Splide2.is(SLIDE)) {\n position = clamp(position, getLimit(false), getLimit(true));\n }\n return position;\n }\n function updateIndex(position) {\n const { length } = Splide2;\n const index = (toIndex(position) + length) % length;\n if (index !== getIndex()) {\n setIndex(index);\n Components2.Slides.update();\n Components2.Pagination.update();\n options.lazyLoad === \"nearby\" && Components2.LazyLoad.check();\n }\n }\n function updateButton() {\n if (toggle) {\n const key = stopped ? \"startScroll\" : \"pauseScroll\";\n toggleClass(toggle, CLASS_ACTIVE, !stopped);\n setAttribute(toggle, \"aria-label\", options.i18n[key] || I18N[key]);\n }\n }\n function isPaused() {\n return !interval || interval.isPaused();\n }\n return {\n setup,\n mount,\n destroy,\n play,\n pause,\n isPaused\n };\n}\n\nexport { AutoScroll };\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\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/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __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\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __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\nexport function __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\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __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};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./TextAdd.vue?vue&type=style&index=0&id=45ccbf14&lang=scss\"","import { Vue } from \"vue-class-component\";\nimport { store } from \"@/store\";\nimport { CountryViewModel, DeliveryType, OrderStatus } from \"@/api-client\";\nimport { GeneralSettings } from \"@/network/api\";\nimport { useMeta } from \"vue-meta\";\n\nfunction bankersRoundingFunc(num: number, decimalPlaces: number) {\n const d = decimalPlaces || 0;\n const m = Math.pow(10, d);\n const n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors\n const i = Math.floor(n),\n f = n - i;\n const e = 1e-8; // Allow for rounding errors in f\n const r = f > 0.5 - e && f < 0.5 + e ? (i % 2 == 0 ? i : i + 1) : Math.round(n);\n\n return d ? (r / m).toFixed(2) : r.toFixed(2);\n}\n\nexport class ScrollTop extends Vue {\n scrollTop(toScrollSelector: string, scrollIfAbove = true) {\n const destination = document.querySelector(toScrollSelector) as HTMLElement;\n const navBar = document.querySelector(\"#navbar\") as HTMLElement;\n const scrollOffset = destination?.offsetTop - (navBar ? navBar?.offsetHeight : 0);\n\n if (scrollOffset > window.scrollY && !scrollIfAbove) {\n return;\n }\n\n window.scrollTo(0, scrollOffset);\n return;\n }\n}\n\nexport class UploadPath extends Vue {\n get uploadPath() {\n return `${process.env.VUE_APP_ROOT_API}/files`;\n }\n}\n\nexport class IsIOS extends Vue {\n get isIOS() {\n return navigator.userAgent.includes(\"Mac\");\n }\n}\n\nexport class IsLoggedIn extends Vue {\n get isLoggedIn() {\n return store.getters[\"auth/isLoggedIn\"];\n }\n}\n\nexport class UserRole extends Vue {\n get userRole() {\n return store.getters[\"user/role\"];\n }\n}\n\nexport class LoadImage extends Vue {\n loadImage = (url: any) =>\n new Promise((resolve, reject) => {\n const img = new Image() as any;\n img.addEventListener(\"load\", () => resolve(img));\n img.addEventListener(\"error\", (err: Error) => reject(err));\n img.src = url;\n });\n}\n\nexport class BankersRounding extends Vue {\n bankersRounding(num: number, decimalPlaces: number) {\n return bankersRoundingFunc(num, decimalPlaces);\n }\n}\n\nexport class ThousandSeparator extends Vue {\n thousandSeparator(num: number) {\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n}\n\nexport class CalculatePrice extends Vue {\n calculatePrice = (price: number, multiplier: number, decimalPlaces = 2) => {\n if (price && price == 0) {\n return (0).toFixed(decimalPlaces);\n } else {\n if (price && multiplier) {\n return bankersRoundingFunc(price * multiplier, decimalPlaces);\n } else {\n return (0).toFixed(2);\n }\n }\n };\n}\n\nexport class QuantityPerItem extends Vue {\n quantityPerItem(item: any) {\n const totalQty = 0;\n const sum = item.quantities.reduce((acc: any, curr: any) => {\n return acc + curr.quantity;\n }, totalQty);\n\n return sum;\n }\n}\n\nexport class Currency extends Vue {\n currency() {\n const country = store.getters[\"location/country\"];\n return (\n country?.currency ?? {\n id: \"\",\n name: \"\",\n code: \"USD\",\n symbol: \"$\",\n pricingMultiplier: 1,\n }\n );\n }\n}\n\nexport class Country extends Vue {\n country() {\n const country = store.getters[\"location/country\"] as CountryViewModel;\n if (country) {\n return country;\n } else {\n return {\n id: \"\",\n name: \"\",\n code: \"\",\n isDefault: false,\n deliveryTypes: [],\n currency: {\n id: \"\",\n name: \"\",\n code: \"USD\",\n symbol: \"\",\n pricingMultiplier: 0,\n decimalPlaces: 2,\n },\n allowBankTransfers: false,\n bankTransferDetails: \"\",\n };\n }\n }\n}\n\nexport class Cart extends Vue {\n cart() {\n const cart = store.getters[\"checkout/cart\"];\n console.log(\"cart x\", cart);\n if (cart && cart.id !== \"\") {\n return cart;\n } else {\n return {\n id: \"\",\n items: [],\n countryId: \"\",\n isGift: false,\n deliveryTypeId: DeliveryType.Standard,\n orderStatusId: OrderStatus.Cart,\n currencyId: \"\",\n requiresCustomerApproval: true,\n deliveryAddress: {\n addressLine1: \"\",\n area: \"\",\n country: \"\",\n postalCode: \"\",\n },\n billingAddress: {\n addressLine1: \"\",\n area: \"\",\n country: \"\",\n postalCode: \"\",\n },\n customerContact: {\n name: \"\",\n email: \"\",\n phoneNumber: \"\",\n },\n };\n }\n }\n}\n\nexport class GetPriceByQuantity extends Vue {\n getPriceByQuantity(prices: any, quantity: number) {\n if (quantity && prices.length) {\n let price = 0;\n const range = prices.filter((x: any) => (x.minimumQuantity ?? Number.MIN_SAFE_INTEGER) <= quantity! && (x.maximumQuantity ?? Number.MAX_SAFE_INTEGER) >= quantity!)[0];\n if (range != null) {\n price += range.price;\n }\n return price;\n }\n }\n}\n\nexport class FormatDate extends Vue {\n formatDate(date: any, uppercase = true) {\n function appendLeadingZeroes(n: any) {\n if (n <= 9) {\n return \"0\" + n;\n }\n return n;\n }\n if (date) {\n if (typeof date === \"string\") {\n date = new Date(date);\n }\n const dateLocale = date.toLocaleDateString(\"en-US\");\n\n let months;\n if (uppercase) {\n months = [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"];\n } else {\n months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n }\n\n const dateToFormat = new Date(dateLocale.replace(/-/g, \"/\"));\n const formattedDate = appendLeadingZeroes(dateToFormat.getDate()) + \" \" + months[dateToFormat.getMonth()] + \" \" + dateToFormat.getFullYear();\n return formattedDate;\n }\n return \"\";\n }\n}\n\nexport class SetMetaData extends Vue {\n hasProp(obj: any = null, prop: string) {\n if (obj && prop) {\n const hasProp = Object.prototype.hasOwnProperty.call(obj, prop);\n\n if (hasProp) {\n return obj[prop] !== \"\" ? true : false;\n }\n }\n return false;\n }\n\n setMetaData(meta: any, obj: any = null, definer = \"id\", prefix = \"\") {\n //https://vue-meta.nuxtjs.org/faq/#unique-metadata\n //https://github.com/nuxt/vue-meta/blob/next/examples/vue-router/App.ts\n //https://newspatrak.com/javascript/how-to-use-vue-3-meta-with-vue-js-3/\n\n if (obj) {\n // if (definer === \"script\") {\n // meta.script = obj;\n // } else {\n if (!this.hasProp(obj, definer)) {\n meta.title = prefix ? `${prefix}CLIFTON | Truly Custom Clothing` : \"\";\n meta.description = \"\";\n meta.keywords = \"\";\n meta.og = {\n title: prefix ? `${prefix}CLIFTON | Truly Custom Clothing` : \"\",\n description: \"\",\n };\n } else {\n meta.og = {};\n\n if (this.hasProp(obj, \"seoTitle\")) {\n meta.title = this.hasProp(obj, \"seoTitle\") ? prefix + (obj?.seoTitle || \"\") : \"\";\n meta.og.title = this.hasProp(obj, \"seoTitle\") ? prefix + (obj?.seoTitle || \"\") : prefix ? `${prefix} | CLIFTON | Truly Custom Clothing` : \"\";\n }\n\n if (this.hasProp(obj, \"seoDescription\")) {\n meta.description = this.hasProp(obj, \"seoDescription\") ? obj?.seoDescription || \"\" : \"\";\n meta.og.description = this.hasProp(obj, \"seoDescription\") ? obj?.seoDescription || \"\" : \"\";\n }\n\n if (this.hasProp(obj, \"seoKeywords\")) {\n meta.keywords = this.hasProp(obj, \"seoKeywords\") ? obj?.seoKeywords || \"\" : \"\";\n }\n\n if (this.hasProp(obj, \"noIndex\") && obj.noIndex) {\n meta.meta = [{ name: \"robots\", Name: \"robots\", content: \"noindex, follow\" }];\n } else if (this.hasProp(obj, \"noIndex\") && !obj.noIndex) {\n meta.meta = [];\n }\n\n if (this.hasProp(obj, \"canonicalUrl\") && obj.canonicalUrl) {\n meta.link = [{ rel: \"canonical\", href: obj.canonicalUrl }];\n } else if (this.hasProp(obj, \"canonicalUrl\") && !obj.canonicalUrl) {\n meta.link = [];\n }\n\n if(this.hasProp(obj, \"script\")) {\n meta.script = obj.script;\n }\n // }\n\n meta.og = {\n ...meta.og,\n url: `https://www.cliftonclothing.com${window.location.pathname}`,\n type: \"\",\n };\n }\n }\n }\n}\n\nexport class CompareObjects extends Vue {\n compareObjects(obj1: any, obj2: any): boolean {\n const obj1Keys = Object.keys(obj1).sort();\n const obj2Keys = Object.keys(obj2).sort();\n if (obj1Keys.length !== obj2Keys.length) {\n return false;\n } else {\n const areEqual = obj1Keys.every((key, index) => {\n const objValue1 = obj1[key];\n const objValue2 = obj2[obj2Keys[index]];\n return objValue1 === objValue2;\n });\n if (areEqual) {\n return true;\n } else {\n return false;\n }\n }\n }\n}\n\nexport class HandleSlug extends Vue {\n joinSlug(slug: Array | string): string {\n if (typeof slug == \"string\") {\n return slug;\n }\n\n if (slug.length > 1) {\n return slug.join(\"/\");\n }\n return slug[0];\n }\n\n splitSlug(slug: string) {\n if (slug) {\n return slug.split(\"/\");\n }\n return \"\";\n }\n}\n\nexport class FormatEnum extends Vue {\n formatEnum(str: string): string {\n const res = str.replace(/([A-Z])/g, \" $&\");\n return res;\n }\n}\n\nexport class ZohoChat extends Vue {\n get zohoChatActive() {\n return store.getters[\"user/zohoActive\"];\n }\n\n startZohoChat() {\n if((window as any)?.$zoho) {\n // (window as any)?.$zoho.salesiq.chat.start();\n \n // not a great solution but at the time of implementing this was the next best thing as zoho api was unreliable\n const openButton = document.getElementById('zsiq_float');\n if(openButton) {\n openButton.click()\n } \n }\n }\n}\n\nexport class HandleError extends Vue {\n handleError(error: any, forceDisplayError = false, customMessage: string | null = null) {\n const hasProp = error ? Object.prototype.hasOwnProperty.call(error, \"response\") : null;\n debugger\n if (!hasProp && !error && forceDisplayError) {\n this.$notify({ type: \"error\", text: customMessage || \"An unexpected error occurred.\", ignoreDuplicates: true, duration: -1 });\n } else if(error && hasProp) {\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n }\n }\n}\n\nexport class Newsletter extends Vue {\n getMailingList () {\n return new Promise((resolve, reject) => {\n GeneralSettings.generalSettingsKeyGet(\"newsletterMailingId\")\n .then((res) => {\n if (res) {\n resolve(res.data.resultData as string);\n }\n })\n .catch(() => resolve(\"RAiksg\"))\n })\n }\n\n getNewsletterCopy () {\n return new Promise((resolve, reject) => {\n GeneralSettings.generalSettingsGetGeneralSettingsGet([\"newsletterTitle\", \"newsletterSubtitle\", \"newsletterTnCCopy\"])\n .then((res) => {\n if (res) {\n resolve(res.data.resultData);\n }\n })\n .catch(() => null)\n })\n }\n\n async newsletterSubscribe(email: string, source: string) {\n if (!email) {\n console.error('📬 Stopped the newsletter opt-in because email appears to be missing');\n return false;\n }\n let mailList: string | null = null;\n await this.getMailingList()\n .then((res: any) => {\n if(res) {\n mailList = res\n }\n })\n .catch(() => mailList = \"RAiksg\")\n \n return new Promise((resolve, reject) => {\n const PUBLIC_API_KEY = \"TX92nv\";\n const LIST_ID = mailList;\n const options = {\n method: 'POST',\n headers: {revision: '2023-10-15', 'content-type': 'application/json'},\n body: JSON.stringify({\n data: {\n type: 'subscription',\n attributes: {\n custom_source: source,\n profile: {\n data: {\n type: 'profile',\n attributes: {\n email: email\n }\n }\n }\n },\n relationships: {list: {data: {type: 'list', id: LIST_ID}}}\n }\n })\n };\n\n fetch(`https://a.klaviyo.com/client/subscriptions/?company_id=${PUBLIC_API_KEY}`, options)\n .then(response => {\n if(response.status < 300) {//202 is a success -> https://developers.klaviyo.com/en/reference/create_client_subscription\n this.$notify({ type: \"success\", text: \"Thank you for subscribing to our newsletter!\" });\n }\n resolve(response)\n })\n .catch(err =>\n reject(err)\n );\n });\n }\n}\n\nexport default class Default extends Vue {\n test = \"test\";\n}\n\nexport class HasAdminRoles extends Vue {\n hasAdminRoles(roles: Array | null): boolean {\n if (roles) {\n return roles.includes(\"Admin\") || roles.includes(\"Operations\") || roles.includes(\"Sales\") || roles.includes(\"Sales Admin\");\n }\n return false;\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NewsletterForm.vue?vue&type=style&index=0&id=42879cfe&lang=scss&scoped=true\"","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","import { extend, isArray, isMap, isIntegerKey, isSymbol, hasOwn, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.active = true;\r\n this.effects = [];\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = this.parent;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n }\r\n }\r\n stop() {\r\n if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({\r\n effect: activeEffect\r\n }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n for (const effect of isArray(dep) ? dep : [...dep]) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol)\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - does not apply for Array + integer key.\r\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\r\n return shouldUnwrap ? res.value : res;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"get\" /* GET */, rawKey);\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (key !== rawKey) {\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n !isReadonly && track(rawTarget, \"has\" /* HAS */, rawKey);\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only a whitelist of value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar TypeError = global.TypeError;\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","import { isPlainObject, isFunction } from '@vue/shared';\nimport { nextTick } from 'vue';\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar load = function load(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function (resolve, reject) {\n if (typeof document === \"undefined\") {\n return;\n }\n\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = url;\n script.defer = options.defer;\n\n if (options.preconnectOrigin) {\n var link = document.createElement(\"link\");\n link.href = options.preconnectOrigin;\n link.rel = \"preconnect\";\n head.appendChild(link);\n }\n\n head.appendChild(script);\n script.onload = resolve;\n script.onerror = reject;\n });\n};\nvar mergeDeep = function mergeDeep(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (!sources.length) {\n return target;\n }\n\n var source = sources.shift();\n\n if (!isPlainObject(target) || !isPlainObject(source)) {\n return;\n }\n\n for (var key in source) {\n if (isPlainObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, _defineProperty({}, key, {}));\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n Object.assign(target, _defineProperty({}, key, source[key]));\n }\n }\n\n return mergeDeep.apply(void 0, [target].concat(sources));\n};\nvar isBrowser = function isBrowser() {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return false;\n }\n\n return true;\n};\nvar warn = function warn(text) {\n var shouldLog = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!isBrowser() || process.env.NODE_ENV === \"production\") {\n return;\n }\n\n if (!shouldLog) {\n return;\n }\n\n console.warn(\"[vue-gtag] \".concat(text));\n};\nvar validateScreenviewShape = function validateScreenviewShape() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n warn(\"Missing \\\"appName\\\" property inside the plugin options.\", obj.app_name == null);\n warn(\"Missing \\\"name\\\" property in the route.\", obj.screen_name == null);\n return obj;\n};\nfunction getPathWithBase() {\n var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var pathAsArray = path.split(\"/\");\n var baseAsArray = base.split(\"/\");\n\n if (pathAsArray[0] === \"\" && base[base.length - 1] === \"/\") {\n pathAsArray.shift();\n }\n\n return baseAsArray.join(\"/\") + pathAsArray.join(\"/\");\n}\n\nvar getDefaultParams = function getDefaultParams() {\n return {\n bootstrap: true,\n onReady: null,\n onError: null,\n onBeforeTrack: null,\n onAfterTrack: null,\n pageTrackerTemplate: null,\n customResourceURL: \"https://www.googletagmanager.com/gtag/js\",\n customPreconnectOrigin: \"https://www.googletagmanager.com\",\n deferScriptLoad: false,\n pageTrackerExcludedRoutes: [],\n pageTrackerEnabled: true,\n enabled: true,\n disableScriptLoad: false,\n pageTrackerScreenviewEnabled: false,\n appName: null,\n pageTrackerUseFullPath: false,\n pageTrackerPrependBase: true,\n pageTrackerSkipSamePath: true,\n globalDataLayerName: \"dataLayer\",\n globalObjectName: \"gtag\",\n defaultGroupName: \"default\",\n includes: null,\n config: {\n id: null,\n params: {\n send_page_view: false\n }\n }\n };\n};\nvar params = {};\nvar setOptions = function setOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultParams = getDefaultParams();\n params = mergeDeep(defaultParams, options);\n};\nvar getOptions = function getOptions() {\n return params;\n};\n\nvar query = (function () {\n var _window;\n\n var _getOptions = getOptions(),\n globalObjectName = _getOptions.globalObjectName;\n\n if (!isBrowser() || typeof window[globalObjectName] === \"undefined\") {\n return;\n }\n\n (_window = window)[globalObjectName].apply(_window, arguments);\n});\n\nvar config = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query.apply(void 0, [\"config\", config.id].concat(args));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query.apply(void 0, [\"config\", domain.id].concat(args));\n });\n }\n});\n\nvar assignGlobalProperty = function assignGlobalProperty(id, value) {\n if (!isBrowser()) {\n return;\n }\n\n window[\"ga-disable-\".concat(id)] = value;\n};\n\nvar disable = (function () {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n assignGlobalProperty(config.id, value);\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n return assignGlobalProperty(domain.id, value);\n });\n }\n});\n\nvar optOut = (function () {\n disable(true);\n});\n\nvar optIn = (function () {\n disable(false);\n});\n\nvar router;\nvar setRouter = function setRouter(instance) {\n router = instance;\n};\nvar getRouter = function getRouter() {\n return router;\n};\n\nvar event = (function (name) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n includes = _getOptions.includes,\n defaultGroupName = _getOptions.defaultGroupName;\n\n if (params.send_to == null && Array.isArray(includes) && includes.length) {\n params.send_to = includes.map(function (domain) {\n return domain.id;\n }).concat(defaultGroupName);\n }\n\n query(\"event\", name, params);\n});\n\nvar pageview = (function (param) {\n if (!isBrowser()) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n page_path: param\n };\n } else if (param.path || param.fullPath) {\n var _getOptions = getOptions(),\n useFullPath = _getOptions.pageTrackerUseFullPath,\n useBase = _getOptions.pageTrackerPrependBase;\n\n var router = getRouter();\n var base = router && router.options.base;\n var path = useFullPath ? param.fullPath : param.path;\n template = _objectSpread2(_objectSpread2({}, param.name && {\n page_title: param.name\n }), {}, {\n page_path: useBase ? getPathWithBase(path, base) : path\n });\n } else {\n template = param;\n }\n\n if (template.page_location == null) {\n template.page_location = window.location.href;\n }\n\n if (template.send_page_view == null) {\n template.send_page_view = true;\n }\n\n event(\"page_view\", template);\n});\n\nvar screenview = (function (param) {\n var _getOptions = getOptions(),\n appName = _getOptions.appName;\n\n if (!param) {\n return;\n }\n\n var template;\n\n if (typeof param === \"string\") {\n template = {\n screen_name: param\n };\n } else {\n template = param;\n }\n\n template.app_name = template.app_name || appName;\n event(\"screen_view\", template);\n});\n\nvar exception = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"exception\"].concat(args));\n});\n\nvar linker = (function (params) {\n config(\"linker\", params);\n});\n\nvar time = (function (params) {\n event(\"timing_complete\", params);\n});\n\nvar set = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n query.apply(void 0, [\"set\"].concat(args));\n});\n\nvar refund = (function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n event.apply(void 0, [\"refund\"].concat(args));\n});\n\nvar purchase = (function (params) {\n event(\"purchase\", params);\n});\n\nvar customMap = (function (map) {\n config({\n custom_map: map\n });\n});\n\nvar api = /*#__PURE__*/Object.freeze({\n __proto__: null,\n query: query,\n config: config,\n optOut: optOut,\n optIn: optIn,\n pageview: pageview,\n screenview: screenview,\n exception: exception,\n linker: linker,\n time: time,\n set: set,\n refund: refund,\n purchase: purchase,\n customMap: customMap,\n event: event\n});\n\nvar attachApi = function attachApi(app) {\n app.config.globalProperties.$gtag = api;\n};\n\nvar registerGlobals = (function () {\n if (!isBrowser()) {\n return;\n }\n\n var _getOptions = getOptions(),\n enabled = _getOptions.enabled,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName;\n\n if (window[globalObjectName] == null) {\n window[globalDataLayerName] = window[globalDataLayerName] || [];\n\n window[globalObjectName] = function () {\n window[globalDataLayerName].push(arguments);\n };\n }\n\n window[globalObjectName](\"js\", new Date());\n\n if (!enabled) {\n optOut();\n }\n\n return window[globalObjectName];\n});\n\nvar mergeDefaultParams = function mergeDefaultParams(params) {\n return _objectSpread2({\n send_page_view: false\n }, params);\n};\n\nvar addConfiguration = (function () {\n var _getOptions = getOptions(),\n config = _getOptions.config,\n includes = _getOptions.includes;\n\n query(\"config\", config.id, mergeDefaultParams(config.params));\n\n if (Array.isArray(includes)) {\n includes.forEach(function (domain) {\n query(\"config\", domain.id, mergeDefaultParams(domain.params));\n });\n }\n});\n\nvar track = (function () {\n var to = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _getOptions = getOptions(),\n appName = _getOptions.appName,\n proxy = _getOptions.pageTrackerTemplate,\n useScreenview = _getOptions.pageTrackerScreenviewEnabled,\n skipSamePath = _getOptions.pageTrackerSkipSamePath;\n\n if (skipSamePath && to.path === from.path) {\n return;\n }\n\n var template = to;\n\n if (isFunction(proxy)) {\n template = proxy(to, from);\n } else if (useScreenview) {\n template = validateScreenviewShape({\n app_name: appName,\n screen_name: to.name\n });\n }\n\n if (useScreenview) {\n screenview(template);\n return;\n }\n\n pageview(template);\n});\n\nvar isRouteExcluded = function isRouteExcluded(route) {\n var _getOptions = getOptions(),\n routes = _getOptions.pageTrackerExcludedRoutes;\n\n return routes.includes(route.path) || routes.includes(route.name);\n};\n\nvar addRoutesTracker = (function () {\n var _getOptions2 = getOptions(),\n onBeforeTrack = _getOptions2.onBeforeTrack,\n onAfterTrack = _getOptions2.onAfterTrack;\n\n var router = getRouter();\n router.isReady().then(function () {\n nextTick().then(function () {\n var currentRoute = router.currentRoute;\n addConfiguration();\n\n if (isRouteExcluded(currentRoute.value)) {\n return;\n }\n\n track(currentRoute.value);\n });\n router.afterEach(function (to, from) {\n nextTick().then(function () {\n if (isRouteExcluded(to)) {\n return;\n }\n\n if (isFunction(onBeforeTrack)) {\n onBeforeTrack(to, from);\n }\n\n track(to, from);\n\n if (isFunction(onAfterTrack)) {\n onAfterTrack(to, from);\n }\n });\n });\n });\n});\n\nvar bootstrap = (function () {\n var _getOptions = getOptions(),\n onReady = _getOptions.onReady,\n onError = _getOptions.onError,\n globalObjectName = _getOptions.globalObjectName,\n globalDataLayerName = _getOptions.globalDataLayerName,\n config = _getOptions.config,\n customResourceURL = _getOptions.customResourceURL,\n customPreconnectOrigin = _getOptions.customPreconnectOrigin,\n deferScriptLoad = _getOptions.deferScriptLoad,\n pageTrackerEnabled = _getOptions.pageTrackerEnabled,\n disableScriptLoad = _getOptions.disableScriptLoad;\n\n var isPageTrackerEnabled = Boolean(pageTrackerEnabled && getRouter());\n registerGlobals();\n\n if (isPageTrackerEnabled) {\n addRoutesTracker();\n } else {\n addConfiguration();\n }\n\n if (disableScriptLoad) {\n return;\n }\n\n return load(\"\".concat(customResourceURL, \"?id=\").concat(config.id, \"&l=\").concat(globalDataLayerName), {\n preconnectOrigin: customPreconnectOrigin,\n defer: deferScriptLoad\n }).then(function () {\n if (onReady) {\n onReady(window[globalObjectName]);\n }\n })[\"catch\"](function (error) {\n if (onError) {\n onError(error);\n }\n\n return error;\n });\n});\n\nvar install = function install(app) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var router = arguments.length > 2 ? arguments[2] : undefined;\n attachApi(app);\n setOptions(options);\n setRouter(router);\n\n if (getOptions().bootstrap) {\n bootstrap();\n }\n};\n\nexport default install;\nexport { addRoutesTracker, bootstrap, config, customMap, event, exception, install, linker, optIn, optOut, pageview, purchase, query, refund, screenview, set, setOptions, setRouter, time };\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./DesignerMobileNav.vue?vue&type=style&index=0&id=e5bb086a&lang=scss\"","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromise)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromise.prototype['finally'] !== method) {\n redefine(NativePromise.prototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","var $ = require('../internals/export');\nvar anObject = require('../internals/an-object');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\n// `Reflect.deleteProperty` method\n// https://tc39.es/ecma262/#sec-reflect.deleteproperty\n$({ target: 'Reflect', stat: true }, {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);\n return descriptor && !descriptor.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ElementTile.vue?vue&type=style&index=0&id=07a8e46d&lang=scss\"","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import { toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"block-content text-center col-10 col-sm-11 col-xl-8 col-xxl-7\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"d-flex w-100 h-100 position-absolute img-wrap\"\n}\nconst _hoisted_4 = [\"src\", \"alt\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"info-page-block-container col-12 col-sm-6 flex-centered relative\", {'order-rev-1': _ctx.order === 3, 'order-rev-2': _ctx.order === 4}]),\n style: _normalizeStyle(_ctx.bgImage\n ? `order:${_ctx.order};`\n : `background-color:${_ctx.bgColor};order:${_ctx.order};`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"h4\", {\n class: \"h-md-secondary mb-4 text-uppercase\",\n style: _normalizeStyle(`color:${_ctx.textColour};`)\n }, _toDisplayString(_ctx.heading), 5)\n ]),\n _createElementVNode(\"div\", {\n class: \"blurb-text\",\n innerHTML: _ctx.text,\n style: _normalizeStyle(`color:${_ctx.textColour};`)\n }, null, 12, _hoisted_2)\n ]),\n (_ctx.bgImage)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"img\", {\n src: _ctx.bgImage,\n class: \"w-100 h-100\",\n alt: _ctx.label\n }, null, 8, _hoisted_4)\n ]))\n : _createCommentVNode(\"\", true)\n ], 6))\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n bgColor: { default: \"#F2ECEA\" },\n bgImage: { default: \"\" },\n label: { default: \"\" },\n heading: { default: \"\" },\n text: { default: \"\" },\n textColour: { default: \"#00233B\" },\n number: { default: \"\" },\n order: { default: null },\n },\n})\nexport default class InfoPageBlock extends Vue {\n\n}\n","import { render } from \"./InfoPageBlock.vue?vue&type=template&id=647c97a8&ts=true\"\nimport script from \"./InfoPageBlock.vue?vue&type=script&lang=ts\"\nexport * from \"./InfoPageBlock.vue?vue&type=script&lang=ts\"\n\nimport \"./InfoPageBlock.vue?vue&type=style&index=0&id=647c97a8&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"home-container container-fluid m-0 p-0\" }\nconst _hoisted_2 = { class: \"home-image-container col-12 m-0 p-0\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"w-100 image-placeholder\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NewsletterForm = _resolveComponent(\"NewsletterForm\")!\n const _component_SplideCarousel = _resolveComponent(\"SplideCarousel\")!\n const _component_DesignNowSvg = _resolveComponent(\"DesignNowSvg\")!\n const _component_CarouselBanner = _resolveComponent(\"CarouselBanner\")!\n const _component_ChooseCreateOrderBanner = _resolveComponent(\"ChooseCreateOrderBanner\")!\n const _component_FeaturedAll = _resolveComponent(\"FeaturedAll\")!\n const _component_InstagramCarousel = _resolveComponent(\"InstagramCarousel\")!\n const _component_TrustpilotBanner = _resolveComponent(\"TrustpilotBanner\")!\n const _component_ClientSection = _resolveComponent(\"ClientSection\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_NewsletterForm, { source: \"Homepage popup signup form\" }),\n _createElementVNode(\"div\", _hoisted_2, [\n (!_ctx.banners.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3))\n : (_openBlock(), _createBlock(_component_SplideCarousel, {\n key: 1,\n imageArray: _ctx.banners,\n altText: 'Banner'\n }, null, 8, [\"imageArray\"]))\n ]),\n _createVNode(_component_DesignNowSvg, { hoverColour: \"white\" }),\n _createVNode(_component_CarouselBanner, { section: \"Carousel 1\" }),\n _createVNode(_component_ChooseCreateOrderBanner),\n _createVNode(_component_DesignNowSvg, { hoverColour: \"white\" }),\n _createVNode(_component_FeaturedAll),\n _createVNode(_component_CarouselBanner, {\n section: \"Carousel 2\",\n aboveDesignNowButton: true\n }),\n _createVNode(_component_DesignNowSvg, { hoverColour: \"white\" }),\n _createVNode(_component_InstagramCarousel),\n _createVNode(_component_TrustpilotBanner),\n _createVNode(_component_ClientSection, { clientLogos: _ctx.clientLogos }, null, 8, [\"clientLogos\"])\n ]))\n}","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47913330\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = { class: \"item-content-container position-absolute col-12 text-center h-100\" }\nconst _hoisted_3 = { class: \"d-flex col-12 flex-wrap align-items-center align-content-center h-100 p-3\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"col-12 col-md-6 featured-img flex-centered\"\n}\nconst _hoisted_5 = { class: \"col-12 col-md-10 col-xxl-9 img-container p-3 p-lg-0\" }\nconst _hoisted_6 = [\"src\"]\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SplideSlide = _resolveComponent(\"SplideSlide\")!\n const _component_Splide = _resolveComponent(\"Splide\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"carousel-banner-container bg-primary\", {'large': _ctx.section == 'Carousel 1', 'above-design-now': _ctx.aboveDesignNowButton}])\n }, [\n (_ctx.carouselItems.length)\n ? (_openBlock(), _createBlock(_component_Splide, {\n key: 0,\n class: \"carousel-banner\",\n options: _ctx.spliderConfig,\n ref: `carouselSlide${_ctx.section.replace(' ', '-')}`\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.carouselItems, (item) => {\n return (_openBlock(), _createBlock(_component_SplideSlide, {\n key: item.id\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", {\n class: \"col-12 item-container d-flex position-relative\",\n style: _normalizeStyle(`background-color:#${item.backgroundColour};`)\n }, [\n (item.backgroundImageUrl)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: `${_ctx.uploadPath}/${item.backgroundImageUrl}`,\n class: \"img-fluid\",\n alt: \"Carousel item\"\n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (item.featuredImageUrl)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"img\", {\n sclass: \"img-fluid \",\n src: `${_ctx.uploadPath}/${item.featuredImageUrl}`,\n alt: \"Carousel Image\"\n }, null, 8, _hoisted_6)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", {\n class: _normalizeClass([item.featuredImageUrl ? 'col-12 col-md-6 br-md-none' : 'col-12 align-items-center br-lg-none', \"d-flex flex-column\"])\n }, [\n _createElementVNode(\"h2\", {\n innerHTML: _ctx.formattedMarkdown(item.title),\n style: _normalizeStyle(`color:#${item.titleFontColour};`),\n class: _normalizeClass([\"title col-12 p-0 home-page-heading\", item.featuredImageUrl ? 'text-center text-md-start' : 'text-center'])\n }, null, 14, _hoisted_7),\n _createElementVNode(\"p\", {\n style: _normalizeStyle(`color:#${item.contentFontColour};`),\n class: _normalizeClass([\"content p-0 home-page-body\", item.featuredImageUrl ? 'text-center text-md-start col-12 col-md-11 col-xl-10 col-xxl-9' : 'text-center col-12 col-md-10 col-xxl-8']),\n innerHTML: _ctx.formattedMarkdown(item.content)\n }, null, 14, _hoisted_8),\n (item.buttonText && item.buttonUrl)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass(item.featuredImageUrl ? 'text-center text-md-start' : 'text-center')\n }, [\n _createVNode(_component_router_link, {\n class: \"btn mt-sm-2 btn-light\",\n to: { path: item.buttonUrl, params: {lang: _ctx.$route.params.lang}},\n style: _normalizeStyle(`color:#${item.buttonFontColour}; background-color:#${item.buttonBackgroundColour};border-color:#${item.buttonBackgroundColour};`)\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(item.buttonText), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"style\"])\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ])\n ], 4)\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"options\"]))\n : _createCommentVNode(\"\", true)\n ], 2))\n}","\nimport { Splide, SplideSlide } from '@splidejs/vue-splide';\nimport { mixins, Options } from \"vue-class-component\";\nimport { PropType } from \"vue\";\nimport '@splidejs/splide/dist/css/themes/splide-default.min.css';\nimport { UploadPath } from '@/mixins/utilities';\nimport { CarouselItemAdminListViewModel } from \"@/api-client\";\nimport { CarouselItems } from '@/network/api';\nimport Markdown from 'vue3-markdown-it';\nimport { marked } from \"marked\";\n\n@Options({\n components: {Splide, SplideSlide, Markdown},\n props: {\n section: { type: String as PropType<\"Carousel 1\" | \"Carousel 2\"> , default: \"Carousel 1\" },\n altText: { default: '' },\n aboveDesignNowButton: { default: false }\n },\n})\nexport default class SplideCarousel extends mixins(UploadPath) {\n spliderConfig = {\n type: 'loop',\n autoplay: false,\n pagination: true,\n // resetProgress: true,\n // pauseOnHover: true,\n // pauseOnFocus: false,\n // interval: 5000,\n arrows: false,\n }\n carouselItems: CarouselItemAdminListViewModel[] = []\n section: \"Carousel 1\" | \"Carousel 2\" = \"Carousel 1\";\n\n created() {\n this.loadInitialData();\n }\n\n formattedMarkdown(text: string) {\n if (text) {\n let markedDetails = marked(text)\n markedDetails = markedDetails.replaceAll('

    ', \"\");\n markedDetails = markedDetails.replaceAll('

    ', \"\");\n markedDetails = markedDetails.replaceAll('
    ', \"\");\n markedDetails = markedDetails.replaceAll('
    ', \"\");\n markedDetails = markedDetails.replaceAll('\\n', \"
    \");\n\n // Remove
    if at the end of string\n markedDetails = markedDetails.replace(/$/, '');\n\n return markedDetails;\n }\n return \"\";\n }\n\n async loadInitialData() {\n await CarouselItems.carouselItemsGet(1, 99999, this.section)\n .then((res) => {\n this.carouselItems = res.data.resultData?.items as Array;\n })\n .catch((error) => {\n console.log(error);\n console.log(error);\n });\n }\n}\n","import { render } from \"./CarouselBanner.vue?vue&type=template&id=47913330&scoped=true&ts=true\"\nimport script from \"./CarouselBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./CarouselBanner.vue?vue&type=script&lang=ts\"\n\nimport \"./CarouselBanner.vue?vue&type=style&index=0&id=47913330&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-47913330\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-18828969\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"bg-primary featured-all-container container-fluid w-100\"\n}\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"text-white text-center home-page-heading px-2 m-0 pb-3 pb-md-5 pt-0 pt-md-3\" }, \"FEATURED\", -1))\nconst _hoisted_3 = { class: \"col-12 d-flex justify-content-center\" }\nconst _hoisted_4 = { class: \"bg-primary-light featured-slide position-relative\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"tag-container position-absolute d-flex\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"new-tag tag flex-centered\" }, [\n /*#__PURE__*/_createElementVNode(\"p\", { class: \"m-0 p-0 text-uppercase text-white\" }, \"New\")\n], -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = { class: \"slide-img-container d-flex col-12 img-wrap\" }\nconst _hoisted_9 = [\"src\", \"alt\"]\nconst _hoisted_10 = { class: \"slide-text-container col-12 text-white text-center px-2 px-xl-3 py-3 position-absolute\" }\nconst _hoisted_11 = { class: \"item-details\" }\nconst _hoisted_12 = [\"title\"]\nconst _hoisted_13 = { class: \"mt-1 text-center price\" }\nconst _hoisted_14 = [\"title\"]\nconst _hoisted_15 = { class: \"mt-3 d-inline-flex gap-2\" }\nconst _hoisted_16 = /*#__PURE__*/_createTextVNode(\" Browse \")\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\" Info \")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\" Design \")\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SplideSlide = _resolveComponent(\"SplideSlide\")!\n const _component_Splide = _resolveComponent(\"Splide\")!\n\n return (_ctx.featuredItems.length >= 4)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createVNode(_component_Splide, {\n class: \"col-12\",\n options: _ctx.options,\n ref: \"featuredSplide\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.featuredItems, (image) => {\n return (_openBlock(), _createBlock(_component_SplideSlide, {\n key: image.id\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (image.isNew)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _hoisted_7))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"img\", {\n fetchpriority: \"low\",\n class: \"img-fluid\",\n src: image.thumbnailImages.length ? `${_ctx.uploadPath}/${image.thumbnailImages[0].imageUrl}` : '',\n alt: `Preview image for ${image.name}`\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"h3\", {\n title: image.name,\n class: \"text-uppercase title\"\n }, _toDisplayString(image.name), 9, _hoisted_12),\n _createElementVNode(\"div\", _hoisted_13, [\n (image.type == 'product')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n title: _ctx.getFromToPrice(image.defaultQuantityPrice, image.defaultQuantity, image.minimumQuantity)\n }, _toDisplayString(_ctx.getFromToPrice(image.defaultQuantityPrice, image.defaultQuantity, image.minimumQuantity)), 9, _hoisted_14))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n (image.type == 'category')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: { name: 'Categories', params: { slug: _ctx.$filters.splitSlug(image.categorySlug), lang: _ctx.$route.params.lang }},\n class: \"btn btn-light info text-primary-light\"\n }, {\n default: _withCtx(() => [\n _hoisted_16\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (image.type == 'product')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n to: { name: 'Product', params: { categorySlug: _ctx.$filters.splitSlug(image.categorySlug), productSlug: image.productSlug, lang: _ctx.$route.params.lang }},\n class: \"btn btn-light info text-primary-light\"\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (image.type == 'product')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n to: { name: 'Designer', params: {lang: _ctx.$route.params.lang}, query: { product: image.id }},\n class: \"btn btn-light design text-primary-light\"\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ])\n ]),\n _: 2\n }, 1024))\n }), 128))\n ]),\n _: 1\n }, 8, [\"options\"])\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Splide, SplideSlide } from \"@splidejs/vue-splide\";\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport { Categories, Products } from \"@/network/api\";\nimport { CategoryViewModel, ProductImageViewModel, ProductViewModel } from \"@/api-client\";\nimport { CalculatePrice, Currency, UploadPath } from \"@/mixins/utilities\";\n\ntype FeaturedType = \"product\" | \"category\";\ntype FeaturedItem = {\n id: string;\n isNew?: boolean;\n name: string;\n type: FeaturedType;\n defaultQuantity?: number | null | undefined;\n defaultQuantityPrice?: number | null | undefined;\n minimumQuantity?: number | null | undefined;\n categorySlug: string | undefined;\n productSlug?: string;\n thumbnailImages: ProductImageViewModel[] | CategoryViewModel[];\n};\n\n@Options({\n components: {\n Splide,\n SplideSlide,\n },\n})\nexport default class FeaturedAll extends mixins(UploadPath, Currency, CalculatePrice) {\n featuredProducts: Array = [];\n featuredCategories: Array = [];\n featuredItems: FeaturedItem[] = [];\n options = {\n autoplay: true,\n resetProgress: true,\n clones: 0,\n // cover: true,\n mediaQuery: \"max\",\n rewind: true,\n rewindSpeed: 1500,\n pagination: false,\n arrows: true,\n perMove: 1,\n perPage: 4,\n pauseOnHover: true,\n pauseOnFocus: false,\n interval: 5000,\n breakpoints: {\n 1600: {\n perPage: 3,\n },\n 991: {\n rewindSpeed: 2000,\n },\n 767: {\n perPage: 2,\n },\n 575: {\n perPage: 1,\n rewindSpeed: 2500,\n },\n },\n };\n\n async created() {\n await this.loadInitialData().then(() => {\n this.mergeFeatured();\n });\n }\n\n getFromToPrice(defaultPrice: any, defaultQty: any, minQty: any) {\n if (!defaultPrice) {\n return ``;\n }\n\n return `From ${this.currency().symbol}${this.calculatePrice(defaultPrice, this.currency().pricingMultiplier)} each for ${defaultQty} items | Minimum ${minQty}`;\n }\n \n\n mergeFeatured() {\n const products: FeaturedItem[] = this.featuredProducts.map(product => {\n return {\n id: product.id,\n isNew: product.isNew,\n name: product.name,\n type: \"product\",\n defaultQuantity: product.defaultQuantity,\n defaultQuantityPrice: product.defaultQuantityPrice,\n minimumQuantity: product.minimumQuantity,\n categorySlug: product.primaryCategory?.fullSlug,\n productSlug: product.slug,\n thumbnailImages: product.thumbnailImages,\n }\n })\n const categories: FeaturedItem[] = this.featuredCategories.map(category => {\n return {\n id: category.id,\n isNew: false,\n name: category.name,\n type: \"category\",\n defaultQuantity: undefined,\n defaultQuantityPrice: undefined,\n minimumQuantity: undefined,\n categorySlug: category.fullSlug,\n productSlug: undefined,\n thumbnailImages: category.thumbnailImages,\n }\n })\n const merged: FeaturedItem[] = [...products, ...categories];\n\n // Fisher-Yates shuffle algorithm\n for (let i = merged.length - 1; i > 0; i--) {\n // Generate a random index from 0 to i\n const randomIndex = Math.floor(Math.random() * (i + 1));\n\n // Swap elements at randomIndex and i\n [merged[i], merged[randomIndex]] = [merged[randomIndex], merged[i]];\n }\n\n this.featuredItems = merged;\n }\n\n async loadInitialData() {\n await Products.productsFeaturedGet(1, 99999)\n .then((res) => {\n console.log(res);\n this.featuredProducts = res.data.resultData?.items as Array;\n })\n .catch((error) => {\n console.log(error);\n console.log(error);\n });\n\n await Categories.categoriesFeaturedGet(1, 99999)\n .then((res) => {\n console.log(res);\n this.featuredCategories = res.data.resultData?.items as Array;\n })\n .catch((error) => {\n console.log(error);\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n}\n","import { render } from \"./FeaturedAll.vue?vue&type=template&id=18828969&scoped=true&ts=true\"\nimport script from \"./FeaturedAll.vue?vue&type=script&lang=ts\"\nexport * from \"./FeaturedAll.vue?vue&type=script&lang=ts\"\n\nimport \"./FeaturedAll.vue?vue&type=style&index=0&id=18828969&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-18828969\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '@/assets/home/truspilot-4half.png'\n\n\nconst _hoisted_1 = { class: \"container-fluid trustpilot-banner-container bg-primary d-flex px-3 px-lg-5\" }\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"
    \", 1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, _hoisted_3))\n}","\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n\n})\nexport default class TrustpilotBanner extends Vue {\n\n}\n","import { render } from \"./TrustpilotBanner.vue?vue&type=template&id=446bf116&ts=true\"\nimport script from \"./TrustpilotBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./TrustpilotBanner.vue?vue&type=script&lang=ts\"\n\nimport \"./TrustpilotBanner.vue?vue&type=style&index=0&id=446bf116&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"position-relative\" }\nconst _hoisted_2 = { class: \"design-now-svg position-absolute\" }\nconst _hoisted_3 = {\n id: \"DesignNow\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 299 92\"\n}\nconst _hoisted_4 = { class: \"design-now-shadow-1\" }\nconst _hoisted_5 = { \"data-name\": \"DesignNow\" }\nconst _hoisted_6 = { \"data-name\": \"DesignNow\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"image\", {\n class: \"design-now-shadow-4\",\n width: \"299\",\n height: \"92\",\n \"xlink:href\": \"data:image/png;base64,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\"\n })\n], -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-3\",\n d: \"M289.3,60.01V17.59c-1.07-5.14-5.97-8.67-11.14-8.4-.74-.03-1.48,0-2.21.11-26.17,4.1-52.52,5.06-78.94,4.84-2.29-.02-4.58-.05-6.87-.09h-.74c-6.9-.11-13.8-.3-20.71-.51-6.68-.21-13.36-.45-20.05-.69h0c-43.84-1.55-87.7-3.3-130.55,3.27-7.2,1.11-9.71,5.68-8.95,15.05v42.42c1.07,5.14,5.97,8.67,11.14,8.4.74.03,1.48,0,2.21-.11,26.17-4.1,52.52-5.06,78.94-4.84,2.29.02,4.58.05,6.87.09h.74c6.9.11,13.8.3,20.71.51,6.68.21,12.22.45,18.9.69h1.15c43.84,1.55,87.7,3.3,130.56-3.28,7.19-1.1,9.71-5.67,8.95-15.04Z\"\n })\n], -1)\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"g\", null, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M32.58,59.57l-.39-23.34,8.14-.68c8.34-.7,13.49,3.87,13.6,10.55.11,6.71-4.88,12.09-13.21,12.79,0,0-8.14.68-8.14.68ZM39.04,41.37l.2,11.93,1.29-.11c4.49-.38,6.64-3.41,6.59-6.52-.05-3.08-2.3-5.78-6.79-5.41l-1.29.11Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M59.85,34.17l15.62-.57.1,5.71-8.85.32.05,3.11,7.58-.28.09,5.35-7.58.28.06,3.47,9.33-.34.1,5.71-16.11.59-.39-23.34h0Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M98.3,50.16c.07,4.44-3.19,7.12-9.29,7.14-2.62,0-5.33-.46-7.16-1.23l-.11-6.48c2.19,1.19,4.8,1.83,6.81,1.82,2.04,0,3.14-.37,3.12-1.21-.02-.97-1.55-1.42-4.06-2.38-3.79-1.44-6.47-2.98-6.55-7.46-.07-4.38,3.48-7.34,9.02-7.37,2.33-.01,4.74.4,6.37,1.07l.11,6.22c-1.44-.93-3.62-1.47-5.8-1.46-1.91,0-3.07.56-3.06,1.51.01.84,1.45,1.42,3.83,2.38,3.79,1.54,6.67,3.11,6.74,7.46h.03Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M111.1,56.96l-6.78-.1-.39-23.34,6.78.1.39,23.34Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M138.14,56.39c-2.25,1.04-5.32,1.6-8.2,1.52-7.71-.22-12.86-5.74-12.98-12.52-.11-6.68,4.92-12.01,12.24-11.81,3.37.1,5.85.85,7.68,1.74l.1,6.16c-1.5-.69-3.78-1.6-6.99-1.69-4.15-.12-6.27,2.71-6.22,5.79.05,3.15,2.18,6.09,6.07,6.2.62.02,1.23,0,1.78-.05l-.09-5.41,6.45.18.17,9.89h-.01Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M151.16,47.64l.18,10.47-6.61-.22-.4-23.67h.32l13.53,11.25-.18-10.47,6.64.22.4,23.67h-.29l-13.6-11.25h0Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M187.5,48.67l.18,10.47-6.61-.1-.4-23.67h.32l13.54,11.01-.18-10.47,6.65.1.4,23.67h-.29l-13.6-11.01h0Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M219.52,35.37c7.36-.13,12.57,5.26,12.69,11.94.11,6.78-4.92,12.25-12.28,12.37-7.33.13-12.54-5.17-12.66-11.94-.11-6.68,4.92-12.25,12.25-12.37ZM219.83,53.49c3.44-.06,5.59-2.92,5.54-6.06-.05-3.08-2.3-5.93-5.74-5.87-3.4.06-5.59,2.98-5.54,6.06.05,3.15,2.34,5.93,5.74,5.87Z\"\n }),\n /*#__PURE__*/_createElementVNode(\"path\", {\n class: \"design-now-shadow-2\",\n d: \"M269.19,33.2l-11.08,24.5-.36.03-5.38-10-5.03,10.75-.36.03-11.88-22.83,7.63-.55,2.73,6c.7,1.48,1.28,2.83,1.72,4.03h.06c.43-1.27,1.31-3.05,1.84-4.29l2.9-6.41.32-.02,3.11,5.97c.84,1.66,1.5,2.81,1.98,4.01h.07c.4-1.27.93-2.7,1.58-4.27l2.51-6.38,7.63-.55v-.02Z\"\n })\n], -1)\nconst _hoisted_10 = [\n _hoisted_8,\n _hoisted_9\n]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_3, [\n _createElementVNode(\"g\", _hoisted_4, [\n _createElementVNode(\"g\", _hoisted_5, [\n _createElementVNode(\"g\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_router_link, {\n to: { name: 'AllProductSelector', params: {lang: _ctx.$route.params.lang} }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"g\", {\n class: _normalizeClass([\"button-no-shadow\", `hover-${_ctx.hoverColour}`])\n }, _hoisted_10, 2)\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ]))\n ])\n ]))\n}","\nimport { PropType } from \"vue\";\nimport { Vue, Options } from \"vue-class-component\";\n\ntype HoverColour = \"green\" | \"blue\" | \"white\";\n\n@Options({\n props: {\n hoverColour: {\n type: String as PropType,\n default: \"blue\",\n },\n },\n})\nexport default class DesignNowSvg extends Vue {}\n","import { render } from \"./DesignNowSvg.vue?vue&type=template&id=1969c387&ts=true\"\nimport script from \"./DesignNowSvg.vue?vue&type=script&lang=ts\"\nexport * from \"./DesignNowSvg.vue?vue&type=script&lang=ts\"\n\nimport \"./DesignNowSvg.vue?vue&type=style&index=0&id=1969c387&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport ProductTile from \"@/components/products/ProductTile.vue\";\nimport NewsletterForm from \"@/components/misc/NewsletterForm.vue\";\nimport SplideCarousel from \"@/components/carousel/SplideCarousel.vue\";\nimport CarouselBanner from \"@/components/banners/CarouselBanner.vue\";\nimport ClientSection from \"@/components/clients/ClientSection.vue\";\nimport FeaturedAll from \"@/components/featured/FeaturedAll.vue\"\nimport { LoadImage, SetMetaData, UploadPath } from \"@/mixins/utilities\";\nimport { BannerItems, Clients, GeneralSettings } from \"@/network/api\";\nimport { BannerItemListViewModel, ClientViewModel } from \"@/api-client\";\nimport InstagramCarousel from \"@/components/instagram/InstagramCarousel.vue\"\nimport ChooseCreateOrderBanner from \"@/components/banners/ChooseCreateOrderBanner.vue\"\nimport TrustpilotBanner from \"@/components/banners/TrustpilotBanner.vue\"\nimport { useMeta } from \"vue-meta\";\nimport DesignNowSvg from \"@/components/misc/DesignNowSvg.vue\";\n\n@Options({\n components: {\n NewsletterForm,\n CarouselBanner,\n ProductTile,\n SplideCarousel,\n ClientSection,\n DesignNowSvg,\n InstagramCarousel,\n ChooseCreateOrderBanner,\n TrustpilotBanner,\n FeaturedAll\n },\n})\nexport default class HomePage extends mixins(LoadImage, UploadPath, SetMetaData) {\n banners: Array = [];\n tempBannerArray: Array = [];\n clientLogos: Array = []\n\n created() {\n this.loadInitialData();\n }\n\n mounted() {\n const { meta } = useMeta({});\n\n this.setMetaData(\n meta,\n {\n script: {\n type: \"application/ld+json\",\n json: {\n \"@context\": \"https://schema.org/\",\n \"@type\": \"Organization\",\n name: \"CLIFTON\",\n alternateName: \"CLIFTON CONCEPTS LLC.\",\n url: \"https://www.cliftonclothing.com/\",\n logo: \"https://www.cliftonclothing.com/img/nav-logo-with-slogan.a58d3d9f.png\",\n sameAs: [\"https://www.facebook.com/love.clifton.clothing/\", \"https://twitter.com/cliftonclothing\", \"https://www.instagram.com/cliftonclothing/\", \"https://www.linkedin.com/company/clifton-clothing/\", \"https://www.pinterest.com/cliftonclothing/\", \"https://www.tiktok.com/@cliftonclothing\"],\n },\n },\n },\n \"script\",\n \"Home | \"\n );\n }\n\n loadClientLogos() {\n Clients.clientsGet()\n .then((res) => {\n if(res) {\n this.clientLogos = res.data.resultData as Array;\n }\n })\n }\n\n loadBannerItems() {\n BannerItems.bannerItemsGet()\n .then((res) => {\n if (res) {\n this.banners = res.data.resultData as Array;\n }\n })\n .catch((error) => {\n console.log(error);\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n\n loadInitialData() {\n this.loadBannerItems()\n this.loadClientLogos()\n }\n}\n","import { render } from \"./HomePage.vue?vue&type=template&id=234d7911&ts=true\"\nimport script from \"./HomePage.vue?vue&type=script&lang=ts\"\nexport * from \"./HomePage.vue?vue&type=script&lang=ts\"\n\nimport \"./HomePage.vue?vue&type=style&index=0&id=234d7911&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n createRouter,\n createWebHistory,\n RouteLocation,\n RouteRecordRaw,\n} from \"vue-router\";\nimport { store } from \"@/store\";\n\n// import DebugPage from \"@/views/DebugPage.vue\";\nimport DesignerPage from \"@/views/designer/DesignerPage.vue\";\nimport LoginPage from \"@/views/user/LoginPage.vue\";\nimport RegistrationPage from \"@/views/user/RegistrationPage.vue\";\nimport ForgotPasswordPage from \"@/views/user/ForgotPasswordPage.vue\";\nimport HomePage from \"@/views/home/HomePage.vue\";\nimport AboutUsPage from \"@/views/general-information/AboutUsPage.vue\";\nimport OurValuesPage from \"@/views/general-information/OurValuesPage.vue\";\nimport HowItWorksPage from \"@/views/general-information/HowItWorksPage.vue\";\nimport CanYouMakeThisPage from \"@/views/general-information/CanYouMakeThisPage.vue\";\nimport CustomStoreInfoPage from \"@/views/general-information/CustomStoreInfoPage.vue\";\nimport FAQsPage from \"@/views/general-information/FAQsPage.vue\";\nimport TncsPage from \"@/views/legal/TncsPage.vue\";\nimport PrivacyPolicyPage from \"@/views/legal/PrivacyPolicyPage.vue\";\nimport DataDeletionPage from \"@/views/legal/DataDeletionPage.vue\";\nimport PageNotFoundPage from \"@/views/misc/PageNotFoundPage.vue\";\nimport ProfilePage from \"@/views/user/profile/ProfilePage.vue\";\nimport CategoriesPage from \"@/views/products/CategoriesPage.vue\";\nimport ProductPage from \"@/views/products/ProductPage.vue\";\nimport BlogPostsPage from \"@/views/blog/BlogPostsPage.vue\";\nimport BlogPostPage from \"@/views/blog/BlogPostPage.vue\";\nimport CampaignPage from \"@/views/campaigns/CampaignPage.vue\";\nimport QuotePage from \"@/views/checkout-process/quote/QuotePage.vue\";\nimport PrintQuotePage from \"@/views/checkout-process/print-quote/PrintQuotePage.vue\";\nimport CartPage from \"@/views/checkout-process/cart/CartPage.vue\";\nimport CheckoutPage from \"@/views/checkout-process/checkout/CheckoutPage.vue\";\nimport PaymentCompletePage from \"@/views/checkout-process/checkout-complete/PaymentCompletePage.vue\";\nimport OutstandingPaymentCompletePage from \"@/views/checkout-process/extra-payments/OutstandingPaymentCompletePage.vue\";\nimport OrderPaymentsPage from \"@/views/checkout-process/extra-payments/OrderPaymentsPage.vue\";\nimport ResupplyAssetsPage from \"@/views/user/ResupplyAssetsPage.vue\";\nimport EmailVerificationPage from \"@/views/user/EmailVerificationPage.vue\";\nimport ProductSelectorPage from \"@/views/designer/ProductSelectorPage.vue\";\nimport EFTPaymentPage from \"@/views/checkout-process/checkout-complete/EFTPaymentPage.vue\";\nimport EnquiryPage from \"@/views/enquiries/EnquiryPage.vue\";\nimport CheckOrderStatusPage from \"@/views/checkout-process/checkout-complete/CheckOrderStatusPage.vue\";\nimport CustomStoreOrderPage from \"@/views/custom-stores/CustomStoreOrderPage.vue\";\nimport CustomStoreCustomerPaymentCompletePage from \"@/views/custom-stores/CustomStoreCustomerPaymentCompletePage.vue\";\nimport CustomStoreAdminStorePage from \"@/views/custom-stores/CustomStoreAdminStorePage.vue\";\nimport ShippingAndReturnsPage from \"@/views/legal/ShippingAndReturnsPage.vue\"; \nimport CookiePolicyPage from \"@/views/legal/CookiePolicyPage.vue\";\n\nfunction authGuard(to: RouteLocation) {\n const isLoggedIn = store.getters[\"auth/isLoggedIn\"];\n if (isLoggedIn) {\n // logged in so return true\n return true;\n }\n // not logged in so redirect to login page with the return url\n router.push({ name: \"Login\", params: {lang: router.currentRoute.value.params.lang}, query: { returnUrl: to.fullPath } });\n return false;\n}\n\nfunction correctCart(to: RouteLocation) {\n if(to.query.cart) {\n router.push({ name: 'Cart', params: { id: to.query.cart as string, lang: router.currentRoute.value.params.lang } })\n }\n}\n\nconst pathPrefix = \"/:lang([a-z]{2})?\";\n\nconst routes: Array = [\n {\n path: pathPrefix,\n name: \"Home\",\n component: HomePage,\n props: true\n },\n // {\n // path: \"/debug\",\n // name: \"Debug\",\n // component: DebugPage,\n // component: () => import(/* webpackChunkName: \"Debug\" */ '@/views/DebugPage.vue'),\n // },\n {\n path: pathPrefix + \"/designer/product-selector\",\n redirect: (to) => {\n const lang = to.params.lang || undefined;\n return `${lang ? \"/\" + lang: \"\"}/designer/product-selector/all`;\n },\n name: \"AllProductSelector\",\n component: ProductSelectorPage,\n // component: () => import(/* webpackChunkName: \"AllProductSelector\" */ '@/views/designer/ProductSelectorPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/designer/product-selector/:slug*\",\n name: \"ProductSelector\",\n component: ProductSelectorPage,\n // component: () => import(/* webpackChunkName: \"ProductSelector\" */ '@/views/designer/ProductSelectorPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/designer\",\n name: \"Designer\",\n component: DesignerPage,\n // component: () => import(/* webpackChunkName: \"Designer\" */ '@/views/designer/DesignerPage.vue'),\n props: true,\n }, \n {\n path: pathPrefix + \"/login\",\n name: \"Login\",\n component: LoginPage,\n // component: () => import(/* webpackChunkName: \"Login\" */ '@/views/user/LoginPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/register\",\n name: \"Register\",\n component: RegistrationPage,\n // component: () => import(/* webpackChunkName: \"Register\" */ '@/views/user/RegistrationPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/reset-password\",\n name: \"ForgotPassword\",\n component: ForgotPasswordPage,\n // component: () => import(/* webpackChunkName: \"ForgotPassword\" */ '@/views/user/ForgotPasswordPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/confirm-email\",\n name: \"EmailVerification\",\n component: EmailVerificationPage,\n // component: () => import(/* webpackChunkName: \"EmailVerification\" */ '@/views/user/EmailVerificationPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/all\",\n name: \"AllCategories\",\n component: CategoriesPage,\n // component: () => import(/* webpackChunkName: \"AllCategories\" */ '@/views/products/CategoriesPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/all/:slug+\",\n name: \"Categories\",\n component: CategoriesPage,\n // component: () => import(/* webpackChunkName: \"Categories\" */ '@/views/products/CategoriesPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/all/:categorySlug+/product/:productSlug\",\n name: \"Product\",\n component: ProductPage,\n // component: () => import(/* webpackChunkName: \"Product\" */ '@/views/products/ProductPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/profile\",\n name: \"Profile\",\n component: ProfilePage,\n // component: () => import(/* webpackChunkName: \"Profile\" */ '@/views/user/profile/ProfilePage.vue'),\n beforeEnter: authGuard,\n props: true,\n },\n {\n path: pathPrefix + \"/quote/:id\",\n name: \"Quote\",\n component: QuotePage,\n // component: () => import(/* webpackChunkName: \"Quote\" */ '@/views/checkout-process/quote/QuotePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/cart/:id?/:accessKey?\",\n name: \"Cart\",\n component: CartPage,\n // component: () => import(/* webpackChunkName: \"Cart\" */ '@/views/checkout-process/cart/CartPage.vue'),\n props: true,\n beforeEnter: correctCart\n },\n {\n path: pathPrefix + \"/store-cart/:id\",\n name: \"StoreCart\",\n component: CartPage,\n // component: () => import(/* webpackChunkName: \"Cart\" */ '@/views/checkout-process/cart/CartPage.vue'),\n props: true,\n },\n {\n path: pathPrefix + \"/checkout/:id/:accessKey?\",\n name: \"Checkout\",\n component: CheckoutPage,\n // component: () => import(/* webpackChunkName: \"Checkout\" */ '@/views/checkout-process/checkout/CheckoutPage.vue'),\n props: true,\n beforeEnter: correctCart\n },\n {\n path: pathPrefix + \"/print-quote/:id\",\n name: \"PrintQuote\",\n component: PrintQuotePage,\n // component: () => import(/* webpackChunkName: \"PrintQuote\" */ '@/views/checkout-process/print-quote/PrintQuotePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/payment-complete/:id/:accessKey?\",\n name: \"PaymentComplete\",\n component: PaymentCompletePage,\n // component: () => import(/* webpackChunkName: \"PaymentComplete\" */ '@/views/checkout-process/checkout-complete/PaymentCompletePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/outstanding-payment-complete/:id\",\n name: \"OutstandingPaymentComplete\",\n component: OutstandingPaymentCompletePage,\n // component: () => import(/* webpackChunkName: \"OutstandingPaymentComplete\" */ '@/views/checkout-process/extra-payments/OutstandingPaymentCompletePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/bank-transfer-details\",\n name: \"EFTPaymentPage\",\n component: EFTPaymentPage,\n // component: () => import(/* webpackChunkName: \"EFTPaymentPage\" */ '@/views/checkout-process/checkout-complete/EFTPaymentPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/order-payments/:id\",\n name: \"OrderPayments\",\n component: OrderPaymentsPage,\n // component: () => import(/* webpackChunkName: \"OrderPayments\" */ '@/views/checkout-process/extra-payments/OrderPaymentsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/online-store-payment-complete/:id\",\n name: \"CustomStoreCustomerPaymentComplete\",\n component: CustomStoreCustomerPaymentCompletePage,\n // component: () => import(/* webpackChunkName: \"CustomStoreCustomerPaymentComplete\" */ '@/views/custom-stores/CustomStoreCustomerPaymentCompletePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/online-store-admin/:id\",\n name: \"CustomStoreAdminStore\",\n component: CustomStoreAdminStorePage,\n // component: () => import(/* webpackChunkName: \"CustomStoreCustomerPaymentComplete\" */ '@/views/custom-stores/CustomStoreAdminStorePage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/online-store/:id\",\n name: \"CustomStoreOrder\",\n component: CustomStoreOrderPage,\n // component: () => import(/* webpackChunkName: \"CustomStoreOrder\" */ '@/views/custom-stores/CustomStoreOrderPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/check-order-status\",\n name: \"CheckOrderStatus\",\n component: CheckOrderStatusPage,\n // component: () => import(/* webpackChunkName: \"OrderPayments\" */ '@/views/checkout-process/extra-payments/OrderPaymentsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/resupply-assets/:id\",\n name: \"ResupplyAssets\",\n component: ResupplyAssetsPage,\n // component: () => import(/* webpackChunkName: \"ResupplyAssets\" */ '@/views/user/ResupplyAssetsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/blog\",\n name: \"Blog\",\n component: BlogPostsPage,\n // component: () => import(/* webpackChunkName: \"Blog\" */ '@/views/blog/BlogPostsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/blog/post/:slug+\",\n name: \"BlogPost\",\n component: BlogPostPage,\n // component: () => import(/* webpackChunkName: \"BlogPost\" */ '@/views/blog/BlogPostPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/pages/:slug\",\n name: \"CampaignPage\",\n component: CampaignPage,\n // component: () => import(/* webpackChunkName: \"CampaignPage\" */ '@/views/campaigns/CampaignPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/about-us\",\n name: \"AboutUs\",\n component: AboutUsPage,\n // component: () => import(/* webpackChunkName: \"AboutUs\" */ '@/views/general-information/AboutUsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/our-values\",\n name: \"OurValues\",\n component: OurValuesPage,\n // component: () => import(/* webpackChunkName: \"OurValues\" */ '@/views/general-information/OurValuesPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/how-it-works\",\n name: \"HowItWorks\",\n component: HowItWorksPage,\n // component: () => import(/* webpackChunkName: \"HowItWorks\" */ '@/views/general-information/HowItWorksPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/special-requests\",\n name: \"CanYouMakeThis\",\n component: CanYouMakeThisPage,\n // component: () => import(/* webpackChunkName: \"CanYouMakeThis\" */ '@/views/general-information/CanYouMakeThisPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/can-you-make-me-this\",\n redirect: \"/special-requests\",\n name: \"CanYouMakeThisOld\",\n props: true\n },\n {\n path: pathPrefix + \"/create-an-online-store\",\n name: \"CustomStoreInfo\",\n component: CustomStoreInfoPage,\n // component: () => import(/* webpackChunkName: \"CustomStoreInfo\" */ '@/views/general-information/CustomStoreInfoPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/create-a-custom-store\",\n redirect: \"/create-an-online-store\",\n name: \"CustomStoreInfoOld\",\n props: true\n },\n {\n path: pathPrefix + \"/contact-us\",\n name: \"Enquiries\",\n component: EnquiryPage,\n // component: () => import(/* webpackChunkName: \"Enquiries\" */ '@/views/enquiries/EnquiryPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/faqs\",\n name: \"FAQs\",\n component: FAQsPage,\n // component: () => import(/* webpackChunkName: \"FAQs\" */ '@/views/general-information/FAQsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/terms-and-conditions\",\n name: \"Tncs\",\n component: TncsPage,\n // component: () => import(/* webpackChunkName: \"Tncs\" */ '@/views/legal/TncsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/privacy-policy\",\n name: \"PrivacyPolicy\",\n component: PrivacyPolicyPage,\n // component: () => import(/* webpackChunkName: \"PrivacyPolicy\" */ '@/views/legal/PrivacyPolicyPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/cookie-policy\",\n name: \"CookiePolicy\",\n component: CookiePolicyPage,\n // component: () => import(/* webpackChunkName: \"CookiePolicy\" */ '@/views/legal/CookiePolicyPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/delete-my-data\",\n name: \"DataDeletion\",\n component: DataDeletionPage,\n // component: () => import(/* webpackChunkName: \"DataDeletion\" */ '@/views/legal/DataDeletionPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/shipping-and-returns\",\n name: \"ShippingAndReturns\",\n component: ShippingAndReturnsPage,\n // component: () => import(/* webpackChunkName: \"ShippingAndReturns\" */ '@/views/legal/ShippingAndReturnsPage.vue'),\n props: true\n },\n {\n path: pathPrefix + \"/404\",\n name: \"PageNotFound\",\n component: PageNotFoundPage,\n // component: () => import(/* webpackChunkName: \"PageNotFound\" */ '@/views/misc/PageNotFoundPage.vue'),\n props: true\n },\n {\n path: '/:pathMatch(.*)*',\n component: PageNotFoundPage,\n beforeEnter() {\n window.location.replace(window.location.origin + \"/404\")\n }\n }\n];\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n scrollBehavior(to, from, savedPosition) {\n // scroll to top except in profile\n if(router.currentRoute.value.name !== 'Profile') {\n return { top: 0, behavior: 'smooth' }; \n }\n },\n});\n\nrouter.beforeEach((to, from) => {\n if (router.currentRoute.value.name == \"PageNotFound\") {\n window.top!.location.assign(window.top?.location.origin + to.fullPath);\n }\n \n if (document.getElementsByClassName(\"modal-backdrop\")[0]) {\n document.getElementById(\"searchModalButton\")?.click();\n document.getElementById(\"productMenuMobile\")?.click();\n }\n\n if (document.getElementById(\"currency-dropdown\")) {\n document.getElementById(\"currency-dropdown\")?.classList?.remove(\"menu-dropdown-open\");\n }\n\n if (document.getElementById(\"product-dropdown\")) {\n document.getElementById(\"product-dropdown\")?.classList?.remove(\"menu-dropdown-open\");\n }\n\n document.getElementById(\"navbarCollapse\")?.classList?.remove(\"show\");\n});\n\nrouter.afterEach((to, from) => {\n if(router.currentRoute.value.name === 'Designer') {\n const reCapthca = document.querySelector('.grecaptcha-badge') as any;\n if(reCapthca) {\n reCapthca.style.display = `none`;\n }\n } else {\n const reCapthca = document.querySelector('.grecaptcha-badge') as any;\n if(reCapthca) {\n reCapthca.style.display = `block`;\n }\n }\n\n const exceptionRoutes = ['OutstandingPaymentComplete', 'PaymentComplete', 'EFTPaymentPage', 'ProductSelector', 'Cart']\n if(!exceptionRoutes.includes(router.currentRoute.value.name as string)) {\n store.dispatch(\"location/getDefaultSelection\")\n .then(() => {\n const quoteId = router.currentRoute.value.query.quote;\n const accessKey = router.currentRoute.value.query.accessKey;\n store.dispatch(\"checkout/getCart\", {\n quoteId: quoteId || undefined,\n accessKey: accessKey || undefined\n })\n \n const isLoggedIn = store.getters[\"auth/isLoggedIn\"];\n if(isLoggedIn) {\n store.dispatch(\"user/getProfile\");\n }\n })\n }\n})\n\nexport default router;\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BasicVueModal.vue?vue&type=style&index=0&id=416df79b&lang=scss\"","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReCaptchaInstance = void 0;\nvar ReCaptchaInstance = (function () {\n function ReCaptchaInstance(siteKey, recaptchaID, recaptcha) {\n this.siteKey = siteKey;\n this.recaptchaID = recaptchaID;\n this.recaptcha = recaptcha;\n this.styleContainer = null;\n }\n ReCaptchaInstance.prototype.execute = function (action) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2, this.recaptcha.enterprise ? this.recaptcha.enterprise.execute(this.recaptchaID, { action: action }) : this.recaptcha.execute(this.recaptchaID, { action: action })];\n });\n });\n };\n ReCaptchaInstance.prototype.getSiteKey = function () {\n return this.siteKey;\n };\n ReCaptchaInstance.prototype.hideBadge = function () {\n if (this.styleContainer !== null) {\n return;\n }\n this.styleContainer = document.createElement('style');\n this.styleContainer.innerHTML = '.grecaptcha-badge{visibility:hidden !important;}';\n document.head.appendChild(this.styleContainer);\n };\n ReCaptchaInstance.prototype.showBadge = function () {\n if (this.styleContainer === null) {\n return;\n }\n document.head.removeChild(this.styleContainer);\n this.styleContainer = null;\n };\n return ReCaptchaInstance;\n}());\nexports.ReCaptchaInstance = ReCaptchaInstance;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FeaturedAll.vue?vue&type=style&index=0&id=18828969&lang=scss&scoped=true\"","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar TYPED_ARRAY_CONSTRUCTOR = ArrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR]));\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./FabricColourPicker.vue?vue&type=style&index=0&id=e102a51c&lang=scss\"","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/clear-error-stack');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProductView.vue?vue&type=style&index=0&id=14841a60&lang=scss&scoped=true\"","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n itoc: itoc,\n ctoi: ctoi\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./BasicPromptModal.vue?vue&type=style&index=0&id=5f29c4f2&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./GenericBanner.vue?vue&type=style&index=0&id=d51cf0d0&lang=scss&scoped=true\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./StyleDesignPicker.vue?vue&type=style&index=0&id=2fc3bd10&lang=scss\"","import { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, vModelText as _vModelText, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/logo-footer.png'\n\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4d7588b6\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"zindex-fixed container-fluid bg-primary m-0 px-0 pt-5 pb-4\" }\nconst _hoisted_2 = { class: \"row justify-content-between m-0 p-0\" }\nconst _hoisted_3 = { class: \"copyright-container d-flex justify-content-center justify-content-xxl-start align-items-center col-12 col-sm-6 col-md-4 col-lg-12 col-xxl-2 order-last order-xxl-first ms-0 ps-0 pt-4 pt-xxl-0 flex-wrap\" }\nconst _hoisted_4 = { class: \"d-flex\" }\nconst _hoisted_5 = { class: \"logo me-2\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"Clifton Logo\"\n}, null, -1))\nconst _hoisted_7 = { class: \"d-flex flex-wrap flex-lg-nowrap flex-xxl-wrap\" }\nconst _hoisted_8 = { class: \"copyright-text d-flex flex-column px-1 col-6 col-sm-12 col-lg-auto col-xxl-12 primary-font-medium\" }\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"m-0 p-0\" }, \"Clifton Concepts LLC\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"m-0 p-0\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-lowercase\" }, \"trading as\"),\n /*#__PURE__*/_createTextVNode(\" Clifton\")\n], -1))\nconst _hoisted_11 = { class: \"m-0 p-0 copyright-generic\" }\nconst _hoisted_12 = { class: \"col-6 col-sm-12 col-lg-auto col-xxl-12 payment-text\" }\nconst _hoisted_13 = { class: \"about-us-container col-6 col-sm-6 col-md-4 col-lg-2 d-flex justify-content-center\" }\nconst _hoisted_14 = { class: \"d-flex flex-column col-9 col-lg-10\" }\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h5 mb-1 mb-sm-3\" }, \"About Us\", -1))\nconst _hoisted_16 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_17 = /*#__PURE__*/_createTextVNode(\"Our Story\")\nconst _hoisted_18 = /*#__PURE__*/_createTextVNode(\"Blog\")\nconst _hoisted_19 = /*#__PURE__*/_createTextVNode(\"Our Values\")\nconst _hoisted_20 = { class: \"ordering-container col-6 col-sm-6 col-md-4 col-lg-2 d-flex justify-content-center\" }\nconst _hoisted_21 = { class: \"d-flex flex-column col-12 col-sm-9 col-lg-12\" }\nconst _hoisted_22 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h5 mb-1 mb-sm-3\" }, \"Ordering\", -1))\nconst _hoisted_23 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_24 = /*#__PURE__*/_createTextVNode(\"How it works\")\nconst _hoisted_25 = /*#__PURE__*/_createTextVNode(\"Special Requests\")\nconst _hoisted_26 = /*#__PURE__*/_createTextVNode(\"Create your own store\")\nconst _hoisted_27 = { class: \"questions-container col-6 col-sm-6 col-md-4 col-lg-2 d-flex justify-content-center mt-4 mt-md-0\" }\nconst _hoisted_28 = { class: \"d-flex flex-column col-9 col-lg-12\" }\nconst _hoisted_29 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h5 mb-1 mb-sm-3\" }, \"Questions\", -1))\nconst _hoisted_30 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_31 = /*#__PURE__*/_createTextVNode(\"FAQs & Resources\")\nconst _hoisted_32 = /*#__PURE__*/_createTextVNode(\"Check Order Status\")\nconst _hoisted_33 = { class: \"terms-container col-6 col-sm-6 col-md-4 col-lg-2 d-flex justify-content-center mt-4 mt-lg-0\" }\nconst _hoisted_34 = { class: \"d-flex flex-column col-12 col-sm-9 col-lg-12\" }\nconst _hoisted_35 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h5 mb-1 mb-sm-3\" }, \"Terms\", -1))\nconst _hoisted_36 = { class: \"list-unstyled mb-0\" }\nconst _hoisted_37 = /*#__PURE__*/_createTextVNode(\"Terms & Conditions\")\nconst _hoisted_38 = /*#__PURE__*/_createTextVNode(\"Shipping & Returns\")\nconst _hoisted_39 = /*#__PURE__*/_createTextVNode(\"Privacy Policy\")\nconst _hoisted_40 = /*#__PURE__*/_createTextVNode(\"Cookie Policy\")\nconst _hoisted_41 = { class: \"contact-container col-12 col-sm-6 col-md-3 col-lg-3 col-xxl-2 d-flex flex-column align-items-center justify-content-start mt-4 mt-lg-0\" }\nconst _hoisted_42 = { class: \"d-flex flex-column justify-content-center col-10 col-md-12 col-lg-11\" }\nconst _hoisted_43 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"h5 mb-md-2 mb-lg-1 fw-bolder\" }, \"Get in touch\", -1))\nconst _hoisted_44 = { class: \"contact-input d-flex pe-2 pe-sm-4\" }\nconst _hoisted_45 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", { class: \"response-time pt-1\" }, \"Estimated Response - 1Hr\", -1))\nconst _hoisted_46 = { class: \"social-links d-flex flex-column justify-content-start col-sm-8 col-md-12 col-lg-11\" }\nconst _hoisted_47 = { class: \"footer-socials list-inline d-flex justify-content-between pe-2 pe-sm-4\" }\nconst _hoisted_48 = { class: \"list-inline-item\" }\nconst _hoisted_49 = {\n href: \"https://www.facebook.com/love.clifton.clothing/\",\n target: \"_blank\",\n \"data-original-title\": \"Facebook\"\n}\nconst _hoisted_50 = { class: \"list-inline-item\" }\nconst _hoisted_51 = {\n href: \"https://www.instagram.com/cliftonclothing/?hl=en\",\n target: \"_blank\",\n \"data-original-title\": \"Instagram\"\n}\nconst _hoisted_52 = { class: \"list-inline-item\" }\nconst _hoisted_53 = {\n href: \"https://www.tiktok.com/@cliftonclothing\",\n target: \"_blank\",\n \"data-original-title\": \"TikTok\"\n}\nconst _hoisted_54 = { class: \"list-inline-item\" }\nconst _hoisted_55 = {\n href: \"https://twitter.com/cliftonclothing\",\n target: \"_blank\",\n \"data-original-title\": \"Twitter\"\n}\nconst _hoisted_56 = { class: \"list-inline-item\" }\nconst _hoisted_57 = {\n href: \"https://www.linkedin.com/company/clifton-clothing\",\n target: \"_blank\",\n \"data-original-title\": \"Linkedin\"\n}\nconst _hoisted_58 = { class: \"list-inline-item\" }\nconst _hoisted_59 = {\n href: \"https://www.pinterest.com/cliftonclothing/\",\n target: \"_blank\",\n \"data-original-title\": \"Pinterest\"\n}\nconst _hoisted_60 = {\n key: 0,\n class: \"mobile-checkout-placeholder bg-primary col-12 d-block d-lg-none\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SecurePaymentInfo = _resolveComponent(\"SecurePaymentInfo\")!\n const _component_NewsletterForm = _resolveComponent(\"NewsletterForm\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"footer\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createVNode(_component_router_link, {\n to: {name: 'Home', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _hoisted_10,\n _createElementVNode(\"p\", _hoisted_11, \" Copyright © \" + _toDisplayString(new Date().getFullYear()), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(_component_SecurePaymentInfo)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _hoisted_15,\n _createElementVNode(\"ul\", _hoisted_16, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'AboutUs', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_17\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'Blog', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_18\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'OurValues', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_19\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _hoisted_22,\n _createElementVNode(\"ul\", _hoisted_23, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'HowItWorks', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_24\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"can-you-make-this\",\n to: {name: 'CanYouMakeThis', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_25\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"can-you-make-this\",\n to: {name: 'CustomStoreInfo', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_26\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_27, [\n _createElementVNode(\"div\", _hoisted_28, [\n _hoisted_29,\n _createElementVNode(\"ul\", _hoisted_30, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'FAQs', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_31\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'CheckOrderStatus', params: {lang: _ctx.$route.params.lang}},\n class: \"check-order-status\"\n }, {\n default: _withCtx(() => [\n _hoisted_32\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"div\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.handleToEquire(false))),\n class: \"contact\"\n }, \"Contact Us\")\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"div\", _hoisted_34, [\n _hoisted_35,\n _createElementVNode(\"ul\", _hoisted_36, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"terms-conditons\",\n to: {name: 'Tncs', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_37\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"terms-conditons\",\n to: {name: 'ShippingAndReturns', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_38\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'PrivacyPolicy', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_39\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n to: {name: 'CookiePolicy', params: {lang: _ctx.$route.params.lang}}\n }, {\n default: _withCtx(() => [\n _hoisted_40\n ]),\n _: 1\n }, 8, [\"to\"])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_41, [\n _createElementVNode(\"div\", _hoisted_42, [\n _createVNode(_component_NewsletterForm, {\n class: \"mb-4 mb-lg-2\",\n shortForm: true,\n source: \"Footer signup form\"\n }),\n _hoisted_43,\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_44, [\n _withDirectives(_createElementVNode(\"input\", {\n placeholder: \"FULL NAME\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.name) = $event)),\n class: \"ps-2\"\n }, null, 512), [\n [_vModelText, _ctx.name]\n ]),\n _createElementVNode(\"div\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.handleToEquire(true))),\n class: \"contact-go m-0 p-0 flex-centered\",\n style: {\"text-decoration\":\"none\"}\n }, \"Go\")\n ]),\n _hoisted_45\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_46, [\n _createElementVNode(\"ul\", _hoisted_47, [\n _createElementVNode(\"li\", _hoisted_48, [\n _createElementVNode(\"a\", _hoisted_49, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-facebook\" })\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_50, [\n _createElementVNode(\"a\", _hoisted_51, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-instagram\" })\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_52, [\n _createElementVNode(\"a\", _hoisted_53, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-tiktok\" })\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_54, [\n _createElementVNode(\"a\", _hoisted_55, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-x-twitter\" })\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_56, [\n _createElementVNode(\"a\", _hoisted_57, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-linkedin\" })\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_58, [\n _createElementVNode(\"a\", _hoisted_59, [\n _createVNode(_component_font_awesome_icon, { icon: \"fa-brands fa-pinterest\" })\n ])\n ])\n ])\n ])\n ])\n ])\n ]),\n (['Cart', 'Quote'].includes(_ctx.$route.name))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_60))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\nimport { store } from \"@/store\";\nimport SecurePaymentInfo from \"@/components/checkout-process/SecurePaymentInfo.vue\";\nimport { Vue, Options } from \"vue-class-component\";\nimport NewsletterForm from \"@/components/misc/NewsletterForm.vue\";\n\n@Options({\n components: { SecurePaymentInfo, NewsletterForm }\n})\nexport default class Footer extends Vue {\n name = '';\n\n handleToEquire(hasName = false) {\n let leadIn = `${window.location.pathname}${window.location.search || \"\"}`;\n\n let enquiryCartId = ''\n let savedDesignId = ''\n\n if(leadIn.includes('/cart')) {\n enquiryCartId = store.getters[\"checkout/cartId\"];\n }\n\n if(leadIn.includes('/designer') && this.$route.query['saved-design']) {\n savedDesignId = this.$route.query['saved-design'] as string;\n }\n\n this.$router.push({ name: 'Enquiries', params: {lang: this.$route.params.lang}, query: {from: leadIn, name: hasName ? this.name : undefined, cart: enquiryCartId || undefined, design: savedDesignId || undefined} })\n\n if(hasName) {\n this.name = ''\n }\n }\n\n get version() {\n return `v${process.env.__APPVERSION__} ${process.env.__BUILDTIME__}`;\n }\n}\n","import { render } from \"./Footer.vue?vue&type=template&id=4d7588b6&scoped=true&ts=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=4d7588b6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d7588b6\"]])\n\nexport default __exports__","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.22.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n};\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"payment-complete-container container-fluid col-12 m-0 p-0\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_HeadingBanner = _resolveComponent(\"HeadingBanner\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_HeadingBanner, {\n bannerSrc: '/img/enquiries/enquiry-image-thin-s.jpg',\n title: 'Page Not Found'\n }, null, 8, [\"bannerSrc\"])\n ]))\n}","\nimport { Vue, Options } from \"vue-class-component\";\nimport HeadingBanner from \"@/components/banners/HeadingBanner.vue\";\n\n@Options({\n components: { HeadingBanner },\n})\nexport default class PageNotFoundBanner extends Vue {\n created() {\n \n }\n}\n","import { render } from \"./PageNotFoundBanner.vue?vue&type=template&id=8c1c5e3e&ts=true\"\nimport script from \"./PageNotFoundBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./PageNotFoundBanner.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2cd88354\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"col-12 banner-message-container text-uppercase\"\n}\nconst _hoisted_2 = [\"href\"]\nconst _hoisted_3 = { class: \"col-12 bg-white hover-box\" }\nconst _hoisted_4 = { class: \"m-0 p-sm-primary text-center col-12\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"col-12 bg-white message\"\n}\nconst _hoisted_6 = { class: \"m-0 p-sm-primary text-center col-12\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.bannerMessages.length && _ctx.showAnyMessagesOnQuote && !_ctx.hideOnPages.includes(_ctx.$route.name))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.bannerMessages, (bannerMessage) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: bannerMessage.id\n }, [\n (_ctx.showMessageOnQuote(bannerMessage) && bannerMessage.url)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: bannerMessage.url,\n target: \"_blank\",\n class: \"col-12 link message\"\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(bannerMessage.message), 1)\n ])\n ], 8, _hoisted_2))\n : (_ctx.showMessageOnQuote(bannerMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"p\", _hoisted_6, _toDisplayString(bannerMessage.message), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { Country } from \"@/mixins/utilities\";\nimport { BannerMessages } from \"@/network/api\";\nimport { mixins, Options, Vue } from \"vue-class-component\";\n\ntype BannerMessageViewModel = {\n id: string;\n countryId: string;\n countryName: string;\n startDate: Date | string;\n endDate: Date | string;\n url: string | null;\n message: string;\n showOnQuotes: boolean;\n};\n\n@Options({\n})\nexport default class BannerMessage extends mixins(Country) {\n bannerMessages: Array = [];\n hideOnPages: string[] = ['Designer', 'Login', 'Register', 'ForgotPassword', 'EmailVerification', 'StoreCart', 'PrintQuote', 'PaymentComplete', 'OutstandingPaymentComplete', 'EFTPaymentPage', 'OrderPayments', 'CustomStoreCustomerPaymentComplete', 'CustomStoreAdminStore', 'CustomStoreOrder', 'CheckOrderStatus', 'ResupplyAssets', 'PageNotFound'];\n\n get showAnyMessagesOnQuote() {\n if(this.$route.name === 'Quote') {\n let hideCount = this.bannerMessages.length;\n this.bannerMessages.forEach((item) => {\n if(!item.showOnQuotes) {\n hideCount -= 1;\n }\n })\n return hideCount == 0 ? false : true;\n }\n return true\n }\n\n get watchCountry() {\n return this.country();\n }\n\n created() {\n this.loadInitialData();\n\n this.$watch(\"watchCountry\", () => {\n this.loadInitialData();\n })\n }\n\n showMessageOnQuote(item:BannerMessageViewModel) {\n if(this.$route.name === \"Quote\" && !item.showOnQuotes) {\n return false;\n }\n return true;\n } \n\n loadInitialData() {\n if(this.country()?.id) {\n BannerMessages.bannerMessagesGet(this.country().id)\n .then((res) => {\n if(res) {\n this.bannerMessages = res.data.resultData as Array;\n }\n })\n .catch((error) => {\n console.log(error);\n let errors = error.response.data.errors;\n errors.forEach((error: any) => {\n this.$notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n }\n }\n}\n","import { render } from \"./BannerMessage.vue?vue&type=template&id=2cd88354&scoped=true&ts=true\"\nimport script from \"./BannerMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./BannerMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./BannerMessage.vue?vue&type=style&index=0&id=2cd88354&lang=scss&scoped=true\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-2cd88354\"]])\n\nexport default __exports__","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./NewCurrencySelector.vue?vue&type=style&index=0&id=58af977a&lang=scss\"","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_ctx.statement)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.handleToEquire && _ctx.handleToEquire(...args))),\n class: \"statement-banner-container\"\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"statement-banner flex-centered text-center px-2 px-lg-3 py-3\", {'text-uppercase': _ctx.statement.uppercase}]),\n innerHTML: _ctx.statement.text\n }, null, 10, _hoisted_1)\n ]))\n : _createCommentVNode(\"\", true)\n}","\nimport { mixins, Options, Vue } from \"vue-class-component\";\nimport type { PropType } from 'vue';\n\ntype StatementName = \"designer\" | \"enquiries\";\ntype StatementBody = {\n name: StatementName,\n text: string,\n linkTo: string,\n sendLeadIn: boolean,\n uppercase: boolean\n};\n\n@Options({\n props: {\n name: { type: String as PropType, default: \"designer\" },\n },\n})\nexport default class StatementBanner extends Vue {\n name: StatementName = 'designer';\n statements: Array = [\n {\n name: 'designer',\n text: `Design your customwear`,\n linkTo: \"AllProductSelector\",\n sendLeadIn: false,\n uppercase: true\n },\n {\n name: 'enquiries',\n text: `\n
    \n
    Want some help with your design?
    Our friendly expert team is on hand 24/7 to sweat the small details, so you don't have to.
    \n
    Contact them here
    \n
    `,\n linkTo: \"Enquiries\",\n sendLeadIn: true,\n uppercase: false\n },\n ]\n\n handleToEquire() {\n if(this.statement) {\n let leadIn = `${window.location.pathname}${window.location.search || \"\"}`;\n this.$router.push({ name: this.statement.linkTo, params: {lang: this.$route.params.lang}, query: {from: this.statement.sendLeadIn ? leadIn : undefined} })\n }\n }\n\n get statement() {\n return this.statements.find((item) => item.name === this.name);\n }\n}\n","import { render } from \"./StatementBanner.vue?vue&type=template&id=2e319ab1&ts=true\"\nimport script from \"./StatementBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./StatementBanner.vue?vue&type=script&lang=ts\"\n\nimport \"./StatementBanner.vue?vue&type=style&index=0&id=2e319ab1&lang=scss\"\n\nimport exportComponent from \"/azagent/A/_work/539/s/Clifton-Clothing-Web-Client/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","module.exports = false;\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar classof = require('../internals/classof-raw');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getInternalState = require('../internals/internal-state').get;\n\nvar RegExpPrototype = RegExp.prototype;\nvar TypeError = global.TypeError;\n\n// `RegExp.prototype.dotAll` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall\nif (DESCRIPTORS && UNSUPPORTED_DOT_ALL) {\n defineProperty(RegExpPrototype, 'dotAll', {\n configurable: true,\n get: function () {\n if (this === RegExpPrototype) return undefined;\n // We can't use InternalStateModule.getterFor because\n // we don't add metadata for regexps created by a literal.\n if (classof(this) === 'RegExp') {\n return !!getInternalState(this).dotAll;\n }\n throw TypeError('Incompatible receiver, RegExp required');\n }\n });\n}\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string') {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ProductMenu.vue?vue&type=style&index=0&id=4d532afe&lang=scss\"","import { defineComponent, ref, computed, watch, onMounted, openBlock, createElementBlock, normalizeStyle } from \"vue\";\nimport Lottie from \"lottie-web\";\nvar vue3Lottie_vue_vue_type_style_index_0_lang = \"\";\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = defineComponent({\n props: {\n animationData: {\n type: Object,\n default: () => ({})\n },\n animationLink: {\n type: String,\n default: \"\"\n },\n loop: {\n type: [Boolean, Number],\n default: true\n },\n autoPlay: {\n type: Boolean,\n default: true\n },\n width: {\n type: [Number, String],\n default: \"100%\"\n },\n height: {\n type: [Number, String],\n default: \"100%\"\n },\n speed: {\n type: Number,\n default: 1\n },\n delay: {\n type: Number,\n default: 0\n },\n direction: {\n type: String,\n default: \"forward\"\n },\n pauseOnHover: {\n type: Boolean,\n default: false\n },\n playOnHover: {\n type: Boolean,\n default: false\n },\n backgroundColor: {\n type: String,\n default: \"transparent\"\n },\n pauseAnimation: {\n type: Boolean,\n default: false\n }\n },\n emits: {\n onComplete: null,\n onLoopComplete: null,\n onEnterFrame: null,\n onSegmentStart: null\n },\n setup(props, { emit: emits }) {\n let lottieAnimation = ref(null);\n const elementid = ref(\"\");\n let direction = 1;\n const checkIfContainerExists = (elementID) => {\n if (document.querySelector(`[data-id=\"${elementID}\" ]`) !== null) {\n return true;\n } else {\n return false;\n }\n };\n const loadLottie = async (element) => {\n let autoPlay = props.autoPlay;\n if (props.playOnHover) {\n autoPlay = false;\n }\n let animationData = {};\n if (props.animationData !== {}) {\n animationData = JSON.parse(JSON.stringify(props.animationData));\n }\n if (props.animationLink != \"\") {\n try {\n const response = await fetch(props.animationLink);\n const json = await response.json();\n animationData = json;\n } catch (error) {\n console.error(error);\n return;\n }\n }\n let loop = props.loop;\n if (typeof loop === \"number\") {\n if (loop > 0) {\n loop = loop - 1;\n }\n }\n if (props.delay > 0) {\n autoPlay = false;\n }\n lottieAnimation = Lottie.loadAnimation({\n container: element,\n renderer: \"svg\",\n loop,\n autoplay: autoPlay,\n animationData\n });\n setTimeout(() => {\n autoPlay = props.autoPlay;\n if (props.playOnHover) {\n lottieAnimation.pause();\n } else {\n lottieAnimation.play();\n }\n }, props.delay);\n lottieAnimation.setSpeed(props.speed);\n if (props.direction === \"reverse\") {\n lottieAnimation.setDirection(-1);\n }\n if (props.direction === \"normal\") {\n lottieAnimation.setDirection(1);\n }\n if (props.pauseAnimation) {\n lottieAnimation.pause();\n } else {\n if (props.playOnHover) {\n lottieAnimation.pause();\n }\n }\n lottieAnimation.addEventListener(\"loopComplete\", () => {\n if (props.direction === \"alternate\") {\n lottieAnimation.stop();\n direction = direction * -1;\n lottieAnimation.setDirection(direction);\n lottieAnimation.play();\n }\n emits(\"onLoopComplete\");\n });\n lottieAnimation.addEventListener(\"complete\", () => {\n emits(\"onComplete\");\n });\n lottieAnimation.addEventListener(\"enterFrame\", () => {\n emits(\"onEnterFrame\");\n });\n lottieAnimation.addEventListener(\"segmentStart\", () => {\n emits(\"onSegmentStart\");\n });\n };\n const getCurrentStyle = computed(() => {\n let width = props.width;\n let height = props.height;\n if (typeof props.width === \"number\") {\n width = `${props.width}px`;\n }\n if (typeof props.height === \"number\") {\n height = `${props.height}px`;\n }\n let cssVariables = {\n \"--lottie-animation-container-width\": width,\n \"--lottie-animation-container-height\": height,\n \"--lottie-animation-container-background-color\": props.backgroundColor\n };\n return cssVariables;\n });\n const hoverStarted = () => {\n if (lottieAnimation && props.pauseOnHover) {\n lottieAnimation.pause();\n }\n if (lottieAnimation && props.playOnHover) {\n lottieAnimation.play();\n }\n };\n const hoverEnded = () => {\n if (lottieAnimation && props.pauseOnHover) {\n lottieAnimation.play();\n }\n if (lottieAnimation && props.playOnHover) {\n lottieAnimation.pause();\n }\n };\n watch(props, () => {\n if ((props.pauseOnHover || props.playOnHover) && !props.pauseAnimation) {\n console.error(\"If you are using pauseAnimation prop for Vue3-Lottie, please remove the props pauseOnHover or playOnHover\");\n }\n if (!props.pauseOnHover && !props.playOnHover) {\n if (props.pauseAnimation && lottieAnimation) {\n lottieAnimation.pause();\n } else if (lottieAnimation && !props.pauseAnimation) {\n lottieAnimation.play();\n }\n }\n });\n const play = () => {\n if (lottieAnimation) {\n lottieAnimation.play();\n }\n };\n const pause = () => {\n if (lottieAnimation) {\n lottieAnimation.pause();\n }\n };\n const stop = () => {\n if (lottieAnimation) {\n lottieAnimation.stop();\n }\n };\n const destroy = () => {\n if (lottieAnimation) {\n lottieAnimation.destroy();\n }\n };\n const setSpeed = (speed = 1) => {\n if (speed <= 0) {\n throw new Error(\"Speed must be greater than 0\");\n }\n if (lottieAnimation) {\n lottieAnimation.setSpeed(speed);\n }\n };\n const setDirection = (direction2) => {\n if (lottieAnimation) {\n if (direction2 === \"forward\") {\n lottieAnimation.setDirection(1);\n } else if (direction2 === \"reverse\") {\n lottieAnimation.setDirection(-1);\n }\n }\n };\n const goToAndStop = (frame, isFrame = true) => {\n if (lottieAnimation) {\n lottieAnimation.goToAndStop(frame, isFrame);\n }\n };\n const goToAndPlay = (frame, isFrame = true) => {\n if (lottieAnimation) {\n lottieAnimation.goToAndPlay(frame, isFrame);\n }\n };\n const playSegments = (segments, forceFlag = false) => {\n if (lottieAnimation) {\n lottieAnimation.playSegments(segments, forceFlag);\n }\n };\n const setSubFrame = (useSubFrame = true) => {\n if (lottieAnimation) {\n lottieAnimation.setSubframe(useSubFrame);\n }\n };\n const getDuration = (inFrames = true) => {\n if (lottieAnimation) {\n return lottieAnimation.getDuration(inFrames);\n }\n };\n const makeid = (length) => {\n var result = \"\";\n var characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n };\n const setupLottie = (elementID) => {\n if (props.pauseOnHover && props.playOnHover) {\n throw new Error(\"You cannot set pauseOnHover and playOnHover for Vue3-Lottie at the same time.\");\n }\n if (props.animationLink === \"\" && props.animationData === {}) {\n throw new Error(\"You must provide either animationLink or animationData\");\n }\n const interval = setInterval(() => {\n if (checkIfContainerExists(elementID)) {\n clearInterval(interval);\n const element = document.querySelector(`[data-id=\"${elementID}\" ]`);\n if (element) {\n loadLottie(element);\n }\n }\n }, 0);\n };\n onMounted(async () => {\n elementid.value = makeid(20);\n setupLottie(elementid.value);\n });\n return {\n elementid,\n hoverEnded,\n hoverStarted,\n getCurrentStyle,\n play,\n pause,\n stop,\n destroy,\n setSpeed,\n setDirection,\n goToAndStop,\n goToAndPlay,\n playSegments,\n setSubFrame,\n getDuration\n };\n }\n});\nconst _hoisted_1 = [\"data-id\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n \"data-id\": _ctx.elementid,\n class: \"lottie-animation-container\",\n style: normalizeStyle(_ctx.getCurrentStyle),\n onMouseenter: _cache[0] || (_cache[0] = (...args) => _ctx.hoverStarted && _ctx.hoverStarted(...args)),\n onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.hoverEnded && _ctx.hoverEnded(...args))\n }, null, 44, _hoisted_1);\n}\nvar Vue3Lottie = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nfunction install(app, options) {\n const finalOptions = Object.assign({}, {\n name: \"Vue3Lottie\"\n }, options);\n app.component(`${finalOptions.name}`, Vue3Lottie);\n}\nconst plugin = {\n version: \"2.1.0\",\n install\n};\nexport { Vue3Lottie, plugin as default, install };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? un$IndexOf(this, searchElement, fromIndex) || 0\n : $IndexOf(this, searchElement, fromIndex);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","/**\n * vee-validate v4.5.10\n * (c) 2022 Abdelrahman Awad\n * @license MIT\n */\n/* eslint-disable no-misleading-character-class */\r\n/**\r\n * Some Alpha Regex helpers.\r\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\r\n */\r\nconst alpha = {\r\n en: /^[A-Z]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[A-ZÆØÅ]*$/i,\r\n de: /^[A-ZÄÖÜß]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ru: /^[А-ЯЁ]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[A-ZÅÄÖ]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ]*$/i,\r\n ug: /^[A-Zچۋېرتيۇڭوپھسداەىقكلزشغۈبنمژفگخجۆئ]*$/i,\r\n};\r\nconst alphaSpaces = {\r\n en: /^[A-Z\\s]*$/i,\r\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\r\n da: /^[A-ZÆØÅ\\s]*$/i,\r\n de: /^[A-ZÄÖÜß\\s]*$/i,\r\n es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\r\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\r\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\r\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\r\n nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\r\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\r\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\r\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\r\n ru: /^[А-ЯЁ\\s]*$/i,\r\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\r\n sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\r\n sv: /^[A-ZÅÄÖ\\s]*$/i,\r\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\r\n uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\r\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\r\n az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i,\r\n ug: /^[A-Zچۋېرتيۇڭوپھسداەىقكلزشغۈبنمژفگخجۆئ\\s]*$/i,\r\n};\r\nconst alphanumeric = {\r\n en: /^[0-9A-Z]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\r\n da: /^[0-9A-ZÆØÅ]$/i,\r\n de: /^[0-9A-ZÄÖÜß]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\r\n ru: /^[0-9А-ЯЁ]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i,\r\n ug: /^[0-9A-Zچۋېرتيۇڭوپھسداەىقكلزشغۈبنمژفگخجۆئ]*$/i,\r\n};\r\nconst alphaDash = {\r\n en: /^[0-9A-Z_-]*$/i,\r\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\r\n da: /^[0-9A-ZÆØÅ_-]*$/i,\r\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\r\n es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\r\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\r\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\r\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\r\n nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\r\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\r\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\r\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\r\n ru: /^[0-9А-ЯЁ_-]*$/i,\r\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\r\n sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\r\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\r\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\r\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\r\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\r\n az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i,\r\n ug: /^[0-9A-Zچۋېرتيۇڭوپھسداەىقكلزشغۈبنمژفگخجۆئ_-]*$/i,\r\n};\r\nconst getLocale = (params) => {\r\n if (!params) {\r\n return undefined;\r\n }\r\n return Array.isArray(params) ? params[0] : params.locale;\r\n};\n\nfunction getSingleParam(params, paramName) {\r\n return Array.isArray(params) ? params[0] : params[paramName];\r\n}\r\nfunction isEmpty(value) {\r\n if (value === null || value === undefined || value === '') {\r\n return true;\r\n }\r\n if (Array.isArray(value) && value.length === 0) {\r\n return true;\r\n }\r\n return false;\r\n}\n\nconst alphaValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const locale = getLocale(params);\r\n if (Array.isArray(value)) {\r\n return value.every(val => alphaValidator(val, { locale }));\r\n }\r\n const valueAsString = String(value);\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alpha).some(loc => alpha[loc].test(valueAsString));\r\n }\r\n return (alpha[locale] || alpha.en).test(valueAsString);\r\n};\n\nconst alphaDashValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const locale = getLocale(params);\r\n if (Array.isArray(value)) {\r\n return value.every(val => alphaDashValidator(val, { locale }));\r\n }\r\n const valueAsString = String(value);\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaDash).some(loc => alphaDash[loc].test(valueAsString));\r\n }\r\n return (alphaDash[locale] || alphaDash.en).test(valueAsString);\r\n};\n\nconst alphaNumValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const locale = getLocale(params);\r\n if (Array.isArray(value)) {\r\n return value.every(val => alphaNumValidator(val, { locale }));\r\n }\r\n const valueAsString = String(value);\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphanumeric).some(loc => alphanumeric[loc].test(valueAsString));\r\n }\r\n return (alphanumeric[locale] || alphanumeric.en).test(valueAsString);\r\n};\n\nconst alphaSpacesValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const locale = getLocale(params);\r\n if (Array.isArray(value)) {\r\n return value.every(val => alphaSpacesValidator(val, { locale }));\r\n }\r\n const valueAsString = String(value);\r\n // Match at least one locale.\r\n if (!locale) {\r\n return Object.keys(alphaSpaces).some(loc => alphaSpaces[loc].test(valueAsString));\r\n }\r\n return (alphaSpaces[locale] || alphaSpaces.en).test(valueAsString);\r\n};\n\nfunction getParams$1(params) {\r\n if (!params) {\r\n return {\r\n min: 0,\r\n max: 0,\r\n };\r\n }\r\n if (Array.isArray(params)) {\r\n return { min: params[0], max: params[1] };\r\n }\r\n return params;\r\n}\r\nconst betweenValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const { min, max } = getParams$1(params);\r\n if (Array.isArray(value)) {\r\n return value.every(val => !!betweenValidator(val, { min, max }));\r\n }\r\n const valueAsNumber = Number(value);\r\n return Number(min) <= valueAsNumber && Number(max) >= valueAsNumber;\r\n};\n\nconst confirmedValidator = (value, params) => {\r\n const target = getSingleParam(params, 'target');\r\n return String(value) === String(target);\r\n};\n\nconst digitsValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const length = getSingleParam(params, 'length');\r\n if (Array.isArray(value)) {\r\n return value.every(val => digitsValidator(val, { length }));\r\n }\r\n const strVal = String(value);\r\n return /^[0-9]*$/.test(strVal) && strVal.length === Number(length);\r\n};\n\nconst validateImage = (file, width, height) => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const URL = window.URL || window.webkitURL;\r\n return new Promise(resolve => {\r\n const image = new Image();\r\n image.onerror = () => resolve(false);\r\n image.onload = () => resolve(image.width === width && image.height === height);\r\n image.src = URL.createObjectURL(file);\r\n });\r\n};\r\nfunction getParams(params) {\r\n if (!params) {\r\n return { width: 0, height: 0 };\r\n }\r\n if (Array.isArray(params)) {\r\n return { width: Number(params[0]), height: Number(params[1]) };\r\n }\r\n return {\r\n width: Number(params.width),\r\n height: Number(params.height),\r\n };\r\n}\r\nconst dimensionsValidator = (files, params) => {\r\n if (isEmpty(files)) {\r\n return true;\r\n }\r\n const { width, height } = getParams(params);\r\n const list = [];\r\n const fileList = Array.isArray(files) ? files : [files];\r\n for (let i = 0; i < fileList.length; i++) {\r\n // if file is not an image, reject.\r\n if (!/\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(fileList[i].name)) {\r\n return Promise.resolve(false);\r\n }\r\n list.push(fileList[i]);\r\n }\r\n return Promise.all(list.map(file => validateImage(file, width, height))).then(values => {\r\n return values.every(v => v);\r\n });\r\n};\n\n/* eslint-disable no-useless-escape */\r\nconst emailValidator = (value) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (Array.isArray(value)) {\r\n return value.every(val => re.test(String(val)));\r\n }\r\n return re.test(String(value));\r\n};\n\nconst extValidator = (files, extensions) => {\r\n if (isEmpty(files)) {\r\n return true;\r\n }\r\n if (!extensions) {\r\n extensions = [];\r\n }\r\n const regex = new RegExp(`.(${extensions.join('|')})$`, 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(file => regex.test(file.name));\r\n }\r\n return regex.test(files.name);\r\n};\n\nconst imageValidator = (files) => {\r\n if (isEmpty(files)) {\r\n return true;\r\n }\r\n const regex = /\\.(jpg|svg|jpeg|png|bmp|gif|webp)$/i;\r\n if (Array.isArray(files)) {\r\n return files.every(file => regex.test(file.name));\r\n }\r\n return regex.test(files.name);\r\n};\n\nconst integerValidator = (value) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(val => /^-?[0-9]+$/.test(String(val)));\r\n }\r\n return /^-?[0-9]+$/.test(String(value));\r\n};\n\nconst isValidator = (value, params) => {\r\n const other = getSingleParam(params, 'other');\r\n return value === other;\r\n};\n\nconst isNotValidator = (value, params) => {\r\n const other = getSingleParam(params, 'other');\r\n return value !== other;\r\n};\n\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}\n\nconst lengthValidator = (value, params) => {\r\n // Normalize the length value\r\n const length = getSingleParam(params, 'length');\r\n if (isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n if (typeof value === 'number') {\r\n value = String(value);\r\n }\r\n if (!value.length) {\r\n value = Array.from(value);\r\n }\r\n return value.length === Number(length);\r\n};\n\nconst maxLengthValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const length = getSingleParam(params, 'length');\r\n if (Array.isArray(value)) {\r\n return value.every(val => maxLengthValidator(val, { length }));\r\n }\r\n return String(value).length <= Number(length);\r\n};\n\nconst maxValueValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const max = getSingleParam(params, 'max');\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(val => maxValueValidator(val, { max }));\r\n }\r\n return Number(value) <= Number(max);\r\n};\n\nconst mimesValidator = (files, mimes) => {\r\n if (isEmpty(files)) {\r\n return true;\r\n }\r\n if (!mimes) {\r\n mimes = [];\r\n }\r\n const regex = new RegExp(`${mimes.join('|').replace('*', '.+')}$`, 'i');\r\n if (Array.isArray(files)) {\r\n return files.every(file => regex.test(file.type));\r\n }\r\n return regex.test(files.type);\r\n};\n\nconst minValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const length = getSingleParam(params, 'length');\r\n if (Array.isArray(value)) {\r\n return value.every(val => minValidator(val, { length }));\r\n }\r\n return String(value).length >= Number(length);\r\n};\n\nconst minValueValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const min = getSingleParam(params, 'min');\r\n if (Array.isArray(value)) {\r\n return value.length > 0 && value.every(val => minValueValidator(val, { min }));\r\n }\r\n return Number(value) >= Number(min);\r\n};\n\nconst oneOfValidator = (value, list) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(val => oneOfValidator(val, list));\r\n }\r\n return Array.from(list).some(item => {\r\n // eslint-disable-next-line\r\n return item == value;\r\n });\r\n};\n\nconst excludedValidator = (value, list) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n return !oneOfValidator(value, list);\r\n};\n\nconst ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\r\nconst en = /^[0-9]+$/;\r\nconst numericValidator = (value) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n const testValue = (val) => {\r\n const strValue = String(val);\r\n return en.test(strValue) || ar.test(strValue);\r\n };\r\n if (Array.isArray(value)) {\r\n return value.every(testValue);\r\n }\r\n return testValue(value);\r\n};\n\nconst regexValidator = (value, params) => {\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n let regex = getSingleParam(params, 'regex');\r\n if (typeof regex === 'string') {\r\n regex = new RegExp(regex);\r\n }\r\n if (Array.isArray(value)) {\r\n return value.every(val => regexValidator(val, { regex }));\r\n }\r\n return regex.test(String(value));\r\n};\n\nconst requiredValidator = (value) => {\r\n if (isNullOrUndefined(value) || isEmptyArray(value) || value === false) {\r\n return false;\r\n }\r\n return !!String(value).trim().length;\r\n};\n\nconst sizeValidator = (files, params) => {\r\n if (isEmpty(files)) {\r\n return true;\r\n }\r\n let size = getSingleParam(params, 'size');\r\n size = Number(size);\r\n if (isNaN(size)) {\r\n return false;\r\n }\r\n const nSize = size * 1024;\r\n if (!Array.isArray(files)) {\r\n return files.size <= nSize;\r\n }\r\n for (let i = 0; i < files.length; i++) {\r\n if (files[i].size > nSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\n\nconst urlValidator = (value, params) => {\r\n var _a;\r\n if (isEmpty(value)) {\r\n return true;\r\n }\r\n let pattern = getSingleParam(params, 'pattern');\r\n if (typeof pattern === 'string') {\r\n pattern = new RegExp(pattern);\r\n }\r\n try {\r\n // eslint-disable-next-line no-new\r\n new URL(value);\r\n }\r\n catch (_b) {\r\n return false;\r\n }\r\n return (_a = pattern === null || pattern === void 0 ? void 0 : pattern.test(value)) !== null && _a !== void 0 ? _a : true;\r\n};\n\n/* eslint-disable camelcase */\r\nconst all = {\r\n alpha_dash: alphaDashValidator,\r\n alpha_num: alphaNumValidator,\r\n alpha_spaces: alphaSpacesValidator,\r\n alpha: alphaValidator,\r\n between: betweenValidator,\r\n confirmed: confirmedValidator,\r\n digits: digitsValidator,\r\n dimensions: dimensionsValidator,\r\n email: emailValidator,\r\n ext: extValidator,\r\n image: imageValidator,\r\n integer: integerValidator,\r\n is_not: isNotValidator,\r\n is: isValidator,\r\n length: lengthValidator,\r\n max_value: maxValueValidator,\r\n max: maxLengthValidator,\r\n mimes: mimesValidator,\r\n min_value: minValueValidator,\r\n min: minValidator,\r\n not_one_of: excludedValidator,\r\n numeric: numericValidator,\r\n one_of: oneOfValidator,\r\n regex: regexValidator,\r\n required: requiredValidator,\r\n size: sizeValidator,\r\n url: urlValidator,\r\n};\n\nexport { alphaValidator as alpha, alphaDashValidator as alpha_dash, alphaNumValidator as alpha_num, alphaSpacesValidator as alpha_spaces, betweenValidator as between, confirmedValidator as confirmed, all as default, digitsValidator as digits, dimensionsValidator as dimensions, emailValidator as email, extValidator as ext, imageValidator as image, integerValidator as integer, isValidator as is, isNotValidator as is_not, lengthValidator as length, maxLengthValidator as max, maxValueValidator as max_value, mimesValidator as mimes, minValidator as min, minValueValidator as min_value, excludedValidator as not_one_of, numericValidator as numeric, oneOfValidator as one_of, regexValidator as regex, requiredValidator as required, sizeValidator as size, urlValidator as url };\n","import { store } from \"@/store\";\nimport axios, { AxiosStatic } from \"axios\";\n\nfunction isValid(date:any) {\n return date && new Date().getTime() < new Date(date).getTime();\n}\n\nexport function ConfigureAxios() {\n axios.interceptors.request.use(\n (req) => {\n const url = new URL(req.url!);\n\n if (url.pathname.includes(\"/Identity/Authentication\")) return req;\n\n let tkn = store.getters[\"auth/token\"];\n if(tkn !== null){\n if(!isValid(tkn.refreshTokenExpiration)) {\n store.dispatch(\"auth/logout\") //clear login data (token, profile etc) without actually logging out\n return req;\n }\n if(!isValid(tkn.expiration)) {\n return store.dispatch(\"auth/refresh\").then((res) => {\n tkn = store.getters[\"auth/token\"];\n req.headers!.Authorization = `Bearer ${tkn.encodedToken}`;\n return req;\n });\n }\n if(isValid(tkn.expiration) && tkn.encodedToken){\n req.headers!.Authorization = `Bearer ${tkn.encodedToken}`;\n }\n }\n return req;\n },\n (error) => {\n console.log(\"ded\");\n return Promise.reject(error);\n }\n );\n\n axios.interceptors.response.use(\n (response) => {\n return response;\n },\n async (error) => {\n if(error) {\n const status = error?.response ? error?.response?.status : null;\n if (status === 401) {\n return store.dispatch(\"auth/refresh\").then((tkn) => {\n return axios.request(error.config);\n });\n }\n }\n \n return Promise.reject(error);\n }\n );\n}","// import { Profile } from \"@/network/api\";\nimport { ProductAdminViewModel } from \"@/api-client\";\nimport { CustomizedProducts, Users } from \"@/network/api\";\nimport { Store as VuexStore, Module, GetterTree, MutationTree } from \"vuex\";\nimport { RootState, store } from \"..\";\nimport { notify } from \"@kyvg/vue3-notification\";\n\n\nexport type CustomPattern = {\n patternImageUrl:string,\n highQualityPatternImageUrl: string | null\n}\n\nexport type UserState = {\n profile: string | null;\n role: Array | string | null;\n recentlyViewedProducts: Array | null;\n anonymousSavedDesigns: Array | null;\n customPatterns: CustomPattern[] | null;\n zohoActive: boolean | 'loading';\n};\n\nexport enum MutationTypes {\n SetUserProfile = \"SET_UserProfile\",\n SetRole = \"SET_Role\",\n SetRecentlyViewedProducts = \"SET_RecentlyViewedProducts\",\n SetAnonymousSavedDesigns = \"SET_AnonymousSavedDesigns\",\n SetCustomPatterns = \"SET_CustomPatterns\",\n SetZohoActive = \"SET_zohoActive\"\n}\n\nexport const state: UserState = {\n profile: null,\n role: null,\n recentlyViewedProducts: null,\n anonymousSavedDesigns: null,\n customPatterns: null,\n zohoActive: 'loading'\n};\n\ntype Getters = {\n profile(state: UserState): string;\n recentlyViewedProducts(state: UserState): Array;\n anonymousSavedDesigns(state: UserState): Array;\n customPatterns(state: UserState): CustomPattern[];\n zohoActive(state: UserState): | 'loading';\n};\n\nexport const getters: GetterTree & Getters = {\n profile(state) {\n if (state.profile != null) {\n return state.profile;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const profile = store[\"user\"][\"profile\"];\n if (profile != null) {\n state.profile = profile;\n return profile;\n }\n\n return null;\n },\n role(state) {\n if (state.role != null) {\n return state.role;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const role = store[\"user\"][\"role\"];\n if (role != null) {\n state.role = role;\n return role;\n }\n\n return null;\n },\n recentlyViewedProducts(state) {\n if (state.recentlyViewedProducts != null) {\n return state.recentlyViewedProducts;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const recentlyViewedProducts = store[\"user\"][\"recentlyViewedProducts\"];\n if (recentlyViewedProducts != null) {\n state.recentlyViewedProducts = recentlyViewedProducts;\n return recentlyViewedProducts;\n }\n\n return null;\n },\n anonymousSavedDesigns(state) {\n if (state.anonymousSavedDesigns != null) {\n return state.anonymousSavedDesigns;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const anonymousSavedDesigns = store[\"user\"][\"anonymousSavedDesigns\"];\n if (anonymousSavedDesigns != null) {\n state.anonymousSavedDesigns = anonymousSavedDesigns;\n return anonymousSavedDesigns;\n }\n\n return null;\n },\n customPatterns(state) {\n if (state.customPatterns != null) {\n return state.customPatterns;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const customPatterns = store[\"user\"][\"customPatterns\"];\n if (customPatterns != null) {\n state.customPatterns = customPatterns;\n return customPatterns;\n }\n\n return null;\n },\n zohoActive(state) {\n if (state.zohoActive != null) {\n return state.zohoActive;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"user\"] == null) {\n return null;\n }\n const zohoActive = store[\"user\"][\"zohoActive\"];\n if (zohoActive != null) {\n state.zohoActive = zohoActive;\n return zohoActive;\n }\n\n return 'loading';\n },\n};\n\ntype Mutations = {\n [MutationTypes.SetUserProfile](state: UserState, profile: string): void;\n [MutationTypes.SetRole](state: UserState, role: any): void;\n [MutationTypes.SetRecentlyViewedProducts](state: UserState, recentlyViewedProducts: Array): void;\n [MutationTypes.SetAnonymousSavedDesigns](state: UserState, anonymousSavedDesigns: Array): void;\n [MutationTypes.SetCustomPatterns](state: UserState, customPatterns: CustomPattern[]): void;\n [MutationTypes.SetZohoActive](state: UserState, zohoActive: boolean): void;\n};\n\nfunction checkForDuplicates(array: T[], item: T, prop: keyof T) {\n if(array) {\n return array.some(function (el) {\n return el[prop] === item[prop];\n });\n }\n return false\n}\n\nexport const mutations: MutationTree & Mutations = {\n [MutationTypes.SetUserProfile](state, profile) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"profile\"] = profile;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.profile = profile;\n },\n [MutationTypes.SetRole](state, role) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"role\"] = role;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.role = role;\n },\n [MutationTypes.SetRecentlyViewedProducts](state, recentlyViewedProducts) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"recentlyViewedProducts\"] = recentlyViewedProducts;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.recentlyViewedProducts = recentlyViewedProducts;\n },\n [MutationTypes.SetAnonymousSavedDesigns](state, anonymousSavedDesigns) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"anonymousSavedDesigns\"] = anonymousSavedDesigns;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.anonymousSavedDesigns = anonymousSavedDesigns;\n },\n [MutationTypes.SetCustomPatterns](state, customPatterns) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"customPatterns\"] = customPatterns;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.customPatterns = customPatterns;\n },\n [MutationTypes.SetZohoActive](state, zohoActive) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"user\"]) {\n store[\"user\"] = {};\n }\n store[\"user\"][\"zohoActive\"] = zohoActive;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.zohoActive = zohoActive;\n },\n};\n\nexport const getInfoFromToken = (token: any) => {\n return (new Promise((resolve, reject) => {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map(function (c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n const parsedJSON = JSON.parse(jsonPayload)\n resolve(parsedJSON);\n }))\n}\n\nexport const UserModule: Module = {\n state,\n getters,\n mutations,\n actions: {\n getProfile: (context, params) => {\n return new Promise((resolve, reject) => {\n const token = store.getters[\"auth/token\"];\n if(token) {\n Users.usersGetUserGet()\n .then(async (res) => {\n if(res.data.succeeded) {\n context.commit(MutationTypes.SetUserProfile, res.data.resultData);\n const tokenInfo = await getInfoFromToken(token.encodedToken);\n let role = tokenInfo['http://schemas.microsoft.com/ws/2008/06/identity/claims/role']\n \n if(typeof role == 'string') {\n role = [role]\n }\n // debugger\n context.commit(MutationTypes.SetRole, role);\n resolve()\n }\n reject()\n })\n .catch((error) => {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject()\n });\n } \n })\n },\n updateProfile: (context, params) => {\n return new Promise((resolve, reject) => {\n Users.usersUpdateUserPut(params)\n .then((res:any) => {\n if(res.data.succeeded) {\n context.commit(MutationTypes.SetUserProfile, res.data.resultData);\n resolve(res)\n } else {\n reject(res); \n }\n })\n .catch((error) => {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject(error); \n });\n })\n },\n updatePassword: (context, params) => {\n Users.usersUpdateUserPasswordPut(params)\n .then((res) => {\n //TODO uncomment this?\n //context.commit(MutationTypes.SetUserProfile, res.data);\n })\n .catch((error) => {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n });\n },\n clearProfile: (context, params) => {\n context.commit(MutationTypes.SetUserProfile, null);\n context.commit(MutationTypes.SetRole, null);\n },\n\n addRecentlyViewedProduct: (context, params) => {\n const products = getters.recentlyViewedProducts(state) || [];\n const exists = checkForDuplicates(products, params, 'id');\n if(params.id !== '') {\n if(!exists) {\n if(products.length < 20) {\n products.unshift(params);\n context.commit(MutationTypes.SetRecentlyViewedProducts, products);\n } else {\n products.pop()\n products.unshift(params);\n context.commit(MutationTypes.SetRecentlyViewedProducts, products);\n }\n }\n }\n },\n removeRecentlyViewedProduct: (context, params) => {\n const products = getters.recentlyViewedProducts(state);\n products.splice(products.findIndex(x => x.id === params), 1);\n context.commit(MutationTypes.SetRecentlyViewedProducts, products);\n },\n\n addCustomPattern: (context, params:CustomPattern) => {\n const patterns = getters.customPatterns(state) || [];\n const lowResExists = checkForDuplicates(patterns, params, 'patternImageUrl');\n const highResExists = checkForDuplicates(patterns, params, 'highQualityPatternImageUrl');\n\n if(!lowResExists && !highResExists) {\n patterns.push(params);\n context.commit(MutationTypes.SetCustomPatterns, patterns);\n } else if(lowResExists && (!highResExists && params.highQualityPatternImageUrl)) {\n const match = patterns.find(item => item.patternImageUrl === params.patternImageUrl);\n if(match) {\n match.highQualityPatternImageUrl = params.highQualityPatternImageUrl\n context.commit(MutationTypes.SetCustomPatterns, patterns);\n }\n }\n },\n addAnonymousSavedDesign: (context, params) => {\n const isLoggedIn = store.getters[\"auth/isLoggedIn\"];\n\n if(!isLoggedIn) {\n const savedDesigns = getters.anonymousSavedDesigns(state) || [];\n const exists = savedDesigns.includes(params)\n if(params !== '') {\n if(!exists) {\n if(savedDesigns.length < 20) {\n savedDesigns.unshift(params);\n context.commit(MutationTypes.SetAnonymousSavedDesigns, savedDesigns);\n } else {\n savedDesigns.pop()\n savedDesigns.unshift(params);\n context.commit(MutationTypes.SetAnonymousSavedDesigns, savedDesigns);\n }\n }\n }\n }\n },\n allocateAnonymousSavedDesigns: (context, params) => {\n if(params?.length) {\n CustomizedProducts.customizedProductsClaimPut(params)\n .then((res) => {\n context.commit(MutationTypes.SetAnonymousSavedDesigns, []);\n })\n .catch((error) => {\n console.log(error)\n // Choosing not to display errors to not confuse users\n // const errors = error.response.data.errors;\n // errors.forEach((error: any) => {\n // notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n // });\n });\n }\n },\n updateZohoStatus: (context, params) => {\n context.commit(MutationTypes.SetZohoActive, params)\n }\n },\n namespaced: true,\n};\n","import { CountryViewModel } from \"@/api-client\";\nimport { Countries } from \"@/network/api\";\nimport { Store as VuexStore, Module, GetterTree, MutationTree } from \"vuex\";\nimport { RootState } from \"..\";\nimport { store } from \"@/store\";\nimport { notify } from \"@kyvg/vue3-notification\";\n\n\nexport type LocationState = {\n country: CountryViewModel;\n};\n\nexport enum MutationTypes {\n SetCountry = \"SET_Country\",\n}\n\nexport const state: LocationState = {\n country: {\n id: \"\",\n name: \"\",\n code: \"\",\n isDefault: false,\n deliveryTypes: [],\n currency: {\n id: '',\n name: '',\n code: 'USD',\n symbol: '',\n pricingMultiplier: 0,\n decimalPlaces: 2\n },\n allowBankTransfers: false,\n bankTransferDetails: ''\n }\n};\n\ntype Getters = {\n country(state: LocationState): CountryViewModel;\n};\n\nexport const getters: GetterTree & Getters = {\n country(state) {\n if (state.country != null && state.country.id) {\n return state.country;\n }\n const vuex = localStorage.getItem(\"vuex\");\n const store = JSON.parse(vuex!);\n if (store == null) {\n return null;\n }\n if (store[\"location\"] == null) {\n return null;\n }\n const country = store[\"location\"][\"country\"];\n if (country != null) {\n state.country = country;\n return country;\n }\n return null;\n },\n};\n\ntype Mutations = {\n [MutationTypes.SetCountry](state: LocationState, country: any): void;\n};\n\nexport const mutations: MutationTree & Mutations = {\n [MutationTypes.SetCountry](state, country) {\n const vuex = localStorage.getItem(\"vuex\");\n let store = JSON.parse(vuex!);\n if (!store) {\n store = {};\n }\n if (!store[\"location\"]) {\n store[\"location\"] = {};\n }\n store[\"location\"][\"country\"] = country;\n localStorage.setItem(\"vuex\", JSON.stringify({ ...store }));\n state.country = country;\n },\n};\n\nexport const LocationModule: Module = {\n state,\n getters,\n mutations,\n actions: {\n ensureLocationSet: async (context, params) => {\n const country = getters.country(state);\n if(!country || (country && !country.id)) {\n return new Promise((resolve, reject) => {\n Countries.countriesGetCountryByIpGeolocationGet()\n .then(async (res) => { \n if(res.data.succeeded) {\n context.commit(MutationTypes.SetCountry, res.data.resultData);\n await store.dispatch(\"location/setDefaultSelection\", {\n countryId: res.data.resultData\n })\n \n resolve();\n } else {\n reject(res.data);\n }\n })\n .catch((error) => {\n if(error) {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject(error)\n }\n })\n });\n } else {\n let countries = []\n let selectedCountry = null as CountryViewModel | null\n \n await Countries.countriesGet().then((res) => {\n if (res.data.succeeded) {\n countries = res.data.resultData as Array;\n selectedCountry = countries.find((country: CountryViewModel) => country.id === state.country.id) as CountryViewModel;\n if(selectedCountry) {\n store.dispatch(\"location/changeLocation\", {\n country: selectedCountry\n })\n } else {\n store.dispatch(\"location/changeLocation\", {\n country: state.country\n })\n }\n }\n })\n .catch((error) => {\n if(error) {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n }\n });\n }\n },\n changeLocation: (context, params) => {\n if(params.country !== null) {\n context.commit(MutationTypes.SetCountry, params.country);\n store.dispatch(\"location/setDefaultSelection\", {\n countryId: params.country.id\n })\n }\n },\n getDefaultSelection: (context, params) => {\n const isLoggedIn = store.getters[\"auth/isLoggedIn\"];\n if(isLoggedIn) {\n return new Promise((resolve, reject) => { \n Countries.countriesGetLastSelectedCountryGet()\n .then(async (res) => { \n if(res.data.succeeded) {\n if(res.data.resultData) {\n context.commit(MutationTypes.SetCountry, res.data.resultData);\n } else {\n await store.dispatch(\"location/ensureLocationSet\")\n }\n resolve();\n } else {\n reject(res.data);\n }\n })\n .catch((error) => {\n if(error) {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject(error)\n }\n });\n })\n } else {\n store.dispatch(\"location/ensureLocationSet\")\n }\n },\n setDefaultSelection: (context, params) => {\n const isLoggedIn = store.getters[\"auth/isLoggedIn\"];\n if(isLoggedIn) {\n return new Promise((resolve, reject) => {\n Countries.countriesSetLastSelectedCountryPost(params.countryId)\n .then(async (res) => { \n if(res.data.succeeded) { \n resolve();\n } else {\n reject(res.data);\n }\n })\n .catch((error) => {\n if(error) {\n console.log(error)\n const errors = error.response.data.errors;\n errors.forEach((error: any) => {\n notify({ type: \"error\", text: error.friendlyMessage, ignoreDuplicates: true, duration: -1 });\n });\n reject(error)\n }\n });\n })\n }\n }\n },\n namespaced: true,\n};\n","import{reactive as e,watch as t,defineComponent as i,useSlots as n,ref as o,onMounted as l,openBlock as a,createElementBlock as c,normalizeClass as d,unref as r,createCommentVNode as p,renderSlot as s}from\"vue\";var u=Object.freeze({__proto__:null});var g={library:\"https://accounts.google.com/gsi/client\",defaultButtonConfig:{theme:\"outline\",size:\"large\"},scopes:\"email profile openid\"};const f=e({clientId:null,popupType:\"CODE\",prompt:!1,autoLogin:!1,idConfiguration:null,buttonConfig:g.defaultButtonConfig,callback:()=>{},error:null}),b=e({apiLoaded:!1,apiLoadIntitited:!1}),m=e=>{try{const t=e.split(\".\")[1].replace(/-/g,\"+\").replace(/_/g,\"/\"),i=decodeURIComponent(atob(t).split(\"\").map((function(e){return\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2)})).join(\"\"));return JSON.parse(i)}catch(e){throw\"JWT provided is invalid\"}},w=new Promise((e=>{const t=\"undefined\"!=typeof window;if(!b.apiLoadIntitited&&t){const t=document.createElement(\"script\");b.apiLoadIntitited=!0,t.addEventListener(\"load\",(()=>{b.apiLoaded=!0,e(window.google)})),t.src=g.library,t.async=!0,t.defer=!0,document.head.appendChild(t)}})),I=e=>{b.apiLoadIntitited?b.apiLoaded?e(window.google):t((()=>b.apiLoaded),(t=>{t&&e(window.google)})):w.then((t=>{e(t)}))},y=(e,t,i,n)=>{if(!e.client_id)throw new Error(\"Prop client id required since plugin is not initialized with a client id\");I((()=>{((e,t,i,n,o)=>{if(o){const t=e.callback;e.callback=e=>{e.credential?t&&t(e):o(e)}}window.google.accounts.id.initialize(e);const l=t.value;l&&!n&&window.google.accounts.id.renderButton(l,i)})(e,t,i.buttonConfig,n,i.error),i.prompt&&C({clientId:i.clientId,callback:i.callback,error:i.error,autoLogin:i.autoLogin})}))},k=e=>new Promise(((t,i)=>{I((n=>{if(!(e&&e.clientId||f.clientId))throw new Error(\"clientId is required since the plugin is not initialized with a Client Id\");n.accounts.oauth2.initCodeClient({client_id:e&&e.clientId||f.clientId||\"\",scope:g.scopes,ux_mode:\"popup\",callback:e=>{e.code?t(e):i(e)}}).requestCode()}))})),h=e=>new Promise(((t,i)=>{I((n=>{if(!(e&&e.clientId||f.clientId))throw new Error(\"clientId is required since the plugin is not initialized with a Client Id\");n.accounts.oauth2.initTokenClient({client_id:e&&e.clientId||f.clientId||\"\",scope:g.scopes,callback:e=>{e.access_token?t(e):i(e)}}).requestAccessToken()}))})),C=e=>{if(!e&&(e={}),!e.clientId&&!f.clientId)throw new Error(\"clientId is required\");const t={};return e.clientId&&(t.client_id=e.clientId),!e.clientId&&f.clientId&&(t.client_id=f.clientId),e.context&&(t.context=e.context),null!=e.autoLogin&&(t.auto_select=e.autoLogin),null!=e.cancelOnTapOutside&&(t.cancel_on_tap_outside=e.cancelOnTapOutside),new Promise(((i,n)=>{t.callback=t=>{e&&e.callback&&e.callback(t),t.credential?i(t):n(t)},I((i=>{i.accounts.id.initialize(t),i.accounts.id.prompt((t=>{e&&e.onNotification&&e.onNotification(t),(e=>{const t=e.notification;let i=\"\";t.isNotDisplayed()&&(i=\"suppressed_by_user\"===t.getNotDisplayedReason()?\"Prompt was suppressed by user'. Refer https://developers.google.com/identity/gsi/web/guides/features#exponential_cooldown for more info\":`Prompt was not displayed, reason for not displaying: ${t.getNotDisplayedReason()}`),t.isSkippedMoment()&&(i=`Prompt was skipped, reason for skipping: ${t.getSkippedReason()}`),i.length&&(e.error?e.error(i):e.reject(i))})({notification:t,reject:n,error:e&&e.error})}))}))}))},_=()=>{I((e=>{e.accounts.id.disableAutoSelect()}))};var L=i({name:\"GoogleLogin\",props:{clientId:{type:String,required:!1},prompt:{type:Boolean,required:!1,default:!1},autoLogin:{type:Boolean,required:!1,default:!1},popupType:{type:String,required:!1,default:\"CODE\"},idConfiguration:{type:Object,required:!1},buttonConfig:{type:Object,required:!1},callback:{type:Function,required:!1},error:{type:Function,required:!1}},setup(e){const t=e,i=!!n().default,u=((e,t)=>{const i={...e};for(const e in t)void 0!==t[e]&&null!==t[e]&&(i[e]=t[e]);return i})(f,t),g={client_id:u.clientId||null,auto_select:u.autoLogin||!1,callback:u.callback,...u.idConfiguration},m=o();return l((()=>{y(g,m,u,i)})),(e,t)=>(a(),c(\"div\",{class:d([\"g-btn-wrapper\",[!r(b).apiLoaded&&\"api-loading\"]]),onClick:t[0]||(t[0]=e=>r(i)&&void(\"TOKEN\"===r(u).popupType?h({clientId:u.clientId}).then((e=>{u.callback&&u.callback(e)})):k({clientId:u.clientId}).then((e=>{u.callback&&u.callback(e)}))))},[r(i)?p(\"v-if\",!0):(a(),c(\"span\",{key:0,ref_key:\"buttonRef\",ref:m,class:\"g-btn\"},null,512)),s(e.$slots,\"default\")],2))}});!function(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&\"undefined\"!=typeof document){var n=document.head||document.getElementsByTagName(\"head\")[0],o=document.createElement(\"style\");o.type=\"text/css\",\"top\"===i&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(\"\\n.g-btn-wrapper[data-v-5e610566] {\\n display: inline-block;\\n}\\n.g-btn-wrapper.api-loading[data-v-5e610566] {\\n opacity: 0.5;\\n pointer-events: none;\\n}\\n\"),L.__scopeId=\"data-v-5e610566\",L.__file=\"src/plugin/GoogleLogin.vue\";var v={install:(e,t)=>{t&&(e=>{e.clientId&&(f.clientId=e.clientId),e.popupType&&(f.popupType=e.popupType),null!=e.prompt&&(f.prompt=e.prompt),null!=e.autoLogin&&(f.autoLogin=e.autoLogin),e.idConfiguration&&(f.idConfiguration=e.idConfiguration),e.buttonConfig&&(f.buttonConfig=e.buttonConfig),e.callback&&(f.callback=e.callback)})(t),w.then((()=>{if(t.clientId){const e={client_id:t.clientId,auto_select:!0===t.autoLogin,callback:t.callback,...t.idConfiguration};window.google.accounts.id.initialize(e),t.prompt&&window.google.accounts.id.prompt()}})),e.component(\"GoogleLogin\",L)}};export{u as CallbackTypes,L as GoogleLogin,m as decodeCredential,v as default,k as googleAuthCodeLogin,_ as googleLogout,C as googleOneTap,I as googleSdkLoaded,h as googleTokenLogin};\n","import { App } from \"vue\";\nimport { h } from \"vue\";\n\nexport interface AppleSignInOptions {\n clientId: string;\n scope: string;\n redirectURI: string;\n state: string;\n usePopup: boolean;\n}\n/* eslint-disable no-console */\nfunction err(msg: any) {\n if (typeof console !== \"undefined\") {\n console.error(`[vue-apple-signin] ${msg}`);\n }\n}\n\nexport default {\n install(app: App, options: AppleSignInOptions) {\n app.component(\"vue-apple-login\", {\n name: \"VueAppleLogin\",\n props: {\n mode: {\n type: String,\n default: \"center-align\",\n validator(value: string) {\n return (\n [\"center-align\", \"left-align\", \"logo-only\"].indexOf(value) > -1\n );\n },\n },\n type: {\n type: String,\n default: \"sign in\",\n validator(value: string) {\n return (\n [\"sign in\", \"sign up\", \"apple\", \"continue\"].indexOf(value) > -1\n );\n },\n },\n color: {\n type: String,\n default: \"white\",\n validator(value: string) {\n return [\"white\", \"black\"].indexOf(value) > -1;\n },\n },\n border: {\n type: Boolean,\n default: true,\n },\n radius: {\n type: Number,\n default: 5,\n validator(value: number) {\n return value >= 0 && value <= 50;\n },\n },\n width: {\n type: String,\n default: \"100%\",\n },\n height: {\n type: String,\n default: \"100%\",\n },\n logoSize: {\n type: String,\n default: \"large\",\n validator(value: string) {\n return [\"small\", \"medium\", \"large\"].indexOf(value) > -1;\n },\n },\n logoPosition: {\n type: Number,\n default: 0,\n },\n labelPosition: {\n type: Number,\n default: 0,\n },\n className: {\n type: String,\n default: \"vue-apple-signin\",\n },\n onSuccess: {\n type: Function,\n default: null,\n },\n onFailure: {\n type: Function,\n default: null,\n },\n },\n computed: {\n dataBorder() {\n return this.border.toString();\n },\n },\n mounted() {\n const self = this;\n const appleScript = document.createElement(\"script\");\n appleScript.setAttribute(\n \"src\",\n \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\"\n );\n document.head.appendChild(appleScript);\n\n appleScript.addEventListener(\"load\", function () {\n console.log(\"script loaded\");\n const AppleId = (window as any).AppleID;\n if (!AppleId) {\n err(\n '\"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\" needs to be included as a