{"version":3,"file":"js/chunk-vendors-f4a4104f.68c6e177.js","mappings":"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","sources":["webpack://dicom-frontend/./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack://dicom-frontend/./node_modules/vue-meta/dist/vue-meta.esm.js","webpack://dicom-frontend/./node_modules/vue-notification/dist/index.js","webpack://dicom-frontend/./node_modules/vue-ref/index.js"],"sourcesContent":["/*!\n * Vue-Lazyload.js v1.3.5\n * (c) 2023 Awe \n * Released under the MIT License.\n */\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar assignSymbols$1 = createCommonjsModule(function (module) {\n\n var toString = Object.prototype.toString;\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var getSymbols = Object.getOwnPropertySymbols;\n\n module.exports = function (target) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!isObject(target)) {\n throw new TypeError('expected the first argument to be an object');\n }\n\n if (args.length === 0 || typeof Symbol !== 'function' || typeof getSymbols !== 'function') {\n return target;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arg = _step.value;\n\n var names = getSymbols(arg);\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = names[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n if (isEnumerable.call(arg, key)) {\n target[key] = arg[key];\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return target;\n };\n\n function isObject(val) {\n return typeof val === 'function' || toString.call(val) === '[object Object]' || Array.isArray(val);\n }\n});\n\nvar assignSymbols$2 = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\t'default': assignSymbols$1,\n\t__moduleExports: assignSymbols$1\n});\n\nvar assignSymbols = ( assignSymbols$2 && assignSymbols$1 ) || assignSymbols$2;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar assignDeep = createCommonjsModule(function (module) {\n\n var toString = Object.prototype.toString;\n\n var isValidKey = function isValidKey(key) {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype';\n };\n\n var assign = module.exports = function (target) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var i = 0;\n if (isPrimitive(target)) target = args[i++];\n if (!target) target = {};\n for (; i < args.length; i++) {\n if (isObject(args[i])) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = Object.keys(args[i])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n if (isValidKey(key)) {\n if (isObject(target[key]) && isObject(args[i][key])) {\n assign(target[key], args[i][key]);\n } else {\n target[key] = args[i][key];\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n assignSymbols(target, args[i]);\n }\n }\n return target;\n };\n\n function isObject(val) {\n return typeof val === 'function' || toString.call(val) === '[object Object]';\n }\n\n function isPrimitive(val) {\n return (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' ? val === null : typeof val !== 'function';\n }\n});\n\nvar inBrowser = typeof window !== 'undefined' && window !== null;\n\nvar hasIntersectionObserver = checkIntersectionObserver();\n\nfunction checkIntersectionObserver() {\n if (inBrowser && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nvar modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill for IE\n};var CustomEvent = function () {\n if (!inBrowser) return;\n // not IE\n if (typeof window.CustomEvent === 'function') return window.CustomEvent;\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n return CustomEvent;\n}();\n\nfunction remove(arr, item) {\n if (!arr.length) return;\n var index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n var has = false;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n has = true;\n break;\n }\n }\n return has;\n}\n\nfunction getBestSelectionFromSrcset(el, scale) {\n if (el.tagName !== 'IMG' || !el.getAttribute('data-srcset')) return;\n\n var options = el.getAttribute('data-srcset');\n var result = [];\n var container = el.parentNode;\n var containerWidth = container.offsetWidth * scale;\n\n var spaceIndex = void 0;\n var tmpSrc = void 0;\n var tmpWidth = void 0;\n\n options = options.trim().split(',');\n\n options.map(function (item) {\n item = item.trim();\n spaceIndex = item.lastIndexOf(' ');\n if (spaceIndex === -1) {\n tmpSrc = item;\n tmpWidth = 999998;\n } else {\n tmpSrc = item.substr(0, spaceIndex);\n tmpWidth = parseInt(item.substr(spaceIndex + 1, item.length - spaceIndex - 2), 10);\n }\n result.push([tmpWidth, tmpSrc]);\n });\n\n result.sort(function (a, b) {\n if (a[0] < b[0]) {\n return 1;\n }\n if (a[0] > b[0]) {\n return -1;\n }\n if (a[0] === b[0]) {\n if (b[1].indexOf('.webp', b[1].length - 5) !== -1) {\n return 1;\n }\n if (a[1].indexOf('.webp', a[1].length - 5) !== -1) {\n return -1;\n }\n }\n return 0;\n });\n var bestSelectedSrc = '';\n var tmpOption = void 0;\n\n for (var i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n var next = result[i + 1];\n if (next && next[0] < containerWidth) {\n bestSelectedSrc = tmpOption[1];\n break;\n } else if (!next) {\n bestSelectedSrc = tmpOption[1];\n break;\n }\n }\n\n return bestSelectedSrc;\n}\n\nfunction find(arr, fn) {\n var item = void 0;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n item = arr[i];\n break;\n }\n }\n return item;\n}\n\nvar getDPR = function getDPR() {\n var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return inBrowser ? window.devicePixelRatio || scale : scale;\n};\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n var support = true;\n\n try {\n var elem = document.createElement('canvas');\n\n if (elem.getContext && elem.getContext('2d')) {\n support = elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;\n }\n } catch (err) {\n support = false;\n }\n\n return support;\n}\n\nfunction throttle(action, delay) {\n var timeout = null;\n var movement = null;\n var lastRun = 0;\n var needRun = false;\n return function () {\n needRun = true;\n if (timeout) {\n return;\n }\n var elapsed = Date.now() - lastRun;\n var context = this;\n var args = arguments;\n var runCallback = function runCallback() {\n lastRun = Date.now();\n timeout = false;\n action.apply(context, args);\n };\n if (elapsed >= delay) {\n runCallback();\n } else {\n timeout = setTimeout(runCallback, delay);\n }\n if (needRun) {\n clearTimeout(movement);\n movement = setTimeout(runCallback, 2 * delay);\n }\n };\n}\n\nfunction testSupportsPassive() {\n if (!inBrowser) return;\n var support = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nvar supportsPassive = testSupportsPassive();\n\nvar _ = {\n on: function on(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (supportsPassive) {\n el.addEventListener(type, func, {\n capture: capture,\n passive: true\n });\n } else {\n el.addEventListener(type, func, capture);\n }\n },\n off: function off(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n el.removeEventListener(type, func, capture);\n }\n};\n\nvar loadImageAsync = function loadImageAsync(item, resolve, reject) {\n var image = new Image();\n if (!item || !item.src) {\n var err = new Error('image src is required');\n return reject(err);\n }\n\n image.src = item.src;\n if (item.cors) {\n image.crossOrigin = item.cors;\n }\n\n image.onload = function () {\n resolve({\n naturalHeight: image.naturalHeight,\n naturalWidth: image.naturalWidth,\n src: image.src\n });\n };\n\n image.onerror = function (e) {\n reject(e);\n };\n};\n\nvar style = function style(el, prop) {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nvar overflow = function overflow(el) {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nvar scrollParent = function scrollParent(el) {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n var parent = el;\n\n while (parent) {\n if (parent === document.body || parent === document.documentElement) {\n break;\n }\n\n if (!parent.parentNode) {\n break;\n }\n\n if (/(scroll|auto)/.test(overflow(parent))) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return window;\n};\n\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\nfunction ObjectKeys(obj) {\n if (!(obj instanceof Object)) return [];\n if (Object.keys) {\n return Object.keys(obj);\n } else {\n var keys = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n var len = arrLike.length;\n var list = [];\n for (var i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nvar ImageCache = function () {\n function ImageCache(_ref) {\n var max = _ref.max;\n classCallCheck(this, ImageCache);\n\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n createClass(ImageCache, [{\n key: 'has',\n value: function has(key) {\n return this._caches.indexOf(key) > -1;\n }\n }, {\n key: 'add',\n value: function add(key) {\n if (this.has(key)) return;\n this._caches.push(key);\n if (this._caches.length > this.options.max) {\n this.free();\n }\n }\n }, {\n key: 'free',\n value: function free() {\n this._caches.shift();\n }\n }]);\n return ImageCache;\n}();\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nvar ReactiveListener = function () {\n function ReactiveListener(_ref) {\n var el = _ref.el,\n src = _ref.src,\n error = _ref.error,\n loading = _ref.loading,\n bindType = _ref.bindType,\n $parent = _ref.$parent,\n options = _ref.options,\n cors = _ref.cors,\n elRenderer = _ref.elRenderer,\n imageCache = _ref.imageCache;\n classCallCheck(this, ReactiveListener);\n\n this.el = el;\n this.src = src;\n this.error = error;\n this.loading = loading;\n this.bindType = bindType;\n this.attempt = 0;\n this.cors = cors;\n\n this.naturalHeight = 0;\n this.naturalWidth = 0;\n\n this.options = options;\n\n this.rect = null;\n\n this.$parent = $parent;\n this.elRenderer = elRenderer;\n this._imageCache = imageCache;\n this.performanceData = {\n init: Date.now(),\n loadStart: 0,\n loadEnd: 0\n };\n\n this.filter();\n this.initState();\n this.render('loading', false);\n }\n\n /*\r\n * init listener state\r\n * @return\r\n */\n\n\n createClass(ReactiveListener, [{\n key: 'initState',\n value: function initState() {\n if ('dataset' in this.el) {\n this.el.dataset.src = this.src;\n } else {\n this.el.setAttribute('data-src', this.src);\n }\n\n this.state = {\n loading: false,\n error: false,\n loaded: false,\n rendered: false\n };\n }\n\n /*\r\n * record performance\r\n * @return\r\n */\n\n }, {\n key: 'record',\n value: function record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\r\n * update image listener data\r\n * @param {String} image uri\r\n * @param {String} loading image uri\r\n * @param {String} error image uri\r\n * @return\r\n */\n\n }, {\n key: 'update',\n value: function update(_ref2) {\n var src = _ref2.src,\n loading = _ref2.loading,\n error = _ref2.error;\n\n var oldSrc = this.src;\n this.src = src;\n this.loading = loading;\n this.error = error;\n this.filter();\n if (oldSrc !== this.src) {\n this.attempt = 0;\n this.initState();\n }\n }\n\n /*\r\n * get el node rect\r\n * @return\r\n */\n\n }, {\n key: 'getRect',\n value: function getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\r\n * check el is in view\r\n * @return {Boolean} el is in view\r\n */\n\n }, {\n key: 'checkInView',\n value: function checkInView() {\n this.getRect();\n return this.rect.top < window.innerHeight * this.options.preLoad && this.rect.bottom > this.options.preLoadTop && this.rect.left < window.innerWidth * this.options.preLoad && this.rect.right > 0;\n }\n\n /*\r\n * listener filter\r\n */\n\n }, {\n key: 'filter',\n value: function filter() {\n var _this = this;\n\n ObjectKeys(this.options.filter).map(function (key) {\n _this.options.filter[key](_this, _this.options);\n });\n }\n\n /*\r\n * render loading first\r\n * @params cb:Function\r\n * @return\r\n */\n\n }, {\n key: 'renderLoading',\n value: function renderLoading(cb) {\n var _this2 = this;\n\n this.state.loading = true;\n loadImageAsync({\n src: this.loading,\n cors: this.cors\n }, function (data) {\n _this2.render('loading', false);\n _this2.state.loading = false;\n cb();\n }, function () {\n // handler `loading image` load failed\n cb();\n _this2.state.loading = false;\n if (!_this2.options.silent) console.warn('VueLazyload log: load failed with loading image(' + _this2.loading + ')');\n });\n }\n\n /*\r\n * try load image and render it\r\n * @return\r\n */\n\n }, {\n key: 'load',\n value: function load() {\n var _this3 = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.attempt > this.options.attempt - 1 && this.state.error) {\n if (!this.options.silent) console.log('VueLazyload log: ' + this.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n if (this.state.rendered && this.state.loaded) return;\n if (this._imageCache.has(this.src)) {\n this.state.loaded = true;\n this.render('loaded', true);\n this.state.rendered = true;\n return onFinish();\n }\n\n this.renderLoading(function () {\n _this3.attempt++;\n\n _this3.options.adapter['beforeLoad'] && _this3.options.adapter['beforeLoad'](_this3, _this3.options);\n _this3.record('loadStart');\n\n loadImageAsync({\n src: _this3.src,\n cors: _this3.cors\n }, function (data) {\n _this3.naturalHeight = data.naturalHeight;\n _this3.naturalWidth = data.naturalWidth;\n _this3.state.loaded = true;\n _this3.state.error = false;\n _this3.record('loadEnd');\n _this3.render('loaded', false);\n _this3.state.rendered = true;\n _this3._imageCache.add(_this3.src);\n onFinish();\n }, function (err) {\n !_this3.options.silent && console.error(err);\n _this3.state.error = true;\n _this3.state.loaded = false;\n _this3.render('error', false);\n });\n });\n }\n\n /*\r\n * render image\r\n * @param {String} state to render // ['loading', 'src', 'error']\r\n * @param {String} is form cache\r\n * @return\r\n */\n\n }, {\n key: 'render',\n value: function render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\r\n * output performance data\r\n * @return {Object} performance data\r\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var state = 'loading';\n var time = 0;\n\n if (this.state.loaded) {\n state = 'loaded';\n time = (this.performanceData.loadEnd - this.performanceData.loadStart) / 1000;\n }\n\n if (this.state.error) state = 'error';\n\n return {\n src: this.src,\n state: state,\n time: time\n };\n }\n\n /*\r\n * $destroy\r\n * @return\r\n */\n\n }, {\n key: '$destroy',\n value: function $destroy() {\n this.el = null;\n this.src = null;\n this.error = null;\n this.loading = null;\n this.bindType = null;\n this.attempt = 0;\n }\n }]);\n return ReactiveListener;\n}();\n\nvar DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nvar DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nvar DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nfunction Lazy(Vue) {\n return function () {\n function Lazy(_ref) {\n var preLoad = _ref.preLoad,\n error = _ref.error,\n throttleWait = _ref.throttleWait,\n preLoadTop = _ref.preLoadTop,\n dispatchEvent = _ref.dispatchEvent,\n loading = _ref.loading,\n attempt = _ref.attempt,\n _ref$silent = _ref.silent,\n silent = _ref$silent === undefined ? true : _ref$silent,\n scale = _ref.scale,\n listenEvents = _ref.listenEvents;\n _ref.hasbind;\n var filter = _ref.filter,\n adapter = _ref.adapter,\n observer = _ref.observer,\n observerOptions = _ref.observerOptions;\n classCallCheck(this, Lazy);\n\n this.version = '\"1.3.5\"';\n this.mode = modeType.event;\n this.ListenerQueue = [];\n this.TargetIndex = 0;\n this.TargetQueue = [];\n this.options = {\n silent: silent,\n dispatchEvent: !!dispatchEvent,\n throttleWait: throttleWait || 200,\n preLoad: preLoad || 1.3,\n preLoadTop: preLoadTop || 0,\n error: error || DEFAULT_URL,\n loading: loading || DEFAULT_URL,\n attempt: attempt || 3,\n scale: scale || getDPR(scale),\n ListenEvents: listenEvents || DEFAULT_EVENTS,\n hasbind: false,\n supportWebp: supportWebp(),\n filter: filter || {},\n adapter: adapter || {},\n observer: !!observer,\n observerOptions: observerOptions || DEFAULT_OBSERVER_OPTIONS\n };\n this._initEvent();\n this._imageCache = new ImageCache({ max: 200 });\n this.lazyLoadHandler = throttle(this._lazyLoadHandler.bind(this), this.options.throttleWait);\n\n this.setMode(this.options.observer ? modeType.observer : modeType.event);\n }\n\n /**\r\n * update config\r\n * @param {Object} config params\r\n * @return\r\n */\n\n\n createClass(Lazy, [{\n key: 'config',\n value: function config() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n assignDeep(this.options, options);\n }\n\n /**\r\n * output listener's load performance\r\n * @return {Array}\r\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var list = [];\n\n this.ListenerQueue.map(function (item) {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\r\n * add lazy component to queue\r\n * @param {Vue} vm lazy component instance\r\n * @return\r\n */\n\n }, {\n key: 'addLazyBox',\n value: function addLazyBox(vm) {\n this.ListenerQueue.push(vm);\n if (inBrowser) {\n this._addListenerTarget(window);\n this._observer && this._observer.observe(vm.el);\n if (vm.$el && vm.$el.parentNode) {\n this._addListenerTarget(vm.$el.parentNode);\n }\n }\n }\n\n /*\r\n * add image listener to queue\r\n * @param {DOM} el\r\n * @param {object} binding vue directive binding\r\n * @param {vnode} vnode vue directive vnode\r\n * @return\r\n */\n\n }, {\n key: 'add',\n value: function add(el, binding, vnode) {\n var _this = this;\n\n if (some(this.ListenerQueue, function (item) {\n return item.el === el;\n })) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n var _valueFormatter2 = this._valueFormatter(binding.value),\n src = _valueFormatter2.src,\n loading = _valueFormatter2.loading,\n error = _valueFormatter2.error,\n cors = _valueFormatter2.cors;\n\n Vue.nextTick(function () {\n src = getBestSelectionFromSrcset(el, _this.options.scale) || src;\n _this._observer && _this._observer.observe(el);\n\n var container = Object.keys(binding.modifiers)[0];\n var $parent = void 0;\n\n if (container) {\n $parent = vnode.context.$refs[container];\n // if there is container passed in, try ref first, then fallback to getElementById to support the original usage\n $parent = $parent ? $parent.$el || $parent : document.getElementById(container);\n }\n\n if (!$parent) {\n $parent = scrollParent(el);\n }\n\n var newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent: $parent,\n el: el,\n loading: loading,\n error: error,\n src: src,\n cors: cors,\n elRenderer: _this._elRenderer.bind(_this),\n options: _this.options,\n imageCache: _this._imageCache\n });\n\n _this.ListenerQueue.push(newListener);\n\n if (inBrowser) {\n _this._addListenerTarget(window);\n _this._addListenerTarget($parent);\n }\n\n _this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this.lazyLoadHandler();\n });\n });\n }\n\n /**\r\n * update image src\r\n * @param {DOM} el\r\n * @param {object} vue directive binding\r\n * @return\r\n */\n\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var _this2 = this;\n\n var _valueFormatter3 = this._valueFormatter(binding.value),\n src = _valueFormatter3.src,\n loading = _valueFormatter3.loading,\n error = _valueFormatter3.error;\n\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n var exist = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src: src,\n loading: loading,\n error: error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this2.lazyLoadHandler();\n });\n }\n\n /**\r\n * remove listener form list\r\n * @param {DOM} el\r\n * @return\r\n */\n\n }, {\n key: 'remove',\n value: function remove$1(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n var existItem = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\r\n * remove lazy components form list\r\n * @param {Vue} vm Vue instance\r\n * @return\r\n */\n\n }, {\n key: 'removeComponent',\n value: function removeComponent(vm) {\n if (!vm) return;\n remove(this.ListenerQueue, vm);\n this._observer && this._observer.unobserve(vm.el);\n if (vm.$parent && vm.$el.parentNode) {\n this._removeListenerTarget(vm.$el.parentNode);\n }\n this._removeListenerTarget(window);\n }\n }, {\n key: 'setMode',\n value: function setMode(mode) {\n var _this3 = this;\n\n if (!hasIntersectionObserver && mode === modeType.observer) {\n mode = modeType.event;\n }\n\n this.mode = mode; // event or observer\n\n if (mode === modeType.event) {\n if (this._observer) {\n this.ListenerQueue.forEach(function (listener) {\n _this3._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\r\n *** Private functions ***\r\n */\n\n /*\r\n * add listener target\r\n * @param {DOM} el listener target\r\n * @return\r\n */\n\n }, {\n key: '_addListenerTarget',\n value: function _addListenerTarget(el) {\n if (!el) return;\n var target = find(this.TargetQueue, function (target) {\n return target.el === el;\n });\n if (!target) {\n target = {\n el: el,\n id: ++this.TargetIndex,\n childrenCount: 1,\n listened: true\n };\n this.mode === modeType.event && this._initListen(target.el, true);\n this.TargetQueue.push(target);\n } else {\n target.childrenCount++;\n }\n return this.TargetIndex;\n }\n\n /*\r\n * remove listener target or reduce target childrenCount\r\n * @param {DOM} el or window\r\n * @return\r\n */\n\n }, {\n key: '_removeListenerTarget',\n value: function _removeListenerTarget(el) {\n var _this4 = this;\n\n this.TargetQueue.forEach(function (target, index) {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n _this4._initListen(target.el, false);\n _this4.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\r\n * add or remove eventlistener\r\n * @param {DOM} el DOM or Window\r\n * @param {boolean} start flag\r\n * @return\r\n */\n\n }, {\n key: '_initListen',\n value: function _initListen(el, start) {\n var _this5 = this;\n\n this.options.ListenEvents.forEach(function (evt) {\n return _[start ? 'on' : 'off'](el, evt, _this5.lazyLoadHandler);\n });\n }\n }, {\n key: '_initEvent',\n value: function _initEvent() {\n var _this6 = this;\n\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = function (event, func) {\n if (!_this6.Event.listeners[event]) _this6.Event.listeners[event] = [];\n _this6.Event.listeners[event].push(func);\n };\n\n this.$once = function (event, func) {\n var vm = _this6;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n _this6.$on(event, on);\n };\n\n this.$off = function (event, func) {\n if (!func) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].length = 0;\n return;\n }\n remove(_this6.Event.listeners[event], func);\n };\n\n this.$emit = function (event, context, inCache) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].forEach(function (func) {\n return func(context, inCache);\n });\n };\n }\n\n /**\r\n * find nodes which in viewport and trigger load\r\n * @return\r\n */\n\n }, {\n key: '_lazyLoadHandler',\n value: function _lazyLoadHandler() {\n var _this7 = this;\n\n var freeList = [];\n this.ListenerQueue.forEach(function (listener, index) {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n var catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(function (item) {\n remove(_this7.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\r\n * init IntersectionObserver\r\n * set mode to observer\r\n * @return\r\n */\n\n }, {\n key: '_initIntersectionObserver',\n value: function _initIntersectionObserver() {\n var _this8 = this;\n\n if (!hasIntersectionObserver) return;\n this._observer = new IntersectionObserver(this._observerHandler.bind(this), this.options.observerOptions);\n if (this.ListenerQueue.length) {\n this.ListenerQueue.forEach(function (listener) {\n _this8._observer.observe(listener.el);\n });\n }\n }\n\n /**\r\n * init IntersectionObserver\r\n * @return\r\n */\n\n }, {\n key: '_observerHandler',\n value: function _observerHandler(entries, observer) {\n var _this9 = this;\n\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n _this9.ListenerQueue.forEach(function (listener) {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return _this9._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\r\n * set element attribute with image'url and state\r\n * @param {object} lazyload listener object\r\n * @param {string} state will be rendered\r\n * @param {bool} inCache is rendered from cache\r\n * @return\r\n */\n\n }, {\n key: '_elRenderer',\n value: function _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n var el = listener.el,\n bindType = listener.bindType;\n\n\n var src = void 0;\n switch (state) {\n case 'loading':\n src = listener.loading;\n break;\n case 'error':\n src = listener.error;\n break;\n default:\n src = listener.src;\n break;\n }\n\n if (bindType) {\n el.style[bindType] = 'url(\"' + src + '\")';\n } else if (el.getAttribute('src') !== src) {\n el.setAttribute('src', src);\n }\n\n el.setAttribute('lazy', state);\n\n this.$emit(state, listener, cache);\n this.options.adapter[state] && this.options.adapter[state](listener, this.options);\n\n if (this.options.dispatchEvent) {\n var event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\r\n * generate loading loaded error image url\r\n * @param {string} image's src\r\n * @return {object} image's loading, loaded, error url\r\n */\n\n }, {\n key: '_valueFormatter',\n value: function _valueFormatter(value) {\n var src = value;\n var loading = this.options.loading;\n var error = this.options.error;\n\n // value is object\n if (isObject(value)) {\n if (!value.src && !this.options.silent) console.error('Vue Lazyload warning: miss src with ' + value);\n src = value.src;\n loading = value.loading || this.options.loading;\n error = value.error || this.options.error;\n }\n return {\n src: src,\n loading: loading,\n error: error\n };\n }\n }]);\n return Lazy;\n }();\n}\n\nLazy.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n }\n};\n\nvar LazyComponent = function LazyComponent(lazy) {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h) {\n return h(this.tag, null, this.show ? this.$slots.default : null);\n },\n data: function data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazy.removeComponent(this);\n },\n\n methods: {\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazy.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazy.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy: function destroy() {\n return this.$destroy;\n }\n }\n };\n};\n\nLazyComponent.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n Vue.component('lazy-component', LazyComponent(lazy));\n};\n\nvar LazyContainerMananger = function () {\n function LazyContainerMananger(_ref) {\n var lazy = _ref.lazy;\n classCallCheck(this, LazyContainerMananger);\n\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n createClass(LazyContainerMananger, [{\n key: 'bind',\n value: function bind(el, binding, vnode) {\n var container = new LazyContainer({ el: el, binding: binding, vnode: vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.update({ el: el, binding: binding, vnode: vnode });\n }\n }, {\n key: 'unbind',\n value: function unbind(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n }]);\n return LazyContainerMananger;\n}();\n\n\nvar defaultOptions = {\n selector: 'img'\n};\n\nvar LazyContainer = function () {\n function LazyContainer(_ref2) {\n var el = _ref2.el,\n binding = _ref2.binding,\n vnode = _ref2.vnode,\n lazy = _ref2.lazy;\n classCallCheck(this, LazyContainer);\n\n this.el = null;\n this.vnode = vnode;\n this.binding = binding;\n this.options = {};\n this.lazy = lazy;\n\n this._queue = [];\n this.update({ el: el, binding: binding });\n }\n\n createClass(LazyContainer, [{\n key: 'update',\n value: function update(_ref3) {\n var _this = this;\n\n var el = _ref3.el,\n binding = _ref3.binding;\n\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n _this.lazy.add(el, assignDeep({}, _this.binding, {\n value: {\n src: 'dataset' in el ? el.dataset.src : el.getAttribute('data-src'),\n error: ('dataset' in el ? el.dataset.error : el.getAttribute('data-error')) || _this.options.error,\n loading: ('dataset' in el ? el.dataset.loading : el.getAttribute('data-loading')) || _this.options.loading\n }\n }), _this.vnode);\n });\n }\n }, {\n key: 'getImgs',\n value: function getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this2 = this;\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n return _this2.lazy.remove(el);\n });\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n }]);\n return LazyContainer;\n}();\n\nLazyContainer.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainer({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n if (isVue2) {\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n};\n\nvar LazyImage = function LazyImage(lazyManager) {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render: function render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n options: {\n src: '',\n error: '',\n loading: '',\n attempt: lazyManager.options.attempt\n },\n state: {\n loaded: false,\n error: false,\n attempt: 0\n },\n rect: {},\n renderSrc: ''\n };\n },\n\n watch: {\n src: function src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created: function created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n\n methods: {\n init: function init() {\n var _lazyManager$_valueFo = lazyManager._valueFormatter(this.src),\n src = _lazyManager$_valueFo.src,\n loading = _lazyManager$_valueFo.loading,\n error = _lazyManager$_valueFo.error;\n\n this.state.loaded = false;\n this.options.src = src;\n this.options.error = error;\n this.options.loading = loading;\n this.renderSrc = this.options.loading;\n },\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazyManager.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazyManager.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n var _this = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.state.attempt > this.options.attempt - 1 && this.state.error) {\n if (!lazyManager.options.silent) console.log('VueLazyload log: ' + this.options.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n var src = this.options.src;\n loadImageAsync({ src: src }, function (_ref) {\n var src = _ref.src;\n\n _this.renderSrc = src;\n _this.state.loaded = true;\n }, function (e) {\n _this.state.attempt++;\n _this.renderSrc = _this.options.error;\n _this.state.error = true;\n });\n }\n }\n };\n};\n\nLazyImage.install = function (Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n Vue.component('lazy-image', LazyImage(lazy));\n};\n\nvar index = {\n /*\r\n * install function\r\n * @param {Vue} Vue\r\n * @param {object} options lazyload options\r\n */\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainerMananger({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n\n Vue.prototype.$Lazyload = lazy;\n\n if (options.lazyComponent) {\n Vue.component('lazy-component', LazyComponent(lazy));\n }\n\n if (options.lazyImage) {\n Vue.component('lazy-image', LazyImage(lazy));\n }\n\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport { Lazy, LazyComponent, LazyContainerMananger as LazyContainer, LazyImage, index as default };\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","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-notification\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-notification\"] = factory(root[\"vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_20__) {\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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\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, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\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 = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return events; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);\n\n\nvar events = new __WEBPACK_IMPORTED_MODULE_0_vue___default.a({ name: 'vue-notification' });\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Notifications_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\nvar Notify = {\n install: function install(Vue) {\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.installed) {\n return;\n }\n\n this.installed = true;\n this.params = args;\n\n Vue.component(args.componentName || 'notifications', __WEBPACK_IMPORTED_MODULE_0__Notifications_vue___default.a);\n\n var notify = function notify(params) {\n if (typeof params === 'string') {\n params = { title: '', text: params };\n }\n\n if ((typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$emit('add', params);\n }\n };\n\n notify.close = function (id) {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$emit('close', id);\n };\n\n var name = args.name || 'notify';\n\n Vue.prototype['$' + name] = notify;\n Vue[name] = notify;\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Notify);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(17)\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(5),\n /* template */\n __webpack_require__(15),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'CssGroup',\n props: ['name']\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__defaults__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__ = __webpack_require__(13);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__CssGroup_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__parser__ = __webpack_require__(8);\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar STATE = {\n IDLE: 0,\n DESTROYED: 2\n};\n\nvar Component = {\n name: 'Notifications',\n components: {\n VelocityGroup: __WEBPACK_IMPORTED_MODULE_4__VelocityGroup_vue___default.a,\n CssGroup: __WEBPACK_IMPORTED_MODULE_5__CssGroup_vue___default.a\n },\n props: {\n group: {\n type: String,\n default: ''\n },\n\n width: {\n type: [Number, String],\n default: 300\n },\n\n reverse: {\n type: Boolean,\n default: false\n },\n\n position: {\n type: [String, Array],\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].position;\n }\n },\n\n classes: {\n type: String,\n default: 'vue-notification'\n },\n\n animationType: {\n type: String,\n default: 'css',\n validator: function validator(value) {\n return value === 'css' || value === 'velocity';\n }\n },\n\n animation: {\n type: Object,\n default: function _default() {\n return __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].velocityAnimation;\n }\n },\n\n animationName: {\n type: String,\n default: __WEBPACK_IMPORTED_MODULE_3__defaults__[\"a\" /* default */].cssAnimation\n },\n\n speed: {\n type: Number,\n default: 300\n },\n\n cooldown: {\n type: Number,\n default: 0\n },\n\n duration: {\n type: Number,\n default: 3000\n },\n\n delay: {\n type: Number,\n default: 0\n },\n\n max: {\n type: Number,\n default: Infinity\n },\n\n ignoreDuplicates: {\n type: Boolean,\n default: false\n },\n\n closeOnClick: {\n type: Boolean,\n default: true\n }\n },\n data: function data() {\n return {\n list: [],\n velocity: __WEBPACK_IMPORTED_MODULE_0__index__[\"default\"].params.velocity\n };\n },\n mounted: function mounted() {\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$on('add', this.addItem);\n __WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* events */].$on('close', this.closeItem);\n },\n\n computed: {\n actualWidth: function actualWidth() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_6__parser__[\"a\" /* default */])(this.width);\n },\n isVA: function isVA() {\n return this.animationType === 'velocity';\n },\n componentName: function componentName() {\n return this.isVA ? 'VelocityGroup' : 'CssGroup';\n },\n styles: function styles() {\n var _listToDirection = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"a\" /* listToDirection */])(this.position),\n x = _listToDirection.x,\n y = _listToDirection.y;\n\n var width = this.actualWidth.value;\n var suffix = this.actualWidth.type;\n\n var styles = _defineProperty({\n width: width + suffix\n }, y, '0px');\n\n if (x === 'center') {\n styles['left'] = 'calc(50% - ' + width / 2 + suffix + ')';\n } else {\n styles[x] = '0px';\n }\n\n return styles;\n },\n active: function active() {\n return this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n },\n botToTop: function botToTop() {\n return this.styles.hasOwnProperty('bottom');\n }\n },\n methods: {\n destroyIfNecessary: function destroyIfNecessary(item) {\n if (this.closeOnClick) {\n this.destroy(item);\n }\n },\n addItem: function addItem(event) {\n var _this = this;\n\n event.group = event.group || '';\n\n if (this.group !== event.group) {\n return;\n }\n\n if (event.clean || event.clear) {\n this.destroyAll();\n return;\n }\n\n var duration = typeof event.duration === 'number' ? event.duration : this.duration;\n\n var speed = typeof event.speed === 'number' ? event.speed : this.speed;\n\n var ignoreDuplicates = typeof event.ignoreDuplicates === 'boolean' ? event.ignoreDuplicates : this.ignoreDuplicates;\n\n var title = event.title,\n text = event.text,\n type = event.type,\n data = event.data,\n id = event.id;\n\n\n var item = {\n id: id || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__util__[\"b\" /* Id */])(),\n title: title,\n text: text,\n type: type,\n state: STATE.IDLE,\n speed: speed,\n length: duration + 2 * speed,\n data: data\n };\n\n if (duration >= 0) {\n item.timer = setTimeout(function () {\n _this.destroy(item);\n }, item.length);\n }\n\n var direction = this.reverse ? !this.botToTop : this.botToTop;\n\n var indexToDestroy = -1;\n\n var isDuplicate = this.active.some(function (item) {\n return item.title === event.title && item.text === event.text;\n });\n\n var canAdd = ignoreDuplicates ? !isDuplicate : true;\n\n if (!canAdd) return;\n\n if (direction) {\n this.list.push(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = 0;\n }\n } else {\n this.list.unshift(item);\n\n if (this.active.length > this.max) {\n indexToDestroy = this.active.length - 1;\n }\n }\n\n if (indexToDestroy !== -1) {\n this.destroy(this.active[indexToDestroy]);\n }\n },\n closeItem: function closeItem(id) {\n this.destroyById(id);\n },\n notifyClass: function notifyClass(item) {\n return ['vue-notification-template', this.classes, item.type];\n },\n notifyWrapperStyle: function notifyWrapperStyle(item) {\n return this.isVA ? null : { transition: 'all ' + item.speed + 'ms' };\n },\n destroy: function destroy(item) {\n clearTimeout(item.timer);\n item.state = STATE.DESTROYED;\n\n if (!this.isVA) {\n this.clean();\n }\n },\n destroyById: function destroyById(id) {\n var item = this.list.find(function (v) {\n return v.id === id;\n });\n\n if (item) {\n this.destroy(item);\n }\n },\n destroyAll: function destroyAll() {\n this.active.forEach(this.destroy);\n },\n getAnimation: function getAnimation(index, el) {\n var animation = this.animation[index];\n\n return typeof animation === 'function' ? animation.call(this, el) : animation;\n },\n enter: function enter(_ref) {\n var el = _ref.el,\n complete = _ref.complete;\n\n var animation = this.getAnimation('enter', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n leave: function leave(_ref2) {\n var el = _ref2.el,\n complete = _ref2.complete;\n\n var animation = this.getAnimation('leave', el);\n\n this.velocity(el, animation, {\n duration: this.speed,\n complete: complete\n });\n },\n clean: function clean() {\n this.list = this.list.filter(function (v) {\n return v.state !== STATE.DESTROYED;\n });\n }\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component);\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'VelocityGroup',\n methods: {\n enter: function enter(el, complete) {\n this.$emit('enter', { el: el, complete: complete });\n },\n leave: function leave(el, complete) {\n this.$emit('leave', { el: el, complete: complete });\n },\n afterLeave: function afterLeave() {\n this.$emit('afterLeave');\n }\n }\n});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n position: ['top', 'right'],\n cssAnimation: 'vn-fade',\n velocityAnimation: {\n enter: function enter(el) {\n var height = el.clientHeight;\n\n return {\n height: [height, 0],\n opacity: [1, 0]\n };\n },\n leave: {\n height: 0,\n opacity: [0, 1]\n }\n }\n});\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export parse */\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar floatRegexp = '[-+]?[0-9]*.?[0-9]+';\n\nvar types = [{\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + 'px$')\n}, {\n name: '%',\n regexp: new RegExp('^' + floatRegexp + '%$')\n}, {\n name: 'px',\n regexp: new RegExp('^' + floatRegexp + '$')\n}];\n\nvar getType = function getType(value) {\n if (value === 'auto') {\n return {\n type: value,\n value: 0\n };\n }\n\n for (var i = 0; i < types.length; i++) {\n var type = types[i];\n if (type.regexp.test(value)) {\n return {\n type: type.name,\n value: parseFloat(value)\n };\n }\n }\n\n return {\n type: '',\n value: value\n };\n};\n\nvar parse = function parse(value) {\n switch (typeof value === 'undefined' ? 'undefined' : _typeof(value)) {\n case 'number':\n return { type: 'px', value: value };\n case 'string':\n return getType(value);\n default:\n return { type: '', value: value };\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (parse);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return Id; });\n/* unused harmony export split */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return listToDirection; });\nvar directions = {\n x: ['left', 'center', 'right'],\n y: ['top', 'bottom']\n};\n\nvar Id = function (i) {\n return function () {\n return i++;\n };\n}(0);\n\nvar split = function split(value) {\n if (typeof value !== 'string') {\n return [];\n }\n\n return value.split(/\\s+/gi).filter(function (v) {\n return v;\n });\n};\n\nvar listToDirection = function listToDirection(value) {\n if (typeof value === 'string') {\n value = split(value);\n }\n\n var x = null;\n var y = null;\n\n value.forEach(function (v) {\n if (directions.y.indexOf(v) !== -1) {\n y = v;\n }\n if (directions.x.indexOf(v) !== -1) {\n x = v;\n }\n });\n\n return { x: x, y: y };\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(11)();\n// imports\n\n\n// module\nexports.push([module.i, \".vue-notification-group{display:block;position:fixed;z-index:5000}.vue-notification-wrapper{display:block;overflow:hidden;width:100%;margin:0;padding:0}.notification-title{font-weight:600}.vue-notification-template{background:#fff}.vue-notification,.vue-notification-template{display:block;box-sizing:border-box;text-align:left}.vue-notification{font-size:12px;padding:10px;margin:0 5px 5px;color:#fff;background:#44a4fc;border-left:5px solid #187fe7}.vue-notification.warn{background:#ffb648;border-left-color:#f48a06}.vue-notification.error{background:#e54d42;border-left-color:#b82e24}.vue-notification.success{background:#68cd86;border-left-color:#42a85f}.vn-fade-enter-active,.vn-fade-leave-active,.vn-fade-move{transition:all .5s}.vn-fade-enter,.vn-fade-leave-to{opacity:0}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(4),\n /* template */\n __webpack_require__(16),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(0)(\n /* script */\n __webpack_require__(6),\n /* template */\n __webpack_require__(14),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"css\": false\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.afterLeave\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"vue-notification-group\",\n style: (_vm.styles)\n }, [_c(_vm.componentName, {\n tag: \"component\",\n attrs: {\n \"name\": _vm.animationName\n },\n on: {\n \"enter\": _vm.enter,\n \"leave\": _vm.leave,\n \"after-leave\": _vm.clean\n }\n }, _vm._l((_vm.active), function(item) {\n return _c('div', {\n key: item.id,\n staticClass: \"vue-notification-wrapper\",\n style: (_vm.notifyWrapperStyle(item)),\n attrs: {\n \"data-id\": item.id\n }\n }, [_vm._t(\"body\", [_c('div', {\n class: _vm.notifyClass(item),\n on: {\n \"click\": function($event) {\n return _vm.destroyIfNecessary(item)\n }\n }\n }, [(item.title) ? _c('div', {\n staticClass: \"notification-title\",\n domProps: {\n \"innerHTML\": _vm._s(item.title)\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"notification-content\",\n domProps: {\n \"innerHTML\": _vm._s(item.text)\n }\n })])], {\n \"item\": item,\n \"close\": function () { return _vm.destroy(item); }\n })], 2)\n }), 0)], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition-group', {\n attrs: {\n \"name\": _vm.name\n }\n }, [_vm._t(\"default\")], 2)\n},staticRenderFns: []}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a