diff --git a/config/sync/block.block.cart.yml b/config/sync/block.block.cart.yml index d12867cd..5f338506 100644 --- a/config/sync/block.block.cart.yml +++ b/config/sync/block.block.cart.yml @@ -1,6 +1,6 @@ uuid: 90f98c52-9624-4758-9c38-3904d5ef5faa langcode: en -status: true +status: false dependencies: module: - commerce_cart diff --git a/config/sync/block.block.materiosimplenewssubscription.yml b/config/sync/block.block.materiosimplenewssubscription.yml index 5aa0b906..864986a2 100644 --- a/config/sync/block.block.materiosimplenewssubscription.yml +++ b/config/sync/block.block.materiosimplenewssubscription.yml @@ -20,8 +20,7 @@ settings: label_display: '0' newsletters: materio_newsletter: materio_newsletter - ze_daily_materio_: ze_daily_materio_ - message: 'Stay informed - subscribe to our newsletter.' + message: 'Subscribe to our monthly newsletter.' unique_id: d0c7bdf4-c218-4ded-840a-9c4c731ec469 visibility: view_inclusion: diff --git a/web/modules/custom/materio_simplenews/src/Form/MaterioSubscriptionsBlockForm.php b/web/modules/custom/materio_simplenews/src/Form/MaterioSubscriptionsBlockForm.php index 780ac235..d4075368 100644 --- a/web/modules/custom/materio_simplenews/src/Form/MaterioSubscriptionsBlockForm.php +++ b/web/modules/custom/materio_simplenews/src/Form/MaterioSubscriptionsBlockForm.php @@ -47,10 +47,10 @@ class MaterioSubscriptionsBlockForm extends SubscriptionsFormBase { $form = parent::form($form, $form_state); - // $form['message'] = array( - // '#type' => 'item', - // '#markup' => $this->message, - // ); + $form['message'] = array( + '#type' => 'item', + '#markup' => $this->message, + ); unset($form['subscriptions']['widget']['#title']); unset($form['subscriptions']['widget']['#description']); diff --git a/web/themes/custom/materiotheme/assets/dist/main.css b/web/themes/custom/materiotheme/assets/dist/main.css index 63935fd1..eb7af145 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.css +++ b/web/themes/custom/materiotheme/assets/dist/main.css @@ -2029,6 +2029,9 @@ article.card { #showrooms article.showroom figure img { max-width: 100%; } +body:not(.path-home) footer[role="contentinfo"] { + display: none; } + footer[role="contentinfo"] #block-materiosimplenewssubscription form { display: flex; flex-flow: row nowrap; @@ -2044,6 +2047,8 @@ footer[role="contentinfo"] #block-materiosimplenewssubscription form { display: flex; flex-flow: row nowrap; align-items: center; } + footer[role="contentinfo"] #block-materiosimplenewssubscription form #edit-subscriptions input { + margin-right: 0.3em; } footer[role="contentinfo"] #block-materiosimplenewssubscription form #edit-mail-wrapper input[type="email"] { width: 10em; } footer[role="contentinfo"] #block-materiosimplenewssubscription form #edit-actions--2 input[type="submit"] { diff --git a/web/themes/custom/materiotheme/assets/dist/main.js b/web/themes/custom/materiotheme/assets/dist/main.js index afea55af..5b9f9a0e 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.js +++ b/web/themes/custom/materiotheme/assets/dist/main.js @@ -28,6 +28,7 @@ eval("module.exports = __webpack_require__(/*! ./lib/axios */ \"./node_modules/a \************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 19:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -41,6 +42,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \*****************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 49:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -54,6 +56,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/ \*************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 18:0-14 */ /***/ ((module) => { "use strict"; @@ -67,6 +70,7 @@ eval("\n/**\n * A `Cancel` is an object that is thrown when an operation is canc \******************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 59:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -80,6 +84,7 @@ eval("\n\nvar Cancel = __webpack_require__(/*! ./Cancel */ \"./node_modules/axio \***************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 3:0-14 */ /***/ ((module) => { "use strict"; @@ -93,6 +98,7 @@ eval("\n\nmodule.exports = function isCancel(value) {\n return !!(value && valu \**********************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 96:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -106,6 +112,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \***********************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 55:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -119,6 +126,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \******************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 17:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -132,6 +140,7 @@ eval("\n\nvar isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL * \****************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 16:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -145,6 +154,7 @@ eval("\n\nvar enhanceError = __webpack_require__(/*! ./enhanceError */ \"./node_ \********************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 28:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -158,6 +168,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \*****************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 13:0-14 */ /***/ ((module) => { "use strict"; @@ -171,6 +182,7 @@ eval("\n/**\n * Update an Error with the specified config, error code, and respo \****************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 14:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -184,6 +196,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios \***********************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 13:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -197,6 +210,7 @@ eval("\n\nvar createError = __webpack_require__(/*! ./createError */ \"./node_mo \******************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 14:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -210,6 +224,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \********************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 94:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -223,6 +238,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/axios/ \************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 3:0-14 */ /***/ ((module) => { "use strict"; @@ -236,6 +252,7 @@ eval("\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap( \****************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 17:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -249,6 +266,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \*******************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 10:0-14 */ /***/ ((module) => { "use strict"; @@ -262,6 +280,7 @@ eval("\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param \***************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 5:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -275,6 +294,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \*********************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 9:0-14 */ /***/ ((module) => { "use strict"; @@ -288,6 +308,7 @@ eval("\n/**\n * Determines whether the specified URL is absolute\n *\n * @param \***********************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 5:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -301,6 +322,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \***************************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 5:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -314,6 +336,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/axios \********************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 22:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -327,6 +350,7 @@ eval("\n\nvar utils = __webpack_require__(/*! ./../utils */ \"./node_modules/axi \**************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 23:0-14 */ /***/ ((module) => { "use strict"; @@ -340,6 +364,7 @@ eval("\n/**\n * Syntactic sugar for invoking a function and expanding an array f \*****************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 350:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -370,6 +395,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \********************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 126:0-14 */ /***/ ((module) => { "use strict"; @@ -383,6 +409,7 @@ eval("\n\nvar isMergeableObject = function isMergeableObject(value) {\n return \***********************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, __webpack_require__ */ +/*! CommonJS bailout: module.exports is used directly at 176:0-14 */ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var parser = __webpack_require__(/*! graphql/language/parser */ \"./node_modules/graphql/language/parser.js\");\n\nvar parse = parser.parse; // Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\n\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n} // A map docString -> graphql document\n\n\nvar docCache = {}; // A map fragmentName -> [normalized source]\n\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n} // For testing.\n\n\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n} // Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\n\n\nvar printFragmentWarnings = true;\n\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); // We know something about this fragment\n\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\" + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\" + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n } // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n\n\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n } // https://github.com/apollographql/graphql-tag/issues/40\n\n\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\n\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, {\n experimentalFragmentVariables: experimentalFragmentVariables\n });\n\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n } // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n\n\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n} // XXX This should eventually disallow arbitrary string interpolation, like Relay does\n\n\nfunction gql()\n/* arguments */\n{\n var args = Array.prototype.slice.call(arguments);\n var literals = args[0]; // We always get literals[0] and then matching post literals for each arg given\n\n var result = typeof literals === \"string\" ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n} // Support typescript, which isn't as nice as Babel about default exports\n\n\ngql.default = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\nmodule.exports = gql;\n\n//# sourceURL=webpack://materio.com/./node_modules/graphql-tag/src/index.js?"); @@ -764,6 +791,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); \************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 29:0-14 */ /***/ ((module) => { "use strict"; @@ -777,6 +805,7 @@ eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission \************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 39:0-14 */ /***/ ((module) => { "use strict"; @@ -840,6 +869,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \************************************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, top-level-this-exports */ +/*! CommonJS bailout: this is used directly at 8:2-6 */ +/*! CommonJS bailout: module.exports is used directly at 7:60-74 */ /***/ (function(module) { eval("/*!\n * vue-infinite-loading v2.4.5\n * (c) 2016-2020 PeachScript\n * MIT License\n */\n!function (t, e) {\n true ? module.exports = e() : 0;\n}(this, function () {\n return function (t) {\n var e = {};\n\n function n(i) {\n if (e[i]) return e[i].exports;\n var a = e[i] = {\n i: i,\n l: !1,\n exports: {}\n };\n return t[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports;\n }\n\n return n.m = t, n.c = e, n.d = function (t, e, i) {\n n.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: i\n });\n }, n.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, n.t = function (t, e) {\n if (1 & e && (t = n(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var i = Object.create(null);\n if (n.r(i), Object.defineProperty(i, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var a in t) n.d(i, a, function (e) {\n return t[e];\n }.bind(null, a));\n return i;\n }, n.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return n.d(e, \"a\", e), e;\n }, n.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, n.p = \"\", n(n.s = 9);\n }([function (t, e, n) {\n var i = n(6);\n \"string\" == typeof i && (i = [[t.i, i, \"\"]]), i.locals && (t.exports = i.locals);\n (0, n(3).default)(\"6223ff68\", i, !0, {});\n }, function (t, e, n) {\n var i = n(8);\n \"string\" == typeof i && (i = [[t.i, i, \"\"]]), i.locals && (t.exports = i.locals);\n (0, n(3).default)(\"27f0e51f\", i, !0, {});\n }, function (t, e) {\n t.exports = function (t) {\n var e = [];\n return e.toString = function () {\n return this.map(function (e) {\n var n = function (t, e) {\n var n = t[1] || \"\",\n i = t[3];\n if (!i) return n;\n\n if (e && \"function\" == typeof btoa) {\n var a = (o = i, \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(o)))) + \" */\"),\n r = i.sources.map(function (t) {\n return \"/*# sourceURL=\" + i.sourceRoot + t + \" */\";\n });\n return [n].concat(r).concat([a]).join(\"\\n\");\n }\n\n var o;\n return [n].join(\"\\n\");\n }(e, t);\n\n return e[2] ? \"@media \" + e[2] + \"{\" + n + \"}\" : n;\n }).join(\"\");\n }, e.i = function (t, n) {\n \"string\" == typeof t && (t = [[null, t, \"\"]]);\n\n for (var i = {}, a = 0; a < this.length; a++) {\n var r = this[a][0];\n \"number\" == typeof r && (i[r] = !0);\n }\n\n for (a = 0; a < t.length; a++) {\n var o = t[a];\n \"number\" == typeof o[0] && i[o[0]] || (n && !o[2] ? o[2] = n : n && (o[2] = \"(\" + o[2] + \") and (\" + n + \")\"), e.push(o));\n }\n }, e;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n function i(t, e) {\n for (var n = [], i = {}, a = 0; a < e.length; a++) {\n var r = e[a],\n o = r[0],\n s = {\n id: t + \":\" + a,\n css: r[1],\n media: r[2],\n sourceMap: r[3]\n };\n i[o] ? i[o].parts.push(s) : n.push(i[o] = {\n id: o,\n parts: [s]\n });\n }\n\n return n;\n }\n\n n.r(e), n.d(e, \"default\", function () {\n return f;\n });\n var a = \"undefined\" != typeof document;\n if (\"undefined\" != typeof DEBUG && DEBUG && !a) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n\n var r = {},\n o = a && (document.head || document.getElementsByTagName(\"head\")[0]),\n s = null,\n l = 0,\n d = !1,\n c = function () {},\n u = null,\n p = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n\n function f(t, e, n, a) {\n d = n, u = a || {};\n var o = i(t, e);\n return b(o), function (e) {\n for (var n = [], a = 0; a < o.length; a++) {\n var s = o[a];\n (l = r[s.id]).refs--, n.push(l);\n }\n\n e ? b(o = i(t, e)) : o = [];\n\n for (a = 0; a < n.length; a++) {\n var l;\n\n if (0 === (l = n[a]).refs) {\n for (var d = 0; d < l.parts.length; d++) l.parts[d]();\n\n delete r[l.id];\n }\n }\n };\n }\n\n function b(t) {\n for (var e = 0; e < t.length; e++) {\n var n = t[e],\n i = r[n.id];\n\n if (i) {\n i.refs++;\n\n for (var a = 0; a < i.parts.length; a++) i.parts[a](n.parts[a]);\n\n for (; a < n.parts.length; a++) i.parts.push(m(n.parts[a]));\n\n i.parts.length > n.parts.length && (i.parts.length = n.parts.length);\n } else {\n var o = [];\n\n for (a = 0; a < n.parts.length; a++) o.push(m(n.parts[a]));\n\n r[n.id] = {\n id: n.id,\n refs: 1,\n parts: o\n };\n }\n }\n }\n\n function h() {\n var t = document.createElement(\"style\");\n return t.type = \"text/css\", o.appendChild(t), t;\n }\n\n function m(t) {\n var e,\n n,\n i = document.querySelector('style[data-vue-ssr-id~=\"' + t.id + '\"]');\n\n if (i) {\n if (d) return c;\n i.parentNode.removeChild(i);\n }\n\n if (p) {\n var a = l++;\n i = s || (s = h()), e = w.bind(null, i, a, !1), n = w.bind(null, i, a, !0);\n } else i = h(), e = y.bind(null, i), n = function () {\n i.parentNode.removeChild(i);\n };\n\n return e(t), function (i) {\n if (i) {\n if (i.css === t.css && i.media === t.media && i.sourceMap === t.sourceMap) return;\n e(t = i);\n } else n();\n };\n }\n\n var g,\n v = (g = [], function (t, e) {\n return g[t] = e, g.filter(Boolean).join(\"\\n\");\n });\n\n function w(t, e, n, i) {\n var a = n ? \"\" : i.css;\n if (t.styleSheet) t.styleSheet.cssText = v(e, a);else {\n var r = document.createTextNode(a),\n o = t.childNodes;\n o[e] && t.removeChild(o[e]), o.length ? t.insertBefore(r, o[e]) : t.appendChild(r);\n }\n }\n\n function y(t, e) {\n var n = e.css,\n i = e.media,\n a = e.sourceMap;\n if (i && t.setAttribute(\"media\", i), u.ssrId && t.setAttribute(\"data-vue-ssr-id\", e.id), a && (n += \"\\n/*# sourceURL=\" + a.sources[0] + \" */\", n += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(a)))) + \" */\"), t.styleSheet) t.styleSheet.cssText = n;else {\n for (; t.firstChild;) t.removeChild(t.firstChild);\n\n t.appendChild(document.createTextNode(n));\n }\n }\n }, function (t, e) {\n function n(e) {\n return \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? t.exports = n = function (t) {\n return typeof t;\n } : t.exports = n = function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n }, n(e);\n }\n\n t.exports = n;\n }, function (t, e, n) {\n \"use strict\";\n\n n.r(e);\n var i = n(0),\n a = n.n(i);\n\n for (var r in i) \"default\" !== r && function (t) {\n n.d(e, t, function () {\n return i[t];\n });\n }(r);\n\n e.default = a.a;\n }, function (t, e, n) {\n (t.exports = n(2)(!1)).push([t.i, '.loading-wave-dots[data-v-46b20d22]{position:relative}.loading-wave-dots[data-v-46b20d22] .wave-item{position:absolute;top:50%;left:50%;display:inline-block;margin-top:-4px;width:8px;height:8px;border-radius:50%;-webkit-animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite;animation:loading-wave-dots-data-v-46b20d22 linear 2.8s infinite}.loading-wave-dots[data-v-46b20d22] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-46b20d22] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-46b20d22] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}@keyframes loading-wave-dots-data-v-46b20d22{0%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}10%{-webkit-transform:translateY(-6px);transform:translateY(-6px);background:#999}20%{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}to{-webkit-transform:translateY(0);transform:translateY(0);background:#bbb}}.loading-circles[data-v-46b20d22] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-46b20d22 linear .75s infinite;animation:loading-circles-data-v-46b20d22 linear .75s infinite}.loading-circles[data-v-46b20d22] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-46b20d22] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-46b20d22{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-46b20d22] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-46b20d22 linear .75s infinite;animation:loading-bubbles-data-v-46b20d22 linear .75s infinite}.loading-bubbles[data-v-46b20d22] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}@keyframes loading-bubbles-data-v-46b20d22{0%{width:1px;height:1px;box-shadow:0 0 0 3px #666}90%{width:1px;height:1px;box-shadow:0 0 0 0 #666}to{width:1px;height:1px;box-shadow:0 0 0 3px #666}}.loading-default[data-v-46b20d22]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite;animation:loading-rotating-data-v-46b20d22 ease 1.5s infinite}.loading-default[data-v-46b20d22]:before{content:\"\";position:absolute;display:block;top:0;left:50%;margin-top:-3px;margin-left:-3px;width:6px;height:6px;background-color:#999;border-radius:50%}.loading-spiral[data-v-46b20d22]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-46b20d22 linear .85s infinite;animation:loading-rotating-data-v-46b20d22 linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-46b20d22{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-46b20d22],.loading-circles[data-v-46b20d22]{position:relative}.loading-bubbles[data-v-46b20d22] .bubble-item,.loading-circles[data-v-46b20d22] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(2),.loading-circles[data-v-46b20d22] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(3),.loading-circles[data-v-46b20d22] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(4),.loading-circles[data-v-46b20d22] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(5),.loading-circles[data-v-46b20d22] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(6),.loading-circles[data-v-46b20d22] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-46b20d22] .bubble-item:nth-child(7),.loading-circles[data-v-46b20d22] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-46b20d22] .bubble-item:last-child,.loading-circles[data-v-46b20d22] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}', \"\"]);\n }, function (t, e, n) {\n \"use strict\";\n\n n.r(e);\n var i = n(1),\n a = n.n(i);\n\n for (var r in i) \"default\" !== r && function (t) {\n n.d(e, t, function () {\n return i[t];\n });\n }(r);\n\n e.default = a.a;\n }, function (t, e, n) {\n (t.exports = n(2)(!1)).push([t.i, \".infinite-loading-container[data-v-644ea9c9]{clear:both;text-align:center}.infinite-loading-container[data-v-644ea9c9] [class^=loading-]{display:inline-block;margin:5px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.btn-try-infinite[data-v-644ea9c9]{margin-top:5px;padding:5px 10px;color:#999;font-size:14px;line-height:1;background:transparent;border:1px solid #ccc;border-radius:3px;outline:none;cursor:pointer}.btn-try-infinite[data-v-644ea9c9]:not(:active):hover{opacity:.8}\", \"\"]);\n }, function (t, e, n) {\n \"use strict\";\n\n n.r(e);\n\n var i = {\n throttleLimit: 50,\n loopCheckTimeout: 1e3,\n loopCheckMaxCalls: 10\n },\n a = function () {\n var t = !1;\n\n try {\n var e = Object.defineProperty({}, \"passive\", {\n get: function () {\n return t = {\n passive: !0\n }, !0;\n }\n });\n window.addEventListener(\"testpassive\", e, e), window.remove(\"testpassive\", e, e);\n } catch (t) {}\n\n return t;\n }(),\n r = {\n STATE_CHANGER: [\"emit `loaded` and `complete` event through component instance of `$refs` may cause error, so it will be deprecated soon, please use the `$state` argument instead (`$state` just the special `$event` variable):\", \"\\ntemplate:\", '', \"\\nscript:\\n...\\ninfiniteHandler($state) {\\n ajax('https://www.example.com/api/news')\\n .then((res) => {\\n if (res.data.length) {\\n $state.loaded();\\n } else {\\n $state.complete();\\n }\\n });\\n}\\n...\", \"\", \"more details: https://github.com/PeachScript/vue-infinite-loading/issues/57#issuecomment-324370549\"].join(\"\\n\"),\n INFINITE_EVENT: \"`:on-infinite` property will be deprecated soon, please use `@infinite` event instead.\",\n IDENTIFIER: \"the `reset` event will be deprecated soon, please reset this component by change the `identifier` property.\"\n },\n o = {\n INFINITE_LOOP: [\"executed the callback function more than \".concat(i.loopCheckMaxCalls, \" times for a short time, it looks like searched a wrong scroll wrapper that doest not has fixed height or maximum height, please check it. If you want to force to set a element as scroll wrapper ranther than automatic searching, you can do this:\"), '\\n\\x3c!-- add a special attribute for the real scroll wrapper --\\x3e\\n
\\n ...\\n \\x3c!-- set force-use-infinite-wrapper --\\x3e\\n \\n
\\nor\\n
\\n ...\\n \\x3c!-- set force-use-infinite-wrapper as css selector of the real scroll wrapper --\\x3e\\n \\n
\\n ', \"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169\"].join(\"\\n\")\n },\n s = {\n READY: 0,\n LOADING: 1,\n COMPLETE: 2,\n ERROR: 3\n },\n l = {\n color: \"#666\",\n fontSize: \"14px\",\n padding: \"10px 0\"\n },\n d = {\n mode: \"development\",\n props: {\n spinner: \"default\",\n distance: 100,\n forceUseInfiniteWrapper: !1\n },\n system: i,\n slots: {\n noResults: \"No results :(\",\n noMore: \"No more data :)\",\n error: \"Opps, something went wrong :(\",\n errorBtnText: \"Retry\",\n spinner: \"\"\n },\n WARNINGS: r,\n ERRORS: o,\n STATUS: s\n },\n c = n(4),\n u = n.n(c),\n p = {\n BUBBLES: {\n render: function (t) {\n return t(\"span\", {\n attrs: {\n class: \"loading-bubbles\"\n }\n }, Array.apply(Array, Array(8)).map(function () {\n return t(\"span\", {\n attrs: {\n class: \"bubble-item\"\n }\n });\n }));\n }\n },\n CIRCLES: {\n render: function (t) {\n return t(\"span\", {\n attrs: {\n class: \"loading-circles\"\n }\n }, Array.apply(Array, Array(8)).map(function () {\n return t(\"span\", {\n attrs: {\n class: \"circle-item\"\n }\n });\n }));\n }\n },\n DEFAULT: {\n render: function (t) {\n return t(\"i\", {\n attrs: {\n class: \"loading-default\"\n }\n });\n }\n },\n SPIRAL: {\n render: function (t) {\n return t(\"i\", {\n attrs: {\n class: \"loading-spiral\"\n }\n });\n }\n },\n WAVEDOTS: {\n render: function (t) {\n return t(\"span\", {\n attrs: {\n class: \"loading-wave-dots\"\n }\n }, Array.apply(Array, Array(5)).map(function () {\n return t(\"span\", {\n attrs: {\n class: \"wave-item\"\n }\n });\n }));\n }\n }\n };\n\n function f(t, e, n, i, a, r, o, s) {\n var l,\n d = \"function\" == typeof t ? t.options : t;\n if (e && (d.render = e, d.staticRenderFns = n, d._compiled = !0), i && (d.functional = !0), r && (d._scopeId = \"data-v-\" + r), o ? (l = function (t) {\n (t = t || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (t = __VUE_SSR_CONTEXT__), a && a.call(this, t), t && t._registeredComponents && t._registeredComponents.add(o);\n }, d._ssrRegister = l) : a && (l = s ? function () {\n a.call(this, this.$root.$options.shadowRoot);\n } : a), l) if (d.functional) {\n d._injectStyles = l;\n var c = d.render;\n\n d.render = function (t, e) {\n return l.call(e), c(t, e);\n };\n } else {\n var u = d.beforeCreate;\n d.beforeCreate = u ? [].concat(u, l) : [l];\n }\n return {\n exports: t,\n options: d\n };\n }\n\n var b = f({\n name: \"Spinner\",\n computed: {\n spinnerView: function () {\n return p[(this.$attrs.spinner || \"\").toUpperCase()] || this.spinnerInConfig;\n },\n spinnerInConfig: function () {\n return d.slots.spinner && \"string\" == typeof d.slots.spinner ? {\n render: function () {\n return this._v(d.slots.spinner);\n }\n } : \"object\" === u()(d.slots.spinner) ? d.slots.spinner : p[d.props.spinner.toUpperCase()] || p.DEFAULT;\n }\n }\n }, function () {\n var t = this.$createElement;\n return (this._self._c || t)(this.spinnerView, {\n tag: \"component\"\n });\n }, [], !1, function (t) {\n var e = n(5);\n e.__inject__ && e.__inject__(t);\n }, \"46b20d22\", null).exports;\n\n function h(t) {\n \"production\" !== d.mode && console.warn(\"[Vue-infinite-loading warn]: \".concat(t));\n }\n\n function m(t) {\n console.error(\"[Vue-infinite-loading error]: \".concat(t));\n }\n\n var g = {\n timers: [],\n caches: [],\n throttle: function (t) {\n var e = this;\n -1 === this.caches.indexOf(t) && (this.caches.push(t), this.timers.push(setTimeout(function () {\n t(), e.caches.splice(e.caches.indexOf(t), 1), e.timers.shift();\n }, d.system.throttleLimit)));\n },\n reset: function () {\n this.timers.forEach(function (t) {\n clearTimeout(t);\n }), this.timers.length = 0, this.caches = [];\n }\n },\n v = {\n isChecked: !1,\n timer: null,\n times: 0,\n track: function () {\n var t = this;\n this.times += 1, clearTimeout(this.timer), this.timer = setTimeout(function () {\n t.isChecked = !0;\n }, d.system.loopCheckTimeout), this.times > d.system.loopCheckMaxCalls && (m(o.INFINITE_LOOP), this.isChecked = !0);\n }\n },\n w = {\n key: \"_infiniteScrollHeight\",\n getScrollElm: function (t) {\n return t === window ? document.documentElement : t;\n },\n save: function (t) {\n var e = this.getScrollElm(t);\n e[this.key] = e.scrollHeight;\n },\n restore: function (t) {\n var e = this.getScrollElm(t);\n \"number\" == typeof e[this.key] && (e.scrollTop = e.scrollHeight - e[this.key] + e.scrollTop), this.remove(e);\n },\n remove: function (t) {\n void 0 !== t[this.key] && delete t[this.key];\n }\n };\n\n function y(t) {\n return t.replace(/[A-Z]/g, function (t) {\n return \"-\".concat(t.toLowerCase());\n });\n }\n\n function x(t) {\n return t.offsetWidth + t.offsetHeight > 0;\n }\n\n var k = f({\n name: \"InfiniteLoading\",\n data: function () {\n return {\n scrollParent: null,\n scrollHandler: null,\n isFirstLoad: !0,\n status: s.READY,\n slots: d.slots\n };\n },\n components: {\n Spinner: b\n },\n computed: {\n isShowSpinner: function () {\n return this.status === s.LOADING;\n },\n isShowError: function () {\n return this.status === s.ERROR;\n },\n isShowNoResults: function () {\n return this.status === s.COMPLETE && this.isFirstLoad;\n },\n isShowNoMore: function () {\n return this.status === s.COMPLETE && !this.isFirstLoad;\n },\n slotStyles: function () {\n var t = this,\n e = {};\n return Object.keys(d.slots).forEach(function (n) {\n var i = y(n);\n (!t.$slots[i] && !d.slots[n].render || t.$slots[i] && !t.$slots[i][0].tag) && (e[n] = l);\n }), e;\n }\n },\n props: {\n distance: {\n type: Number,\n default: d.props.distance\n },\n spinner: String,\n direction: {\n type: String,\n default: \"bottom\"\n },\n forceUseInfiniteWrapper: {\n type: [Boolean, String],\n default: d.props.forceUseInfiniteWrapper\n },\n identifier: {\n default: +new Date()\n },\n onInfinite: Function\n },\n watch: {\n identifier: function () {\n this.stateChanger.reset();\n }\n },\n mounted: function () {\n var t = this;\n this.$watch(\"forceUseInfiniteWrapper\", function () {\n t.scrollParent = t.getScrollParent();\n }, {\n immediate: !0\n }), this.scrollHandler = function (e) {\n t.status === s.READY && (e && e.constructor === Event && x(t.$el) ? g.throttle(t.attemptLoad) : t.attemptLoad());\n }, setTimeout(function () {\n t.scrollHandler(), t.scrollParent.addEventListener(\"scroll\", t.scrollHandler, a);\n }, 1), this.$on(\"$InfiniteLoading:loaded\", function (e) {\n t.isFirstLoad = !1, \"top\" === t.direction && t.$nextTick(function () {\n w.restore(t.scrollParent);\n }), t.status === s.LOADING && t.$nextTick(t.attemptLoad.bind(null, !0)), e && e.target === t || h(r.STATE_CHANGER);\n }), this.$on(\"$InfiniteLoading:complete\", function (e) {\n t.status = s.COMPLETE, t.$nextTick(function () {\n t.$forceUpdate();\n }), t.scrollParent.removeEventListener(\"scroll\", t.scrollHandler, a), e && e.target === t || h(r.STATE_CHANGER);\n }), this.$on(\"$InfiniteLoading:reset\", function (e) {\n t.status = s.READY, t.isFirstLoad = !0, w.remove(t.scrollParent), t.scrollParent.addEventListener(\"scroll\", t.scrollHandler, a), setTimeout(function () {\n g.reset(), t.scrollHandler();\n }, 1), e && e.target === t || h(r.IDENTIFIER);\n }), this.stateChanger = {\n loaded: function () {\n t.$emit(\"$InfiniteLoading:loaded\", {\n target: t\n });\n },\n complete: function () {\n t.$emit(\"$InfiniteLoading:complete\", {\n target: t\n });\n },\n reset: function () {\n t.$emit(\"$InfiniteLoading:reset\", {\n target: t\n });\n },\n error: function () {\n t.status = s.ERROR, g.reset();\n }\n }, this.onInfinite && h(r.INFINITE_EVENT);\n },\n deactivated: function () {\n this.status === s.LOADING && (this.status = s.READY), this.scrollParent.removeEventListener(\"scroll\", this.scrollHandler, a);\n },\n activated: function () {\n this.scrollParent.addEventListener(\"scroll\", this.scrollHandler, a);\n },\n methods: {\n attemptLoad: function (t) {\n var e = this;\n this.status !== s.COMPLETE && x(this.$el) && this.getCurrentDistance() <= this.distance ? (this.status = s.LOADING, \"top\" === this.direction && this.$nextTick(function () {\n w.save(e.scrollParent);\n }), \"function\" == typeof this.onInfinite ? this.onInfinite.call(null, this.stateChanger) : this.$emit(\"infinite\", this.stateChanger), !t || this.forceUseInfiniteWrapper || v.isChecked || v.track()) : this.status === s.LOADING && (this.status = s.READY);\n },\n getCurrentDistance: function () {\n var t;\n \"top\" === this.direction ? t = \"number\" == typeof this.scrollParent.scrollTop ? this.scrollParent.scrollTop : this.scrollParent.pageYOffset : t = this.$el.getBoundingClientRect().top - (this.scrollParent === window ? window.innerHeight : this.scrollParent.getBoundingClientRect().bottom);\n return t;\n },\n getScrollParent: function () {\n var t,\n e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$el;\n return \"string\" == typeof this.forceUseInfiniteWrapper && (t = document.querySelector(this.forceUseInfiniteWrapper)), t || (\"BODY\" === e.tagName ? t = window : !this.forceUseInfiniteWrapper && [\"scroll\", \"auto\"].indexOf(getComputedStyle(e).overflowY) > -1 ? t = e : (e.hasAttribute(\"infinite-wrapper\") || e.hasAttribute(\"data-infinite-wrapper\")) && (t = e)), t || this.getScrollParent(e.parentNode);\n }\n },\n destroyed: function () {\n !this.status !== s.COMPLETE && (g.reset(), w.remove(this.scrollParent), this.scrollParent.removeEventListener(\"scroll\", this.scrollHandler, a));\n }\n }, function () {\n var t = this,\n e = t.$createElement,\n n = t._self._c || e;\n return n(\"div\", {\n staticClass: \"infinite-loading-container\"\n }, [n(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: t.isShowSpinner,\n expression: \"isShowSpinner\"\n }],\n staticClass: \"infinite-status-prompt\",\n style: t.slotStyles.spinner\n }, [t._t(\"spinner\", [n(\"spinner\", {\n attrs: {\n spinner: t.spinner\n }\n })])], 2), t._v(\" \"), n(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: t.isShowNoResults,\n expression: \"isShowNoResults\"\n }],\n staticClass: \"infinite-status-prompt\",\n style: t.slotStyles.noResults\n }, [t._t(\"no-results\", [t.slots.noResults.render ? n(t.slots.noResults, {\n tag: \"component\"\n }) : [t._v(t._s(t.slots.noResults))]])], 2), t._v(\" \"), n(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: t.isShowNoMore,\n expression: \"isShowNoMore\"\n }],\n staticClass: \"infinite-status-prompt\",\n style: t.slotStyles.noMore\n }, [t._t(\"no-more\", [t.slots.noMore.render ? n(t.slots.noMore, {\n tag: \"component\"\n }) : [t._v(t._s(t.slots.noMore))]])], 2), t._v(\" \"), n(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: t.isShowError,\n expression: \"isShowError\"\n }],\n staticClass: \"infinite-status-prompt\",\n style: t.slotStyles.error\n }, [t._t(\"error\", [t.slots.error.render ? n(t.slots.error, {\n tag: \"component\",\n attrs: {\n trigger: t.attemptLoad\n }\n }) : [t._v(\"\\n \" + t._s(t.slots.error) + \"\\n \"), n(\"br\"), t._v(\" \"), n(\"button\", {\n staticClass: \"btn-try-infinite\",\n domProps: {\n textContent: t._s(t.slots.errorBtnText)\n },\n on: {\n click: t.attemptLoad\n }\n })]], {\n trigger: t.attemptLoad\n })], 2)]);\n }, [], !1, function (t) {\n var e = n(7);\n e.__inject__ && e.__inject__(t);\n }, \"644ea9c9\", null).exports;\n\n function E(t) {\n d.mode = t.config.productionTip ? \"development\" : \"production\";\n }\n\n Object.defineProperty(k, \"install\", {\n configurable: !1,\n enumerable: !1,\n value: function (t, e) {\n Object.assign(d.props, e && e.props), Object.assign(d.slots, e && e.slots), Object.assign(d.system, e && e.system), t.component(\"infinite-loading\", k), E(t);\n }\n }), \"undefined\" != typeof window && window.Vue && (window.Vue.component(\"infinite-loading\", k), E(window.Vue));\n e.default = k;\n }]);\n});\n\n//# sourceURL=webpack://materio.com/./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js?"); @@ -852,6 +883,7 @@ eval("/*!\n * vue-infinite-loading v2.4.5\n * (c) 2016-2020 PeachScript\n * MIT \*************************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module */ +/*! CommonJS bailout: module.exports is used directly at 2:60-74 */ /***/ ((module) => { eval("!function (t, e) {\n true ? module.exports = e() : 0;\n}(window, function () {\n return i = {}, o.m = n = [function (t, e, n) {\n var i = n(7);\n \"string\" == typeof i && (i = [[t.i, i, \"\"]]), i.locals && (t.exports = i.locals);\n (0, n(4).default)(\"d763679c\", i, !1, {});\n }, function (t, e, n) {\n var i = n(10);\n \"string\" == typeof i && (i = [[t.i, i, \"\"]]), i.locals && (t.exports = i.locals);\n (0, n(4).default)(\"6b9cc0e0\", i, !1, {});\n }, function (t, e, n) {\n var i = n(12);\n \"string\" == typeof i && (i = [[t.i, i, \"\"]]), i.locals && (t.exports = i.locals);\n (0, n(4).default)(\"663c004e\", i, !1, {});\n }, function (t, e) {\n t.exports = function (n) {\n var a = [];\n return a.toString = function () {\n return this.map(function (t) {\n var e = function (t, e) {\n var n = t[1] || \"\",\n i = t[3];\n if (!i) return n;\n\n if (e && \"function\" == typeof btoa) {\n var o = function (t) {\n return \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(t)))) + \" */\";\n }(i),\n r = i.sources.map(function (t) {\n return \"/*# sourceURL=\" + i.sourceRoot + t + \" */\";\n });\n\n return [n].concat(r).concat([o]).join(\"\\n\");\n }\n\n return [n].join(\"\\n\");\n }(t, n);\n\n return t[2] ? \"@media \" + t[2] + \"{\" + e + \"}\" : e;\n }).join(\"\");\n }, a.i = function (t, e) {\n \"string\" == typeof t && (t = [[null, t, \"\"]]);\n\n for (var n = {}, i = 0; i < this.length; i++) {\n var o = this[i][0];\n \"number\" == typeof o && (n[o] = !0);\n }\n\n for (i = 0; i < t.length; i++) {\n var r = t[i];\n \"number\" == typeof r[0] && n[r[0]] || (e && !r[2] ? r[2] = e : e && (r[2] = \"(\" + r[2] + \") and (\" + e + \")\"), a.push(r));\n }\n }, a;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n function l(t, e) {\n for (var n = [], i = {}, o = 0; o < e.length; o++) {\n var r = e[o],\n a = r[0],\n s = {\n id: t + \":\" + o,\n css: r[1],\n media: r[2],\n sourceMap: r[3]\n };\n i[a] ? i[a].parts.push(s) : n.push(i[a] = {\n id: a,\n parts: [s]\n });\n }\n\n return n;\n }\n\n n.r(e), n.d(e, \"default\", function () {\n return p;\n });\n var i = \"undefined\" != typeof document;\n if (\"undefined\" != typeof DEBUG && DEBUG && !i) throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");\n\n var u = {},\n o = i && (document.head || document.getElementsByTagName(\"head\")[0]),\n r = null,\n a = 0,\n c = !1,\n s = function () {},\n d = null,\n h = \"data-vue-ssr-id\",\n f = \"undefined\" != typeof navigator && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());\n\n function p(a, t, e, n) {\n c = e, d = n || {};\n var s = l(a, t);\n return v(s), function (t) {\n for (var e = [], n = 0; n < s.length; n++) {\n var i = s[n];\n (o = u[i.id]).refs--, e.push(o);\n }\n\n t ? v(s = l(a, t)) : s = [];\n\n for (n = 0; n < e.length; n++) {\n var o;\n\n if (0 === (o = e[n]).refs) {\n for (var r = 0; r < o.parts.length; r++) o.parts[r]();\n\n delete u[o.id];\n }\n }\n };\n }\n\n function v(t) {\n for (var e = 0; e < t.length; e++) {\n var n = t[e],\n i = u[n.id];\n\n if (i) {\n i.refs++;\n\n for (var o = 0; o < i.parts.length; o++) i.parts[o](n.parts[o]);\n\n for (; o < n.parts.length; o++) i.parts.push(b(n.parts[o]));\n\n i.parts.length > n.parts.length && (i.parts.length = n.parts.length);\n } else {\n var r = [];\n\n for (o = 0; o < n.parts.length; o++) r.push(b(n.parts[o]));\n\n u[n.id] = {\n id: n.id,\n refs: 1,\n parts: r\n };\n }\n }\n }\n\n function m() {\n var t = document.createElement(\"style\");\n return t.type = \"text/css\", o.appendChild(t), t;\n }\n\n function b(e) {\n var n,\n i,\n t = document.querySelector(\"style[\" + h + '~=\"' + e.id + '\"]');\n\n if (t) {\n if (c) return s;\n t.parentNode.removeChild(t);\n }\n\n if (f) {\n var o = a++;\n t = r = r || m(), n = w.bind(null, t, o, !1), i = w.bind(null, t, o, !0);\n } else t = m(), n = function (t, e) {\n var n = e.css,\n i = e.media,\n o = e.sourceMap;\n i && t.setAttribute(\"media\", i);\n d.ssrId && t.setAttribute(h, e.id);\n o && (n += \"\\n/*# sourceURL=\" + o.sources[0] + \" */\", n += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(o)))) + \" */\");\n if (t.styleSheet) t.styleSheet.cssText = n;else {\n for (; t.firstChild;) t.removeChild(t.firstChild);\n\n t.appendChild(document.createTextNode(n));\n }\n }.bind(null, t), i = function () {\n t.parentNode.removeChild(t);\n };\n\n return n(e), function (t) {\n if (t) {\n if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return;\n n(e = t);\n } else i();\n };\n }\n\n var y,\n g = (y = [], function (t, e) {\n return y[t] = e, y.filter(Boolean).join(\"\\n\");\n });\n\n function w(t, e, n, i) {\n var o = n ? \"\" : i.css;\n if (t.styleSheet) t.styleSheet.cssText = g(e, o);else {\n var r = document.createTextNode(o),\n a = t.childNodes;\n a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(r, a[e]) : t.appendChild(r);\n }\n }\n }, function (t, M, e) {\n \"use strict\";\n\n (function (t) {\n var i = function () {\n if (\"undefined\" != typeof Map) return Map;\n\n function i(t, n) {\n var i = -1;\n return t.some(function (t, e) {\n return t[0] === n && (i = e, !0);\n }), i;\n }\n\n return Object.defineProperty(t.prototype, \"size\", {\n get: function () {\n return this.__entries__.length;\n },\n enumerable: !0,\n configurable: !0\n }), t.prototype.get = function (t) {\n var e = i(this.__entries__, t),\n n = this.__entries__[e];\n return n && n[1];\n }, t.prototype.set = function (t, e) {\n var n = i(this.__entries__, t);\n ~n ? this.__entries__[n][1] = e : this.__entries__.push([t, e]);\n }, t.prototype.delete = function (t) {\n var e = this.__entries__,\n n = i(e, t);\n ~n && e.splice(n, 1);\n }, t.prototype.has = function (t) {\n return !!~i(this.__entries__, t);\n }, t.prototype.clear = function () {\n this.__entries__.splice(0);\n }, t.prototype.forEach = function (t, e) {\n void 0 === e && (e = null);\n\n for (var n = 0, i = this.__entries__; n < i.length; n++) {\n var o = i[n];\n t.call(e, o[1], o[0]);\n }\n }, t;\n\n function t() {\n this.__entries__ = [];\n }\n }(),\n n = \"undefined\" != typeof window && \"undefined\" != typeof document && window.document === document,\n e = void 0 !== t && t.Math === Math ? t : \"undefined\" != typeof self && self.Math === Math ? self : \"undefined\" != typeof window && window.Math === Math ? window : Function(\"return this\")(),\n l = \"function\" == typeof requestAnimationFrame ? requestAnimationFrame.bind(e) : function (t) {\n return setTimeout(function () {\n return t(Date.now());\n }, 1e3 / 60);\n },\n u = 2;\n\n var o = [\"top\", \"right\", \"bottom\", \"left\", \"width\", \"height\", \"size\", \"weight\"],\n r = \"undefined\" != typeof MutationObserver,\n a = (s.prototype.addObserver = function (t) {\n ~this.observers_.indexOf(t) || this.observers_.push(t), this.connected_ || this.connect_();\n }, s.prototype.removeObserver = function (t) {\n var e = this.observers_,\n n = e.indexOf(t);\n ~n && e.splice(n, 1), !e.length && this.connected_ && this.disconnect_();\n }, s.prototype.refresh = function () {\n this.updateObservers_() && this.refresh();\n }, s.prototype.updateObservers_ = function () {\n var t = this.observers_.filter(function (t) {\n return t.gatherActive(), t.hasActive();\n });\n return t.forEach(function (t) {\n return t.broadcastActive();\n }), 0 < t.length;\n }, s.prototype.connect_ = function () {\n n && !this.connected_ && (document.addEventListener(\"transitionend\", this.onTransitionEnd_), window.addEventListener(\"resize\", this.refresh), r ? (this.mutationsObserver_ = new MutationObserver(this.refresh), this.mutationsObserver_.observe(document, {\n attributes: !0,\n childList: !0,\n characterData: !0,\n subtree: !0\n })) : (document.addEventListener(\"DOMSubtreeModified\", this.refresh), this.mutationEventsAdded_ = !0), this.connected_ = !0);\n }, s.prototype.disconnect_ = function () {\n n && this.connected_ && (document.removeEventListener(\"transitionend\", this.onTransitionEnd_), window.removeEventListener(\"resize\", this.refresh), this.mutationsObserver_ && this.mutationsObserver_.disconnect(), this.mutationEventsAdded_ && document.removeEventListener(\"DOMSubtreeModified\", this.refresh), this.mutationsObserver_ = null, this.mutationEventsAdded_ = !1, this.connected_ = !1);\n }, s.prototype.onTransitionEnd_ = function (t) {\n var e = t.propertyName,\n n = void 0 === e ? \"\" : e;\n o.some(function (t) {\n return !!~n.indexOf(t);\n }) && this.refresh();\n }, s.getInstance = function () {\n return this.instance_ || (this.instance_ = new s()), this.instance_;\n }, s.instance_ = null, s);\n\n function s() {\n function t() {\n r && (r = !1, i()), a && n();\n }\n\n function e() {\n l(t);\n }\n\n function n() {\n var t = Date.now();\n\n if (r) {\n if (t - s < u) return;\n a = !0;\n } else a = !(r = !0), setTimeout(e, o);\n\n s = t;\n }\n\n var i, o, r, a, s;\n this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = (i = this.refresh.bind(this), a = r = !(o = 20), s = 0, n);\n }\n\n var c = function (t, e) {\n for (var n = 0, i = Object.keys(e); n < i.length; n++) {\n var o = i[n];\n Object.defineProperty(t, o, {\n value: e[o],\n enumerable: !1,\n writable: !1,\n configurable: !0\n });\n }\n\n return t;\n },\n h = function (t) {\n return t && t.ownerDocument && t.ownerDocument.defaultView || e;\n },\n f = y(0, 0, 0, 0);\n\n function p(t) {\n return parseFloat(t) || 0;\n }\n\n function v(n) {\n for (var t = [], e = 1; e < arguments.length; e++) t[e - 1] = arguments[e];\n\n return t.reduce(function (t, e) {\n return t + p(n[\"border-\" + e + \"-width\"]);\n }, 0);\n }\n\n function d(t) {\n var e = t.clientWidth,\n n = t.clientHeight;\n if (!e && !n) return f;\n\n var i,\n o = h(t).getComputedStyle(t),\n r = function (t) {\n for (var e = {}, n = 0, i = [\"top\", \"right\", \"bottom\", \"left\"]; n < i.length; n++) {\n var o = i[n],\n r = t[\"padding-\" + o];\n e[o] = p(r);\n }\n\n return e;\n }(o),\n a = r.left + r.right,\n s = r.top + r.bottom,\n l = p(o.width),\n u = p(o.height);\n\n if (\"border-box\" === o.boxSizing && (Math.round(l + a) !== e && (l -= v(o, \"left\", \"right\") + a), Math.round(u + s) !== n && (u -= v(o, \"top\", \"bottom\") + s)), (i = t) !== h(i).document.documentElement) {\n var c = Math.round(l + a) - e,\n d = Math.round(u + s) - n;\n 1 !== Math.abs(c) && (l -= c), 1 !== Math.abs(d) && (u -= d);\n }\n\n return y(r.left, r.top, l, u);\n }\n\n var m = \"undefined\" != typeof SVGGraphicsElement ? function (t) {\n return t instanceof h(t).SVGGraphicsElement;\n } : function (t) {\n return t instanceof h(t).SVGElement && \"function\" == typeof t.getBBox;\n };\n\n function b(t) {\n return n ? m(t) ? y(0, 0, (e = t.getBBox()).width, e.height) : d(t) : f;\n var e;\n }\n\n function y(t, e, n, i) {\n return {\n x: t,\n y: e,\n width: n,\n height: i\n };\n }\n\n var g = (w.prototype.isActive = function () {\n var t = b(this.target);\n return (this.contentRect_ = t).width !== this.broadcastWidth || t.height !== this.broadcastHeight;\n }, w.prototype.broadcastRect = function () {\n var t = this.contentRect_;\n return this.broadcastWidth = t.width, this.broadcastHeight = t.height, t;\n }, w);\n\n function w(t) {\n this.broadcastWidth = 0, this.broadcastHeight = 0, this.contentRect_ = y(0, 0, 0, 0), this.target = t;\n }\n\n var _ = function (t, e) {\n var n,\n i,\n o,\n r,\n a,\n s,\n l,\n u = (i = (n = e).x, o = n.y, r = n.width, a = n.height, s = \"undefined\" != typeof DOMRectReadOnly ? DOMRectReadOnly : Object, l = Object.create(s.prototype), c(l, {\n x: i,\n y: o,\n width: r,\n height: a,\n top: o,\n right: i + r,\n bottom: a + o,\n left: i\n }), l);\n c(this, {\n target: t,\n contentRect: u\n });\n },\n E = (x.prototype.observe = function (t) {\n if (!arguments.length) throw new TypeError(\"1 argument required, but only 0 present.\");\n\n if (\"undefined\" != typeof Element && Element instanceof Object) {\n if (!(t instanceof h(t).Element)) throw new TypeError('parameter 1 is not of type \"Element\".');\n var e = this.observations_;\n e.has(t) || (e.set(t, new g(t)), this.controller_.addObserver(this), this.controller_.refresh());\n }\n }, x.prototype.unobserve = function (t) {\n if (!arguments.length) throw new TypeError(\"1 argument required, but only 0 present.\");\n\n if (\"undefined\" != typeof Element && Element instanceof Object) {\n if (!(t instanceof h(t).Element)) throw new TypeError('parameter 1 is not of type \"Element\".');\n var e = this.observations_;\n e.has(t) && (e.delete(t), e.size || this.controller_.removeObserver(this));\n }\n }, x.prototype.disconnect = function () {\n this.clearActive(), this.observations_.clear(), this.controller_.removeObserver(this);\n }, x.prototype.gatherActive = function () {\n var e = this;\n this.clearActive(), this.observations_.forEach(function (t) {\n t.isActive() && e.activeObservations_.push(t);\n });\n }, x.prototype.broadcastActive = function () {\n if (this.hasActive()) {\n var t = this.callbackCtx_,\n e = this.activeObservations_.map(function (t) {\n return new _(t.target, t.broadcastRect());\n });\n this.callback_.call(t, e, t), this.clearActive();\n }\n }, x.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n }, x.prototype.hasActive = function () {\n return 0 < this.activeObservations_.length;\n }, x);\n\n function x(t, e, n) {\n if (this.activeObservations_ = [], this.observations_ = new i(), \"function\" != typeof t) throw new TypeError(\"The callback provided as parameter 1 is not a function.\");\n this.callback_ = t, this.controller_ = e, this.callbackCtx_ = n;\n }\n\n var T = new (\"undefined\" != typeof WeakMap ? WeakMap : i)(),\n O = function t(e) {\n if (!(this instanceof t)) throw new TypeError(\"Cannot call a class as a function.\");\n if (!arguments.length) throw new TypeError(\"1 argument required, but only 0 present.\");\n var n = a.getInstance(),\n i = new E(e, n, this);\n T.set(this, i);\n };\n\n [\"observe\", \"unobserve\", \"disconnect\"].forEach(function (e) {\n O.prototype[e] = function () {\n var t;\n return (t = T.get(this))[e].apply(t, arguments);\n };\n });\n var S = void 0 !== e.ResizeObserver ? e.ResizeObserver : O;\n M.a = S;\n }).call(this, e(8));\n }, function (t, e, n) {\n \"use strict\";\n\n var i = n(0);\n n.n(i).a;\n }, function (t, e, n) {\n (t.exports = n(3)(!1)).push([t.i, \"\\n.vue-modal-resizer {\\n display: block;\\n overflow: hidden;\\n position: absolute;\\n width: 12px;\\n height: 12px;\\n right: 0;\\n bottom: 0;\\n z-index: 9999999;\\n background: transparent;\\n cursor: se-resize;\\n}\\n.vue-modal-resizer::after {\\n display: block;\\n position: absolute;\\n content: '';\\n background: transparent;\\n left: 0;\\n top: 0;\\n width: 0;\\n height: 0;\\n border-bottom: 10px solid #ddd;\\n border-left: 10px solid transparent;\\n}\\n.vue-modal-resizer.clicked::after {\\n border-bottom: 10px solid #369be9;\\n}\\n\", \"\"]);\n }, function (t, e) {\n var n;\n\n n = function () {\n return this;\n }();\n\n try {\n n = n || new Function(\"return this\")();\n } catch (t) {\n \"object\" == typeof window && (n = window);\n }\n\n t.exports = n;\n }, function (t, e, n) {\n \"use strict\";\n\n var i = n(1);\n n.n(i).a;\n }, function (t, e, n) {\n (t.exports = n(3)(!1)).push([t.i, \"\\n.vm--block-scroll {\\n overflow: hidden;\\n width: 100vw;\\n}\\n.vm--container {\\n position: fixed;\\n box-sizing: border-box;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100vh;\\n z-index: 999;\\n}\\n.vm--overlay {\\n position: fixed;\\n box-sizing: border-box;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100vh;\\n background: rgba(0, 0, 0, 0.2);\\n /* z-index: 999; */\\n opacity: 1;\\n}\\n.vm--container.scrollable {\\n height: 100%;\\n min-height: 100vh;\\n overflow-y: auto;\\n -webkit-overflow-scrolling: touch;\\n}\\n.vm--modal {\\n position: relative;\\n overflow: hidden;\\n box-sizing: border-box;\\n\\n background-color: white;\\n border-radius: 3px;\\n box-shadow: 0 20px 60px -2px rgba(27, 33, 58, 0.4);\\n}\\n.vm--container.scrollable .vm--modal {\\n margin-bottom: 2px;\\n}\\n.vm--top-right-slot {\\n display: block;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n.vm-transition--overlay-enter-active,\\n.vm-transition--overlay-leave-active {\\n transition: all 50ms;\\n}\\n.vm-transition--overlay-enter,\\n.vm-transition--overlay-leave-active {\\n opacity: 0;\\n}\\n.vm-transition--modal-enter-active,\\n.vm-transition--modal-leave-active {\\n transition: all 400ms;\\n}\\n.vm-transition--modal-enter,\\n.vm-transition--modal-leave-active {\\n opacity: 0;\\n transform: translateY(-20px);\\n}\\n.vm-transition--default-enter-active,\\n.vm-transition--default-leave-active {\\n transition: all 2ms;\\n}\\n.vm-transition--default-enter,\\n.vm-transition--default-leave-active {\\n opacity: 0;\\n}\\n\", \"\"]);\n }, function (t, e, n) {\n \"use strict\";\n\n var i = n(2);\n n.n(i).a;\n }, function (t, e, n) {\n (t.exports = n(3)(!1)).push([t.i, \"\\n.vue-dialog {\\n font-size: 14px;\\n}\\n.vue-dialog div {\\n box-sizing: border-box;\\n}\\n.vue-dialog-content {\\n flex: 1 0 auto;\\n width: 100%;\\n padding: 14px;\\n}\\n.vue-dialog-content-title {\\n font-weight: 600;\\n padding-bottom: 14px;\\n}\\n.vue-dialog-buttons {\\n display: flex;\\n flex: 0 1 auto;\\n width: 100%;\\n border-top: 1px solid #eee;\\n}\\n.vue-dialog-buttons-none {\\n width: 100%;\\n padding-bottom: 14px;\\n}\\n.vue-dialog-button {\\n font-size: inherit;\\n background: transparent;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n cursor: pointer;\\n box-sizing: border-box;\\n line-height: 40px;\\n height: 40px;\\n color: inherit;\\n font: inherit;\\n outline: none;\\n}\\n.vue-dialog-button:hover {\\n background: #f9f9f9;\\n}\\n.vue-dialog-button:active {\\n background: #f3f3f3;\\n}\\n.vue-dialog-button:not(:first-of-type) {\\n border-left: 1px solid #eee;\\n}\\n\", \"\"]);\n }, function (t, e, n) {\n \"use strict\";\n\n n.r(e), n.d(e, \"Modal\", function () {\n return W;\n }), n.d(e, \"Dialog\", function () {\n return U;\n }), n.d(e, \"version\", function () {\n return J;\n });\n\n function i() {\n var e = this,\n t = e.$createElement,\n n = e._self._c || t;\n return e.visible ? n(\"div\", {\n class: e.containerClass\n }, [n(\"transition\", {\n attrs: {\n name: e.guaranteedOverlayTransition\n },\n on: {\n \"before-enter\": e.beforeOverlayTransitionEnter,\n \"after-enter\": e.afterOverlayTransitionEnter,\n \"before-leave\": e.beforeOverlayTransitionLeave,\n \"after-leave\": e.afterOverlayTransitionLeave\n }\n }, [e.visibility.overlay ? n(\"div\", {\n staticClass: \"vm--overlay\",\n attrs: {\n \"data-modal\": e.name,\n \"aria-expanded\": e.visibility.overlay.toString()\n },\n on: {\n click: function (t) {\n return t.target !== t.currentTarget ? null : (t.stopPropagation(), e.onOverlayClick(t));\n }\n }\n }, [n(\"div\", {\n staticClass: \"vm--top-right-slot\"\n }, [e._t(\"top-right\")], 2)]) : e._e()]), e._v(\" \"), n(\"transition\", {\n attrs: {\n name: e.guaranteedModalTransition\n },\n on: {\n \"before-enter\": e.beforeModalTransitionEnter,\n \"after-enter\": e.afterModalTransitionEnter,\n \"before-leave\": e.beforeModalTransitionLeave,\n \"after-leave\": e.afterModalTransitionLeave\n }\n }, [e.visibility.modal ? n(\"div\", {\n ref: \"modal\",\n class: e.modalClass,\n style: e.modalStyle,\n attrs: {\n \"aria-expanded\": e.visibility.modal.toString(),\n role: \"dialog\",\n \"aria-modal\": \"true\"\n }\n }, [e._t(\"default\"), e._v(\" \"), e.resizable && !e.isAutoHeight ? n(\"resizer\", {\n attrs: {\n \"min-width\": e.minWidth,\n \"min-height\": e.minHeight,\n \"max-width\": e.maxWidth,\n \"max-height\": e.maxHeight\n },\n on: {\n resize: e.onModalResize\n }\n }) : e._e()], 2) : e._e()])], 1) : e._e();\n }\n\n function o() {\n var t = this.$createElement;\n return (this._self._c || t)(\"div\", {\n class: this.className\n });\n }\n\n o._withStripped = i._withStripped = !0;\n\n function h(t, e, n) {\n return n < t ? t : e < n ? e : n;\n }\n\n function r(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n function a(t, e) {\n return function (t) {\n if (Array.isArray(t)) return t;\n }(t) || function (t, e) {\n var n = [],\n i = !0,\n o = !1,\n r = void 0;\n\n try {\n for (var a, s = t[Symbol.iterator](); !(i = (a = s.next()).done) && (n.push(a.value), !e || n.length !== e); i = !0);\n } catch (t) {\n o = !0, r = t;\n } finally {\n try {\n i || null == s.return || s.return();\n } finally {\n if (o) throw r;\n }\n }\n\n return n;\n }(t, e) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n\n function s() {\n var t = window.innerWidth,\n e = document.documentElement.clientWidth;\n return t && e ? Math.min(t, e) : e || t;\n }\n\n function l(t) {\n return t.split(\";\").map(function (t) {\n return t.trim();\n }).filter(Boolean).map(function (t) {\n return t.split(\":\");\n }).reduce(function (t, e) {\n var n = a(e, 2);\n return function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {},\n i = Object.keys(n);\n \"function\" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function (t) {\n return Object.getOwnPropertyDescriptor(n, t).enumerable;\n }))), i.forEach(function (t) {\n r(e, t, n[t]);\n });\n }\n\n return e;\n }({}, t, r({}, n[0], n[1]));\n }, {});\n }\n\n function f(t) {\n return t.touches && 0 < t.touches.length ? t.touches[0] : t;\n }\n\n var p = [\"INPUT\", \"TEXTAREA\", \"SELECT\"],\n c = function (t) {\n var e = 0 < arguments.length && void 0 !== t ? t : 0;\n return function () {\n return (e++).toString();\n };\n }(),\n u = {\n name: \"VueJsModalResizer\",\n props: {\n minHeight: {\n type: Number,\n default: 0\n },\n minWidth: {\n type: Number,\n default: 0\n },\n maxWidth: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER\n },\n maxHeight: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER\n }\n },\n data: function () {\n return {\n clicked: !1,\n size: {}\n };\n },\n mounted: function () {\n this.$el.addEventListener(\"mousedown\", this.start, !1);\n },\n computed: {\n className: function () {\n return [\"vue-modal-resizer\", {\n clicked: this.clicked\n }];\n }\n },\n methods: {\n start: function (t) {\n this.clicked = !0, window.addEventListener(\"mousemove\", this.mousemove, !1), window.addEventListener(\"mouseup\", this.stop, !1), t.stopPropagation(), t.preventDefault();\n },\n stop: function () {\n this.clicked = !1, window.removeEventListener(\"mousemove\", this.mousemove, !1), window.removeEventListener(\"mouseup\", this.stop, !1), this.$emit(\"resize-stop\", {\n element: this.$el.parentElement,\n size: this.size\n });\n },\n mousemove: function (t) {\n this.resize(t);\n },\n resize: function (t) {\n var e = this.$el.parentElement;\n\n if (e) {\n var n = t.clientX - e.offsetLeft,\n i = t.clientY - e.offsetTop,\n o = Math.min(s(), this.maxWidth),\n r = Math.min(window.innerHeight, this.maxHeight);\n n = h(this.minWidth, o, n), i = h(this.minHeight, r, i), this.size = {\n width: n,\n height: i\n }, e.style.width = n + \"px\", e.style.height = i + \"px\", this.$emit(\"resize\", {\n element: e,\n size: this.size\n });\n }\n }\n }\n };\n\n n(6);\n\n function d(t, e, n, i, o, r, a, s) {\n var l,\n u = \"function\" == typeof t ? t.options : t;\n if (e && (u.render = e, u.staticRenderFns = n, u._compiled = !0), i && (u.functional = !0), r && (u._scopeId = \"data-v-\" + r), a ? (l = function (t) {\n (t = t || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || \"undefined\" == typeof __VUE_SSR_CONTEXT__ || (t = __VUE_SSR_CONTEXT__), o && o.call(this, t), t && t._registeredComponents && t._registeredComponents.add(a);\n }, u._ssrRegister = l) : o && (l = s ? function () {\n o.call(this, this.$root.$options.shadowRoot);\n } : o), l) if (u.functional) {\n u._injectStyles = l;\n var c = u.render;\n\n u.render = function (t, e) {\n return l.call(e), c(t, e);\n };\n } else {\n var d = u.beforeCreate;\n u.beforeCreate = d ? [].concat(d, l) : [l];\n }\n return {\n exports: t,\n options: u\n };\n }\n\n var v = d(u, o, [], !1, null, null, null);\n v.options.__file = \"src/components/Resizer.vue\";\n var m = v.exports;\n\n function b(t) {\n return (b = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n })(t);\n }\n\n function y(t) {\n switch (b(t)) {\n case \"number\":\n return {\n type: \"px\",\n value: t\n };\n\n case \"string\":\n return function (e) {\n if (\"auto\" === e) return {\n type: e,\n value: 0\n };\n\n var t = _.find(function (t) {\n return t.regexp.test(e);\n });\n\n return t ? {\n type: t.name,\n value: parseFloat(e)\n } : {\n type: \"\",\n value: e\n };\n }(t);\n\n default:\n return {\n type: \"\",\n value: t\n };\n }\n }\n\n function g(t) {\n if (\"string\" != typeof t) return 0 <= t;\n var e = y(t);\n return (\"%\" === e.type || \"px\" === e.type) && 0 < e.value;\n }\n\n var w = \"[-+]?[0-9]*.?[0-9]+\",\n _ = [{\n name: \"px\",\n regexp: new RegExp(\"^\".concat(w, \"px$\"))\n }, {\n name: \"%\",\n regexp: new RegExp(\"^\".concat(w, \"%$\"))\n }, {\n name: \"px\",\n regexp: new RegExp(\"^\".concat(w, \"$\"))\n }],\n E = n(5),\n x = \"undefined\" != typeof window && window.ResizeObserver ? ResizeObserver : E.a;\n\n function T(t, e) {\n for (var n = 0; n < e.length; n++) {\n var i = e[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(t, i.key, i);\n }\n }\n\n function O(t) {\n return function (t) {\n if (Array.isArray(t)) {\n for (var e = 0, n = new Array(t.length); e < t.length; e++) n[e] = t[e];\n\n return n;\n }\n }(t) || function (t) {\n if (Symbol.iterator in Object(t) || \"[object Arguments]\" === Object.prototype.toString.call(t)) return Array.from(t);\n }(t) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }();\n }\n\n function S(t) {\n return e = 'button:not([disabled]), select:not([disabled]), a[href]:not([disabled]), area[href]:not([disabled]), [contentEditable=\"\"]:not([disabled]), [contentEditable=\"true\"]:not([disabled]), [contentEditable=\"TRUE\"]:not([disabled]), textarea:not([disabled]), iframe:not([disabled]), input:not([disabled]), summary:not([disabled]), [tabindex]:not([tabindex=\"-1\"])', O(t.querySelectorAll(e) || []);\n var e;\n }\n\n function M(t) {\n return t == document.activeElement;\n }\n\n var k = function () {\n function t() {\n !function (t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this.root = null, this.elements = [], this.onKeyDown = this.onKeyDown.bind(this), this.enable = this.enable.bind(this), this.disable = this.disable.bind(this), this.firstElement = this.firstElement.bind(this), this.lastElement = this.lastElement.bind(this);\n }\n\n var e, n, i;\n return e = t, (n = [{\n key: \"lastElement\",\n value: function () {\n return this.elements[this.elements.length - 1] || null;\n }\n }, {\n key: \"firstElement\",\n value: function () {\n return this.elements[0] || null;\n }\n }, {\n key: \"onKeyDown\",\n value: function (t) {\n var e;\n if (\"Tab\" === (e = t).key || 9 === e.keyCode) return t.shiftKey && M(this.firstElement()) ? (this.lastElement().focus(), void t.preventDefault()) : !document.activeElement || M(this.lastElement()) ? (this.firstElement().focus(), void t.preventDefault()) : void 0;\n }\n }, {\n key: \"enabled\",\n value: function () {\n return !!this.root;\n }\n }, {\n key: \"enable\",\n value: function (t) {\n if (t) {\n this.root = t, this.elements = S(this.root);\n var e = this.firstElement();\n e && e.focus(), this.root.addEventListener(\"keydown\", this.onKeyDown);\n }\n }\n }, {\n key: \"disable\",\n value: function () {\n this.root.removeEventListener(\"keydown\", this.onKeyDown), this.root = null;\n }\n }]) && T(e.prototype, n), i && T(e, i), t;\n }();\n\n function L(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n function z(t, e) {\n return function (t) {\n if (Array.isArray(t)) return t;\n }(t) || function (t, e) {\n var n = [],\n i = !0,\n o = !1,\n r = void 0;\n\n try {\n for (var a, s = t[Symbol.iterator](); !(i = (a = s.next()).done) && (n.push(a.value), !e || n.length !== e); i = !0);\n } catch (t) {\n o = !0, r = t;\n } finally {\n try {\n i || null == s.return || s.return();\n } finally {\n if (o) throw r;\n }\n }\n\n return n;\n }(t, e) || function () {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }();\n }\n\n var $ = \"vm-transition--default\",\n A = \"enter\",\n C = \"entering\",\n j = \"leave\",\n R = \"leavng\",\n H = {\n name: \"VueJsModal\",\n props: {\n name: {\n required: !0,\n type: String\n },\n resizable: {\n type: Boolean,\n default: !1\n },\n adaptive: {\n type: Boolean,\n default: !1\n },\n draggable: {\n type: [Boolean, String],\n default: !1\n },\n scrollable: {\n type: Boolean,\n default: !1\n },\n focusTrap: {\n type: Boolean,\n default: !1\n },\n reset: {\n type: Boolean,\n default: !1\n },\n overlayTransition: {\n type: String,\n default: \"vm-transition--overlay\"\n },\n transition: {\n type: String,\n default: \"vm-transition--modal\"\n },\n clickToClose: {\n type: Boolean,\n default: !0\n },\n classes: {\n type: [String, Array],\n default: function () {\n return [];\n }\n },\n styles: {\n type: [String, Array, Object]\n },\n minWidth: {\n type: Number,\n default: 0,\n validator: function (t) {\n return 0 <= t;\n }\n },\n minHeight: {\n type: Number,\n default: 0,\n validator: function (t) {\n return 0 <= t;\n }\n },\n maxWidth: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER\n },\n maxHeight: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER\n },\n width: {\n type: [Number, String],\n default: 600,\n validator: g\n },\n height: {\n type: [Number, String],\n default: 300,\n validator: function (t) {\n return \"auto\" === t || g(t);\n }\n },\n shiftX: {\n type: Number,\n default: .5,\n validator: function (t) {\n return 0 <= t && t <= 1;\n }\n },\n shiftY: {\n type: Number,\n default: .5,\n validator: function (t) {\n return 0 <= t && t <= 1;\n }\n }\n },\n components: {\n Resizer: m\n },\n data: function () {\n return {\n visible: !1,\n visibility: {\n modal: !1,\n overlay: !1\n },\n overlayTransitionState: null,\n modalTransitionState: null,\n shiftLeft: 0,\n shiftTop: 0,\n modal: {\n width: 0,\n widthType: \"px\",\n height: 0,\n heightType: \"px\",\n renderedHeight: 0\n },\n viewportHeight: 0,\n viewportWidth: 0\n };\n },\n created: function () {\n this.setInitialSize();\n },\n beforeMount: function () {\n this.$modal.subscription.$on(\"toggle\", this.onToggle), window.addEventListener(\"resize\", this.onWindowResize), window.addEventListener(\"orientationchange\", this.onWindowResize), this.onWindowResize(), this.scrollable && !this.isAutoHeight && console.warn('Modal \"'.concat(this.name, '\" has scrollable flag set to true ') + 'but height is not \"auto\" ('.concat(this.height, \")\")), this.clickToClose && window.addEventListener(\"keyup\", this.onEscapeKeyUp);\n },\n mounted: function () {\n var n = this;\n this.resizeObserver = new x(function (t) {\n if (0 < t.length) {\n var e = z(t, 1)[0];\n n.modal.renderedHeight = e.contentRect.height;\n }\n }), this.$focusTrap = new k();\n },\n beforeDestroy: function () {\n this.$modal.subscription.$off(\"toggle\", this.onToggle), window.removeEventListener(\"resize\", this.onWindowResize), window.removeEventListener(\"orientationchange\", this.onWindowResize), this.clickToClose && window.removeEventListener(\"keyup\", this.onEscapeKeyUp), document.body.classList.remove(\"vm--block-scroll\");\n },\n computed: {\n guaranteedOverlayTransition: function () {\n return this.overlayTransition || $;\n },\n guaranteedModalTransition: function () {\n return this.transition || $;\n },\n isAutoHeight: function () {\n return \"auto\" === this.modal.heightType;\n },\n position: function () {\n var t = this.viewportHeight,\n e = this.viewportWidth,\n n = this.shiftLeft,\n i = this.shiftTop,\n o = this.shiftX,\n r = this.shiftY,\n a = this.trueModalWidth,\n s = this.trueModalHeight,\n l = e - a,\n u = Math.max(t - s, 0),\n c = i + r * u;\n return {\n left: parseInt(h(0, l, n + o * l)),\n top: !s && this.isAutoHeight ? void 0 : parseInt(h(0, u, c))\n };\n },\n trueModalWidth: function () {\n var t = this.viewportWidth,\n e = this.modal,\n n = this.adaptive,\n i = this.minWidth,\n o = this.maxWidth,\n r = \"%\" === e.widthType ? t / 100 * e.width : e.width;\n\n if (n) {\n var a = Math.max(i, Math.min(t, o));\n return h(i, a, r);\n }\n\n return r;\n },\n trueModalHeight: function () {\n var t = this.viewportHeight,\n e = this.modal,\n n = this.isAutoHeight,\n i = this.adaptive,\n o = this.minHeight,\n r = this.maxHeight,\n a = \"%\" === e.heightType ? t / 100 * e.height : e.height;\n if (n) return this.modal.renderedHeight;\n\n if (i) {\n var s = Math.max(o, Math.min(t, r));\n return h(o, s, a);\n }\n\n return a;\n },\n autoHeight: function () {\n return this.adaptive && this.modal.renderedHeight >= this.viewportHeight ? Math.max(this.minHeight, this.viewportHeight) + \"px\" : \"auto\";\n },\n containerClass: function () {\n return [\"vm--container\", this.scrollable && this.isAutoHeight && \"scrollable\"];\n },\n modalClass: function () {\n return [\"vm--modal\", this.classes];\n },\n stylesProp: function () {\n return \"string\" == typeof this.styles ? l(this.styles) : this.styles;\n },\n modalStyle: function () {\n return [this.stylesProp, {\n top: this.position.top + \"px\",\n left: this.position.left + \"px\",\n width: this.trueModalWidth + \"px\",\n height: this.isAutoHeight ? this.autoHeight : this.trueModalHeight + \"px\"\n }];\n },\n isComponentReadyToBeDestroyed: function () {\n return this.overlayTransitionState === j && this.modalTransitionState === j;\n }\n },\n watch: {\n isComponentReadyToBeDestroyed: function (t) {\n t && (this.visible = !1);\n }\n },\n methods: {\n startTransitionEnter: function () {\n this.visibility.overlay = !0, this.visibility.modal = !0;\n },\n startTransitionLeave: function () {\n this.visibility.overlay = !1, this.visibility.modal = !1;\n },\n beforeOverlayTransitionEnter: function () {\n this.overlayTransitionState = C;\n },\n afterOverlayTransitionEnter: function () {\n this.overlayTransitionState = A;\n },\n beforeOverlayTransitionLeave: function () {\n this.overlayTransitionState = R;\n },\n afterOverlayTransitionLeave: function () {\n this.overlayTransitionState = j;\n },\n beforeModalTransitionEnter: function () {\n var t = this;\n this.modalTransitionState = C, this.$nextTick(function () {\n t.resizeObserver.observe(t.$refs.modal);\n });\n },\n afterModalTransitionEnter: function () {\n this.modalTransitionState = A, this.draggable && this.addDraggableListeners(), this.focusTrap && this.$focusTrap.enable(this.$refs.modal);\n var t = this.createModalEvent({\n state: \"opened\"\n });\n this.$emit(\"opened\", t);\n },\n beforeModalTransitionLeave: function () {\n this.modalTransitionState = R, this.resizeObserver.unobserve(this.$refs.modal), this.$focusTrap.enabled() && this.$focusTrap.disable();\n },\n afterModalTransitionLeave: function () {\n this.modalTransitionState = j;\n var t = this.createModalEvent({\n state: \"closed\"\n });\n this.$emit(\"closed\", t);\n },\n onToggle: function (t, e, n) {\n if (this.name === t) {\n var i = void 0 === e ? !this.visible : e;\n this.toggle(i, n);\n }\n },\n setInitialSize: function () {\n var t = y(this.width),\n e = y(this.height);\n this.modal.width = t.value, this.modal.widthType = t.type, this.modal.height = e.value, this.modal.heightType = e.type;\n },\n onEscapeKeyUp: function (t) {\n 27 === t.which && this.visible && this.$modal.hide(this.name);\n },\n onWindowResize: function () {\n this.viewportWidth = s(), this.viewportHeight = window.innerHeight, this.ensureShiftInWindowBounds();\n },\n createModalEvent: function (t) {\n var e = 0 < arguments.length && void 0 !== t ? t : {};\n return function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {},\n i = Object.keys(n);\n \"function\" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function (t) {\n return Object.getOwnPropertyDescriptor(n, t).enumerable;\n }))), i.forEach(function (t) {\n L(e, t, n[t]);\n });\n }\n\n return e;\n }({\n name: this.name,\n ref: this.$refs.modal || null\n }, e);\n },\n onModalResize: function (t) {\n this.modal.widthType = \"px\", this.modal.width = t.size.width, this.modal.heightType = \"px\", this.modal.height = t.size.height;\n var e = this.modal.size;\n this.$emit(\"resize\", this.createModalEvent({\n size: e\n }));\n },\n open: function (t) {\n var e = this;\n this.reset && (this.setInitialSize(), this.shiftLeft = 0, this.shiftTop = 0), this.scrollable && document.body.classList.add(\"vm--block-scroll\");\n var n = !1,\n i = this.createModalEvent({\n cancel: function () {\n n = !0;\n },\n state: \"before-open\",\n params: t\n });\n this.$emit(\"before-open\", i), n ? this.scrollable && document.body.classList.remove(\"vm--block-scroll\") : (\"undefined\" != typeof document && document.activeElement && \"BODY\" !== document.activeElement.tagName && document.activeElement.blur && document.activeElement.blur(), this.visible = !0, this.$nextTick(function () {\n e.startTransitionEnter();\n }));\n },\n close: function (t) {\n this.scrollable && document.body.classList.remove(\"vm--block-scroll\");\n var e = !1,\n n = this.createModalEvent({\n cancel: function () {\n e = !0;\n },\n state: \"before-close\",\n params: t\n });\n this.$emit(\"before-close\", n), e || this.startTransitionLeave();\n },\n toggle: function (t, e) {\n this.visible !== t && (t ? this.open(e) : this.close(e));\n },\n getDraggableElement: function () {\n return !0 === this.draggable ? this.$refs.modal : \"string\" == typeof this.draggable ? this.$refs.modal.querySelector(this.draggable) : null;\n },\n onOverlayClick: function () {\n this.clickToClose && this.toggle(!1);\n },\n addDraggableListeners: function () {\n var a = this,\n t = this.getDraggableElement();\n\n if (t) {\n var s = 0,\n l = 0,\n u = 0,\n c = 0,\n e = function (t) {\n var e = t.target;\n\n if (!(n = e) || -1 === p.indexOf(n.nodeName)) {\n var n,\n i = f(t),\n o = i.clientX,\n r = i.clientY;\n document.addEventListener(\"mousemove\", d), document.addEventListener(\"touchmove\", d), document.addEventListener(\"mouseup\", h), document.addEventListener(\"touchend\", h), s = o, l = r, u = a.shiftLeft, c = a.shiftTop;\n }\n },\n d = function (t) {\n var e = f(t),\n n = e.clientX,\n i = e.clientY;\n a.shiftLeft = u + n - s, a.shiftTop = c + i - l, t.preventDefault();\n },\n h = function t(e) {\n a.ensureShiftInWindowBounds(), document.removeEventListener(\"mousemove\", d), document.removeEventListener(\"touchmove\", d), document.removeEventListener(\"mouseup\", t), document.removeEventListener(\"touchend\", t), e.preventDefault();\n };\n\n t.addEventListener(\"mousedown\", e), t.addEventListener(\"touchstart\", e);\n }\n },\n ensureShiftInWindowBounds: function () {\n var t = this.viewportHeight,\n e = this.viewportWidth,\n n = this.shiftLeft,\n i = this.shiftTop,\n o = this.shiftX,\n r = this.shiftY,\n a = this.trueModalWidth,\n s = this.trueModalHeight,\n l = e - a,\n u = Math.max(t - s, 0),\n c = n + o * l,\n d = i + r * u;\n this.shiftLeft -= c - h(0, l, c), this.shiftTop -= d - h(0, u, d);\n }\n }\n },\n N = (n(9), d(H, i, [], !1, null, null, null));\n N.options.__file = \"src/components/Modal.vue\";\n\n function D() {\n var n = this,\n t = n.$createElement,\n i = n._self._c || t;\n return i(n.$modal.context.componentName, {\n tag: \"component\",\n attrs: {\n name: \"dialog\",\n height: \"auto\",\n classes: [\"vue-dialog\", this.params.class],\n width: n.width,\n \"shift-y\": .3,\n adaptive: !0,\n \"focus-trap\": !0,\n clickToClose: n.clickToClose,\n transition: n.transition\n },\n on: {\n \"before-open\": n.beforeOpened,\n \"before-close\": n.beforeClosed,\n opened: function (t) {\n return n.$emit(\"opened\", t);\n },\n closed: function (t) {\n return n.$emit(\"closed\", t);\n }\n }\n }, [i(\"div\", {\n staticClass: \"vue-dialog-content\"\n }, [n.params.title ? i(\"div\", {\n staticClass: \"vue-dialog-content-title\",\n domProps: {\n innerHTML: n._s(n.params.title || \"\")\n }\n }) : n._e(), n._v(\" \"), n.params.component ? i(n.params.component, n._b({\n tag: \"component\"\n }, \"component\", n.params.props, !1)) : i(\"div\", {\n domProps: {\n innerHTML: n._s(n.params.text || \"\")\n }\n })], 1), n._v(\" \"), n.buttons ? i(\"div\", {\n staticClass: \"vue-dialog-buttons\"\n }, n._l(n.buttons, function (t, e) {\n return i(\"button\", {\n key: e,\n class: t.class || \"vue-dialog-button\",\n style: n.buttonStyle,\n attrs: {\n type: \"button\",\n tabindex: \"0\"\n },\n domProps: {\n innerHTML: n._s(t.title)\n },\n on: {\n click: function (t) {\n return t.stopPropagation(), n.click(e, t);\n }\n }\n }, [n._v(n._s(t.title))]);\n }), 0) : i(\"div\", {\n staticClass: \"vue-dialog-buttons-none\"\n })]);\n }\n\n var W = N.exports;\n D._withStripped = !0;\n var P = {\n name: \"VueJsDialog\",\n props: {\n width: {\n type: [Number, String],\n default: 400\n },\n clickToClose: {\n type: Boolean,\n default: !0\n },\n transition: {\n type: String\n }\n },\n data: function () {\n return {\n params: {}\n };\n },\n computed: {\n buttons: function () {\n return this.params.buttons || [];\n },\n buttonStyle: function () {\n return {\n flex: \"1 1 \".concat(100 / this.buttons.length, \"%\")\n };\n }\n },\n methods: {\n beforeOpened: function (t) {\n this.params = t.params || {}, this.$emit(\"before-opened\", t);\n },\n beforeClosed: function (t) {\n this.params = {}, this.$emit(\"before-closed\", t);\n },\n click: function (t, e, n) {\n var i = 2 < arguments.length && void 0 !== n ? n : \"click\",\n o = this.buttons[t],\n r = null == o ? void 0 : o.handler;\n \"function\" == typeof r && r(t, e, {\n source: i\n });\n }\n }\n },\n B = (n(11), d(P, D, [], !1, null, null, null));\n B.options.__file = \"src/components/Dialog.vue\";\n\n function I() {\n var n = this,\n t = n.$createElement,\n i = n._self._c || t;\n return i(\"div\", {\n attrs: {\n id: \"modals-container\"\n }\n }, n._l(n.modals, function (e) {\n return i(\"modal\", n._g(n._b({\n key: e.id,\n on: {\n closed: function (t) {\n return n.remove(e.id);\n }\n }\n }, \"modal\", e.modalAttrs, !1), e.modalListeners), [i(e.component, n._g(n._b({\n tag: \"component\",\n on: {\n close: function (t) {\n return n.$modal.hide(e.modalAttrs.name, t);\n }\n }\n }, \"component\", e.componentAttrs, !1), n.$listeners))], 1);\n }), 1);\n }\n\n var U = B.exports;\n\n function X(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n I._withStripped = !0;\n var F = d({\n data: function () {\n return {\n modals: []\n };\n },\n created: function () {\n this.$root.__modalContainer = this;\n },\n mounted: function () {\n var t = this;\n this.$modal.subscription.$on(\"hide-all\", function () {\n t.modals = [];\n });\n },\n methods: {\n add: function (t, e, n, i) {\n var o = this,\n r = 1 < arguments.length && void 0 !== e ? e : {},\n a = 2 < arguments.length && void 0 !== n ? n : {},\n s = 3 < arguments.length && void 0 !== i ? i : {},\n l = c(),\n u = a.name || \"dynamic_modal_\" + l;\n this.modals.push({\n id: l,\n modalAttrs: function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {},\n i = Object.keys(n);\n \"function\" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function (t) {\n return Object.getOwnPropertyDescriptor(n, t).enumerable;\n }))), i.forEach(function (t) {\n X(e, t, n[t]);\n });\n }\n\n return e;\n }({}, a, {\n name: u\n }),\n modalListeners: s,\n component: t,\n componentAttrs: r\n }), this.$nextTick(function () {\n o.$modal.show(u);\n });\n },\n remove: function (e) {\n var t = this.modals.findIndex(function (t) {\n return t.id === e;\n });\n -1 !== t && this.modals.splice(t, 1);\n }\n }\n }, I, [], !1, null, null, null);\n F.options.__file = \"src/components/ModalsContainer.vue\";\n var G = F.exports;\n\n function V(t) {\n return (V = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n })(t);\n }\n\n function q(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n var K = function (i, t) {\n function o(t, e, n, i) {\n var o,\n r = 2 < arguments.length && void 0 !== n ? n : {},\n a = 3 < arguments.length ? i : void 0,\n s = null === (o = c.root) || void 0 === o ? void 0 : o.__modalContainer,\n l = u.dynamicDefaults || {};\n null != s && s.add(t, e, function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {},\n i = Object.keys(n);\n \"function\" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function (t) {\n return Object.getOwnPropertyDescriptor(n, t).enumerable;\n }))), i.forEach(function (t) {\n q(e, t, n[t]);\n });\n }\n\n return e;\n }({}, l, r), a);\n }\n\n var u = 1 < arguments.length && void 0 !== t ? t : {},\n r = new i(),\n c = {\n root: null,\n componentName: u.componentName || \"Modal\"\n };\n return {\n context: c,\n subscription: r,\n show: function () {\n for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];\n\n var i = e[0];\n\n switch (V(i)) {\n case \"string\":\n (function (t, e) {\n r.$emit(\"toggle\", t, !0, e);\n }).apply(void 0, e);\n break;\n\n case \"object\":\n case \"function\":\n o.apply(void 0, e);\n break;\n\n default:\n console.warn(\"[vue-js-modal] $modal() received an unsupported argument as a first argument.\", i);\n }\n },\n hide: function (t, e) {\n r.$emit(\"toggle\", t, !1, e);\n },\n hideAll: function () {\n r.$emit(\"hide-all\");\n },\n toggle: function (t, e) {\n r.$emit(\"toggle\", t, void 0, e);\n },\n setDynamicModalContainer: function (t) {\n c.root = t;\n var e,\n n = (e = document.createElement(\"div\"), document.body.appendChild(e), e);\n new i({\n parent: t,\n render: function (t) {\n return t(G);\n }\n }).$mount(n);\n }\n };\n },\n Y = {\n install: function (e, t) {\n var n = 1 < arguments.length && void 0 !== t ? t : {};\n\n if (!e.prototype.$modal) {\n var i = new K(e, n);\n Object.defineProperty(e.prototype, \"$modal\", {\n get: function () {\n if (this instanceof e) {\n var t = this.$root;\n i.context.root || i.setDynamicModalContainer(t);\n }\n\n return i;\n }\n }), e.component(i.context.componentName, W), n.dialog && e.component(\"VDialog\", U);\n }\n }\n },\n J = \"__VERSION__\";\n\n e.default = Y;\n }], o.c = i, o.d = function (t, e, n) {\n o.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: n\n });\n }, o.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, o.t = function (e, t) {\n if (1 & t && (e = o(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (o.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) o.d(n, i, function (t) {\n return e[t];\n }.bind(null, i));\n return n;\n }, o.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return o.d(e, \"a\", e), e;\n }, o.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, o.p = \"/dist/\", o(o.s = 13);\n\n function o(t) {\n if (i[t]) return i[t].exports;\n var e = i[t] = {\n i: t,\n l: !1,\n exports: {}\n };\n return n[t].call(e.exports, e, e.exports, o), e.l = !0, e.exports;\n }\n\n var n, i;\n});\n\n//# sourceURL=webpack://materio.com/./node_modules/vue-js-modal/dist/index.js?"); @@ -1326,6 +1358,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac \**************************************/ /*! unknown exports (runtime-defined) */ /*! runtime requirements: module, top-level-this-exports, __webpack_require__.g, __webpack_require__.* */ +/*! CommonJS bailout: this is used directly at 8:3-7 */ +/*! CommonJS bailout: module.exports is used directly at 7:65-79 */ /***/ (function(module, __unused_webpack_exports, __webpack_require__) { eval("/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n(function (global, factory) {\n true ? module.exports = factory() : 0;\n})(this, function () {\n 'use strict';\n /* */\n\n var emptyObject = Object.freeze({}); // These helpers produce better VM code in JS engines due to their\n // explicitness and function inlining.\n\n function isUndef(v) {\n return v === undefined || v === null;\n }\n\n function isDef(v) {\n return v !== undefined && v !== null;\n }\n\n function isTrue(v) {\n return v === true;\n }\n\n function isFalse(v) {\n return v === false;\n }\n /**\n * Check if value is primitive.\n */\n\n\n function isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || // $flow-disable-line\n typeof value === 'symbol' || typeof value === 'boolean';\n }\n /**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\n\n\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n /**\n * Get the raw type string of a value, e.g., [object Object].\n */\n\n\n var _toString = Object.prototype.toString;\n\n function toRawType(value) {\n return _toString.call(value).slice(8, -1);\n }\n /**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n\n\n function isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n }\n\n function isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n }\n /**\n * Check if val is a valid array index.\n */\n\n\n function isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n }\n\n function isPromise(val) {\n return isDef(val) && typeof val.then === 'function' && typeof val.catch === 'function';\n }\n /**\n * Convert a value to a string that is actually rendered.\n */\n\n\n function toString(val) {\n return val == null ? '' : Array.isArray(val) || isPlainObject(val) && val.toString === _toString ? JSON.stringify(val, null, 2) : String(val);\n }\n /**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\n\n\n function toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n }\n /**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\n\n\n function makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n\n return expectsLowerCase ? function (val) {\n return map[val.toLowerCase()];\n } : function (val) {\n return map[val];\n };\n }\n /**\n * Check if a tag is a built-in tag.\n */\n\n\n var isBuiltInTag = makeMap('slot,component', true);\n /**\n * Check if an attribute is a reserved attribute.\n */\n\n var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n /**\n * Remove an item from an array.\n */\n\n function remove(arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n }\n /**\n * Check whether an object has the property.\n */\n\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n /**\n * Create a cached version of a pure function.\n */\n\n\n function cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n }\n /**\n * Camelize a hyphen-delimited string.\n */\n\n\n var camelizeRE = /-(\\w)/g;\n var camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n });\n /**\n * Capitalize a string.\n */\n\n var capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n });\n /**\n * Hyphenate a camelCase string.\n */\n\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n });\n /**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n /* istanbul ignore next */\n\n function polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);\n }\n\n boundFn._length = fn.length;\n return boundFn;\n }\n\n function nativeBind(fn, ctx) {\n return fn.bind(ctx);\n }\n\n var bind = Function.prototype.bind ? nativeBind : polyfillBind;\n /**\n * Convert an Array-like object to a real Array.\n */\n\n function toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n\n while (i--) {\n ret[i] = list[i + start];\n }\n\n return ret;\n }\n /**\n * Mix properties into target object.\n */\n\n\n function extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n\n return to;\n }\n /**\n * Merge an Array of Objects into a single Object.\n */\n\n\n function toObject(arr) {\n var res = {};\n\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n\n return res;\n }\n /* eslint-disable no-unused-vars */\n\n /**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\n\n\n function noop(a, b, c) {}\n /**\n * Always return false.\n */\n\n\n var no = function (a, b, c) {\n return false;\n };\n /* eslint-enable no-unused-vars */\n\n /**\n * Return the same value.\n */\n\n\n var identity = function (_) {\n return _;\n };\n /**\n * Generate a string containing static keys from compiler modules.\n */\n\n\n function genStaticKeys(modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || []);\n }, []).join(',');\n }\n /**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\n\n\n function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i]);\n });\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n });\n } else {\n /* istanbul ignore next */\n return false;\n }\n } catch (e) {\n /* istanbul ignore next */\n return false;\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n }\n /**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\n\n\n function looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) {\n return i;\n }\n }\n\n return -1;\n }\n /**\n * Ensure a function is called only once.\n */\n\n\n function once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n }\n\n var SSR_ATTR = 'data-server-rendered';\n var ASSET_TYPES = ['component', 'directive', 'filter'];\n var LIFECYCLE_HOOKS = ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeDestroy', 'destroyed', 'activated', 'deactivated', 'errorCaptured', 'serverPrefetch'];\n /* */\n\n var config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"development\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"development\" !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n };\n /* */\n\n /**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\n\n var unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n /**\n * Check if a string starts with $ or _\n */\n\n function isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F;\n }\n /**\n * Define a property.\n */\n\n\n function def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n }\n /**\n * Parse simple path.\n */\n\n\n var bailRE = new RegExp(\"[^\" + unicodeRegExp.source + \".$_\\\\d]\");\n\n function parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) {\n return;\n }\n\n obj = obj[segments[i]];\n }\n\n return obj;\n };\n }\n /* */\n // can we use __proto__?\n\n\n var hasProto = ('__proto__' in {}); // Browser environment sniffing\n\n var inBrowser = typeof window !== 'undefined';\n var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\n var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\n var UA = inBrowser && window.navigator.userAgent.toLowerCase();\n var isIE = UA && /msie|trident/.test(UA);\n var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\n var isEdge = UA && UA.indexOf('edge/') > 0;\n var isAndroid = UA && UA.indexOf('android') > 0 || weexPlatform === 'android';\n var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA) || weexPlatform === 'ios';\n var isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n var isPhantomJS = UA && /phantomjs/.test(UA);\n var isFF = UA && UA.match(/firefox\\/(\\d+)/); // Firefox has a \"watch\" function on Object.prototype...\n\n var nativeWatch = {}.watch;\n var supportsPassive = false;\n\n if (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n } // this needs to be lazy-evaled because vue may be required before\n // vue-server-renderer can set VUE_ENV\n\n\n var _isServer;\n\n var isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof __webpack_require__.g !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = __webpack_require__.g['process'] && __webpack_require__.g['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n\n return _isServer;\n }; // detect devtools\n\n\n var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n /* istanbul ignore next */\n\n function isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n }\n\n var hasSymbol = typeof Symbol !== 'undefined' && isNative(Symbol) && typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n var _Set;\n /* istanbul ignore if */\n // $flow-disable-line\n\n\n if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n } else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/function () {\n function Set() {\n this.set = Object.create(null);\n }\n\n Set.prototype.has = function has(key) {\n return this.set[key] === true;\n };\n\n Set.prototype.add = function add(key) {\n this.set[key] = true;\n };\n\n Set.prototype.clear = function clear() {\n this.set = Object.create(null);\n };\n\n return Set;\n }();\n }\n /* */\n\n\n var warn = noop;\n var tip = noop;\n var generateComponentTrace = noop; // work around flow check\n\n var formatComponentName = noop;\n {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n\n var classify = function (str) {\n return str.replace(classifyRE, function (c) {\n return c.toUpperCase();\n }).replace(/[-_]/g, '');\n };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && !config.silent) {\n console.error(\"[Vue warn]: \" + msg + trace);\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && !config.silent) {\n console.warn(\"[Vue tip]: \" + msg + (vm ? generateComponentTrace(vm) : ''));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '';\n }\n\n var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (name ? \"<\" + classify(name) + \">\" : \"\") + (file && includeFile !== false ? \" at \" + file : '');\n };\n\n var repeat = function (str, n) {\n var res = '';\n\n while (n) {\n if (n % 2 === 1) {\n res += str;\n }\n\n if (n > 1) {\n str += str;\n }\n\n n >>= 1;\n }\n\n return res;\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue;\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n\n tree.push(vm);\n vm = vm.$parent;\n }\n\n return '\\n\\nfound in\\n\\n' + tree.map(function (vm, i) {\n return \"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) ? formatComponentName(vm[0]) + \"... (\" + vm[1] + \" recursive calls)\" : formatComponentName(vm));\n }).join('\\n');\n } else {\n return \"\\n\\n(found in \" + formatComponentName(vm) + \")\";\n }\n };\n }\n /* */\n\n var uid = 0;\n /**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\n\n var Dep = function Dep() {\n this.id = uid++;\n this.subs = [];\n };\n\n Dep.prototype.addSub = function addSub(sub) {\n this.subs.push(sub);\n };\n\n Dep.prototype.removeSub = function removeSub(sub) {\n remove(this.subs, sub);\n };\n\n Dep.prototype.depend = function depend() {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n };\n\n Dep.prototype.notify = function notify() {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n\n if (!config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) {\n return a.id - b.id;\n });\n }\n\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n }; // The current target watcher being evaluated.\n // This is globally unique because only one watcher\n // can be evaluated at a time.\n\n\n Dep.target = null;\n var targetStack = [];\n\n function pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n }\n\n function popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n }\n /* */\n\n\n var VNode = function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n };\n\n var prototypeAccessors = {\n child: {\n configurable: true\n }\n }; // DEPRECATED: alias for componentInstance for backwards compat.\n\n /* istanbul ignore next */\n\n prototypeAccessors.child.get = function () {\n return this.componentInstance;\n };\n\n Object.defineProperties(VNode.prototype, prototypeAccessors);\n\n var createEmptyVNode = function (text) {\n if (text === void 0) text = '';\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n };\n\n function createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n } // optimized shallow clone\n // used for static nodes and slot nodes because they may be reused across\n // multiple renders, cloning them avoids errors when DOM manipulations rely\n // on their elm reference.\n\n\n function cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n }\n /*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\n\n var arrayProto = Array.prototype;\n var arrayMethods = Object.create(arrayProto);\n var methodsToPatch = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'];\n /**\n * Intercept mutating methods and emit events\n */\n\n methodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [],\n len = arguments.length;\n\n while (len--) args[len] = arguments[len];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n\n if (inserted) {\n ob.observeArray(inserted);\n } // notify change\n\n\n ob.dep.notify();\n return result;\n });\n });\n /* */\n\n var arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n /**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\n\n var shouldObserve = true;\n\n function toggleObserving(value) {\n shouldObserve = value;\n }\n /**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\n\n\n var Observer = function Observer(value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n };\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n\n\n Observer.prototype.walk = function walk(obj) {\n var keys = Object.keys(obj);\n\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n };\n /**\n * Observe a list of Array items.\n */\n\n\n Observer.prototype.observeArray = function observeArray(items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n }; // helpers\n\n /**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\n\n\n function protoAugment(target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n }\n /**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n\n /* istanbul ignore next */\n\n\n function copyAugment(target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n }\n /**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\n\n\n function observe(value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return;\n }\n\n var ob;\n\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (shouldObserve && !isServerRendering() && (Array.isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) {\n ob = new Observer(value);\n }\n\n if (asRootData && ob) {\n ob.vmCount++;\n }\n\n return ob;\n }\n /**\n * Define a reactive property on an Object.\n */\n\n\n function defineReactive$$1(obj, key, val, customSetter, shallow) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n\n if (property && property.configurable === false) {\n return;\n } // cater for pre-defined getter/setters\n\n\n var getter = property && property.get;\n var setter = property && property.set;\n\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n\n if (Dep.target) {\n dep.depend();\n\n if (childOb) {\n childOb.dep.depend();\n\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n\n return value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n\n if (newVal === value || newVal !== newVal && value !== value) {\n return;\n }\n /* eslint-enable no-self-compare */\n\n\n if (customSetter) {\n customSetter();\n } // #7981: for accessor properties without setter\n\n\n if (getter && !setter) {\n return;\n }\n\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n }\n /**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\n\n\n function set(target, key, val) {\n if (isUndef(target) || isPrimitive(target)) {\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \" + target);\n }\n\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val;\n }\n\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n\n var ob = target.__ob__;\n\n if (target._isVue || ob && ob.vmCount) {\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' + 'at runtime - declare it upfront in the data option.');\n return val;\n }\n\n if (!ob) {\n target[key] = val;\n return val;\n }\n\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val;\n }\n /**\n * Delete a property and trigger change if necessary.\n */\n\n\n function del(target, key) {\n if (isUndef(target) || isPrimitive(target)) {\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \" + target);\n }\n\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n\n var ob = target.__ob__;\n\n if (target._isVue || ob && ob.vmCount) {\n warn('Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.');\n return;\n }\n\n if (!hasOwn(target, key)) {\n return;\n }\n\n delete target[key];\n\n if (!ob) {\n return;\n }\n\n ob.dep.notify();\n }\n /**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\n\n\n function dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n }\n /* */\n\n /**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\n\n\n var strats = config.optionMergeStrategies;\n /**\n * Options with restrictions\n */\n\n {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\"option \\\"\" + key + \"\\\" can only be used during instance \" + 'creation with the `new` keyword.');\n }\n\n return defaultStrat(parent, child);\n };\n }\n /**\n * Helper that recursively merges two data objects together.\n */\n\n function mergeData(to, from) {\n if (!from) {\n return to;\n }\n\n var key, toVal, fromVal;\n var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i]; // in case the object is already observed...\n\n if (key === '__ob__') {\n continue;\n }\n\n toVal = to[key];\n fromVal = from[key];\n\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (toVal !== fromVal && isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n\n return to;\n }\n /**\n * Data\n */\n\n\n function mergeDataOrFn(parentVal, childVal, vm) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal;\n }\n\n if (!parentVal) {\n return childVal;\n } // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n\n\n return function mergedDataFn() {\n return mergeData(typeof childVal === 'function' ? childVal.call(this, this) : childVal, typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal);\n };\n } else {\n return function mergedInstanceDataFn() {\n // instance merge\n var instanceData = typeof childVal === 'function' ? childVal.call(vm, vm) : childVal;\n var defaultData = typeof parentVal === 'function' ? parentVal.call(vm, vm) : parentVal;\n\n if (instanceData) {\n return mergeData(instanceData, defaultData);\n } else {\n return defaultData;\n }\n };\n }\n }\n\n strats.data = function (parentVal, childVal, vm) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n warn('The \"data\" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);\n return parentVal;\n }\n\n return mergeDataOrFn(parentVal, childVal);\n }\n\n return mergeDataOrFn(parentVal, childVal, vm);\n };\n /**\n * Hooks and props are merged as arrays.\n */\n\n\n function mergeHook(parentVal, childVal) {\n var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal;\n return res ? dedupeHooks(res) : res;\n }\n\n function dedupeHooks(hooks) {\n var res = [];\n\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n\n return res;\n }\n\n LIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n });\n /**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n\n function mergeAssets(parentVal, childVal, vm, key) {\n var res = Object.create(parentVal || null);\n\n if (childVal) {\n assertObjectType(key, childVal, vm);\n return extend(res, childVal);\n } else {\n return res;\n }\n }\n\n ASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n });\n /**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n\n strats.watch = function (parentVal, childVal, vm, key) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) {\n parentVal = undefined;\n }\n\n if (childVal === nativeWatch) {\n childVal = undefined;\n }\n /* istanbul ignore if */\n\n\n if (!childVal) {\n return Object.create(parentVal || null);\n }\n\n {\n assertObjectType(key, childVal, vm);\n }\n\n if (!parentVal) {\n return childVal;\n }\n\n var ret = {};\n extend(ret, parentVal);\n\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n\n ret[key$1] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child];\n }\n\n return ret;\n };\n /**\n * Other object hashes.\n */\n\n\n strats.props = strats.methods = strats.inject = strats.computed = function (parentVal, childVal, vm, key) {\n if (childVal && \"development\" !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n\n if (!parentVal) {\n return childVal;\n }\n\n var ret = Object.create(null);\n extend(ret, parentVal);\n\n if (childVal) {\n extend(ret, childVal);\n }\n\n return ret;\n };\n\n strats.provide = mergeDataOrFn;\n /**\n * Default strategy.\n */\n\n var defaultStrat = function (parentVal, childVal) {\n return childVal === undefined ? parentVal : childVal;\n };\n /**\n * Validate component names\n */\n\n\n function checkComponents(options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n }\n\n function validateComponentName(name) {\n if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\" + unicodeRegExp.source + \"]*$\").test(name)) {\n warn('Invalid component name: \"' + name + '\". Component names ' + 'should conform to valid custom element name in html5 specification.');\n }\n\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + name);\n }\n }\n /**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\n\n\n function normalizeProps(options, vm) {\n var props = options.props;\n\n if (!props) {\n return;\n }\n\n var res = {};\n var i, val, name;\n\n if (Array.isArray(props)) {\n i = props.length;\n\n while (i--) {\n val = props[i];\n\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = {\n type: null\n };\n } else {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val) ? val : {\n type: val\n };\n }\n } else {\n warn(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" + \"but got \" + toRawType(props) + \".\", vm);\n }\n\n options.props = res;\n }\n /**\n * Normalize all injections into Object-based format\n */\n\n\n function normalizeInject(options, vm) {\n var inject = options.inject;\n\n if (!inject) {\n return;\n }\n\n var normalized = options.inject = {};\n\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = {\n from: inject[i]\n };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val) ? extend({\n from: key\n }, val) : {\n from: val\n };\n }\n } else {\n warn(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" + \"but got \" + toRawType(inject) + \".\", vm);\n }\n }\n /**\n * Normalize raw function directives into object format.\n */\n\n\n function normalizeDirectives(options) {\n var dirs = options.directives;\n\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n\n if (typeof def$$1 === 'function') {\n dirs[key] = {\n bind: def$$1,\n update: def$$1\n };\n }\n }\n }\n }\n\n function assertObjectType(name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" + \"but got \" + toRawType(value) + \".\", vm);\n }\n }\n /**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\n\n\n function mergeOptions(parent, child, vm) {\n {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child); // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n\n for (key in parent) {\n mergeField(key);\n }\n\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n\n function mergeField(key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n\n return options;\n }\n /**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\n\n\n function resolveAsset(options, type, id, warnMissing) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return;\n }\n\n var assets = options[type]; // check local registration variations first\n\n if (hasOwn(assets, id)) {\n return assets[id];\n }\n\n var camelizedId = camelize(id);\n\n if (hasOwn(assets, camelizedId)) {\n return assets[camelizedId];\n }\n\n var PascalCaseId = capitalize(camelizedId);\n\n if (hasOwn(assets, PascalCaseId)) {\n return assets[PascalCaseId];\n } // fallback to prototype chain\n\n\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n\n if (warnMissing && !res) {\n warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);\n }\n\n return res;\n }\n /* */\n\n\n function validateProp(key, propOptions, propsData, vm) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key]; // boolean casting\n\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n } // check default value\n\n\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key); // since the default value is a fresh copy,\n // make sure to observe it.\n\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n\n {\n assertProp(prop, key, value, vm, absent);\n }\n return value;\n }\n /**\n * Get the default value of a prop.\n */\n\n\n function getPropDefaultValue(vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined;\n }\n\n var def = prop.default; // warn against non-factory defaults for Object & Array\n\n if (isObject(def)) {\n warn('Invalid default value for prop \"' + key + '\": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm);\n } // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n\n\n if (vm && vm.$options.propsData && vm.$options.propsData[key] === undefined && vm._props[key] !== undefined) {\n return vm._props[key];\n } // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n\n\n return typeof def === 'function' && getType(prop.type) !== 'Function' ? def.call(vm) : def;\n }\n /**\n * Assert whether a prop is valid.\n */\n\n\n function assertProp(prop, name, value, vm, absent) {\n if (prop.required && absent) {\n warn('Missing required prop: \"' + name + '\"', vm);\n return;\n }\n\n if (value == null && !prop.required) {\n return;\n }\n\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(getInvalidTypeMessage(name, value, expectedTypes), vm);\n return;\n }\n\n var validator = prop.validator;\n\n if (validator) {\n if (!validator(value)) {\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\n }\n }\n }\n\n var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\n function assertType(value, type) {\n var valid;\n var expectedType = getType(type);\n\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase(); // for primitive wrapper objects\n\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n\n return {\n valid: valid,\n expectedType: expectedType\n };\n }\n /**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\n\n\n function getType(fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : '';\n }\n\n function isSameType(a, b) {\n return getType(a) === getType(b);\n }\n\n function getTypeIndex(type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i;\n }\n }\n\n return -1;\n }\n\n function getInvalidTypeMessage(name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" + \" Expected \" + expectedTypes.map(capitalize).join(', ');\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType); // check if we need to specify expected value\n\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n\n message += \", got \" + receivedType + \" \"; // check if we need to specify received value\n\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n\n return message;\n }\n\n function styleValue(value, type) {\n if (type === 'String') {\n return \"\\\"\" + value + \"\\\"\";\n } else if (type === 'Number') {\n return \"\" + Number(value);\n } else {\n return \"\" + value;\n }\n }\n\n function isExplicable(value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) {\n return value.toLowerCase() === elem;\n });\n }\n\n function isBoolean() {\n var args = [],\n len = arguments.length;\n\n while (len--) args[len] = arguments[len];\n\n return args.some(function (elem) {\n return elem.toLowerCase() === 'boolean';\n });\n }\n /* */\n\n\n function handleError(err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n\n try {\n if (vm) {\n var cur = vm;\n\n while (cur = cur.$parent) {\n var hooks = cur.$options.errorCaptured;\n\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n\n if (capture) {\n return;\n }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n }\n\n function invokeWithErrorHandling(handler, context, args, vm, info) {\n var res;\n\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) {\n return handleError(e, vm, info + \" (Promise/async)\");\n }); // issue #9511\n // avoid catch triggering multiple times when nested calls\n\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n\n return res;\n }\n\n function globalHandleError(err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info);\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n\n logError(err, vm, info);\n }\n\n function logError(err, vm, info) {\n {\n warn(\"Error in \" + info + \": \\\"\" + err.toString() + \"\\\"\", vm);\n }\n /* istanbul ignore else */\n\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err;\n }\n }\n /* */\n\n\n var isUsingMicroTask = false;\n var callbacks = [];\n var pending = false;\n\n function flushCallbacks() {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n } // Here we have async deferring wrappers using microtasks.\n // In 2.5 we used (macro) tasks (in combination with microtasks).\n // However, it has subtle problems when state is changed right before repaint\n // (e.g. #6813, out-in transitions).\n // Also, using (macro) tasks in event handler would cause some weird behaviors\n // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n // So we now use microtasks everywhere, again.\n // A major drawback of this tradeoff is that there are some scenarios\n // where microtasks have too high a priority and fire in between supposedly\n // sequential events (e.g. #4521, #6690, which have workarounds)\n // or even between bubbling of the same event (#6566).\n\n\n var timerFunc; // The nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n\n /* istanbul ignore next, $flow-disable-line */\n\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n\n timerFunc = function () {\n p.then(flushCallbacks); // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n\n if (isIOS) {\n setTimeout(noop);\n }\n };\n\n isUsingMicroTask = true;\n } else if (!isIE && typeof MutationObserver !== 'undefined' && (isNative(MutationObserver) || // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]')) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n\n isUsingMicroTask = true;\n } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n } else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n }\n\n function nextTick(cb, ctx) {\n var _resolve;\n\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n\n if (!pending) {\n pending = true;\n timerFunc();\n } // $flow-disable-line\n\n\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n });\n }\n }\n /* */\n\n\n var mark;\n var measure;\n {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n\n if (perf && perf.mark && perf.measure && perf.clearMarks && perf.clearMeasures) {\n mark = function (tag) {\n return perf.mark(tag);\n };\n\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag); // perf.clearMeasures(name)\n };\n }\n }\n /* not type checking this file because flow doesn't play well with Proxy */\n\n var initProxy;\n {\n var allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" + 'referenced during render. Make sure that this property is reactive, ' + 'either in the data option, or for class-based components, by ' + 'initializing the property. ' + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" + 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' + 'prevent conflicts with Vue internals. ' + 'See: https://vuejs.org/v2/api/#data', target);\n };\n\n var hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set(target, key, value) {\n if (isBuiltInModifier(key)) {\n warn(\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key);\n return false;\n } else {\n target[key] = value;\n return true;\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has(target, key) {\n var has = (key in target);\n var isAllowed = allowedGlobals(key) || typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data);\n\n if (!has && !isAllowed) {\n if (key in target.$data) {\n warnReservedPrefix(target, key);\n } else {\n warnNonPresent(target, key);\n }\n }\n\n return has || !isAllowed;\n }\n };\n var getHandler = {\n get: function get(target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) {\n warnReservedPrefix(target, key);\n } else {\n warnNonPresent(target, key);\n }\n }\n\n return target[key];\n }\n };\n\n initProxy = function initProxy(vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped ? getHandler : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n }\n /* */\n\n var seenObjects = new _Set();\n /**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\n\n function traverse(val) {\n _traverse(val, seenObjects);\n\n seenObjects.clear();\n }\n\n function _traverse(val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n\n if (!isA && !isObject(val) || Object.isFrozen(val) || val instanceof VNode) {\n return;\n }\n\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n\n if (seen.has(depId)) {\n return;\n }\n\n seen.add(depId);\n }\n\n if (isA) {\n i = val.length;\n\n while (i--) {\n _traverse(val[i], seen);\n }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n\n while (i--) {\n _traverse(val[keys[i]], seen);\n }\n }\n }\n /* */\n\n\n var normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n };\n });\n\n function createFnInvoker(fns, vm) {\n function invoker() {\n var arguments$1 = arguments;\n var fns = invoker.fns;\n\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n\n invoker.fns = fns;\n return invoker;\n }\n\n function updateListeners(on, oldOn, add, remove$$1, createOnceHandler, vm) {\n var name, def$$1, cur, old, event;\n\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n\n if (isUndef(cur)) {\n warn(\"Invalid handler for event \\\"\" + event.name + \"\\\": got \" + String(cur), vm);\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n }\n /* */\n\n\n function mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook() {\n hook.apply(this, arguments); // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n }\n /* */\n\n\n function extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n\n if (isUndef(propOptions)) {\n return;\n }\n\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n {\n var keyInLowerCase = key.toLowerCase();\n\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" + formatComponentName(tag || Ctor) + \", but the declared prop name is\" + \" \\\"\" + key + \"\\\". \" + \"Note that HTML attributes are case-insensitive and camelCased \" + \"props need to use their kebab-case equivalents when using in-DOM \" + \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\");\n }\n }\n checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false);\n }\n }\n\n return res;\n }\n\n function checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n\n if (!preserve) {\n delete hash[key];\n }\n\n return true;\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n\n if (!preserve) {\n delete hash[altKey];\n }\n\n return true;\n }\n }\n\n return false;\n }\n /* */\n // The template compiler attempts to minimize the need for normalization by\n // statically analyzing the template at compile time.\n //\n // For plain HTML markup, normalization can be completely skipped because the\n // generated render function is guaranteed to return Array. There are\n // two cases where extra normalization is needed:\n // 1. When the children contains components - because a functional component\n // may return an Array instead of a single root. In this case, just a simple\n // normalization is needed - if any child is an Array, we flatten the whole\n // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n // because functional components already normalize their own children.\n\n\n function simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n\n return children;\n } // 2. When the children contains constructs that always generated nested Arrays,\n // e.g.