{"version":3,"sources":["webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.esm.js","webpack:///./node_modules/vue-meta/dist/vue-meta.esm.js","webpack:///./node_modules/vue-konva/umd/vue-konva.js","webpack:///./node_modules/vue-gtag/dist/vue-gtag.esm.js"],"names":["normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","exports","_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperty","key","value","Object","defineProperty","enumerable","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","i","arr2","length","iter","toString","from","TypeError","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","createDecorator","factory","target","index","Ctor","__decorators__","undefined","push","isPrimitive","type","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","props","hasOwnProperty","get","set","data","plainData","$internalHooks","componentFactory","arguments","name","_componentTag","proto","indexOf","descriptor","getOwnPropertyDescriptor","methods","mixins","computed","decorators","fn","superProto","getPrototypeOf","Super","Extended","extend","forwardStaticMembers","shouldIgnore","callee","caller","Original","extendedDescriptor","superDescriptor","registerHooks","apply","version","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread2","source","getOwnPropertyDescriptors","defineProperties","_unsupportedIterableToArray","_arrayLikeToArray","o","minLen","n","slice","test","len","_createForOfIteratorHelper","allowArrayLike","it","F","s","done","e","f","err","normalCompletion","didErr","step","next","return","arg","isUndefined","isObject","isPureObject","isFunction","isString","hasGlobalWindowFn","window","hasGlobalWindow","_global","global","console","warn","str","showWarningNotSupported","defaultInfo","title","titleChunk","titleTemplate","htmlAttrs","bodyAttrs","headAttrs","base","link","meta","style","script","noscript","__dangerouslyDisableSanitizers","__dangerouslyDisableSanitizersByTagID","rootConfigKey","keyName","attribute","ssrAttribute","tagIDKeyName","metaTemplateKeyName","contentKeyName","ssrAppId","debounceWait","waitOnDestroyed","defaultOptions","defaultInfoKeys","disableOptionKeys","metaInfoOptionKeys","metaInfoAttributeKeys","tagsSupportingOnload","tagsWithoutEndTag","tagsWithInnerContent","tagAttributeAsInnerContent","tagProperties","commonDataAttributes","booleanHtmlAttributes","batchId","triggerUpdate","_ref","rootVm","hookName","initialized","initializing","pausing","batchUpdate","$meta","refresh","callback","timeout","clearTimeout","setTimeout","find","array","predicate","thisArg","idx","findIndex","toArray","includes","querySelector","el","document","querySelectorAll","getTag","tags","tag","getElementsByTagName","getElementsKey","body","pbody","queryElements","parentNode","_ref2","attributes","appId","queries","map","query","val","attributeValue","join","removeElementsByAppId","_ref3","remove","removeAttribute","attributeName","hasMetaInfo","inMetaInfoBranch","pause","resume","addNavGuards","router","$router","navGuards","beforeEach","afterEach","$nextTick","_resume","metaInfo","afterNavigation","createMixin","Vue","updateOnLifecycleHook","wasServerRendered","_this2","rootKey","devtoolsEnabled","config","devtools","deprecationWarningShown","$once","$el","nodeType","hasAttribute","htmlTag","child","$children","c","fnOptions","$parent","$metaInfo","$isServer","$on","$watch","initializedSsr","_$root$$meta$refresh","refreshOnceOnNavigation","_hasMetaInfo","offsetParent","interval","setInterval","clearInterval","lifecycleHook","setOptions","getOptions","optionsCopy","ensureIsArray","serverSequences","clientSequences","escape","info","escapeOptions","escapeKeys","_escapeOptions$doEsca","doEscape","v","escaped","disableKey","tagId","escapedKey","escapeMetaInfo","escapeSequences","reduce","seq","replace","applyTemplate","headObject","template","chunk","component","_arrayMerge","destination","targetItem","targetIndex","sourceIndex","item","sourceItem","innerHTML","splice","targetTemplate","sourceTemplate","warningShown","merge","attrKey","arrayMerge","t","getComponentMetaInfo","getComponentOption","result","_inactive","_options","childComponent","callbacks","isDOMComplete","d","readyState","addCallback","addCallbacks","autoAddListeners","hasAsyncCallback","addListeners","applyCallbacks","onreadystatechange","matchElement","args","selector","elements","matches","element","__vm_cb","onload","__vm_l","__vm_ev","addEventListener","appsMetaInfo","attributeMap","updateAttribute","attrs","vueMetaAttrString","getAttribute","JSON","parse","decodeURI","toUpdate","attr","_attr","attrData","_i","_toUpdate","_attr2","_attrData","attrValues","_appId","attrValue","some","Boolean","setAttribute","updateTitle","updateTag","head","dataAttributes","newElements","queryOptions","currentElements","found","x","k","stringify","res","skip","newElement","createElement","once","isBooleanAttribute","styleSheet","cssText","appendChild","createTextNode","json","indexToDelete","oldElements","hasEqualElement","existingTag","isEqualNode","_type","removeChild","insertBefore","firstChild","oldTags","newTags","updateClientMetaInfo","newInfo","addLoadListeners","tagsAdded","tagsRemoved","tagName","substr","_updateTag","addApp","setMetaInfo","removeMetaInfo","_step","_iterator","clearAppsMetaInfo","getAppsMetaInfo","force","getMetaInfo","metaItem","hasVmid","isFirstItemForVmid","metaObject","rawInfo","changed","addedTags","removedTags","additionalAppId","attributeGenerator","addSsrAttribute","attributeStr","encodeURI","titleGenerator","generatorOptions","ln","tagGenerator","_ref2$isSSR","isSSR","_ref2$body","_ref2$pbody","_ref2$ln","tagsStr","tagKeys","prefix","isBooleanAttr","content","hasEndTag","hasContent","generateServerInjector","globalInjectOptions","serverInjector","extraData","addInfo","callInjectors","opts","m","injectors","text","bodyPrepend","bodyAppend","_loop","injectOptions","attributeData","_data","_appId2","_data2","extraStr","inject","newOptions","refreshNavKey","debounceWaitKey","parseInt","isNaN","waitOnDestroyedKey","generate","install","__vuemeta_installed","mixin","root","module","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__2__","modules","installedModules","__webpack_require__","moduleId","l","getter","r","toStringTag","mode","__esModule","ns","create","bind","property","p","__webpack_exports__","external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_","external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_default","updatePicture","node","drawingNode","getLayer","getStage","batchDraw","propsToSkip","elm","isRootInsert","EVENTS_NAMESPACE","applyNodeProps","vueComponent","oldProps","useStrict","instance","_konvaNode","updatedProps","hasUpdates","isEvent","propChanged","eventName","toLowerCase","toUpperCase","off","toRemove","setAttr","_key","_isEvent","toAdd","_eventName","on","getAttr","setAttrs","componentPrefix","konvaNodeMarker","createListener","output","findParentKonva","re","findKonvaNode","getNode","checkOrder","konvaNode","needRedraw","children","componentOptions","nodes","componentInstance","error","getZIndex","setZIndex","_extends","assign","Stage","a","$slots","default","watch","handler","uploadKonva","deep","__useStrictMode","created","Konva","width","height","container","mounted","validateChildren","updated","beforeDestroy","destroy","$attrs","$listeners","KonvaNode_extends","KonvaNode_EVENTS_NAMESPACE","CONTAINERS","Group","Layer","FastLayer","Label","KonvaNode","nameNode","isContainer","initKonva","parentVueInstance","parentKonvaNode","destroyed","NodeClass","VueComponent","KONVA_NODES","components","VueKonva","prefixToUse","use","load","url","Promise","resolve","reject","async","src","defer","preconnectOrigin","href","rel","onerror","isFn","mergeDeep","_len","sources","shift","isBrowser","validateScreenviewShape","app_name","screen_name","getPathWithBase","path","pathAsArray","split","baseAsArray","getDefaultParams","bootstrap","onReady","onError","onBeforeTrack","onAfterTrack","pageTrackerTemplate","customResourceURL","customPreconnectOrigin","deferScriptLoad","pageTrackerExcludedRoutes","pageTrackerEnabled","enabled","disableScriptLoad","pageTrackerScreenviewEnabled","appName","pageTrackerUseFullPath","pageTrackerPrependBase","pageTrackerSkipSamePath","globalDataLayerName","globalObjectName","defaultGroupName","id","params","send_page_view","defaultParams","_window","_getOptions","domain","assignGlobalProperty","disable","optOut","optIn","setRouter","getRouter","event","send_to","pageview","param","page_path","fullPath","useFullPath","useBase","page_title","page_location","location","screenview","exception","linker","time","refund","purchase","customMap","custom_map","api","freeze","attachApi","$gtag","registerGlobals","Date","mergeDefaultParams","addConfiguration","track","proxy","useScreenview","skipSamePath","isRouteExcluded","route","routes","addRoutesTracker","_getOptions2","nextTick","then","currentRoute","isPageTrackerEnabled","catch"],"mappings":"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","file":"js/chunk-vendors~7dcdd765.149d04c1.js","sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/**\n * vue-class-component v7.2.6\n * (c) 2015-present Evan You\n * @license MIT\n */\nimport Vue from 'vue';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nfunction reflectionIsSupported() {\n return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\n}\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\n\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from);\n\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n } else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = {\n __proto__: []\n};\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function' ? target : target.constructor;\n\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n\n if (typeof index !== 'number') {\n index = undefined;\n }\n\n Ctor.__decorators__.push(function (options) {\n return factory(options, key, index);\n });\n };\n}\nfunction mixins() {\n for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) {\n Ctors[_key] = arguments[_key];\n }\n\n return Vue.extend({\n mixins: Ctors\n });\n}\nfunction isPrimitive(value) {\n var type = _typeof(value);\n\n return value == null || type !== 'object' && type !== 'function';\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n\n Component.prototype._init = function () {\n var _this = this;\n\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties)\n\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n\n keys.forEach(function (key) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return vm[key];\n },\n set: function set(value) {\n vm[key] = value;\n },\n configurable: true\n });\n });\n }; // should be acquired class property values\n\n\n var data = new Component(); // restore original _init to avoid memory leak (#209)\n\n Component.prototype._init = originalInit; // create plain data object\n\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.');\n }\n }\n\n return plainData;\n}\n\nvar $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options.name = options.name || Component._componentTag || Component.name; // prototype props.\n\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n } // hooks\n\n\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n } else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return _defineProperty({}, key, descriptor.value);\n }\n });\n }\n } else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function data() {\n return collectDataFromConstructor(this, Component);\n }\n }); // decorate options\n\n var decorators = Component.__decorators__;\n\n if (decorators) {\n decorators.forEach(function (fn) {\n return fn(options);\n });\n delete Component.__decorators__;\n } // find super\n\n\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue ? superProto.constructor : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n\n if (reflectionIsSupported()) {\n copyReflectionMetadata(Extended, Component);\n }\n\n return Extended;\n}\nvar reservedPropertyNames = [// Unique id\n'cid', // Super Vue constructor\n'super', // Component options that will be used by the component\n'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets\n'component', 'directive', 'filter'];\nvar shouldIgnore = {\n prototype: true,\n arguments: true,\n callee: true,\n caller: true\n};\n\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // Skip the properties that should not be overwritten\n if (shouldIgnore[key]) {\n return;\n } // Some browsers does not allow reconfigure built-in properties\n\n\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n\n if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) {\n return;\n }\n } // Warn if the users manually declare reserved properties\n\n\n if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\".concat(key, \"' declared on class '\").concat(Original.name, \"' \") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, _toConsumableArray(keys));\n};\n\nexport default Component;\nexport { createDecorator, mixins };\n","/**\n * vue-meta v2.4.0\n * (c) 2020\n * - Declan de Wet\n * - Sébastien Chopin (@Atinux)\n * - Pim (@pimlie)\n * - All the amazing contributors\n * @license MIT\n */\n\nimport deepmerge from 'deepmerge';\n\nvar version = \"2.4.0\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\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\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\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 var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n/**\n * checks if passed argument is an array\n * @param {any} arg - the object to check\n * @return {Boolean} - true if `arg` is an array\n */\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction isUndefined(arg) {\n return typeof arg === 'undefined';\n}\nfunction isObject(arg) {\n return _typeof(arg) === 'object';\n}\nfunction isPureObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction hasGlobalWindowFn() {\n try {\n return !isUndefined(window);\n } catch (e) {\n return false;\n }\n}\nvar hasGlobalWindow = hasGlobalWindowFn();\n\nvar _global = hasGlobalWindow ? window : global;\n\nvar console = _global.console || {};\nfunction warn(str) {\n /* istanbul ignore next */\n if (!console || !console.warn) {\n return;\n }\n\n console.warn(str);\n}\nvar showWarningNotSupported = function showWarningNotSupported() {\n return warn('This vue app/component has no vue-meta configuration');\n};\n\n/**\n * These are constant variables used throughout the application.\n */\n// set some sane defaults\nvar defaultInfo = {\n title: undefined,\n titleChunk: '',\n titleTemplate: '%s',\n htmlAttrs: {},\n bodyAttrs: {},\n headAttrs: {},\n base: [],\n link: [],\n meta: [],\n style: [],\n script: [],\n noscript: [],\n __dangerouslyDisableSanitizers: [],\n __dangerouslyDisableSanitizersByTagID: {}\n};\nvar rootConfigKey = '_vueMeta'; // This is the name of the component option that contains all the information that\n// gets converted to the various meta tags & attributes for the page.\n\nvar keyName = 'metaInfo'; // This is the attribute vue-meta arguments on elements to know which it should\n// manage and which it should ignore.\n\nvar attribute = 'data-vue-meta'; // This is the attribute that goes on the `html` tag to inform `vue-meta`\n// that the server has already generated the meta tags for the initial render.\n\nvar ssrAttribute = 'data-vue-meta-server-rendered'; // This is the property that tells vue-meta to overwrite (instead of append)\n// an item in a tag list. For example, if you have two `meta` tag list items\n// that both have `vmid` of \"description\", then vue-meta will overwrite the\n// shallowest one with the deepest one.\n\nvar tagIDKeyName = 'vmid'; // This is the key name for possible meta templates\n\nvar metaTemplateKeyName = 'template'; // This is the key name for the content-holding property\n\nvar contentKeyName = 'content'; // The id used for the ssr app\n\nvar ssrAppId = 'ssr'; // How long meta update\n\nvar debounceWait = 10; // How long meta update\n\nvar waitOnDestroyed = true;\nvar defaultOptions = {\n keyName: keyName,\n attribute: attribute,\n ssrAttribute: ssrAttribute,\n tagIDKeyName: tagIDKeyName,\n contentKeyName: contentKeyName,\n metaTemplateKeyName: metaTemplateKeyName,\n waitOnDestroyed: waitOnDestroyed,\n debounceWait: debounceWait,\n ssrAppId: ssrAppId\n}; // might be a bit ugly, but minimizes the browser bundles a bit\n\nvar defaultInfoKeys = Object.keys(defaultInfo); // The metaInfo property keys which are used to disable escaping\n\nvar disableOptionKeys = [defaultInfoKeys[12], defaultInfoKeys[13]]; // List of metaInfo property keys which are configuration options (and dont generate html)\n\nvar metaInfoOptionKeys = [defaultInfoKeys[1], defaultInfoKeys[2], 'changed'].concat(disableOptionKeys); // List of metaInfo property keys which only generates attributes and no tags\n\nvar metaInfoAttributeKeys = [defaultInfoKeys[3], defaultInfoKeys[4], defaultInfoKeys[5]]; // HTML elements which support the onload event\n\nvar tagsSupportingOnload = ['link', 'style', 'script']; // HTML elements which dont have a head tag (shortened to our needs)\n// see: https://www.w3.org/TR/html52/document-metadata.html\n\nvar tagsWithoutEndTag = ['base', 'meta', 'link']; // HTML elements which can have inner content (shortened to our needs)\n\nvar tagsWithInnerContent = ['noscript', 'script', 'style']; // Attributes which are inserted as childNodes instead of HTMLAttribute\n\nvar tagAttributeAsInnerContent = ['innerHTML', 'cssText', 'json'];\nvar tagProperties = ['once', 'skip', 'template']; // Attributes which should be added with data- prefix\n\nvar commonDataAttributes = ['body', 'pbody']; // from: https://github.com/kangax/html-minifier/blob/gh-pages/src/htmlminifier.js#L202\n\nvar booleanHtmlAttributes = ['allowfullscreen', 'amp', 'amp-boilerplate', 'async', 'autofocus', 'autoplay', 'checked', 'compact', 'controls', 'declare', 'default', 'defaultchecked', 'defaultmuted', 'defaultselected', 'defer', 'disabled', 'enabled', 'formnovalidate', 'hidden', 'indeterminate', 'inert', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nohref', 'noresize', 'noshade', 'novalidate', 'nowrap', 'open', 'pauseonexit', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'sortable', 'truespeed', 'typemustmatch', 'visible'];\n\nvar batchId = null;\nfunction triggerUpdate(_ref, rootVm, hookName) {\n var debounceWait = _ref.debounceWait;\n\n // if an update was triggered during initialization or when an update was triggered by the\n // metaInfo watcher, set initialized to null\n // then we keep falsy value but know we need to run a triggerUpdate after initialization\n if (!rootVm[rootConfigKey].initialized && (rootVm[rootConfigKey].initializing || hookName === 'watcher')) {\n rootVm[rootConfigKey].initialized = null;\n }\n\n if (rootVm[rootConfigKey].initialized && !rootVm[rootConfigKey].pausing) {\n // batch potential DOM updates to prevent extraneous re-rendering\n // eslint-disable-next-line no-void\n batchUpdate(function () {\n return void rootVm.$meta().refresh();\n }, debounceWait);\n }\n}\n/**\n * Performs a batched update.\n *\n * @param {(null|Number)} id - the ID of this update\n * @param {Function} callback - the update to perform\n * @return {Number} id - a new ID\n */\n\nfunction batchUpdate(callback, timeout) {\n timeout = timeout === undefined ? 10 : timeout;\n\n if (!timeout) {\n callback();\n return;\n }\n\n clearTimeout(batchId);\n batchId = setTimeout(function () {\n callback();\n }, timeout);\n return batchId;\n}\n\n/*\n * To reduce build size, this file provides simple polyfills without\n * overly excessive type checking and without modifying\n * the global Array.prototype\n * The polyfills are automatically removed in the commonjs build\n * Also, only files in client/ & shared/ should use these functions\n * files in server/ still use normal js function\n */\nfunction find(array, predicate, thisArg) {\n if ( !Array.prototype.find) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return array[idx];\n }\n }\n\n return;\n }\n\n return array.find(predicate, thisArg);\n}\nfunction findIndex(array, predicate, thisArg) {\n if ( !Array.prototype.findIndex) {\n // idx needs to be a Number, for..in returns string\n for (var idx = 0; idx < array.length; idx++) {\n if (predicate.call(thisArg, array[idx], idx, array)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return array.findIndex(predicate, thisArg);\n}\nfunction toArray(arg) {\n if ( !Array.from) {\n return Array.prototype.slice.call(arg);\n }\n\n return Array.from(arg);\n}\nfunction includes(array, value) {\n if ( !Array.prototype.includes) {\n for (var idx in array) {\n if (array[idx] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n return array.includes(value);\n}\n\nvar querySelector = function querySelector(arg, el) {\n return (el || document).querySelectorAll(arg);\n};\nfunction getTag(tags, tag) {\n if (!tags[tag]) {\n tags[tag] = document.getElementsByTagName(tag)[0];\n }\n\n return tags[tag];\n}\nfunction getElementsKey(_ref) {\n var body = _ref.body,\n pbody = _ref.pbody;\n return body ? 'body' : pbody ? 'pbody' : 'head';\n}\nfunction queryElements(parentNode, _ref2, attributes) {\n var appId = _ref2.appId,\n attribute = _ref2.attribute,\n type = _ref2.type,\n tagIDKeyName = _ref2.tagIDKeyName;\n attributes = attributes || {};\n var queries = [\"\".concat(type, \"[\").concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"), \"\".concat(type, \"[data-\").concat(tagIDKeyName, \"]\")].map(function (query) {\n for (var key in attributes) {\n var val = attributes[key];\n var attributeValue = val && val !== true ? \"=\\\"\".concat(val, \"\\\"\") : '';\n query += \"[data-\".concat(key).concat(attributeValue, \"]\");\n }\n\n return query;\n });\n return toArray(querySelector(queries.join(', '), parentNode));\n}\nfunction removeElementsByAppId(_ref3, appId) {\n var attribute = _ref3.attribute;\n toArray(querySelector(\"[\".concat(attribute, \"=\\\"\").concat(appId, \"\\\"]\"))).map(function (el) {\n return el.remove();\n });\n}\nfunction removeAttribute(el, attributeName) {\n el.removeAttribute(attributeName);\n}\n\nfunction hasMetaInfo(vm) {\n vm = vm || this;\n return vm && (vm[rootConfigKey] === true || isObject(vm[rootConfigKey]));\n} // a component is in a metaInfo branch when itself has meta info or one of its (grand-)children has\n\nfunction inMetaInfoBranch(vm) {\n vm = vm || this;\n return vm && !isUndefined(vm[rootConfigKey]);\n}\n\nfunction pause(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = true;\n return function () {\n return resume(rootVm, refresh);\n };\n}\nfunction resume(rootVm, refresh) {\n rootVm[rootConfigKey].pausing = false;\n\n if (refresh || refresh === undefined) {\n return rootVm.$meta().refresh();\n }\n}\n\nfunction addNavGuards(rootVm) {\n var router = rootVm.$router; // return when nav guards already added or no router exists\n\n if (rootVm[rootConfigKey].navGuards || !router) {\n /* istanbul ignore next */\n return;\n }\n\n rootVm[rootConfigKey].navGuards = true;\n router.beforeEach(function (to, from, next) {\n pause(rootVm);\n next();\n });\n router.afterEach(function () {\n rootVm.$nextTick(function () {\n var _resume = resume(rootVm),\n metaInfo = _resume.metaInfo;\n\n if (metaInfo && isFunction(metaInfo.afterNavigation)) {\n metaInfo.afterNavigation(metaInfo);\n }\n });\n });\n}\n\nvar appId = 1;\nfunction createMixin(Vue, options) {\n // for which Vue lifecycle hooks should the metaInfo be refreshed\n var updateOnLifecycleHook = ['activated', 'deactivated', 'beforeMount'];\n var wasServerRendered = false; // watch for client side component updates\n\n return {\n beforeCreate: function beforeCreate() {\n var _this2 = this;\n\n var rootKey = '$root';\n var $root = this[rootKey];\n var $options = this.$options;\n var devtoolsEnabled = Vue.config.devtools;\n Object.defineProperty(this, '_hasMetaInfo', {\n configurable: true,\n get: function get() {\n // Show deprecation warning once when devtools enabled\n if (devtoolsEnabled && !$root[rootConfigKey].deprecationWarningShown) {\n warn('VueMeta DeprecationWarning: _hasMetaInfo has been deprecated and will be removed in a future version. Please use hasMetaInfo(vm) instead');\n $root[rootConfigKey].deprecationWarningShown = true;\n }\n\n return hasMetaInfo(this);\n }\n });\n\n if (this === $root) {\n $root.$once('hook:beforeMount', function () {\n wasServerRendered = this.$el && this.$el.nodeType === 1 && this.$el.hasAttribute('data-server-rendered'); // In most cases when you have a SSR app it will be the first app thats gonna be\n // initiated, if we cant detect the data-server-rendered attribute from Vue but we\n // do see our own ssrAttribute then _assume_ the Vue app with appId 1 is the ssr app\n // attempted fix for #404 & #562, but we rly need to refactor how we pass appIds from\n // ssr to the client\n\n if (!wasServerRendered && $root[rootConfigKey] && $root[rootConfigKey].appId === 1) {\n var htmlTag = getTag({}, 'html');\n wasServerRendered = htmlTag && htmlTag.hasAttribute(options.ssrAttribute);\n }\n });\n } // Add a marker to know if it uses metaInfo\n // _vnode is used to know that it's attached to a real component\n // useful if we use some mixin to add some meta tags (like nuxt-i18n)\n\n\n if (isUndefined($options[options.keyName]) || $options[options.keyName] === null) {\n return;\n }\n\n if (!$root[rootConfigKey]) {\n $root[rootConfigKey] = {\n appId: appId\n };\n appId++;\n\n if (devtoolsEnabled && $root.$options[options.keyName]) {\n // use nextTick so the children should be added to $root\n this.$nextTick(function () {\n // find the first child that lists fnOptions\n var child = find($root.$children, function (c) {\n return c.$vnode && c.$vnode.fnOptions;\n });\n\n if (child && child.$vnode.fnOptions[options.keyName]) {\n warn(\"VueMeta has detected a possible global mixin which adds a \".concat(options.keyName, \" property to all Vue components on the page. This could cause severe performance issues. If possible, use $meta().addApp to add meta information instead\"));\n }\n });\n }\n } // to speed up updates we keep track of branches which have a component with vue-meta info defined\n // if _vueMeta = true it has info, if _vueMeta = false a child has info\n\n\n if (!this[rootConfigKey]) {\n this[rootConfigKey] = true;\n var parent = this.$parent;\n\n while (parent && parent !== $root) {\n if (isUndefined(parent[rootConfigKey])) {\n parent[rootConfigKey] = false;\n }\n\n parent = parent.$parent;\n }\n } // coerce function-style metaInfo to a computed prop so we can observe\n // it on creation\n\n\n if (isFunction($options[options.keyName])) {\n $options.computed = $options.computed || {};\n $options.computed.$metaInfo = $options[options.keyName];\n\n if (!this.$isServer) {\n // if computed $metaInfo exists, watch it for updates & trigger a refresh\n // when it changes (i.e. automatically handle async actions that affect metaInfo)\n // credit for this suggestion goes to [Sébastien Chopin](https://github.com/Atinux)\n this.$on('hook:created', function () {\n this.$watch('$metaInfo', function () {\n triggerUpdate(options, this[rootKey], 'watcher');\n });\n });\n }\n } // force an initial refresh on page load and prevent other lifecycleHooks\n // to triggerUpdate until this initial refresh is finished\n // this is to make sure that when a page is opened in an inactive tab which\n // has throttled rAF/timers we still immediately set the page title\n\n\n if (isUndefined($root[rootConfigKey].initialized)) {\n $root[rootConfigKey].initialized = this.$isServer;\n\n if (!$root[rootConfigKey].initialized) {\n if (!$root[rootConfigKey].initializedSsr) {\n $root[rootConfigKey].initializedSsr = true;\n this.$on('hook:beforeMount', function () {\n var $root = this[rootKey]; // if this Vue-app was server rendered, set the appId to 'ssr'\n // only one SSR app per page is supported\n\n if (wasServerRendered) {\n $root[rootConfigKey].appId = options.ssrAppId;\n }\n });\n } // we use the mounted hook here as on page load\n\n\n this.$on('hook:mounted', function () {\n var $root = this[rootKey];\n\n if ($root[rootConfigKey].initialized) {\n return;\n } // used in triggerUpdate to check if a change was triggered\n // during initialization\n\n\n $root[rootConfigKey].initializing = true; // refresh meta in nextTick so all child components have loaded\n\n this.$nextTick(function () {\n var _$root$$meta$refresh = $root.$meta().refresh(),\n tags = _$root$$meta$refresh.tags,\n metaInfo = _$root$$meta$refresh.metaInfo; // After ssr hydration (identifier by tags === false) check\n // if initialized was set to null in triggerUpdate. That'd mean\n // that during initilazation changes where triggered which need\n // to be applied OR a metaInfo watcher was triggered before the\n // current hook was called\n // (during initialization all changes are blocked)\n\n\n if (tags === false && $root[rootConfigKey].initialized === null) {\n this.$nextTick(function () {\n return triggerUpdate(options, $root, 'init');\n });\n }\n\n $root[rootConfigKey].initialized = true;\n delete $root[rootConfigKey].initializing; // add the navigation guards if they havent been added yet\n // they are needed for the afterNavigation callback\n\n if (!options.refreshOnceOnNavigation && metaInfo.afterNavigation) {\n addNavGuards($root);\n }\n });\n }); // add the navigation guards if requested\n\n if (options.refreshOnceOnNavigation) {\n addNavGuards($root);\n }\n }\n }\n\n this.$on('hook:destroyed', function () {\n var _this = this;\n\n // do not trigger refresh:\n // - when user configured to not wait for transitions on destroyed\n // - when the component doesnt have a parent\n // - doesnt have metaInfo defined\n if (!this.$parent || !hasMetaInfo(this)) {\n return;\n }\n\n delete this._hasMetaInfo;\n this.$nextTick(function () {\n if (!options.waitOnDestroyed || !_this.$el || !_this.$el.offsetParent) {\n triggerUpdate(options, _this.$root, 'destroyed');\n return;\n } // Wait that element is hidden before refreshing meta tags (to support animations)\n\n\n var interval = setInterval(function () {\n if (_this.$el && _this.$el.offsetParent !== null) {\n /* istanbul ignore next line */\n return;\n }\n\n clearInterval(interval);\n triggerUpdate(options, _this.$root, 'destroyed');\n }, 50);\n });\n }); // do not trigger refresh on the server side\n\n if (this.$isServer) {\n /* istanbul ignore next */\n return;\n } // no need to add this hooks on server side\n\n\n updateOnLifecycleHook.forEach(function (lifecycleHook) {\n _this2.$on(\"hook:\".concat(lifecycleHook), function () {\n triggerUpdate(options, this[rootKey], lifecycleHook);\n });\n });\n }\n };\n}\n\nfunction setOptions(options) {\n // combine options\n options = isObject(options) ? options : {}; // The options are set like this so they can\n // be minified by terser while keeping the\n // user api intact\n // terser --mangle-properties keep_quoted=strict\n\n /* eslint-disable dot-notation */\n\n return {\n keyName: options['keyName'] || defaultOptions.keyName,\n attribute: options['attribute'] || defaultOptions.attribute,\n ssrAttribute: options['ssrAttribute'] || defaultOptions.ssrAttribute,\n tagIDKeyName: options['tagIDKeyName'] || defaultOptions.tagIDKeyName,\n contentKeyName: options['contentKeyName'] || defaultOptions.contentKeyName,\n metaTemplateKeyName: options['metaTemplateKeyName'] || defaultOptions.metaTemplateKeyName,\n debounceWait: isUndefined(options['debounceWait']) ? defaultOptions.debounceWait : options['debounceWait'],\n waitOnDestroyed: isUndefined(options['waitOnDestroyed']) ? defaultOptions.waitOnDestroyed : options['waitOnDestroyed'],\n ssrAppId: options['ssrAppId'] || defaultOptions.ssrAppId,\n refreshOnceOnNavigation: !!options['refreshOnceOnNavigation']\n };\n /* eslint-enable dot-notation */\n}\nfunction getOptions(options) {\n var optionsCopy = {};\n\n for (var key in options) {\n optionsCopy[key] = options[key];\n }\n\n return optionsCopy;\n}\n\nfunction ensureIsArray(arg, key) {\n if (!key || !isObject(arg)) {\n return isArray(arg) ? arg : [];\n }\n\n if (!isArray(arg[key])) {\n arg[key] = [];\n }\n\n return arg;\n}\n\nvar serverSequences = [[/&/g, '&'], [//g, '>'], [/\"/g, '"'], [/'/g, ''']];\nvar clientSequences = [[/&/g, \"&\"], [//g, \">\"], [/\"/g, \"\\\"\"], [/'/g, \"'\"]]; // sanitizes potentially dangerous characters\n\nfunction escape(info, options, escapeOptions, escapeKeys) {\n var tagIDKeyName = options.tagIDKeyName;\n var _escapeOptions$doEsca = escapeOptions.doEscape,\n doEscape = _escapeOptions$doEsca === void 0 ? function (v) {\n return v;\n } : _escapeOptions$doEsca;\n var escaped = {};\n\n for (var key in info) {\n var value = info[key]; // no need to escape configuration options\n\n if (includes(metaInfoOptionKeys, key)) {\n escaped[key] = value;\n continue;\n } // do not use destructuring for disableOptionKeys, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n\n var disableKey = disableOptionKeys[0];\n\n if (escapeOptions[disableKey] && includes(escapeOptions[disableKey], key)) {\n // this info[key] doesnt need to escaped if the option is listed in __dangerouslyDisableSanitizers\n escaped[key] = value;\n continue;\n }\n\n var tagId = info[tagIDKeyName];\n\n if (tagId) {\n disableKey = disableOptionKeys[1]; // keys which are listed in __dangerouslyDisableSanitizersByTagID for the current vmid do not need to be escaped\n\n if (escapeOptions[disableKey] && escapeOptions[disableKey][tagId] && includes(escapeOptions[disableKey][tagId], key)) {\n escaped[key] = value;\n continue;\n }\n }\n\n if (isString(value)) {\n escaped[key] = doEscape(value);\n } else if (isArray(value)) {\n escaped[key] = value.map(function (v) {\n if (isPureObject(v)) {\n return escape(v, options, escapeOptions, true);\n }\n\n return doEscape(v);\n });\n } else if (isPureObject(value)) {\n escaped[key] = escape(value, options, escapeOptions, true);\n } else {\n escaped[key] = value;\n }\n\n if (escapeKeys) {\n var escapedKey = doEscape(key);\n\n if (key !== escapedKey) {\n escaped[escapedKey] = escaped[key];\n delete escaped[key];\n }\n }\n }\n\n return escaped;\n}\nfunction escapeMetaInfo(options, info, escapeSequences) {\n escapeSequences = escapeSequences || []; // do not use destructuring for seq, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n\n var escapeOptions = {\n doEscape: function doEscape(value) {\n return escapeSequences.reduce(function (val, seq) {\n return val.replace(seq[0], seq[1]);\n }, value);\n }\n };\n disableOptionKeys.forEach(function (disableKey, index) {\n if (index === 0) {\n ensureIsArray(info, disableKey);\n } else if (index === 1) {\n for (var key in info[disableKey]) {\n ensureIsArray(info[disableKey], key);\n }\n }\n\n escapeOptions[disableKey] = info[disableKey];\n }); // begin sanitization\n\n return escape(info, options, escapeOptions);\n}\n\nfunction applyTemplate(_ref, headObject, template, chunk) {\n var component = _ref.component,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n\n if (template === true || headObject[metaTemplateKeyName] === true) {\n // abort, template was already applied\n return false;\n }\n\n if (isUndefined(template) && headObject[metaTemplateKeyName]) {\n template = headObject[metaTemplateKeyName];\n headObject[metaTemplateKeyName] = true;\n } // return early if no template defined\n\n\n if (!template) {\n // cleanup faulty template properties\n delete headObject[metaTemplateKeyName];\n return false;\n }\n\n if (isUndefined(chunk)) {\n chunk = headObject[contentKeyName];\n }\n\n headObject[contentKeyName] = isFunction(template) ? template.call(component, chunk) : template.replace(/%s/g, chunk);\n return true;\n}\n\nfunction _arrayMerge(_ref, target, source) {\n var component = _ref.component,\n tagIDKeyName = _ref.tagIDKeyName,\n metaTemplateKeyName = _ref.metaTemplateKeyName,\n contentKeyName = _ref.contentKeyName;\n // we concat the arrays without merging objects contained in,\n // but we check for a `vmid` property on each object in the array\n // using an O(1) lookup associative array exploit\n var destination = [];\n\n if (!target.length && !source.length) {\n return destination;\n }\n\n target.forEach(function (targetItem, targetIndex) {\n // no tagID so no need to check for duplicity\n if (!targetItem[tagIDKeyName]) {\n destination.push(targetItem);\n return;\n }\n\n var sourceIndex = findIndex(source, function (item) {\n return item[tagIDKeyName] === targetItem[tagIDKeyName];\n });\n var sourceItem = source[sourceIndex]; // source doesnt contain any duplicate vmid's, we can keep targetItem\n\n if (sourceIndex === -1) {\n destination.push(targetItem);\n return;\n } // when sourceItem explictly defines contentKeyName or innerHTML as undefined, its\n // an indication that we need to skip the default behaviour or child has preference over parent\n // which means we keep the targetItem and ignore/remove the sourceItem\n\n\n if (contentKeyName in sourceItem && sourceItem[contentKeyName] === undefined || 'innerHTML' in sourceItem && sourceItem.innerHTML === undefined) {\n destination.push(targetItem); // remove current index from source array so its not concatenated to destination below\n\n source.splice(sourceIndex, 1);\n return;\n } // we now know that targetItem is a duplicate and we should ignore it in favor of sourceItem\n // if source specifies null as content then ignore both the target as the source\n\n\n if (sourceItem[contentKeyName] === null || sourceItem.innerHTML === null) {\n // remove current index from source array so its not concatenated to destination below\n source.splice(sourceIndex, 1);\n return;\n } // now we only need to check if the target has a template to combine it with the source\n\n\n var targetTemplate = targetItem[metaTemplateKeyName];\n\n if (!targetTemplate) {\n return;\n }\n\n var sourceTemplate = sourceItem[metaTemplateKeyName];\n\n if (!sourceTemplate) {\n // use parent template and child content\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, targetTemplate); // set template to true to indicate template was already applied\n\n sourceItem.template = true;\n return;\n }\n\n if (!sourceItem[contentKeyName]) {\n // use parent content and child template\n applyTemplate({\n component: component,\n metaTemplateKeyName: metaTemplateKeyName,\n contentKeyName: contentKeyName\n }, sourceItem, undefined, targetItem[contentKeyName]);\n }\n });\n return destination.concat(source);\n}\nvar warningShown = false;\nfunction merge(target, source, options) {\n options = options || {}; // remove properties explicitly set to false so child components can\n // optionally _not_ overwrite the parents content\n // (for array properties this is checked in arrayMerge)\n\n if (source.title === undefined) {\n delete source.title;\n }\n\n metaInfoAttributeKeys.forEach(function (attrKey) {\n if (!source[attrKey]) {\n return;\n }\n\n for (var key in source[attrKey]) {\n if (key in source[attrKey] && source[attrKey][key] === undefined) {\n if (includes(booleanHtmlAttributes, key) && !warningShown) {\n warn('VueMeta: Please note that since v2 the value undefined is not used to indicate boolean attributes anymore, see migration guide for details');\n warningShown = true;\n }\n\n delete source[attrKey][key];\n }\n }\n });\n return deepmerge(target, source, {\n arrayMerge: function arrayMerge(t, s) {\n return _arrayMerge(options, t, s);\n }\n });\n}\n\nfunction getComponentMetaInfo(options, component) {\n return getComponentOption(options || {}, component, defaultInfo);\n}\n/**\n * Returns the `opts.option` $option value of the given `opts.component`.\n * If methods are encountered, they will be bound to the component context.\n * If `opts.deep` is true, will recursively merge all child component\n * `opts.option` $option values into the returned result.\n *\n * @param {Object} opts - options\n * @param {Object} opts.component - Vue component to fetch option data from\n * @param {Boolean} opts.deep - look for data in child components as well?\n * @param {Function} opts.arrayMerge - how should arrays be merged?\n * @param {String} opts.keyName - the name of the option to look for\n * @param {Object} [result={}] - result so far\n * @return {Object} result - final aggregated result\n */\n\nfunction getComponentOption(options, component, result) {\n result = result || {};\n\n if (component._inactive) {\n return result;\n }\n\n options = options || {};\n var _options = options,\n keyName = _options.keyName;\n var $metaInfo = component.$metaInfo,\n $options = component.$options,\n $children = component.$children; // only collect option data if it exists\n\n if ($options[keyName]) {\n // if $metaInfo exists then [keyName] was defined as a function\n // and set to the computed prop $metaInfo in the mixin\n // using the computed prop should be a small performance increase\n // because Vue caches those internally\n var data = $metaInfo || $options[keyName]; // only merge data with result when its an object\n // eg it could be a function when metaInfo() returns undefined\n // dueo to the or statement above\n\n if (isObject(data)) {\n result = merge(result, data, options);\n }\n } // collect & aggregate child options if deep = true\n\n\n if ($children.length) {\n $children.forEach(function (childComponent) {\n // check if the childComponent is in a branch\n // return otherwise so we dont walk all component branches unnecessarily\n if (!inMetaInfoBranch(childComponent)) {\n return;\n }\n\n result = getComponentOption(options, childComponent, result);\n });\n }\n\n return result;\n}\n\nvar callbacks = [];\nfunction isDOMComplete(d) {\n return (d || document).readyState === 'complete';\n}\nfunction addCallback(query, callback) {\n if (arguments.length === 1) {\n callback = query;\n query = '';\n }\n\n callbacks.push([query, callback]);\n}\nfunction addCallbacks(_ref, type, tags, autoAddListeners) {\n var tagIDKeyName = _ref.tagIDKeyName;\n var hasAsyncCallback = false;\n tags.forEach(function (tag) {\n if (!tag[tagIDKeyName] || !tag.callback) {\n return;\n }\n\n hasAsyncCallback = true;\n addCallback(\"\".concat(type, \"[data-\").concat(tagIDKeyName, \"=\\\"\").concat(tag[tagIDKeyName], \"\\\"]\"), tag.callback);\n });\n\n if (!autoAddListeners || !hasAsyncCallback) {\n return hasAsyncCallback;\n }\n\n return addListeners();\n}\nfunction addListeners() {\n if (isDOMComplete()) {\n applyCallbacks();\n return;\n } // Instead of using a MutationObserver, we just apply\n\n /* istanbul ignore next */\n\n\n document.onreadystatechange = function () {\n applyCallbacks();\n };\n}\nfunction applyCallbacks(matchElement) {\n callbacks.forEach(function (args) {\n // do not use destructuring for args, it increases transpiled size\n // due to var checks while we are guaranteed the structure of the cb\n var query = args[0];\n var callback = args[1];\n var selector = \"\".concat(query, \"[onload=\\\"this.__vm_l=1\\\"]\");\n var elements = [];\n\n if (!matchElement) {\n elements = toArray(querySelector(selector));\n }\n\n if (matchElement && matchElement.matches(selector)) {\n elements = [matchElement];\n }\n\n elements.forEach(function (element) {\n /* __vm_cb: whether the load callback has been called\n * __vm_l: set by onload attribute, whether the element was loaded\n * __vm_ev: whether the event listener was added or not\n */\n if (element.__vm_cb) {\n return;\n }\n\n var onload = function onload() {\n /* Mark that the callback for this element has already been called,\n * this prevents the callback to run twice in some (rare) conditions\n */\n element.__vm_cb = true;\n /* onload needs to be removed because we only need the\n * attribute after ssr and if we dont remove it the node\n * will fail isEqualNode on the client\n */\n\n removeAttribute(element, 'onload');\n callback(element);\n };\n /* IE9 doesnt seem to load scripts synchronously,\n * causing a script sometimes/often already to be loaded\n * when we add the event listener below (thus adding an onload event\n * listener has no use because it will never be triggered).\n * Therefore we add the onload attribute during ssr, and\n * check here if it was already loaded or not\n */\n\n\n if (element.__vm_l) {\n onload();\n return;\n }\n\n if (!element.__vm_ev) {\n element.__vm_ev = true;\n element.addEventListener('load', onload);\n }\n });\n });\n}\n\n// instead of adding it to the html\n\nvar attributeMap = {};\n/**\n * Updates the document's html tag attributes\n *\n * @param {Object} attrs - the new document html attributes\n * @param {HTMLElement} tag - the HTMLElement tag to update with new attrs\n */\n\nfunction updateAttribute(appId, options, type, attrs, tag) {\n var _ref = options || {},\n attribute = _ref.attribute;\n\n var vueMetaAttrString = tag.getAttribute(attribute);\n\n if (vueMetaAttrString) {\n attributeMap[type] = JSON.parse(decodeURI(vueMetaAttrString));\n removeAttribute(tag, attribute);\n }\n\n var data = attributeMap[type] || {};\n var toUpdate = []; // remove attributes from the map\n // which have been removed for this appId\n\n for (var attr in data) {\n if (data[attr] !== undefined && appId in data[attr]) {\n toUpdate.push(attr);\n\n if (!attrs[attr]) {\n delete data[attr][appId];\n }\n }\n }\n\n for (var _attr in attrs) {\n var attrData = data[_attr];\n\n if (!attrData || attrData[appId] !== attrs[_attr]) {\n toUpdate.push(_attr);\n\n if (attrs[_attr] !== undefined) {\n data[_attr] = data[_attr] || {};\n data[_attr][appId] = attrs[_attr];\n }\n }\n }\n\n for (var _i = 0, _toUpdate = toUpdate; _i < _toUpdate.length; _i++) {\n var _attr2 = _toUpdate[_i];\n var _attrData = data[_attr2];\n var attrValues = [];\n\n for (var _appId in _attrData) {\n Array.prototype.push.apply(attrValues, [].concat(_attrData[_appId]));\n }\n\n if (attrValues.length) {\n var attrValue = includes(booleanHtmlAttributes, _attr2) && attrValues.some(Boolean) ? '' : attrValues.filter(function (v) {\n return v !== undefined;\n }).join(' ');\n tag.setAttribute(_attr2, attrValue);\n } else {\n removeAttribute(tag, _attr2);\n }\n }\n\n attributeMap[type] = data;\n}\n\n/**\n * Updates the document title\n *\n * @param {String} title - the new title of the document\n */\nfunction updateTitle(title) {\n if (!title && title !== '') {\n return;\n }\n\n document.title = title;\n}\n\n/**\n * Updates meta tags inside and on the client. Borrowed from `react-helmet`:\n * https://github.com/nfl/react-helmet/blob/004d448f8de5f823d10f838b02317521180f34da/src/Helmet.js#L195-L245\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} type - the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - a representation of what tags changed\n */\n\nfunction updateTag(appId, options, type, tags, head, body) {\n var _ref = options || {},\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var dataAttributes = commonDataAttributes.slice();\n dataAttributes.push(tagIDKeyName);\n var newElements = [];\n var queryOptions = {\n appId: appId,\n attribute: attribute,\n type: type,\n tagIDKeyName: tagIDKeyName\n };\n var currentElements = {\n head: queryElements(head, queryOptions),\n pbody: queryElements(body, queryOptions, {\n pbody: true\n }),\n body: queryElements(body, queryOptions, {\n body: true\n })\n };\n\n if (tags.length > 1) {\n // remove duplicates that could have been found by merging tags\n // which include a mixin with metaInfo and that mixin is used\n // by multiple components on the same page\n var found = [];\n tags = tags.filter(function (x) {\n var k = JSON.stringify(x);\n var res = !includes(found, k);\n found.push(k);\n return res;\n });\n }\n\n tags.forEach(function (tag) {\n if (tag.skip) {\n return;\n }\n\n var newElement = document.createElement(type);\n\n if (!tag.once) {\n newElement.setAttribute(attribute, appId);\n }\n\n Object.keys(tag).forEach(function (attr) {\n /* istanbul ignore next */\n if (includes(tagProperties, attr)) {\n return;\n }\n\n if (attr === 'innerHTML') {\n newElement.innerHTML = tag.innerHTML;\n return;\n }\n\n if (attr === 'json') {\n newElement.innerHTML = JSON.stringify(tag.json);\n return;\n }\n\n if (attr === 'cssText') {\n if (newElement.styleSheet) {\n /* istanbul ignore next */\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n\n return;\n }\n\n if (attr === 'callback') {\n newElement.onload = function () {\n return tag[attr](newElement);\n };\n\n return;\n }\n\n var _attr = includes(dataAttributes, attr) ? \"data-\".concat(attr) : attr;\n\n var isBooleanAttribute = includes(booleanHtmlAttributes, attr);\n\n if (isBooleanAttribute && !tag[attr]) {\n return;\n }\n\n var value = isBooleanAttribute ? '' : tag[attr];\n newElement.setAttribute(_attr, value);\n });\n var oldElements = currentElements[getElementsKey(tag)]; // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n var indexToDelete;\n var hasEqualElement = oldElements.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n });\n\n if (hasEqualElement && (indexToDelete || indexToDelete === 0)) {\n oldElements.splice(indexToDelete, 1);\n } else {\n newElements.push(newElement);\n }\n });\n var oldElements = [];\n\n for (var _type in currentElements) {\n Array.prototype.push.apply(oldElements, currentElements[_type]);\n } // remove old elements\n\n\n oldElements.forEach(function (element) {\n element.parentNode.removeChild(element);\n }); // insert new elements\n\n newElements.forEach(function (element) {\n if (element.hasAttribute('data-body')) {\n body.appendChild(element);\n return;\n }\n\n if (element.hasAttribute('data-pbody')) {\n body.insertBefore(element, body.firstChild);\n return;\n }\n\n head.appendChild(element);\n });\n return {\n oldTags: oldElements,\n newTags: newElements\n };\n}\n\n/**\n * Performs client-side updates when new meta info is received\n *\n * @param {Object} newInfo - the meta info to update to\n */\n\nfunction updateClientMetaInfo(appId, options, newInfo) {\n options = options || {};\n var _options = options,\n ssrAttribute = _options.ssrAttribute,\n ssrAppId = _options.ssrAppId; // only cache tags for current update\n\n var tags = {};\n var htmlTag = getTag(tags, 'html'); // if this is a server render, then dont update\n\n if (appId === ssrAppId && htmlTag.hasAttribute(ssrAttribute)) {\n // remove the server render attribute so we can update on (next) changes\n removeAttribute(htmlTag, ssrAttribute); // add load callbacks if the\n\n var addLoadListeners = false;\n tagsSupportingOnload.forEach(function (type) {\n if (newInfo[type] && addCallbacks(options, type, newInfo[type])) {\n addLoadListeners = true;\n }\n });\n\n if (addLoadListeners) {\n addListeners();\n }\n\n return false;\n } // initialize tracked changes\n\n\n var tagsAdded = {};\n var tagsRemoved = {};\n\n for (var type in newInfo) {\n // ignore these\n if (includes(metaInfoOptionKeys, type)) {\n continue;\n }\n\n if (type === 'title') {\n // update the title\n updateTitle(newInfo.title);\n continue;\n }\n\n if (includes(metaInfoAttributeKeys, type)) {\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, newInfo[type], getTag(tags, tagName));\n continue;\n } // tags should always be an array, ignore if it isnt\n\n\n if (!isArray(newInfo[type])) {\n continue;\n }\n\n var _updateTag = updateTag(appId, options, type, newInfo[type], getTag(tags, 'head'), getTag(tags, 'body')),\n oldTags = _updateTag.oldTags,\n newTags = _updateTag.newTags;\n\n if (newTags.length) {\n tagsAdded[type] = newTags;\n tagsRemoved[type] = oldTags;\n }\n }\n\n return {\n tagsAdded: tagsAdded,\n tagsRemoved: tagsRemoved\n };\n}\n\nvar appsMetaInfo;\nfunction addApp(rootVm, appId, options) {\n return {\n set: function set(metaInfo) {\n return setMetaInfo(rootVm, appId, options, metaInfo);\n },\n remove: function remove() {\n return removeMetaInfo(rootVm, appId, options);\n }\n };\n}\nfunction setMetaInfo(rootVm, appId, options, metaInfo) {\n // if a vm exists _and_ its mounted then immediately update\n if (rootVm && rootVm.$el) {\n return updateClientMetaInfo(appId, options, metaInfo);\n } // store for later, the info\n // will be set on the first refresh\n\n\n appsMetaInfo = appsMetaInfo || {};\n appsMetaInfo[appId] = metaInfo;\n}\nfunction removeMetaInfo(rootVm, appId, options) {\n if (rootVm && rootVm.$el) {\n var tags = {};\n\n var _iterator = _createForOfIteratorHelper(metaInfoAttributeKeys),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var type = _step.value;\n var tagName = type.substr(0, 4);\n updateAttribute(appId, options, type, {}, getTag(tags, tagName));\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return removeElementsByAppId(options, appId);\n }\n\n if (appsMetaInfo[appId]) {\n delete appsMetaInfo[appId];\n clearAppsMetaInfo();\n }\n}\nfunction getAppsMetaInfo() {\n return appsMetaInfo;\n}\nfunction clearAppsMetaInfo(force) {\n if (force || !Object.keys(appsMetaInfo).length) {\n appsMetaInfo = undefined;\n }\n}\n\n/**\n * Returns the correct meta info for the given component\n * (child components will overwrite parent meta info)\n *\n * @param {Object} component - the Vue instance to get meta info from\n * @return {Object} - returned meta info\n */\n\nfunction getMetaInfo(options, info, escapeSequences, component) {\n options = options || {};\n escapeSequences = escapeSequences || [];\n var _options = options,\n tagIDKeyName = _options.tagIDKeyName; // Remove all \"template\" tags from meta\n // backup the title chunk in case user wants access to it\n\n if (info.title) {\n info.titleChunk = info.title;\n } // replace title with populated template\n\n\n if (info.titleTemplate && info.titleTemplate !== '%s') {\n applyTemplate({\n component: component,\n contentKeyName: 'title'\n }, info, info.titleTemplate, info.titleChunk || '');\n } // convert base tag to an array so it can be handled the same way\n // as the other tags\n\n\n if (info.base) {\n info.base = Object.keys(info.base).length ? [info.base] : [];\n }\n\n if (info.meta) {\n // remove meta items with duplicate vmid's\n info.meta = info.meta.filter(function (metaItem, index, arr) {\n var hasVmid = !!metaItem[tagIDKeyName];\n\n if (!hasVmid) {\n return true;\n }\n\n var isFirstItemForVmid = index === findIndex(arr, function (item) {\n return item[tagIDKeyName] === metaItem[tagIDKeyName];\n });\n return isFirstItemForVmid;\n }); // apply templates if needed\n\n info.meta.forEach(function (metaObject) {\n return applyTemplate(options, metaObject);\n });\n }\n\n return escapeMetaInfo(options, info, escapeSequences);\n}\n\n/**\n * When called, will update the current meta info with new meta info.\n * Useful when updating meta info as the result of an asynchronous\n * action that resolves after the initial render takes place.\n *\n * Credit to [Sébastien Chopin](https://github.com/Atinux) for the suggestion\n * to implement this method.\n *\n * @return {Object} - new meta info\n */\n\nfunction refresh(rootVm, options) {\n options = options || {}; // make sure vue-meta was initiated\n\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, clientSequences, rootVm);\n var appId = rootVm[rootConfigKey].appId;\n var tags = updateClientMetaInfo(appId, options, metaInfo); // emit \"event\" with new info\n\n if (tags && isFunction(metaInfo.changed)) {\n metaInfo.changed(metaInfo, tags.tagsAdded, tags.tagsRemoved);\n tags = {\n addedTags: tags.tagsAdded,\n removedTags: tags.tagsRemoved\n };\n }\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n updateClientMetaInfo(additionalAppId, options, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return {\n vm: rootVm,\n metaInfo: metaInfo,\n // eslint-disable-line object-shorthand\n tags: tags\n };\n}\n\n/**\n * Generates tag attributes for use on the server.\n *\n * @param {('bodyAttrs'|'htmlAttrs'|'headAttrs')} type - the type of attributes to generate\n * @param {Object} data - the attributes to generate\n * @return {Object} - the attribute generator\n */\n\nfunction attributeGenerator(options, type, data, _ref) {\n var addSsrAttribute = _ref.addSsrAttribute;\n\n var _ref2 = options || {},\n attribute = _ref2.attribute,\n ssrAttribute = _ref2.ssrAttribute;\n\n var attributeStr = '';\n\n for (var attr in data) {\n var attrData = data[attr];\n var attrValues = [];\n\n for (var appId in attrData) {\n attrValues.push.apply(attrValues, _toConsumableArray([].concat(attrData[appId])));\n }\n\n if (attrValues.length) {\n attributeStr += booleanHtmlAttributes.includes(attr) && attrValues.some(Boolean) ? \"\".concat(attr) : \"\".concat(attr, \"=\\\"\").concat(attrValues.join(' '), \"\\\"\");\n attributeStr += ' ';\n }\n }\n\n if (attributeStr) {\n attributeStr += \"\".concat(attribute, \"=\\\"\").concat(encodeURI(JSON.stringify(data)), \"\\\"\");\n }\n\n if (type === 'htmlAttrs' && addSsrAttribute) {\n return \"\".concat(ssrAttribute).concat(attributeStr ? ' ' : '').concat(attributeStr);\n }\n\n return attributeStr;\n}\n\n/**\n * Generates title output for the server\n *\n * @param {'title'} type - the string \"title\"\n * @param {String} data - the title text\n * @return {Object} - the title generator\n */\nfunction titleGenerator(options, type, data, generatorOptions) {\n var _ref = generatorOptions || {},\n ln = _ref.ln;\n\n if (!data) {\n return '';\n }\n\n return \"<\".concat(type, \">\").concat(data, \"\").concat(ln ? '\\n' : '');\n}\n\n/**\n * Generates meta, base, link, style, script, noscript tags for use on the server\n *\n * @param {('meta'|'base'|'link'|'style'|'script'|'noscript')} the name of the tag\n * @param {(Array|Object)} tags - an array of tag objects or a single object in case of base\n * @return {Object} - the tag generator\n */\n\nfunction tagGenerator(options, type, tags, generatorOptions) {\n var _ref = options || {},\n ssrAppId = _ref.ssrAppId,\n attribute = _ref.attribute,\n tagIDKeyName = _ref.tagIDKeyName;\n\n var _ref2 = generatorOptions || {},\n appId = _ref2.appId,\n _ref2$isSSR = _ref2.isSSR,\n isSSR = _ref2$isSSR === void 0 ? true : _ref2$isSSR,\n _ref2$body = _ref2.body,\n body = _ref2$body === void 0 ? false : _ref2$body,\n _ref2$pbody = _ref2.pbody,\n pbody = _ref2$pbody === void 0 ? false : _ref2$pbody,\n _ref2$ln = _ref2.ln,\n ln = _ref2$ln === void 0 ? false : _ref2$ln;\n\n var dataAttributes = [tagIDKeyName].concat(_toConsumableArray(commonDataAttributes));\n\n if (!tags || !tags.length) {\n return '';\n } // build a string containing all tags of this type\n\n\n return tags.reduce(function (tagsStr, tag) {\n if (tag.skip) {\n return tagsStr;\n }\n\n var tagKeys = Object.keys(tag);\n\n if (tagKeys.length === 0) {\n return tagsStr; // Bail on empty tag object\n }\n\n if (Boolean(tag.body) !== body || Boolean(tag.pbody) !== pbody) {\n return tagsStr;\n }\n\n var attrs = tag.once ? '' : \" \".concat(attribute, \"=\\\"\").concat(appId || (isSSR === false ? '1' : ssrAppId), \"\\\"\"); // build a string containing all attributes of this tag\n\n for (var attr in tag) {\n // these attributes are treated as children on the tag\n if (tagAttributeAsInnerContent.includes(attr) || tagProperties.includes(attr)) {\n continue;\n }\n\n if (attr === 'callback') {\n attrs += ' onload=\"this.__vm_l=1\"';\n continue;\n } // these form the attribute list for this tag\n\n\n var prefix = '';\n\n if (dataAttributes.includes(attr)) {\n prefix = 'data-';\n }\n\n var isBooleanAttr = !prefix && booleanHtmlAttributes.includes(attr);\n\n if (isBooleanAttr && !tag[attr]) {\n continue;\n }\n\n attrs += \" \".concat(prefix).concat(attr) + (isBooleanAttr ? '' : \"=\\\"\".concat(tag[attr], \"\\\"\"));\n }\n\n var json = '';\n\n if (tag.json) {\n json = JSON.stringify(tag.json);\n } // grab child content from one of these attributes, if possible\n\n\n var content = tag.innerHTML || tag.cssText || json; // generate tag exactly without any other redundant attribute\n // these tags have no end tag\n\n var hasEndTag = !tagsWithoutEndTag.includes(type); // these tag types will have content inserted\n\n var hasContent = hasEndTag && tagsWithInnerContent.includes(type); // the final string for this specific tag\n\n return \"\".concat(tagsStr, \"<\").concat(type).concat(attrs).concat(!hasContent && hasEndTag ? '/' : '', \">\") + (hasContent ? \"\".concat(content, \"\") : '') + (ln ? '\\n' : '');\n }, '');\n}\n\n/**\n * Converts a meta info property to one that can be stringified on the server\n *\n * @param {String} type - the type of data to convert\n * @param {(String|Object|Array)} data - the data value\n * @return {Object} - the new injector\n */\n\nfunction generateServerInjector(options, metaInfo, globalInjectOptions) {\n var serverInjector = {\n data: metaInfo,\n extraData: undefined,\n addInfo: function addInfo(appId, metaInfo) {\n this.extraData = this.extraData || {};\n this.extraData[appId] = metaInfo;\n },\n callInjectors: function callInjectors(opts) {\n var m = this.injectors; // only call title for the head\n\n return (opts.body || opts.pbody ? '' : m.title.text(opts)) + m.meta.text(opts) + m.base.text(opts) + m.link.text(opts) + m.style.text(opts) + m.script.text(opts) + m.noscript.text(opts);\n },\n injectors: {\n head: function head(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln\n }));\n },\n bodyPrepend: function bodyPrepend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n pbody: true\n }));\n },\n bodyAppend: function bodyAppend(ln) {\n return serverInjector.callInjectors(_objectSpread2(_objectSpread2({}, globalInjectOptions), {}, {\n ln: ln,\n body: true\n }));\n }\n }\n };\n\n var _loop = function _loop(type) {\n if (metaInfoOptionKeys.includes(type)) {\n return \"continue\";\n }\n\n serverInjector.injectors[type] = {\n text: function text(injectOptions) {\n var addSsrAttribute = injectOptions === true;\n injectOptions = _objectSpread2(_objectSpread2({\n addSsrAttribute: addSsrAttribute\n }, globalInjectOptions), injectOptions);\n\n if (type === 'title') {\n return titleGenerator(options, type, serverInjector.data[type], injectOptions);\n }\n\n if (metaInfoAttributeKeys.includes(type)) {\n var attributeData = {};\n var data = serverInjector.data[type];\n\n if (data) {\n var appId = injectOptions.isSSR === false ? '1' : options.ssrAppId;\n\n for (var attr in data) {\n attributeData[attr] = _defineProperty({}, appId, data[attr]);\n }\n }\n\n if (serverInjector.extraData) {\n for (var _appId in serverInjector.extraData) {\n var _data = serverInjector.extraData[_appId][type];\n\n if (_data) {\n for (var _attr in _data) {\n attributeData[_attr] = _objectSpread2(_objectSpread2({}, attributeData[_attr]), {}, _defineProperty({}, _appId, _data[_attr]));\n }\n }\n }\n }\n\n return attributeGenerator(options, type, attributeData, injectOptions);\n }\n\n var str = tagGenerator(options, type, serverInjector.data[type], injectOptions);\n\n if (serverInjector.extraData) {\n for (var _appId2 in serverInjector.extraData) {\n var _data2 = serverInjector.extraData[_appId2][type];\n var extraStr = tagGenerator(options, type, _data2, _objectSpread2({\n appId: _appId2\n }, injectOptions));\n str = \"\".concat(str).concat(extraStr);\n }\n }\n\n return str;\n }\n };\n };\n\n for (var type in defaultInfo) {\n var _ret = _loop(type);\n\n if (_ret === \"continue\") continue;\n }\n\n return serverInjector;\n}\n\n/**\n * Converts the state of the meta info object such that each item\n * can be compiled to a tag string on the server\n *\n * @vm {Object} - Vue instance - ideally the root component\n * @return {Object} - server meta info with `toString` methods\n */\n\nfunction inject(rootVm, options, injectOptions) {\n // make sure vue-meta was initiated\n if (!rootVm[rootConfigKey]) {\n showWarningNotSupported();\n return {};\n } // collect & aggregate all metaInfo $options\n\n\n var rawInfo = getComponentMetaInfo(options, rootVm);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences, rootVm); // generate server injector\n\n var serverInjector = generateServerInjector(options, metaInfo, injectOptions); // add meta info from additional apps\n\n var appsMetaInfo = getAppsMetaInfo();\n\n if (appsMetaInfo) {\n for (var additionalAppId in appsMetaInfo) {\n serverInjector.addInfo(additionalAppId, appsMetaInfo[additionalAppId]);\n delete appsMetaInfo[additionalAppId];\n }\n\n clearAppsMetaInfo(true);\n }\n\n return serverInjector.injectors;\n}\n\nfunction $meta(options) {\n options = options || {};\n /**\n * Returns an injector for server-side rendering.\n * @this {Object} - the Vue instance (a root component)\n * @return {Object} - injector\n */\n\n var $root = this.$root;\n return {\n getOptions: function getOptions$1() {\n return getOptions(options);\n },\n setOptions: function setOptions(newOptions) {\n var refreshNavKey = 'refreshOnceOnNavigation';\n\n if (newOptions && newOptions[refreshNavKey]) {\n options.refreshOnceOnNavigation = !!newOptions[refreshNavKey];\n addNavGuards($root);\n }\n\n var debounceWaitKey = 'debounceWait';\n\n if (newOptions && debounceWaitKey in newOptions) {\n var debounceWait = parseInt(newOptions[debounceWaitKey]);\n\n if (!isNaN(debounceWait)) {\n options.debounceWait = debounceWait;\n }\n }\n\n var waitOnDestroyedKey = 'waitOnDestroyed';\n\n if (newOptions && waitOnDestroyedKey in newOptions) {\n options.waitOnDestroyed = !!newOptions[waitOnDestroyedKey];\n }\n },\n refresh: function refresh$1() {\n return refresh($root, options);\n },\n inject: function inject$1(injectOptions) {\n return inject($root, options, injectOptions) ;\n },\n pause: function pause$1() {\n return pause($root);\n },\n resume: function resume$1() {\n return resume($root);\n },\n addApp: function addApp$1(appId) {\n return addApp($root, appId, options);\n }\n };\n}\n\nfunction generate(rawInfo, options) {\n options = setOptions(options);\n var metaInfo = getMetaInfo(options, rawInfo, serverSequences);\n var serverInjector = generateServerInjector(options, metaInfo);\n return serverInjector.injectors;\n}\n\n/**\n * Plugin install function.\n * @param {Function} Vue - the Vue constructor.\n */\n\nfunction install(Vue, options) {\n if (Vue.__vuemeta_installed) {\n return;\n }\n\n Vue.__vuemeta_installed = true;\n options = setOptions(options);\n\n Vue.prototype.$meta = function () {\n return $meta.call(this, options);\n };\n\n Vue.mixin(createMixin(Vue, options));\n}\n\nvar index = {\n version: version,\n install: install,\n generate: function generate$1(metaInfo, options) {\n return generate(metaInfo, options) ;\n },\n hasMetaInfo: hasMetaInfo\n};\n\nexport default index;\n","/*!\n * vue-konva v2.1.7 - https://github.com/konvajs/vue-konva#readme\n * MIT Licensed\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"), require(\"konva\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\", \"konva\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"VueKonva\"] = factory(require(\"vue\"), require(\"konva\"));\n\telse\n\t\troot[\"VueKonva\"] = factory(root[\"Vue\"], root[\"Konva\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__2__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(3);\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}\nvar external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_ = __webpack_require__(0);\nvar external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_default = /*#__PURE__*/__webpack_require__.n(external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_);\n\n// CONCATENATED MODULE: ./src/utils/updatePicture.js\n// adapted FROM: https://github.com/lavrton/react-konva/blob/master/src/react-konva-fiber.js\nfunction updatePicture(node) {\n var drawingNode = node.getLayer() || node.getStage();\n drawingNode && drawingNode.batchDraw();\n}\n// CONCATENATED MODULE: ./src/utils/applyNodeProps.js\n// adapted FROM: https://github.com/lavrton/react-konva/blob/master/src/react-konva-fiber.js\n\nvar propsToSkip = {\n key: true,\n style: true,\n elm: true,\n isRootInsert: true\n};\nvar EVENTS_NAMESPACE = '.vue-konva-event';\nfunction applyNodeProps(vueComponent, props, oldProps, useStrict) {\n if (props === void 0) {\n props = {};\n }\n\n if (oldProps === void 0) {\n oldProps = {};\n }\n\n var instance = vueComponent._konvaNode;\n var updatedProps = {};\n var hasUpdates = false;\n\n for (var key in oldProps) {\n if (propsToSkip[key]) {\n continue;\n }\n\n var isEvent = key.slice(0, 2) === 'on';\n var propChanged = oldProps[key] !== props[key];\n\n if (isEvent && propChanged) {\n var eventName = key.substr(2).toLowerCase();\n\n if (eventName.substr(0, 7) === 'content') {\n eventName = 'content' + eventName.substr(7, 1).toUpperCase() + eventName.substr(8);\n }\n\n instance.off(eventName + EVENTS_NAMESPACE, oldProps[key]);\n }\n\n var toRemove = !props.hasOwnProperty(key);\n\n if (toRemove) {\n instance.setAttr(key, undefined);\n }\n }\n\n for (var _key in props) {\n if (propsToSkip[_key]) {\n continue;\n }\n\n var _isEvent = _key.slice(0, 2) === 'on';\n\n var toAdd = oldProps[_key] !== props[_key];\n\n if (_isEvent && toAdd) {\n var _eventName = _key.substr(2).toLowerCase();\n\n if (_eventName.substr(0, 7) === 'content') {\n _eventName = 'content' + _eventName.substr(7, 1).toUpperCase() + _eventName.substr(8);\n }\n\n if (props[_key]) {\n instance.off(_eventName + EVENTS_NAMESPACE);\n instance.on(_eventName + EVENTS_NAMESPACE, props[_key]);\n }\n }\n\n if (!_isEvent && (props[_key] !== oldProps[_key] || useStrict && props[_key] !== instance.getAttr(_key))) {\n hasUpdates = true;\n updatedProps[_key] = props[_key];\n }\n }\n\n if (hasUpdates) {\n instance.setAttrs(updatedProps);\n updatePicture(instance);\n }\n}\n// CONCATENATED MODULE: ./src/utils/index.js\n\n\nvar componentPrefix = 'v';\nvar konvaNodeMarker = '_konvaNode';\nfunction copy(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\nfunction createListener(obj) {\n var output = {};\n Object.keys(obj).forEach(function (eventName) {\n output['on' + eventName] = obj[eventName];\n });\n return output;\n}\nfunction findParentKonva(instance) {\n function re(instance) {\n if (instance._konvaNode) {\n return instance;\n }\n\n if (instance.$parent) {\n return re(instance.$parent);\n }\n\n return {};\n }\n\n return re(instance.$parent);\n}\nfunction findKonvaNode(instance) {\n if (!instance) {\n return null;\n }\n\n if (instance.$options[konvaNodeMarker]) {\n return instance.getNode();\n }\n\n if (instance.$children.length === 0) {\n return null;\n }\n\n return findKonvaNode(instance.$children[0]);\n}\nfunction checkOrder($vnode, konvaNode) {\n var needRedraw = false; // check indexes\n // somehow this.$children are not ordered correctly\n // so we have to dive-in into componentOptions of vnode\n // also componentOptions.children may have empty nodes, and other non Konva elements so we need to filter them first\n\n var children = $vnode.componentOptions.children || [];\n var nodes = [];\n children.forEach(function ($vnode) {\n var konvaNode = findKonvaNode($vnode.componentInstance);\n\n if (konvaNode) {\n nodes.push(konvaNode);\n }\n\n var elm = $vnode.elm,\n componentInstance = $vnode.componentInstance;\n\n if (elm && elm.tagName && componentInstance && !konvaNode) {\n var name = elm && elm.tagName.toLowerCase();\n console.error(\"vue-konva error: You are trying to render \\\"\" + name + \"\\\" inside your component tree. Looks like it is not a Konva node. You can render only Konva components inside the Stage.\");\n }\n });\n nodes.forEach(function (konvaNode, index) {\n if (konvaNode.getZIndex() !== index) {\n konvaNode.setZIndex(index);\n needRedraw = true;\n }\n });\n\n if (needRedraw) {\n updatePicture(konvaNode);\n }\n}\n\n// CONCATENATED MODULE: ./src/components/Stage.js\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n/* harmony default export */ var Stage = (external_root_Vue_commonjs2_vue_commonjs_vue_amd_vue_default.a.component('v-stage', {\n render: function render(createElement) {\n return createElement('div', this.$slots.default);\n },\n watch: {\n config: {\n handler: function handler(val) {\n this.uploadKonva();\n },\n deep: true\n }\n },\n props: {\n config: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n __useStrictMode: {\n type: Boolean\n }\n },\n created: function created() {\n this._konvaNode = new window.Konva.Stage({\n width: this.config.width,\n height: this.config.height,\n // create fake container, later it will be replaced with real div on the page\n container: document.createElement('div')\n });\n },\n mounted: function mounted() {\n this.$el.innerHTML = '';\n\n this._konvaNode.container(this.$el);\n\n this.uploadKonva();\n this.validateChildren();\n },\n updated: function updated() {\n this.uploadKonva();\n this.uploadKonva();\n checkOrder(this.$vnode, this._konvaNode);\n },\n beforeDestroy: function beforeDestroy() {\n this._konvaNode.destroy();\n },\n methods: {\n getNode: function getNode() {\n return this._konvaNode;\n },\n getStage: function getStage() {\n return this._konvaNode;\n },\n uploadKonva: function uploadKonva() {\n var oldProps = this.oldProps || {};\n\n var props = _extends({}, this.$attrs, this.config, createListener(this.$listeners));\n\n applyNodeProps(this, props, oldProps, this.__useStrictMode);\n this.oldProps = props;\n },\n validateChildren: function validateChildren() {// TODO: add a waring if we see non-Konva element here\n // this.$vnode.componentOptions.children.forEach(child => {\n // console.log(child);\n // })\n }\n }\n}));\n// CONCATENATED MODULE: ./src/components/KonvaNode.js\nfunction KonvaNode_extends() { KonvaNode_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return KonvaNode_extends.apply(this, arguments); }\n\n\nvar KonvaNode_EVENTS_NAMESPACE = '.vue-konva-event';\nvar CONTAINERS = {\n Group: true,\n Layer: true,\n FastLayer: true,\n Label: true\n};\n/* harmony default export */ var KonvaNode = (function (nameNode) {\n var _ref;\n\n return _ref = {}, _ref[konvaNodeMarker] = true, _ref.render = function render(createElement) {\n // containers should be able to draw children\n var isContainer = CONTAINERS[nameNode];\n\n if (isContainer) {\n return createElement('template', this.$slots.default);\n } // other elements are not containers\n\n\n return null;\n }, _ref.watch = {\n config: {\n handler: function handler(val) {\n this.uploadKonva();\n },\n deep: true\n }\n }, _ref.props = {\n config: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n __useStrictMode: {\n type: Boolean\n }\n }, _ref.created = function created() {\n this.initKonva();\n }, _ref.mounted = function mounted() {\n var parentVueInstance = findParentKonva(this);\n var parentKonvaNode = parentVueInstance._konvaNode;\n parentKonvaNode.add(this._konvaNode);\n updatePicture(this._konvaNode);\n }, _ref.updated = function updated() {\n this.uploadKonva();\n checkOrder(this.$vnode, this._konvaNode);\n }, _ref.destroyed = function destroyed() {\n updatePicture(this._konvaNode);\n\n this._konvaNode.destroy();\n\n this._konvaNode.off(KonvaNode_EVENTS_NAMESPACE);\n }, _ref.methods = {\n getNode: function getNode() {\n return this._konvaNode;\n },\n getStage: function getStage() {\n return this._konvaNode;\n },\n initKonva: function initKonva() {\n var NodeClass = window.Konva[nameNode];\n\n if (!NodeClass) {\n console.error('vue-konva error: Can not find node ' + nameNode);\n return;\n }\n\n this._konvaNode = new NodeClass();\n this._konvaNode.VueComponent = this;\n this.uploadKonva();\n },\n uploadKonva: function uploadKonva() {\n var oldProps = this.oldProps || {};\n\n var props = KonvaNode_extends({}, this.$attrs, this.config, createListener(this.$listeners));\n\n applyNodeProps(this, props, oldProps, this.__useStrictMode);\n this.oldProps = props;\n }\n }, _ref;\n});\n// CONCATENATED MODULE: ./src/index.js\n\n\n\n\nif (typeof window !== 'undefined' && !window.Konva) {\n __webpack_require__(2);\n}\n\nvar KONVA_NODES = ['Layer', 'FastLayer', 'Group', 'Label', 'Rect', 'Circle', 'Ellipse', 'Wedge', 'Line', 'Sprite', 'Image', 'Text', 'TextPath', 'Star', 'Ring', 'Arc', 'Tag', 'Path', 'RegularPolygon', 'Arrow', 'Shape', 'Transformer'];\nvar components = [{\n name: 'Stage',\n component: Stage\n}].concat(KONVA_NODES.map(function (name) {\n return {\n name: name,\n component: KonvaNode(name)\n };\n}));\nvar VueKonva = {\n install: function install(Vue, options) {\n var prefixToUse = componentPrefix;\n\n if (options && options.prefix) {\n prefixToUse = options.prefix;\n }\n\n components.forEach(function (k) {\n Vue.component(\"\" + prefixToUse + k.name, k.component);\n });\n }\n};\n/* harmony default export */ var src = __webpack_exports__[\"default\"] = (VueKonva);\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VueKonva);\n}\n\n/***/ })\n/******/ ])[\"default\"];\n});","import Vue from 'vue';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\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 isFn = function isFn(fn) {\n return typeof fn === \"function\";\n};\nvar isObject = function isObject(item) {\n return item && _typeof(item) === \"object\" && !Array.isArray(item);\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 (!isObject(target) || !isObject(source)) {\n return;\n }\n\n for (var key in source) {\n if (isObject(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(Vue) {\n return Vue.$gtag = Vue.prototype.$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 (isFn(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.onReady(function () {\n Vue.nextTick().then(function () {\n var currentRoute = router.currentRoute;\n addConfiguration();\n\n if (isRouteExcluded(currentRoute)) {\n return;\n }\n\n track(currentRoute);\n });\n router.afterEach(function (to, from) {\n Vue.nextTick().then(function () {\n if (isRouteExcluded(to)) {\n return;\n }\n\n if (isFn(onBeforeTrack)) {\n onBeforeTrack(to, from);\n }\n\n track(to, from);\n\n if (isFn(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(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var router = arguments.length > 2 ? arguments[2] : undefined;\n attachApi(Vue);\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"],"sourceRoot":""}