diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-05-10 16:19:00 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-05-16 09:50:24 +0200 |
commit | 6b1452bd7b280f812d340317d20948ad473ba390 (patch) | |
tree | 285de3e0d247ac9393536f25c9355d5309ceebaf | |
parent | a434077251f3dcb10bc10cf843ac8a4b7958c57d (diff) | |
download | nextcloud-server-6b1452bd7b280f812d340317d20948ad473ba390.tar.gz nextcloud-server-6b1452bd7b280f812d340317d20948ad473ba390.zip |
Bump script and fixed copyright template
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r-- | settings/js/main.js | 2 | ||||
-rw-r--r-- | settings/js/main.js.map | 1 | ||||
-rw-r--r-- | tests/acceptance/features/bootstrap/AppNavigationContext.php | 169 | ||||
-rw-r--r-- | tests/acceptance/features/bootstrap/AppSettingsContext.php | 1 | ||||
-rw-r--r-- | tests/acceptance/features/bootstrap/DialogContext.php | 69 | ||||
-rw-r--r-- | tests/acceptance/features/bootstrap/UsersSettingsContext.php | 1 |
6 files changed, 124 insertions, 119 deletions
diff --git a/settings/js/main.js b/settings/js/main.js index 5402d540da6..0033ed9e143 100644 --- a/settings/js/main.js +++ b/settings/js/main.js @@ -127,7 +127,7 @@ eval("//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_userList__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue_multiselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_api__ = __webpack_require__(5);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'Users',\n\tprops: ['selectedGroup'],\n\tcomponents: {\n\t\tappNavigation: __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__[\"a\" /* default */],\n\t\tuserList: __WEBPACK_IMPORTED_MODULE_1__components_userList__[\"a\" /* default */],\n\t\tMultiselect: __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default.a\n\t},\n\tbeforeMount: function beforeMount() {\n\t\tthis.$store.commit('initGroups', {\n\t\t\tgroups: this.$store.getters.getServerData.groups,\n\t\t\torderBy: this.$store.getters.getServerData.sortGroups,\n\t\t\tuserCount: this.$store.getters.getServerData.userCount\n\t\t});\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength');\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\t// default quota is unlimited\n\t\t\tunlimitedQuota: { id: 'default', label: t('settings', 'Unlimited') },\n\t\t\t// temporary value used for multiselect change\n\t\t\tselectedQuota: false,\n\t\t\tshowConfig: {\n\t\t\t\tshowStoragePath: false,\n\t\t\t\tshowUserBackend: false,\n\t\t\t\tshowLastLogin: false,\n\t\t\t\tshowNewUserForm: false,\n\t\t\t\tshowLanguages: false\n\t\t\t}\n\t\t};\n\t},\n\n\tmethods: {\n\t\tgetLocalstorage: function getLocalstorage(key) {\n\t\t\t// force initialization\n\t\t\tthis.showConfig[key] = this.$localStorage.get(key) === 'true';\n\t\t\treturn this.showConfig[key];\n\t\t},\n\t\tsetLocalStorage: function setLocalStorage(key, status) {\n\t\t\tthis.showConfig[key] = status;\n\t\t\tthis.$localStorage.set(key, status);\n\t\t\treturn status;\n\t\t},\n\t\tremoveGroup: function removeGroup(groupid) {\n\t\t\tvar self = this;\n\t\t\t// TODO migrate to a vue js confirm dialog component \n\t\t\tOC.dialogs.confirm(t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', { group: groupid }), t('settings', 'Please confirm the group removal '), function (success) {\n\t\t\t\tif (success) {\n\t\t\t\t\tself.$store.dispatch('removeGroup', groupid);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch default quota set request\n * \n * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n * @returns {string}\n */\n\t\tsetDefaultQuota: function setDefaultQuota() {\n\t\t\tvar _this = this;\n\n\t\t\tvar quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';\n\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota\n\t\t\t}).then(function () {\n\t\t\t\tif ((typeof quota === 'undefined' ? 'undefined' : _typeof(quota)) !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota };\n\t\t\t\t}\n\t\t\t\t_this.defaultQuota = quota;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Validate quota string to make sure it's a valid human file size\n * \n * @param {string} quota Quota in readable format '5 GB'\n * @returns {Promise|boolean}\n */\n\t\tvalidateQuota: function validateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tvar validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setDefaultQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t}\n\t},\n\tcomputed: {\n\t\tusers: function users() {\n\t\t\treturn this.$store.getters.getUsers;\n\t\t},\n\t\tloading: function loading() {\n\t\t\treturn Object.keys(this.users).length === 0;\n\t\t},\n\t\tusersOffset: function usersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit: function usersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\n\t\t// Local settings\n\t\tshowLanguages: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLanguages');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLanguages', status);\n\t\t\t}\n\t\t},\n\t\tshowLastLogin: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLastLogin');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLastLogin', status);\n\t\t\t}\n\t\t},\n\t\tshowUserBackend: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showUserBackend');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showUserBackend', status);\n\t\t\t}\n\t\t},\n\t\tshowStoragePath: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showStoragePath');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showStoragePath', status);\n\t\t\t}\n\t\t},\n\n\t\tuserCount: function userCount() {\n\t\t\treturn this.$store.getters.getUserCount;\n\t\t},\n\t\tsettings: function settings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\n\n\t\t// default quota\n\t\tquotaOptions: function quotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tvar quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {\n\t\t\t\treturn acc.concat({ id: cur, label: cur });\n\t\t\t}, []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\n\t\t// mapping saved values to objects\n\t\tdefaultQuota: {\n\t\t\tget: function get() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota;\n\t\t\t\t}\n\t\t\t\tif (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota };\n\t\t\t\t}\n\t\t\t\treturn this.unlimitedQuota; // unlimited\n\t\t\t},\n\t\t\tset: function set(quota) {\n\t\t\t\tthis.selectedQuota = quota;\n\t\t\t}\n\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu: function menu() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Data provided php side\n\t\t\tvar groups = this.$store.getters.getGroups;\n\t\t\tgroups = Array.isArray(groups) ? groups : [];\n\n\t\t\t// Map groups\n\t\t\tgroups = groups.map(function (group) {\n\t\t\t\tvar item = {};\n\t\t\t\titem.id = group.id.replace(' ', '_');\n\t\t\t\titem.classes = []; // empty classes, active will be set later\n\t\t\t\titem.router = { // router link to\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: { selectedGroup: group.id }\n\t\t\t\t};\n\t\t\t\titem.text = group.name; // group name\n\t\t\t\titem.utils = { counter: group.usercount }; // users count\n\n\t\t\t\tif (item.id !== 'admin' && item.id !== 'disabled') {\n\t\t\t\t\t// add delete button on real groups\n\t\t\t\t\tvar self = _this2;\n\t\t\t\t\titem.utils.actions = [{\n\t\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\t\ttext: t('settings', 'Remove group'),\n\t\t\t\t\t\taction: function action() {\n\t\t\t\t\t\t\tself.removeGroup(group.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}];\n\t\t\t\t};\n\t\t\t\treturn item;\n\t\t\t});\n\n\t\t\t// Adjust data\n\t\t\tvar adminGroup = groups.find(function (group) {\n\t\t\t\treturn group.id == 'admin';\n\t\t\t});\n\t\t\tvar disabledGroupIndex = groups.findIndex(function (group) {\n\t\t\t\treturn group.id == 'disabled';\n\t\t\t});\n\t\t\tvar disabledGroup = groups[disabledGroupIndex];\n\t\t\tif (adminGroup && adminGroup.text) {\n\t\t\t\tadminGroup.text = t('settings', 'Admins'); // rename admin group\n\t\t\t}\n\t\t\tif (disabledGroup && disabledGroup.text) {\n\t\t\t\tdisabledGroup.text = t('settings', 'Disabled users'); // rename disabled group\n\t\t\t\tif (disabledGroup.utils.counter === 0) {\n\t\t\t\t\tgroups.splice(disabledGroupIndex, 1); // remove disabled if empty\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add everyone group\n\t\t\tgroups.unshift({\n\t\t\t\tid: 'everyone',\n\t\t\t\tclasses: [],\n\t\t\t\trouter: { name: 'users' },\n\t\t\t\ttext: t('settings', 'Everyone'),\n\t\t\t\tutils: { counter: this.userCount }\n\t\t\t});\n\n\t\t\t// Set current group as active\n\t\t\tvar activeGroup = groups.findIndex(function (group) {\n\t\t\t\treturn group.id === _this2.selectedGroup;\n\t\t\t});\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tgroups[activeGroup].classes.push('active');\n\t\t\t} else {\n\t\t\t\tgroups[0].classes.push('active');\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn {\n\t\t\t\tid: 'usergrouplist',\n\t\t\t\tnew: {\n\t\t\t\t\tid: 'new-user-button',\n\t\t\t\t\ttext: t('settings', 'New user'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: function action() {\n\t\t\t\t\t\treturn _this2.showConfig.showNewUserForm = !_this2.showConfig.showNewUserForm;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\titems: groups\n\t\t\t};\n\t\t}\n\t}\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL1VzZXJzLnZ1ZT8wNzZmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtPQUVBO1NBQ0E7O0FBRUE7QUFDQTtBQUVBO0FBSkE7cUNBS0E7OzZDQUVBOzhDQUNBO2dEQUVBO0FBSkE7dUJBS0E7QUFDQTt1QkFDQTs7QUFFQTt5REFDQTtBQUNBO2tCQUNBOztxQkFFQTtxQkFDQTttQkFDQTtxQkFDQTttQkFHQTtBQVBBO0FBTEE7QUFhQTs7O2lEQUVBO0FBQ0E7MERBQ0E7MEJBQ0E7QUFDQTt5REFDQTswQkFDQTsrQkFDQTtVQUNBO0FBQ0E7NkNBQ0E7Y0FDQTtBQUNBO2NBQ0EsNEdBQ0EsMEJBQ0EseURBQ0E7aUJBQ0E7eUNBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQU1BOzs7Ozs7O0FBQ0E7Ozs7O1NBRUE7U0FDQTtBQUNBO2lDQUNBO0FBSkEsdUJBS0E7b0ZBQ0E7aUNBQ0E7QUFDQTt5QkFDQTtBQUNBO0FBRUE7OztBQU1BOzs7Ozs7K0NBQ0E7QUFDQTs2Q0FDQTt5QkFDQTtnQ0FDQTttQ0FDQTtBQUNBOytFQUNBO0FBQ0E7QUFDQTtVQUNBO0FBRUE7QUEvREE7OzBCQWlFQTs4QkFDQTtBQUNBOzhCQUNBOzZDQUNBO0FBQ0E7c0NBQ0E7OEJBQ0E7QUFDQTtvQ0FDQTs4QkFDQTtBQUVBOzs7QUFDQTs7OztBQUVBOzZCQUNBOzBDQUNBO0FBRUE7QUFMQTs7OztBQU9BOzZCQUNBOzBDQUNBO0FBRUE7QUFMQTs7OztBQU9BOzZCQUNBOzRDQUNBO0FBRUE7QUFMQTs7OztBQU9BOzZCQUNBOzRDQUNBO0FBR0E7QUFOQTs7a0NBT0E7OEJBQ0E7QUFDQTtnQ0FDQTs4QkFDQTtBQUVBOzs7QUFDQTt3Q0FDQTtBQUNBOzs7TUFDQTtBQUNBOzRCQUNBO1VBQ0E7QUFDQTs7QUFDQTs7dUJBRUE7c0NBQ0E7aUJBQ0E7QUFDQTtrRUFDQTtBQUNBO21FQUNBO0FBQ0E7Z0NBQ0E7QUFDQTs0QkFDQTt5QkFDQTtBQUlBOztBQWhCQTs7QUFpQkE7O0FBQ0E7O0FBQ0E7b0NBQ0E7NkNBRUE7O0FBQ0E7O2VBRUE7b0NBQ0E7c0JBRkEsQ0FHQTtvQkFDQTtXQUNBO29DQUVBOzs0QkFDQTsrQ0FFQTs7dURBQ0E7QUFDQTtTQUNBOztZQUVBOzBCQUNBOzs7QUFFQTtBQUpBO0FBS0E7V0FDQTtBQUVBOztBQUNBOzt1QkFDQTs7O3VCQUNBOzs4QkFDQTtzQ0FDQTsrQ0FDQTtBQUNBOzRDQUNBOzBEQUNBOzswQ0FDQSxDQUNBO0FBQ0E7QUFFQTs7QUFDQTs7UUFFQTthQUNBO29CQUNBO3dCQUNBOzJCQUdBO0FBUEE7O0FBUUE7OytCQUNBOzt5QkFDQTtxQ0FDQTtVQUNBOzJCQUNBO0FBRUE7O0FBQ0E7O1FBRUE7O1NBRUE7eUJBQ0E7V0FDQTs7b0VBRUE7O0FBTEE7V0FPQTtBQVRBO0FBV0E7QUFsSkE7QUEvRkEiLCJmaWxlIjoiOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIjx0ZW1wbGF0ZT5cblx0PGRpdiBpZD1cImFwcFwiPlxuXHRcdDxhcHAtbmF2aWdhdGlvbiA6bWVudT1cIm1lbnVcIj5cblx0XHRcdDx0ZW1wbGF0ZSBzbG90PVwic2V0dGluZ3MtY29udGVudFwiPlxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdDxwPnt7dCgnc2V0dGluZ3MnLCAnRGVmYXVsdCBxdW90YSA6Jyl9fTwvcD5cblx0XHRcdFx0XHQ8bXVsdGlzZWxlY3QgOnZhbHVlPVwiZGVmYXVsdFF1b3RhXCIgOm9wdGlvbnM9XCJxdW90YU9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRcdHRhZy1wbGFjZWhvbGRlcj1cImNyZWF0ZVwiIDpwbGFjZWhvbGRlcj1cInQoJ3NldHRpbmdzJywgJ1NlbGVjdCBkZWZhdWx0IHF1b3RhJylcIlxuXHRcdFx0XHRcdFx0XHRcdGxhYmVsPVwibGFiZWxcIiB0cmFjay1ieT1cImlkXCIgY2xhc3M9XCJtdWx0aXNlbGVjdC12dWVcIlxuXHRcdFx0XHRcdFx0XHRcdDphbGxvd0VtcHR5PVwiZmFsc2VcIiA6dGFnZ2FibGU9XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRAdGFnPVwidmFsaWRhdGVRdW90YVwiIEBpbnB1dD1cInNldERlZmF1bHRRdW90YVwiPlxuXHRcdFx0XHRcdDwvbXVsdGlzZWxlY3Q+XG5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2hvd0xhbmd1YWdlc1wiIGNsYXNzPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0ICAgOmNoZWNrZWQ9XCJzaG93TGFuZ3VhZ2VzXCIgdi1tb2RlbD1cInNob3dMYW5ndWFnZXNcIj5cblx0XHRcdFx0XHQ8bGFiZWwgZm9yPVwic2hvd0xhbmd1YWdlc1wiPnt7dCgnc2V0dGluZ3MnLCAnU2hvdyBMYW5ndWFnZXMnKX19PC9sYWJlbD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2hvd0xhc3RMb2dpblwiIGNsYXNzPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0ICAgOmNoZWNrZWQ9XCJzaG93TGFzdExvZ2luXCIgdi1tb2RlbD1cInNob3dMYXN0TG9naW5cIj5cblx0XHRcdFx0XHQ8bGFiZWwgZm9yPVwic2hvd0xhc3RMb2dpblwiPnt7dCgnc2V0dGluZ3MnLCAnU2hvdyBsYXN0IGxvZ2luJyl9fTwvbGFiZWw+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInNob3dVc2VyQmFja2VuZFwiIGNsYXNzPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0ICAgOmNoZWNrZWQ9XCJzaG93VXNlckJhY2tlbmRcIiB2LW1vZGVsPVwic2hvd1VzZXJCYWNrZW5kXCI+XG5cdFx0XHRcdFx0PGxhYmVsIGZvcj1cInNob3dVc2VyQmFja2VuZFwiPnt7dCgnc2V0dGluZ3MnLCAnU2hvdyB1c2VyIGJhY2tlbmQnKX19PC9sYWJlbD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2hvd1N0b3JhZ2VQYXRoXCIgY2xhc3M9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHQgICA6Y2hlY2tlZD1cInNob3dTdG9yYWdlUGF0aFwiIHYtbW9kZWw9XCJzaG93U3RvcmFnZVBhdGhcIj5cblx0XHRcdFx0XHQ8bGFiZWwgZm9yPVwic2hvd1N0b3JhZ2VQYXRoXCI+e3t0KCdzZXR0aW5ncycsICdTaG93IHN0b3JhZ2UgcGF0aCcpfX08L2xhYmVsPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvdGVtcGxhdGU+XG5cdFx0PC9hcHAtbmF2aWdhdGlvbj5cblx0XHQ8dXNlci1saXN0IDp1c2Vycz1cInVzZXJzXCIgOnNob3dDb25maWc9XCJzaG93Q29uZmlnXCIgOnNlbGVjdGVkR3JvdXA9XCJzZWxlY3RlZEdyb3VwXCIgLz5cblx0PC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGFwcE5hdmlnYXRpb24gZnJvbSAnLi4vY29tcG9uZW50cy9hcHBOYXZpZ2F0aW9uJztcbmltcG9ydCB1c2VyTGlzdCBmcm9tICcuLi9jb21wb25lbnRzL3VzZXJMaXN0JztcbmltcG9ydCBWdWUgZnJvbSAndnVlJztcbmltcG9ydCBWdWVMb2NhbFN0b3JhZ2UgZnJvbSAndnVlLWxvY2Fsc3RvcmFnZSdcbmltcG9ydCBNdWx0aXNlbGVjdCBmcm9tICd2dWUtbXVsdGlzZWxlY3QnO1xuaW1wb3J0IGFwaSBmcm9tICcuLi9zdG9yZS9hcGknO1xuXG5WdWUudXNlKFZ1ZUxvY2FsU3RvcmFnZSlcblZ1ZS51c2UoVnVlTG9jYWxTdG9yYWdlKVxuXG5leHBvcnQgZGVmYXVsdCB7XG5cdG5hbWU6ICdVc2VycycsXG5cdHByb3BzOiBbJ3NlbGVjdGVkR3JvdXAnXSxcblx0Y29tcG9uZW50czoge1xuXHRcdGFwcE5hdmlnYXRpb24sXG5cdFx0dXNlckxpc3QsXG5cdFx0TXVsdGlzZWxlY3Rcblx0fSxcblx0YmVmb3JlTW91bnQoKSB7XG5cdFx0dGhpcy4kc3RvcmUuY29tbWl0KCdpbml0R3JvdXBzJywge1xuXHRcdFx0Z3JvdXBzOiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFNlcnZlckRhdGEuZ3JvdXBzLFxuXHRcdFx0b3JkZXJCeTogdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTZXJ2ZXJEYXRhLnNvcnRHcm91cHMsXG5cdFx0XHR1c2VyQ291bnQ6IHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0U2VydmVyRGF0YS51c2VyQ291bnRcblx0XHR9KTtcblx0XHR0aGlzLiRzdG9yZS5kaXNwYXRjaCgnZ2V0UGFzc3dvcmRQb2xpY3lNaW5MZW5ndGgnKTtcblx0fSxcblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Ly8gZGVmYXVsdCBxdW90YSBpcyB1bmxpbWl0ZWRcblx0XHRcdHVubGltaXRlZFF1b3RhOiB7aWQ6J2RlZmF1bHQnLCBsYWJlbDp0KCdzZXR0aW5ncycsICdVbmxpbWl0ZWQnKX0sXG5cdFx0XHQvLyB0ZW1wb3JhcnkgdmFsdWUgdXNlZCBmb3IgbXVsdGlzZWxlY3QgY2hhbmdlXG5cdFx0XHRzZWxlY3RlZFF1b3RhOiBmYWxzZSxcblx0XHRcdHNob3dDb25maWc6IHtcblx0XHRcdFx0c2hvd1N0b3JhZ2VQYXRoOiBmYWxzZSxcblx0XHRcdFx0c2hvd1VzZXJCYWNrZW5kOiBmYWxzZSxcblx0XHRcdFx0c2hvd0xhc3RMb2dpbjogZmFsc2UsXG5cdFx0XHRcdHNob3dOZXdVc2VyRm9ybTogZmFsc2UsXG5cdFx0XHRcdHNob3dMYW5ndWFnZXM6IGZhbHNlXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRtZXRob2RzOiB7XG5cdFx0Z2V0TG9jYWxzdG9yYWdlKGtleSkge1xuXHRcdFx0Ly8gZm9yY2UgaW5pdGlhbGl6YXRpb25cblx0XHRcdHRoaXMuc2hvd0NvbmZpZ1trZXldID0gdGhpcy4kbG9jYWxTdG9yYWdlLmdldChrZXkpID09PSAndHJ1ZSc7XG5cdFx0XHRyZXR1cm4gdGhpcy5zaG93Q29uZmlnW2tleV07XG5cdFx0fSxcblx0XHRzZXRMb2NhbFN0b3JhZ2Uoa2V5LCBzdGF0dXMpIHtcblx0XHRcdHRoaXMuc2hvd0NvbmZpZ1trZXldID0gc3RhdHVzO1xuXHRcdFx0dGhpcy4kbG9jYWxTdG9yYWdlLnNldChrZXksIHN0YXR1cyk7XG5cdFx0XHRyZXR1cm4gc3RhdHVzO1xuXHRcdH0sXG5cdFx0cmVtb3ZlR3JvdXAoZ3JvdXBpZCkge1xuXHRcdFx0bGV0IHNlbGYgPSB0aGlzO1xuXHRcdFx0Ly8gVE9ETyBtaWdyYXRlIHRvIGEgdnVlIGpzIGNvbmZpcm0gZGlhbG9nIGNvbXBvbmVudCBcblx0XHRcdE9DLmRpYWxvZ3MuY29uZmlybShcblx0XHRcdFx0dCgnc2V0dGluZ3MnLCAnWW91IGFyZSBhYm91dCB0byByZW1vdmUgdGhlIGdyb3VwIHtncm91cH0uIFRoZSB1c2VycyB3aWxsIE5PVCBiZSBkZWxldGVkLicsIHtncm91cDogZ3JvdXBpZH0pLFxuXHRcdFx0XHR0KCdzZXR0aW5ncycsJ1BsZWFzZSBjb25maXJtIHRoZSBncm91cCByZW1vdmFsICcpLFxuXHRcdFx0XHRmdW5jdGlvbiAoc3VjY2Vzcykge1xuXHRcdFx0XHRcdGlmIChzdWNjZXNzKSB7XG5cdFx0XHRcdFx0XHRzZWxmLiRzdG9yZS5kaXNwYXRjaCgncmVtb3ZlR3JvdXAnLCBncm91cGlkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdCk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIERpc3BhdGNoIGRlZmF1bHQgcXVvdGEgc2V0IHJlcXVlc3Rcblx0XHQgKiBcblx0XHQgKiBAcGFyYW0ge3N0cmluZ3xPYmplY3R9IHF1b3RhIFF1b3RhIGluIHJlYWRhYmxlIGZvcm1hdCAnNSBHQicgb3IgT2JqZWN0IHtpZDogJzUgR0InLCBsYWJlbDogJzVHQid9XG5cdFx0ICogQHJldHVybnMge3N0cmluZ31cblx0XHQgKi9cblx0XHRzZXREZWZhdWx0UXVvdGEocXVvdGEgPSAnbm9uZScpIHtcblx0XHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdzZXRBcHBDb25maWcnLCB7XG5cdFx0XHRcdGFwcDogJ2ZpbGVzJyxcblx0XHRcdFx0a2V5OiAnZGVmYXVsdF9xdW90YScsXG5cdFx0XHRcdC8vIGVuc3VyZSB3ZSBvbmx5IHNlbmQgdGhlIHByZXNldCBpZFxuXHRcdFx0XHR2YWx1ZTogcXVvdGEuaWQgPyBxdW90YS5pZCA6IHF1b3RhXG5cdFx0XHR9KS50aGVuKCgpID0+IHtcblx0XHRcdFx0aWYgKHR5cGVvZiBxdW90YSAhPT0gJ29iamVjdCcpIHtcblx0XHRcdFx0XHRxdW90YSA9IHtpZDogcXVvdGEsIGxhYmVsOiBxdW90YX07XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5kZWZhdWx0UXVvdGEgPSBxdW90YTtcblx0XHRcdH0pO1xuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBWYWxpZGF0ZSBxdW90YSBzdHJpbmcgdG8gbWFrZSBzdXJlIGl0J3MgYSB2YWxpZCBodW1hbiBmaWxlIHNpemVcblx0XHQgKiBcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gcXVvdGEgUXVvdGEgaW4gcmVhZGFibGUgZm9ybWF0ICc1IEdCJ1xuXHRcdCAqIEByZXR1cm5zIHtQcm9taXNlfGJvb2xlYW59XG5cdFx0ICovXG5cdFx0dmFsaWRhdGVRdW90YShxdW90YSkge1xuXHRcdFx0Ly8gb25seSB1c2VkIGZvciBuZXcgcHJlc2V0cyBzZW50IHRocm91Z2ggQFRhZ1xuXHRcdFx0bGV0IHZhbGlkUXVvdGEgPSBPQy5VdGlsLmNvbXB1dGVyRmlsZVNpemUocXVvdGEpO1xuXHRcdFx0aWYgKHZhbGlkUXVvdGEgPT09IDApIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0RGVmYXVsdFF1b3RhKCdub25lJyk7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbGlkUXVvdGEgIT09IG51bGwpIHtcblx0XHRcdFx0Ly8gdW5pZnkgZm9ybWF0IG91dHB1dFxuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZXREZWZhdWx0UXVvdGEoT0MuVXRpbC5odW1hbkZpbGVTaXplKE9DLlV0aWwuY29tcHV0ZXJGaWxlU2l6ZShxdW90YSkpKTtcblx0XHRcdH1cblx0XHRcdC8vIGlmIG5vIHZhbGlkIGRvIG5vdCBjaGFuZ2Vcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9LFxuXHR9LFxuXHRjb21wdXRlZDoge1xuXHRcdHVzZXJzKCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0VXNlcnM7XG5cdFx0fSxcblx0XHRsb2FkaW5nKCkge1xuXHRcdFx0cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMudXNlcnMpLmxlbmd0aCA9PT0gMDtcblx0XHR9LFxuXHRcdHVzZXJzT2Zmc2V0KCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0VXNlcnNPZmZzZXQ7XG5cdFx0fSxcblx0XHR1c2Vyc0xpbWl0KCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0VXNlcnNMaW1pdDtcblx0XHR9LFxuXG5cdFx0Ly8gTG9jYWwgc2V0dGluZ3Ncblx0XHRzaG93TGFuZ3VhZ2VzOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge3JldHVybiB0aGlzLmdldExvY2Fsc3RvcmFnZSgnc2hvd0xhbmd1YWdlcycpfSxcblx0XHRcdHNldDogZnVuY3Rpb24oc3RhdHVzKSB7XG5cdFx0XHRcdHRoaXMuc2V0TG9jYWxTdG9yYWdlKCdzaG93TGFuZ3VhZ2VzJywgc3RhdHVzKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHNob3dMYXN0TG9naW46IHtcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZ2V0TG9jYWxzdG9yYWdlKCdzaG93TGFzdExvZ2luJyl9LFxuXHRcdFx0c2V0OiBmdW5jdGlvbihzdGF0dXMpIHtcblx0XHRcdFx0dGhpcy5zZXRMb2NhbFN0b3JhZ2UoJ3Nob3dMYXN0TG9naW4nLCBzdGF0dXMpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c2hvd1VzZXJCYWNrZW5kOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge3JldHVybiB0aGlzLmdldExvY2Fsc3RvcmFnZSgnc2hvd1VzZXJCYWNrZW5kJyl9LFxuXHRcdFx0c2V0OiBmdW5jdGlvbihzdGF0dXMpIHtcblx0XHRcdFx0dGhpcy5zZXRMb2NhbFN0b3JhZ2UoJ3Nob3dVc2VyQmFja2VuZCcsIHN0YXR1cyk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzaG93U3RvcmFnZVBhdGg6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZ2V0TG9jYWxzdG9yYWdlKCdzaG93U3RvcmFnZVBhdGgnKX0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKHN0YXR1cykge1xuXHRcdFx0XHR0aGlzLnNldExvY2FsU3RvcmFnZSgnc2hvd1N0b3JhZ2VQYXRoJywgc3RhdHVzKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0dXNlckNvdW50KCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0VXNlckNvdW50O1xuXHRcdH0sXG5cdFx0c2V0dGluZ3MoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTZXJ2ZXJEYXRhO1xuXHRcdH0sXG5cblx0XHQvLyBkZWZhdWx0IHF1b3RhXG5cdFx0cXVvdGFPcHRpb25zKCkge1xuXHRcdFx0Ly8gY29udmVydCB0aGUgcHJlc2V0IGFycmF5IGludG8gb2JqZWN0c1xuXHRcdFx0bGV0IHF1b3RhUHJlc2V0ID0gdGhpcy5zZXR0aW5ncy5xdW90YVByZXNldC5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MuY29uY2F0KHtpZDpjdXIsIGxhYmVsOmN1cn0pLCBbXSk7XG5cdFx0XHQvLyBhZGQgZGVmYXVsdCBwcmVzZXRzXG5cdFx0XHRxdW90YVByZXNldC51bnNoaWZ0KHRoaXMudW5saW1pdGVkUXVvdGEpO1xuXHRcdFx0cmV0dXJuIHF1b3RhUHJlc2V0O1xuXHRcdH0sXG5cdFx0Ly8gbWFwcGluZyBzYXZlZCB2YWx1ZXMgdG8gb2JqZWN0c1xuXHRcdGRlZmF1bHRRdW90YToge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRRdW90YSAhPT0gZmFsc2UpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5zZWxlY3RlZFF1b3RhO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChPQy5VdGlsLmNvbXB1dGVyRmlsZVNpemUodGhpcy5zZXR0aW5ncy5kZWZhdWx0UXVvdGEpID4gMCkge1xuXHRcdFx0XHRcdC8vIGlmIHZhbHVlIGlzIHZhbGlkLCBsZXQncyBtYXAgdGhlIHF1b3RhT3B0aW9ucyBvciByZXR1cm4gY3VzdG9tIHF1b3RhXG5cdFx0XHRcdFx0cmV0dXJuIHtpZDp0aGlzLnNldHRpbmdzLmRlZmF1bHRRdW90YSwgbGFiZWw6dGhpcy5zZXR0aW5ncy5kZWZhdWx0UXVvdGF9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzLnVubGltaXRlZFF1b3RhOyAvLyB1bmxpbWl0ZWRcblx0XHRcdH0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKHF1b3RhKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRRdW90YSA9ICBxdW90YTtcblx0XHRcdH1cblx0XHRcdFxuXHRcdH0sXG5cblx0XHQvLyBCVUlMRCBBUFAgTkFWSUdBVElPTiBNRU5VIE9CSkVDVFxuXHRcdG1lbnUoKSB7XG5cdFx0XHQvLyBEYXRhIHByb3ZpZGVkIHBocCBzaWRlXG5cdFx0XHRsZXQgZ3JvdXBzID0gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRHcm91cHM7XG5cdFx0XHRncm91cHMgPSBBcnJheS5pc0FycmF5KGdyb3VwcykgPyBncm91cHMgOiBbXTtcblxuXHRcdFx0Ly8gTWFwIGdyb3Vwc1xuXHRcdFx0Z3JvdXBzID0gZ3JvdXBzLm1hcChncm91cCA9PiB7XG5cdFx0XHRcdGxldCBpdGVtID0ge307XG5cdFx0XHRcdGl0ZW0uaWQgPSBncm91cC5pZC5yZXBsYWNlKCcgJywgJ18nKTtcblx0XHRcdFx0aXRlbS5jbGFzc2VzID0gW107XHRcdFx0XHRcdFx0XHQvLyBlbXB0eSBjbGFzc2VzLCBhY3RpdmUgd2lsbCBiZSBzZXQgbGF0ZXJcblx0XHRcdFx0aXRlbS5yb3V0ZXIgPSB7XHRcdFx0XHRcdFx0XHRcdC8vIHJvdXRlciBsaW5rIHRvXG5cdFx0XHRcdFx0bmFtZTogJ2dyb3VwJyxcblx0XHRcdFx0XHRwYXJhbXM6IHtzZWxlY3RlZEdyb3VwOiBncm91cC5pZH1cblx0XHRcdFx0fTtcblx0XHRcdFx0aXRlbS50ZXh0ID0gZ3JvdXAubmFtZTtcdFx0XHRcdFx0XHQvLyBncm91cCBuYW1lXG5cdFx0XHRcdGl0ZW0udXRpbHMgPSB7Y291bnRlcjogZ3JvdXAudXNlcmNvdW50fTtcdC8vIHVzZXJzIGNvdW50XG5cblx0XHRcdFx0aWYgKGl0ZW0uaWQgIT09ICdhZG1pbicgJiYgaXRlbS5pZCAhPT0gJ2Rpc2FibGVkJykge1xuXHRcdFx0XHRcdC8vIGFkZCBkZWxldGUgYnV0dG9uIG9uIHJlYWwgZ3JvdXBzXG5cdFx0XHRcdFx0bGV0IHNlbGYgPSB0aGlzO1xuXHRcdFx0XHRcdGl0ZW0udXRpbHMuYWN0aW9ucyA9IFt7XG5cdFx0XHRcdFx0XHRpY29uOiAnaWNvbi1kZWxldGUnLFxuXHRcdFx0XHRcdFx0dGV4dDogdCgnc2V0dGluZ3MnLCAnUmVtb3ZlIGdyb3VwJyksXG5cdFx0XHRcdFx0XHRhY3Rpb246IGZ1bmN0aW9uKCkge3NlbGYucmVtb3ZlR3JvdXAoZ3JvdXAuaWQpfVxuXHRcdFx0XHRcdH1dO1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRyZXR1cm4gaXRlbTtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBBZGp1c3QgZGF0YVxuXHRcdFx0bGV0IGFkbWluR3JvdXAgPSBncm91cHMuZmluZChncm91cCA9PiBncm91cC5pZCA9PSAnYWRtaW4nKTtcblx0XHRcdGxldCBkaXNhYmxlZEdyb3VwSW5kZXggPSBncm91cHMuZmluZEluZGV4KGdyb3VwID0+IGdyb3VwLmlkID09ICdkaXNhYmxlZCcpO1xuXHRcdFx0bGV0IGRpc2FibGVkR3JvdXAgPSBncm91cHNbZGlzYWJsZWRHcm91cEluZGV4XTtcblx0XHRcdGlmIChhZG1pbkdyb3VwICYmIGFkbWluR3JvdXAudGV4dCkge1xuXHRcdFx0XHRhZG1pbkdyb3VwLnRleHQgPSB0KCdzZXR0aW5ncycsICdBZG1pbnMnKTsgLy8gcmVuYW1lIGFkbWluIGdyb3VwXG5cdFx0XHR9XG5cdFx0XHRpZiAoZGlzYWJsZWRHcm91cCAmJiBkaXNhYmxlZEdyb3VwLnRleHQpIHtcblx0XHRcdFx0ZGlzYWJsZWRHcm91cC50ZXh0ID0gdCgnc2V0dGluZ3MnLCAnRGlzYWJsZWQgdXNlcnMnKTsgLy8gcmVuYW1lIGRpc2FibGVkIGdyb3VwXG5cdFx0XHRcdGlmIChkaXNhYmxlZEdyb3VwLnV0aWxzLmNvdW50ZXIgPT09IDApIHtcblx0XHRcdFx0XHRncm91cHMuc3BsaWNlKGRpc2FibGVkR3JvdXBJbmRleCwgMSk7IC8vIHJlbW92ZSBkaXNhYmxlZCBpZiBlbXB0eVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBldmVyeW9uZSBncm91cFxuXHRcdFx0Z3JvdXBzLnVuc2hpZnQoe1xuXHRcdFx0XHRpZDogJ2V2ZXJ5b25lJyxcblx0XHRcdFx0Y2xhc3NlczogW10sXG5cdFx0XHRcdHJvdXRlcjoge25hbWU6J3VzZXJzJ30sXG5cdFx0XHRcdHRleHQ6IHQoJ3NldHRpbmdzJywgJ0V2ZXJ5b25lJyksXG5cdFx0XHRcdHV0aWxzOiB7Y291bnRlcjogdGhpcy51c2VyQ291bnR9XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gU2V0IGN1cnJlbnQgZ3JvdXAgYXMgYWN0aXZlXG5cdFx0XHRsZXQgYWN0aXZlR3JvdXAgPSBncm91cHMuZmluZEluZGV4KGdyb3VwID0+IGdyb3VwLmlkID09PSB0aGlzLnNlbGVjdGVkR3JvdXApO1xuXHRcdFx0aWYgKGFjdGl2ZUdyb3VwID49IDApIHtcblx0XHRcdFx0Z3JvdXBzW2FjdGl2ZUdyb3VwXS5jbGFzc2VzLnB1c2goJ2FjdGl2ZScpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Z3JvdXBzWzBdLmNsYXNzZXMucHVzaCgnYWN0aXZlJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJldHVyblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aWQ6ICd1c2VyZ3JvdXBsaXN0Jyxcblx0XHRcdFx0bmV3OiB7XG5cdFx0XHRcdFx0aWQ6J25ldy11c2VyLWJ1dHRvbicsXG5cdFx0XHRcdFx0dGV4dDogdCgnc2V0dGluZ3MnLCdOZXcgdXNlcicpLFxuXHRcdFx0XHRcdGljb246ICdpY29uLWFkZCcsXG5cdFx0XHRcdFx0YWN0aW9uOiAoKSA9PiB0aGlzLnNob3dDb25maWcuc2hvd05ld1VzZXJGb3JtPSF0aGlzLnNob3dDb25maWcuc2hvd05ld1VzZXJGb3JtXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGl0ZW1zOiBncm91cHNcblx0XHRcdH1cblx0XHR9LFxuXHR9XG59XG48L3NjcmlwdD5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyBzcmMvdmlld3MvVXNlcnMudnVlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///9\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_userList__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue_multiselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_api__ = __webpack_require__(5);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'Users',\n\tprops: ['selectedGroup'],\n\tcomponents: {\n\t\tappNavigation: __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__[\"a\" /* default */],\n\t\tuserList: __WEBPACK_IMPORTED_MODULE_1__components_userList__[\"a\" /* default */],\n\t\tMultiselect: __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default.a\n\t},\n\tbeforeMount: function beforeMount() {\n\t\tthis.$store.commit('initGroups', {\n\t\t\tgroups: this.$store.getters.getServerData.groups,\n\t\t\torderBy: this.$store.getters.getServerData.sortGroups,\n\t\t\tuserCount: this.$store.getters.getServerData.userCount\n\t\t});\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength');\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\t// default quota is unlimited\n\t\t\tunlimitedQuota: { id: 'default', label: t('settings', 'Unlimited') },\n\t\t\t// temporary value used for multiselect change\n\t\t\tselectedQuota: false,\n\t\t\tshowConfig: {\n\t\t\t\tshowStoragePath: false,\n\t\t\t\tshowUserBackend: false,\n\t\t\t\tshowLastLogin: false,\n\t\t\t\tshowNewUserForm: false,\n\t\t\t\tshowLanguages: false\n\t\t\t}\n\t\t};\n\t},\n\n\tmethods: {\n\t\tgetLocalstorage: function getLocalstorage(key) {\n\t\t\t// force initialization\n\t\t\tvar localConfig = this.$localStorage.get(key);\n\t\t\t// if localstorage is null, fallback to original values\n\t\t\tthis.showConfig[key] = localConfig !== null ? localConfig === 'true' : this.showConfig[key];\n\t\t\treturn this.showConfig[key];\n\t\t},\n\t\tsetLocalStorage: function setLocalStorage(key, status) {\n\t\t\tthis.showConfig[key] = status;\n\t\t\tthis.$localStorage.set(key, status);\n\t\t\treturn status;\n\t\t},\n\t\tremoveGroup: function removeGroup(groupid) {\n\t\t\tvar self = this;\n\t\t\t// TODO migrate to a vue js confirm dialog component \n\t\t\tOC.dialogs.confirm(t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', { group: groupid }), t('settings', 'Please confirm the group removal '), function (success) {\n\t\t\t\tif (success) {\n\t\t\t\t\tself.$store.dispatch('removeGroup', groupid);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch default quota set request\n * \n * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n * @returns {string}\n */\n\t\tsetDefaultQuota: function setDefaultQuota() {\n\t\t\tvar _this = this;\n\n\t\t\tvar quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';\n\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota\n\t\t\t}).then(function () {\n\t\t\t\tif ((typeof quota === 'undefined' ? 'undefined' : _typeof(quota)) !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota };\n\t\t\t\t}\n\t\t\t\t_this.defaultQuota = quota;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Validate quota string to make sure it's a valid human file size\n * \n * @param {string} quota Quota in readable format '5 GB'\n * @returns {Promise|boolean}\n */\n\t\tvalidateQuota: function validateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tvar validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setDefaultQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t}\n\t},\n\tcomputed: {\n\t\tusers: function users() {\n\t\t\treturn this.$store.getters.getUsers;\n\t\t},\n\t\tloading: function loading() {\n\t\t\treturn Object.keys(this.users).length === 0;\n\t\t},\n\t\tusersOffset: function usersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit: function usersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\n\t\t// Local settings\n\t\tshowLanguages: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLanguages');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLanguages', status);\n\t\t\t}\n\t\t},\n\t\tshowLastLogin: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLastLogin');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLastLogin', status);\n\t\t\t}\n\t\t},\n\t\tshowUserBackend: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showUserBackend');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showUserBackend', status);\n\t\t\t}\n\t\t},\n\t\tshowStoragePath: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showStoragePath');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showStoragePath', status);\n\t\t\t}\n\t\t},\n\n\t\tuserCount: function userCount() {\n\t\t\treturn this.$store.getters.getUserCount;\n\t\t},\n\t\tsettings: function settings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\n\n\t\t// default quota\n\t\tquotaOptions: function quotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tvar quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {\n\t\t\t\treturn acc.concat({ id: cur, label: cur });\n\t\t\t}, []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\n\t\t// mapping saved values to objects\n\t\tdefaultQuota: {\n\t\t\tget: function get() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota;\n\t\t\t\t}\n\t\t\t\tif (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota };\n\t\t\t\t}\n\t\t\t\treturn this.unlimitedQuota; // unlimited\n\t\t\t},\n\t\t\tset: function set(quota) {\n\t\t\t\tthis.selectedQuota = quota;\n\t\t\t}\n\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu: function menu() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Data provided php side\n\t\t\tvar groups = this.$store.getters.getGroups;\n\t\t\tgroups = Array.isArray(groups) ? groups : [];\n\n\t\t\t// Map groups\n\t\t\tgroups = groups.map(function (group) {\n\t\t\t\tvar item = {};\n\t\t\t\titem.id = group.id.replace(' ', '_');\n\t\t\t\titem.classes = []; // empty classes, active will be set later\n\t\t\t\titem.router = { // router link to\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: { selectedGroup: group.id }\n\t\t\t\t};\n\t\t\t\titem.text = group.name; // group name\n\t\t\t\titem.utils = { counter: group.usercount }; // users count\n\n\t\t\t\tif (item.id !== 'admin' && item.id !== 'disabled') {\n\t\t\t\t\t// add delete button on real groups\n\t\t\t\t\tvar self = _this2;\n\t\t\t\t\titem.utils.actions = [{\n\t\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\t\ttext: t('settings', 'Remove group'),\n\t\t\t\t\t\taction: function action() {\n\t\t\t\t\t\t\tself.removeGroup(group.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}];\n\t\t\t\t};\n\t\t\t\treturn item;\n\t\t\t});\n\n\t\t\t// Adjust data\n\t\t\tvar adminGroup = groups.find(function (group) {\n\t\t\t\treturn group.id == 'admin';\n\t\t\t});\n\t\t\tvar disabledGroupIndex = groups.findIndex(function (group) {\n\t\t\t\treturn group.id == 'disabled';\n\t\t\t});\n\t\t\tvar disabledGroup = groups[disabledGroupIndex];\n\t\t\tif (adminGroup && adminGroup.text) {\n\t\t\t\tadminGroup.text = t('settings', 'Admins'); // rename admin group\n\t\t\t}\n\t\t\tif (disabledGroup && disabledGroup.text) {\n\t\t\t\tdisabledGroup.text = t('settings', 'Disabled users'); // rename disabled group\n\t\t\t\tif (disabledGroup.utils.counter === 0) {\n\t\t\t\t\tgroups.splice(disabledGroupIndex, 1); // remove disabled if empty\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add everyone group\n\t\t\tgroups.unshift({\n\t\t\t\tid: 'everyone',\n\t\t\t\tclasses: [],\n\t\t\t\trouter: { name: 'users' },\n\t\t\t\ttext: t('settings', 'Everyone'),\n\t\t\t\tutils: { counter: this.userCount }\n\t\t\t});\n\n\t\t\t// Set current group as active\n\t\t\tvar activeGroup = groups.findIndex(function (group) {\n\t\t\t\treturn group.id === _this2.selectedGroup;\n\t\t\t});\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tgroups[activeGroup].classes.push('active');\n\t\t\t} else {\n\t\t\t\tgroups[0].classes.push('active');\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn {\n\t\t\t\tid: 'usergrouplist',\n\t\t\t\tnew: {\n\t\t\t\t\tid: 'new-user-button',\n\t\t\t\t\ttext: t('settings', 'New user'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: function action() {\n\t\t\t\t\t\treturn _this2.showConfig.showNewUserForm = !_this2.showConfig.showNewUserForm;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\titems: groups\n\t\t\t};\n\t\t}\n\t}\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL1VzZXJzLnZ1ZT8wNzZmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtPQUVBO1NBQ0E7O0FBRUE7QUFDQTtBQUVBO0FBSkE7cUNBS0E7OzZDQUVBOzhDQUNBO2dEQUVBO0FBSkE7dUJBS0E7QUFDQTt1QkFDQTs7QUFFQTt5REFDQTtBQUNBO2tCQUNBOztxQkFFQTtxQkFDQTttQkFDQTtxQkFDQTttQkFHQTtBQVBBO0FBTEE7QUFhQTs7O2lEQUVBO0FBQ0E7NENBQ0E7QUFDQTswRkFDQTswQkFDQTtBQUNBO3lEQUNBOzBCQUNBOytCQUNBO1VBQ0E7QUFDQTs2Q0FDQTtjQUNBO0FBQ0E7Y0FDQSw0R0FDQSwwQkFDQSx5REFDQTtpQkFDQTt5Q0FDQTtBQUNBO0FBRUE7QUFFQTs7O0FBTUE7Ozs7Ozs7QUFDQTs7Ozs7U0FFQTtTQUNBO0FBQ0E7aUNBQ0E7QUFKQSx1QkFLQTtvRkFDQTtpQ0FDQTtBQUNBO3lCQUNBO0FBQ0E7QUFFQTs7O0FBTUE7Ozs7OzsrQ0FDQTtBQUNBOzZDQUNBO3lCQUNBO2dDQUNBO21DQUNBO0FBQ0E7K0VBQ0E7QUFDQTtBQUNBO1VBQ0E7QUFFQTtBQWpFQTs7MEJBbUVBOzhCQUNBO0FBQ0E7OEJBQ0E7NkNBQ0E7QUFDQTtzQ0FDQTs4QkFDQTtBQUNBO29DQUNBOzhCQUNBO0FBRUE7OztBQUNBOzs7O0FBRUE7NkJBQ0E7MENBQ0E7QUFFQTtBQUxBOzs7O0FBT0E7NkJBQ0E7MENBQ0E7QUFFQTtBQUxBOzs7O0FBT0E7NkJBQ0E7NENBQ0E7QUFFQTtBQUxBOzs7O0FBT0E7NkJBQ0E7NENBQ0E7QUFHQTtBQU5BOztrQ0FPQTs4QkFDQTtBQUNBO2dDQUNBOzhCQUNBO0FBRUE7OztBQUNBO3dDQUNBO0FBQ0E7OztNQUNBO0FBQ0E7NEJBQ0E7VUFDQTtBQUNBOztBQUNBOzt1QkFFQTtzQ0FDQTtpQkFDQTtBQUNBO2tFQUNBO0FBQ0E7bUVBQ0E7QUFDQTtnQ0FDQTtBQUNBOzRCQUNBO3lCQUNBO0FBSUE7O0FBaEJBOztBQWlCQTs7QUFDQTs7QUFDQTtvQ0FDQTs2Q0FFQTs7QUFDQTs7ZUFFQTtvQ0FDQTtzQkFGQSxDQUdBO29CQUNBO1dBQ0E7b0NBRUE7OzRCQUNBOytDQUVBOzt1REFDQTtBQUNBO1NBQ0E7O1lBRUE7MEJBQ0E7OztBQUVBO0FBSkE7QUFLQTtXQUNBO0FBRUE7O0FBQ0E7O3VCQUNBOzs7dUJBQ0E7OzhCQUNBO3NDQUNBOytDQUNBO0FBQ0E7NENBQ0E7MERBQ0E7OzBDQUNBLENBQ0E7QUFDQTtBQUVBOztBQUNBOztRQUVBO2FBQ0E7b0JBQ0E7d0JBQ0E7MkJBR0E7QUFQQTs7QUFRQTs7K0JBQ0E7O3lCQUNBO3FDQUNBO1VBQ0E7MkJBQ0E7QUFFQTs7QUFDQTs7UUFFQTs7U0FFQTt5QkFDQTtXQUNBOztvRUFFQTs7QUFMQTtXQU9BO0FBVEE7QUFXQTtBQWxKQTtBQWpHQSIsImZpbGUiOiI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiPHRlbXBsYXRlPlxuXHQ8ZGl2IGlkPVwiYXBwXCI+XG5cdFx0PGFwcC1uYXZpZ2F0aW9uIDptZW51PVwibWVudVwiPlxuXHRcdFx0PHRlbXBsYXRlIHNsb3Q9XCJzZXR0aW5ncy1jb250ZW50XCI+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PHA+e3t0KCdzZXR0aW5ncycsICdEZWZhdWx0IHF1b3RhIDonKX19PC9wPlxuXHRcdFx0XHRcdDxtdWx0aXNlbGVjdCA6dmFsdWU9XCJkZWZhdWx0UXVvdGFcIiA6b3B0aW9ucz1cInF1b3RhT3B0aW9uc1wiXG5cdFx0XHRcdFx0XHRcdFx0dGFnLXBsYWNlaG9sZGVyPVwiY3JlYXRlXCIgOnBsYWNlaG9sZGVyPVwidCgnc2V0dGluZ3MnLCAnU2VsZWN0IGRlZmF1bHQgcXVvdGEnKVwiXG5cdFx0XHRcdFx0XHRcdFx0bGFiZWw9XCJsYWJlbFwiIHRyYWNrLWJ5PVwiaWRcIiBjbGFzcz1cIm11bHRpc2VsZWN0LXZ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0OmFsbG93RW1wdHk9XCJmYWxzZVwiIDp0YWdnYWJsZT1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdEB0YWc9XCJ2YWxpZGF0ZVF1b3RhXCIgQGlucHV0PVwic2V0RGVmYXVsdFF1b3RhXCI+XG5cdFx0XHRcdFx0PC9tdWx0aXNlbGVjdD5cblxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJzaG93TGFuZ3VhZ2VzXCIgY2xhc3M9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHQgICA6Y2hlY2tlZD1cInNob3dMYW5ndWFnZXNcIiB2LW1vZGVsPVwic2hvd0xhbmd1YWdlc1wiPlxuXHRcdFx0XHRcdDxsYWJlbCBmb3I9XCJzaG93TGFuZ3VhZ2VzXCI+e3t0KCdzZXR0aW5ncycsICdTaG93IExhbmd1YWdlcycpfX08L2xhYmVsPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJzaG93TGFzdExvZ2luXCIgY2xhc3M9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHQgICA6Y2hlY2tlZD1cInNob3dMYXN0TG9naW5cIiB2LW1vZGVsPVwic2hvd0xhc3RMb2dpblwiPlxuXHRcdFx0XHRcdDxsYWJlbCBmb3I9XCJzaG93TGFzdExvZ2luXCI+e3t0KCdzZXR0aW5ncycsICdTaG93IGxhc3QgbG9naW4nKX19PC9sYWJlbD5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2hvd1VzZXJCYWNrZW5kXCIgY2xhc3M9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHQgICA6Y2hlY2tlZD1cInNob3dVc2VyQmFja2VuZFwiIHYtbW9kZWw9XCJzaG93VXNlckJhY2tlbmRcIj5cblx0XHRcdFx0XHQ8bGFiZWwgZm9yPVwic2hvd1VzZXJCYWNrZW5kXCI+e3t0KCdzZXR0aW5ncycsICdTaG93IHVzZXIgYmFja2VuZCcpfX08L2xhYmVsPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJzaG93U3RvcmFnZVBhdGhcIiBjbGFzcz1cImNoZWNrYm94XCJcblx0XHRcdFx0XHRcdCAgIDpjaGVja2VkPVwic2hvd1N0b3JhZ2VQYXRoXCIgdi1tb2RlbD1cInNob3dTdG9yYWdlUGF0aFwiPlxuXHRcdFx0XHRcdDxsYWJlbCBmb3I9XCJzaG93U3RvcmFnZVBhdGhcIj57e3QoJ3NldHRpbmdzJywgJ1Nob3cgc3RvcmFnZSBwYXRoJyl9fTwvbGFiZWw+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC90ZW1wbGF0ZT5cblx0XHQ8L2FwcC1uYXZpZ2F0aW9uPlxuXHRcdDx1c2VyLWxpc3QgOnVzZXJzPVwidXNlcnNcIiA6c2hvd0NvbmZpZz1cInNob3dDb25maWdcIiA6c2VsZWN0ZWRHcm91cD1cInNlbGVjdGVkR3JvdXBcIiAvPlxuXHQ8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgYXBwTmF2aWdhdGlvbiBmcm9tICcuLi9jb21wb25lbnRzL2FwcE5hdmlnYXRpb24nO1xuaW1wb3J0IHVzZXJMaXN0IGZyb20gJy4uL2NvbXBvbmVudHMvdXNlckxpc3QnO1xuaW1wb3J0IFZ1ZSBmcm9tICd2dWUnO1xuaW1wb3J0IFZ1ZUxvY2FsU3RvcmFnZSBmcm9tICd2dWUtbG9jYWxzdG9yYWdlJ1xuaW1wb3J0IE11bHRpc2VsZWN0IGZyb20gJ3Z1ZS1tdWx0aXNlbGVjdCc7XG5pbXBvcnQgYXBpIGZyb20gJy4uL3N0b3JlL2FwaSc7XG5cblZ1ZS51c2UoVnVlTG9jYWxTdG9yYWdlKVxuVnVlLnVzZShWdWVMb2NhbFN0b3JhZ2UpXG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0bmFtZTogJ1VzZXJzJyxcblx0cHJvcHM6IFsnc2VsZWN0ZWRHcm91cCddLFxuXHRjb21wb25lbnRzOiB7XG5cdFx0YXBwTmF2aWdhdGlvbixcblx0XHR1c2VyTGlzdCxcblx0XHRNdWx0aXNlbGVjdFxuXHR9LFxuXHRiZWZvcmVNb3VudCgpIHtcblx0XHR0aGlzLiRzdG9yZS5jb21taXQoJ2luaXRHcm91cHMnLCB7XG5cdFx0XHRncm91cHM6IHRoaXMuJHN0b3JlLmdldHRlcnMuZ2V0U2VydmVyRGF0YS5ncm91cHMsXG5cdFx0XHRvcmRlckJ5OiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFNlcnZlckRhdGEuc29ydEdyb3Vwcyxcblx0XHRcdHVzZXJDb3VudDogdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRTZXJ2ZXJEYXRhLnVzZXJDb3VudFxuXHRcdH0pO1xuXHRcdHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdnZXRQYXNzd29yZFBvbGljeU1pbkxlbmd0aCcpO1xuXHR9LFxuXHRkYXRhKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHQvLyBkZWZhdWx0IHF1b3RhIGlzIHVubGltaXRlZFxuXHRcdFx0dW5saW1pdGVkUXVvdGE6IHtpZDonZGVmYXVsdCcsIGxhYmVsOnQoJ3NldHRpbmdzJywgJ1VubGltaXRlZCcpfSxcblx0XHRcdC8vIHRlbXBvcmFyeSB2YWx1ZSB1c2VkIGZvciBtdWx0aXNlbGVjdCBjaGFuZ2Vcblx0XHRcdHNlbGVjdGVkUXVvdGE6IGZhbHNlLFxuXHRcdFx0c2hvd0NvbmZpZzoge1xuXHRcdFx0XHRzaG93U3RvcmFnZVBhdGg6IGZhbHNlLFxuXHRcdFx0XHRzaG93VXNlckJhY2tlbmQ6IGZhbHNlLFxuXHRcdFx0XHRzaG93TGFzdExvZ2luOiBmYWxzZSxcblx0XHRcdFx0c2hvd05ld1VzZXJGb3JtOiBmYWxzZSxcblx0XHRcdFx0c2hvd0xhbmd1YWdlczogZmFsc2Vcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdG1ldGhvZHM6IHtcblx0XHRnZXRMb2NhbHN0b3JhZ2Uoa2V5KSB7XG5cdFx0XHQvLyBmb3JjZSBpbml0aWFsaXphdGlvblxuXHRcdFx0bGV0IGxvY2FsQ29uZmlnID0gdGhpcy4kbG9jYWxTdG9yYWdlLmdldChrZXkpO1xuXHRcdFx0Ly8gaWYgbG9jYWxzdG9yYWdlIGlzIG51bGwsIGZhbGxiYWNrIHRvIG9yaWdpbmFsIHZhbHVlc1xuXHRcdFx0dGhpcy5zaG93Q29uZmlnW2tleV0gPSBsb2NhbENvbmZpZyAhPT0gbnVsbCA/IGxvY2FsQ29uZmlnID09PSAndHJ1ZScgOiB0aGlzLnNob3dDb25maWdba2V5XTtcblx0XHRcdHJldHVybiB0aGlzLnNob3dDb25maWdba2V5XTtcblx0XHR9LFxuXHRcdHNldExvY2FsU3RvcmFnZShrZXksIHN0YXR1cykge1xuXHRcdFx0dGhpcy5zaG93Q29uZmlnW2tleV0gPSBzdGF0dXM7XG5cdFx0XHR0aGlzLiRsb2NhbFN0b3JhZ2Uuc2V0KGtleSwgc3RhdHVzKTtcblx0XHRcdHJldHVybiBzdGF0dXM7XG5cdFx0fSxcblx0XHRyZW1vdmVHcm91cChncm91cGlkKSB7XG5cdFx0XHRsZXQgc2VsZiA9IHRoaXM7XG5cdFx0XHQvLyBUT0RPIG1pZ3JhdGUgdG8gYSB2dWUganMgY29uZmlybSBkaWFsb2cgY29tcG9uZW50IFxuXHRcdFx0T0MuZGlhbG9ncy5jb25maXJtKFxuXHRcdFx0XHR0KCdzZXR0aW5ncycsICdZb3UgYXJlIGFib3V0IHRvIHJlbW92ZSB0aGUgZ3JvdXAge2dyb3VwfS4gVGhlIHVzZXJzIHdpbGwgTk9UIGJlIGRlbGV0ZWQuJywge2dyb3VwOiBncm91cGlkfSksXG5cdFx0XHRcdHQoJ3NldHRpbmdzJywnUGxlYXNlIGNvbmZpcm0gdGhlIGdyb3VwIHJlbW92YWwgJyksXG5cdFx0XHRcdGZ1bmN0aW9uIChzdWNjZXNzKSB7XG5cdFx0XHRcdFx0aWYgKHN1Y2Nlc3MpIHtcblx0XHRcdFx0XHRcdHNlbGYuJHN0b3JlLmRpc3BhdGNoKCdyZW1vdmVHcm91cCcsIGdyb3VwaWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRGlzcGF0Y2ggZGVmYXVsdCBxdW90YSBzZXQgcmVxdWVzdFxuXHRcdCAqIFxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfE9iamVjdH0gcXVvdGEgUXVvdGEgaW4gcmVhZGFibGUgZm9ybWF0ICc1IEdCJyBvciBPYmplY3Qge2lkOiAnNSBHQicsIGxhYmVsOiAnNUdCJ31cblx0XHQgKiBAcmV0dXJucyB7c3RyaW5nfVxuXHRcdCAqL1xuXHRcdHNldERlZmF1bHRRdW90YShxdW90YSA9ICdub25lJykge1xuXHRcdFx0dGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3NldEFwcENvbmZpZycsIHtcblx0XHRcdFx0YXBwOiAnZmlsZXMnLFxuXHRcdFx0XHRrZXk6ICdkZWZhdWx0X3F1b3RhJyxcblx0XHRcdFx0Ly8gZW5zdXJlIHdlIG9ubHkgc2VuZCB0aGUgcHJlc2V0IGlkXG5cdFx0XHRcdHZhbHVlOiBxdW90YS5pZCA/IHF1b3RhLmlkIDogcXVvdGFcblx0XHRcdH0pLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRpZiAodHlwZW9mIHF1b3RhICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0XHRcdHF1b3RhID0ge2lkOiBxdW90YSwgbGFiZWw6IHF1b3RhfTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRlZmF1bHRRdW90YSA9IHF1b3RhO1xuXHRcdFx0fSk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFZhbGlkYXRlIHF1b3RhIHN0cmluZyB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIGh1bWFuIGZpbGUgc2l6ZVxuXHRcdCAqIFxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBxdW90YSBRdW90YSBpbiByZWFkYWJsZSBmb3JtYXQgJzUgR0InXG5cdFx0ICogQHJldHVybnMge1Byb21pc2V8Ym9vbGVhbn1cblx0XHQgKi9cblx0XHR2YWxpZGF0ZVF1b3RhKHF1b3RhKSB7XG5cdFx0XHQvLyBvbmx5IHVzZWQgZm9yIG5ldyBwcmVzZXRzIHNlbnQgdGhyb3VnaCBAVGFnXG5cdFx0XHRsZXQgdmFsaWRRdW90YSA9IE9DLlV0aWwuY29tcHV0ZXJGaWxlU2l6ZShxdW90YSk7XG5cdFx0XHRpZiAodmFsaWRRdW90YSA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZXREZWZhdWx0UXVvdGEoJ25vbmUnKTtcblx0XHRcdH0gZWxzZSBpZiAodmFsaWRRdW90YSAhPT0gbnVsbCkge1xuXHRcdFx0XHQvLyB1bmlmeSBmb3JtYXQgb3V0cHV0XG5cdFx0XHRcdHJldHVybiB0aGlzLnNldERlZmF1bHRRdW90YShPQy5VdGlsLmh1bWFuRmlsZVNpemUoT0MuVXRpbC5jb21wdXRlckZpbGVTaXplKHF1b3RhKSkpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaWYgbm8gdmFsaWQgZG8gbm90IGNoYW5nZVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0sXG5cdH0sXG5cdGNvbXB1dGVkOiB7XG5cdFx0dXNlcnMoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRVc2Vycztcblx0XHR9LFxuXHRcdGxvYWRpbmcoKSB7XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmtleXModGhpcy51c2VycykubGVuZ3RoID09PSAwO1xuXHRcdH0sXG5cdFx0dXNlcnNPZmZzZXQoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRVc2Vyc09mZnNldDtcblx0XHR9LFxuXHRcdHVzZXJzTGltaXQoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRVc2Vyc0xpbWl0O1xuXHRcdH0sXG5cblx0XHQvLyBMb2NhbCBzZXR0aW5nc1xuXHRcdHNob3dMYW5ndWFnZXM6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZ2V0TG9jYWxzdG9yYWdlKCdzaG93TGFuZ3VhZ2VzJyl9LFxuXHRcdFx0c2V0OiBmdW5jdGlvbihzdGF0dXMpIHtcblx0XHRcdFx0dGhpcy5zZXRMb2NhbFN0b3JhZ2UoJ3Nob3dMYW5ndWFnZXMnLCBzdGF0dXMpO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c2hvd0xhc3RMb2dpbjoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5nZXRMb2NhbHN0b3JhZ2UoJ3Nob3dMYXN0TG9naW4nKX0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKHN0YXR1cykge1xuXHRcdFx0XHR0aGlzLnNldExvY2FsU3RvcmFnZSgnc2hvd0xhc3RMb2dpbicsIHN0YXR1cyk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzaG93VXNlckJhY2tlbmQ6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7cmV0dXJuIHRoaXMuZ2V0TG9jYWxzdG9yYWdlKCdzaG93VXNlckJhY2tlbmQnKX0sXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKHN0YXR1cykge1xuXHRcdFx0XHR0aGlzLnNldExvY2FsU3RvcmFnZSgnc2hvd1VzZXJCYWNrZW5kJywgc3RhdHVzKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHNob3dTdG9yYWdlUGF0aDoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtyZXR1cm4gdGhpcy5nZXRMb2NhbHN0b3JhZ2UoJ3Nob3dTdG9yYWdlUGF0aCcpfSxcblx0XHRcdHNldDogZnVuY3Rpb24oc3RhdHVzKSB7XG5cdFx0XHRcdHRoaXMuc2V0TG9jYWxTdG9yYWdlKCdzaG93U3RvcmFnZVBhdGgnLCBzdGF0dXMpO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHR1c2VyQ291bnQoKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVycy5nZXRVc2VyQ291bnQ7XG5cdFx0fSxcblx0XHRzZXR0aW5ncygpIHtcblx0XHRcdHJldHVybiB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldFNlcnZlckRhdGE7XG5cdFx0fSxcblxuXHRcdC8vIGRlZmF1bHQgcXVvdGFcblx0XHRxdW90YU9wdGlvbnMoKSB7XG5cdFx0XHQvLyBjb252ZXJ0IHRoZSBwcmVzZXQgYXJyYXkgaW50byBvYmplY3RzXG5cdFx0XHRsZXQgcXVvdGFQcmVzZXQgPSB0aGlzLnNldHRpbmdzLnF1b3RhUHJlc2V0LnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYy5jb25jYXQoe2lkOmN1ciwgbGFiZWw6Y3VyfSksIFtdKTtcblx0XHRcdC8vIGFkZCBkZWZhdWx0IHByZXNldHNcblx0XHRcdHF1b3RhUHJlc2V0LnVuc2hpZnQodGhpcy51bmxpbWl0ZWRRdW90YSk7XG5cdFx0XHRyZXR1cm4gcXVvdGFQcmVzZXQ7XG5cdFx0fSxcblx0XHQvLyBtYXBwaW5nIHNhdmVkIHZhbHVlcyB0byBvYmplY3RzXG5cdFx0ZGVmYXVsdFF1b3RhOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3RlZFF1b3RhICE9PSBmYWxzZSkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLnNlbGVjdGVkUXVvdGE7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKE9DLlV0aWwuY29tcHV0ZXJGaWxlU2l6ZSh0aGlzLnNldHRpbmdzLmRlZmF1bHRRdW90YSkgPiAwKSB7XG5cdFx0XHRcdFx0Ly8gaWYgdmFsdWUgaXMgdmFsaWQsIGxldCdzIG1hcCB0aGUgcXVvdGFPcHRpb25zIG9yIHJldHVybiBjdXN0b20gcXVvdGFcblx0XHRcdFx0XHRyZXR1cm4ge2lkOnRoaXMuc2V0dGluZ3MuZGVmYXVsdFF1b3RhLCBsYWJlbDp0aGlzLnNldHRpbmdzLmRlZmF1bHRRdW90YX07XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXMudW5saW1pdGVkUXVvdGE7IC8vIHVubGltaXRlZFxuXHRcdFx0fSxcblx0XHRcdHNldDogZnVuY3Rpb24ocXVvdGEpIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFF1b3RhID0gIHF1b3RhO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0fSxcblxuXHRcdC8vIEJVSUxEIEFQUCBOQVZJR0FUSU9OIE1FTlUgT0JKRUNUXG5cdFx0bWVudSgpIHtcblx0XHRcdC8vIERhdGEgcHJvdmlkZWQgcGhwIHNpZGVcblx0XHRcdGxldCBncm91cHMgPSB0aGlzLiRzdG9yZS5nZXR0ZXJzLmdldEdyb3Vwcztcblx0XHRcdGdyb3VwcyA9IEFycmF5LmlzQXJyYXkoZ3JvdXBzKSA/IGdyb3VwcyA6IFtdO1xuXG5cdFx0XHQvLyBNYXAgZ3JvdXBzXG5cdFx0XHRncm91cHMgPSBncm91cHMubWFwKGdyb3VwID0+IHtcblx0XHRcdFx0bGV0IGl0ZW0gPSB7fTtcblx0XHRcdFx0aXRlbS5pZCA9IGdyb3VwLmlkLnJlcGxhY2UoJyAnLCAnXycpO1xuXHRcdFx0XHRpdGVtLmNsYXNzZXMgPSBbXTtcdFx0XHRcdFx0XHRcdC8vIGVtcHR5IGNsYXNzZXMsIGFjdGl2ZSB3aWxsIGJlIHNldCBsYXRlclxuXHRcdFx0XHRpdGVtLnJvdXRlciA9IHtcdFx0XHRcdFx0XHRcdFx0Ly8gcm91dGVyIGxpbmsgdG9cblx0XHRcdFx0XHRuYW1lOiAnZ3JvdXAnLFxuXHRcdFx0XHRcdHBhcmFtczoge3NlbGVjdGVkR3JvdXA6IGdyb3VwLmlkfVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRpdGVtLnRleHQgPSBncm91cC5uYW1lO1x0XHRcdFx0XHRcdC8vIGdyb3VwIG5hbWVcblx0XHRcdFx0aXRlbS51dGlscyA9IHtjb3VudGVyOiBncm91cC51c2VyY291bnR9O1x0Ly8gdXNlcnMgY291bnRcblxuXHRcdFx0XHRpZiAoaXRlbS5pZCAhPT0gJ2FkbWluJyAmJiBpdGVtLmlkICE9PSAnZGlzYWJsZWQnKSB7XG5cdFx0XHRcdFx0Ly8gYWRkIGRlbGV0ZSBidXR0b24gb24gcmVhbCBncm91cHNcblx0XHRcdFx0XHRsZXQgc2VsZiA9IHRoaXM7XG5cdFx0XHRcdFx0aXRlbS51dGlscy5hY3Rpb25zID0gW3tcblx0XHRcdFx0XHRcdGljb246ICdpY29uLWRlbGV0ZScsXG5cdFx0XHRcdFx0XHR0ZXh0OiB0KCdzZXR0aW5ncycsICdSZW1vdmUgZ3JvdXAnKSxcblx0XHRcdFx0XHRcdGFjdGlvbjogZnVuY3Rpb24oKSB7c2VsZi5yZW1vdmVHcm91cChncm91cC5pZCl9XG5cdFx0XHRcdFx0fV07XG5cdFx0XHRcdH07XG5cdFx0XHRcdHJldHVybiBpdGVtO1xuXHRcdFx0fSk7XG5cblx0XHRcdC8vIEFkanVzdCBkYXRhXG5cdFx0XHRsZXQgYWRtaW5Hcm91cCA9IGdyb3Vwcy5maW5kKGdyb3VwID0+IGdyb3VwLmlkID09ICdhZG1pbicpO1xuXHRcdFx0bGV0IGRpc2FibGVkR3JvdXBJbmRleCA9IGdyb3Vwcy5maW5kSW5kZXgoZ3JvdXAgPT4gZ3JvdXAuaWQgPT0gJ2Rpc2FibGVkJyk7XG5cdFx0XHRsZXQgZGlzYWJsZWRHcm91cCA9IGdyb3Vwc1tkaXNhYmxlZEdyb3VwSW5kZXhdO1xuXHRcdFx0aWYgKGFkbWluR3JvdXAgJiYgYWRtaW5Hcm91cC50ZXh0KSB7XG5cdFx0XHRcdGFkbWluR3JvdXAudGV4dCA9IHQoJ3NldHRpbmdzJywgJ0FkbWlucycpOyAvLyByZW5hbWUgYWRtaW4gZ3JvdXBcblx0XHRcdH1cblx0XHRcdGlmIChkaXNhYmxlZEdyb3VwICYmIGRpc2FibGVkR3JvdXAudGV4dCkge1xuXHRcdFx0XHRkaXNhYmxlZEdyb3VwLnRleHQgPSB0KCdzZXR0aW5ncycsICdEaXNhYmxlZCB1c2VycycpOyAvLyByZW5hbWUgZGlzYWJsZWQgZ3JvdXBcblx0XHRcdFx0aWYgKGRpc2FibGVkR3JvdXAudXRpbHMuY291bnRlciA9PT0gMCkge1xuXHRcdFx0XHRcdGdyb3Vwcy5zcGxpY2UoZGlzYWJsZWRHcm91cEluZGV4LCAxKTsgLy8gcmVtb3ZlIGRpc2FibGVkIGlmIGVtcHR5XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGV2ZXJ5b25lIGdyb3VwXG5cdFx0XHRncm91cHMudW5zaGlmdCh7XG5cdFx0XHRcdGlkOiAnZXZlcnlvbmUnLFxuXHRcdFx0XHRjbGFzc2VzOiBbXSxcblx0XHRcdFx0cm91dGVyOiB7bmFtZTondXNlcnMnfSxcblx0XHRcdFx0dGV4dDogdCgnc2V0dGluZ3MnLCAnRXZlcnlvbmUnKSxcblx0XHRcdFx0dXRpbHM6IHtjb3VudGVyOiB0aGlzLnVzZXJDb3VudH1cblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBTZXQgY3VycmVudCBncm91cCBhcyBhY3RpdmVcblx0XHRcdGxldCBhY3RpdmVHcm91cCA9IGdyb3Vwcy5maW5kSW5kZXgoZ3JvdXAgPT4gZ3JvdXAuaWQgPT09IHRoaXMuc2VsZWN0ZWRHcm91cCk7XG5cdFx0XHRpZiAoYWN0aXZlR3JvdXAgPj0gMCkge1xuXHRcdFx0XHRncm91cHNbYWN0aXZlR3JvdXBdLmNsYXNzZXMucHVzaCgnYWN0aXZlJyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRncm91cHNbMF0uY2xhc3Nlcy5wdXNoKCdhY3RpdmUnKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV0dXJuXG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRpZDogJ3VzZXJncm91cGxpc3QnLFxuXHRcdFx0XHRuZXc6IHtcblx0XHRcdFx0XHRpZDonbmV3LXVzZXItYnV0dG9uJyxcblx0XHRcdFx0XHR0ZXh0OiB0KCdzZXR0aW5ncycsJ05ldyB1c2VyJyksXG5cdFx0XHRcdFx0aWNvbjogJ2ljb24tYWRkJyxcblx0XHRcdFx0XHRhY3Rpb246ICgpID0+IHRoaXMuc2hvd0NvbmZpZy5zaG93TmV3VXNlckZvcm09IXRoaXMuc2hvd0NvbmZpZy5zaG93TmV3VXNlckZvcm1cblx0XHRcdFx0fSxcblx0XHRcdFx0aXRlbXM6IGdyb3Vwc1xuXHRcdFx0fVxuXHRcdH0sXG5cdH1cbn1cbjwvc2NyaXB0PlxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHNyYy92aWV3cy9Vc2Vycy52dWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n"); /***/ }), /* 10 */ diff --git a/settings/js/main.js.map b/settings/js/main.js.map new file mode 100644 index 00000000000..22e3ec74e06 --- /dev/null +++ b/settings/js/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///main.js","webpack:///webpack/bootstrap eeadc4edca3b66a79df6","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/vue-loader/lib/component-normalizer.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/store/api.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/vue-multiselect/dist/vue-multiselect.min.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///src/App.vue","webpack:///src/views/Users.vue","webpack:///src/components/appNavigation.vue","webpack:///src/components/appNavigation/navigationItem.vue","webpack:///./src/components/popoverMenu.vue","webpack:///src/components/popoverMenu.vue","webpack:///src/components/popoverMenu/popoverItem.vue","webpack:///./node_modules/vue-click-outside/index.js","webpack:///src/components/userList.vue","webpack:///src/components/userList/userRow.vue","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./src/main.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/vuex-router-sync/index.js","webpack:///./src/App.vue","webpack:///./src/App.vue?e64a","webpack:///./src/router.js","webpack:///./node_modules/vue-router/dist/vue-router.esm.js","webpack:///./src/views/Users.vue","webpack:///./src/components/appNavigation.vue","webpack:///./src/components/appNavigation/navigationItem.vue","webpack:///./src/components/popoverMenu/popoverItem.vue","webpack:///./src/components/popoverMenu/popoverItem.vue?c1f4","webpack:///./src/components/popoverMenu.vue?a46a","webpack:///./src/components/appNavigation/navigationItem.vue?1725","webpack:///./src/components/appNavigation.vue?d750","webpack:///./src/components/userList.vue","webpack:///./src/components/userList/userRow.vue","webpack:///./node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///./src/components/userList/userRow.vue?54a3","webpack:///./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js","webpack:///./src/components/userList.vue?3c06","webpack:///./node_modules/vue-localstorage/dist/vue-local-storage.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/btoa.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./src/views/Users.vue?ae2b","webpack:///./src/store/index.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///./src/store/users.js","webpack:///./src/store/settings.js","webpack:///./src/store/oc.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","isArray","val","toString","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isObject","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","length","key","merge","assignValue","result","arguments","extend","a","b","thisArg","bind","isBuffer","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","options","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","h","concat","__webpack_exports__","global","setImmediate","isUndef","v","undefined","isDef","isTrue","isFalse","isPrimitive","value","isPlainObject","_toString","isRegExp","isValidArrayIndex","parseFloat","String","Math","floor","isFinite","JSON","stringify","toNumber","isNaN","makeMap","expectsLowerCase","map","create","list","split","toLowerCase","remove","arr","item","index","indexOf","splice","hasOwn","cached","cache","polyfillBind","ctx","boundFn","apply","_length","nativeBind","toArray","start","ret","Array","to","_from","toObject","res","noop","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","e","keysA","keys","keysB","looseIndexOf","once","called","isReserved","charCodeAt","def","writable","parsePath","path","bailRE","test","segments","isNative","Ctor","pushTarget","_target","Dep","target","targetStack","push","popTarget","pop","createTextVNode","VNode","cloneVNode","vnode","cloned","tag","data","children","text","elm","componentOptions","asyncFactory","ns","isStatic","isComment","fnContext","fnOptions","fnScopeId","isCloned","toggleObserving","shouldObserve","protoAugment","src","__proto__","copyAugment","observe","asRootData","ob","__ob__","Observer","isServerRendering","isExtensible","_isVue","vmCount","defineReactive","customSetter","shallow","dep","getOwnPropertyDescriptor","setter","set","childOb","depend","dependArray","newVal","notify","max","del","mergeData","from","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","mergeAssets","normalizeProps","props","camelize","normalizeInject","inject","normalized","normalizeDirectives","dirs","directives","update","mergeOptions","child","mergeField","strat","strats","defaultStrat","extendsFrom","extends","mixins","resolveAsset","id","warnMissing","assets","camelizedId","PascalCaseId","capitalize","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","Boolean","hyphenate","stringIndex","getPropDefaultValue","prevShouldObserve","$options","_props","getType","match","isSameType","expectedTypes","len","handleError","err","info","cur","$parent","hooks","errorCaptured","capture","globalHandleError","config","errorHandler","logError","inBrowser","inWeex","console","error","flushCallbacks","pending","copies","callbacks","slice","withMacroTask","_withTask","useMacroTask","nextTick","cb","_resolve","macroTimerFunc","microTimerFunc","Promise","resolve","traverse","_traverse","seenObjects","clear","seen","isA","isFrozen","depId","has","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","old","event","normalizeEvent","passive","params","mergeVNodeHook","hookKey","wrappedHook","oldHook","merged","extractPropsFromVNodeData","attrs","altKey","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","node","nestedIndex","lastIndex","last","shift","_isVList","ensureCtor","comp","base","hasSymbol","Symbol","toStringTag","createAsyncPlaceholder","factory","createEmptyVNode","asyncMeta","resolveAsyncComponent","baseCtor","errorComp","resolved","loading","loadingComp","contexts","sync","forceRender","$forceUpdate","reject","reason","then","component","delay","setTimeout","timeout","isAsyncPlaceholder","getFirstComponentChild","initEvents","_events","_hasHookEvent","listeners","_parentListeners","updateComponentListeners","$once","$on","remove$1","$off","oldListeners","resolveSlots","slots","slot","name$1","isWhitespace","resolveScopedSlots","initLifecycle","abstract","$children","$root","$refs","_watcher","_inactive","_directInactive","_isMounted","_isDestroyed","_isBeingDestroyed","mountComponent","el","hydrating","$el","callHook","updateComponent","_update","_render","Watcher","updateChildComponent","parentVnode","renderChildren","hasChildren","_renderChildren","scopedSlots","$scopedSlots","emptyObject","_parentVnode","_vnode","$attrs","$listeners","propKeys","_propKeys","$slots","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","handlers","j","$emit","resetSchedulerState","queue","activatedChildren","waiting","flushing","flushSchedulerQueue","watcher","sort","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","devtools","emit","queueActivatedComponent","queueWatcher","proxy","sourceKey","sharedPropertyDefinition","initState","_watchers","opts","initProps","methods","initMethods","initData","_data","computed","initComputed","watch","nativeWatch","initWatch","propsOptions","getData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","shouldCache","createComputedGetter","dirty","evaluate","handler","createWatcher","expOrFn","$watch","initProvide","provide","_provided","initInjections","resolveInject","Reflect","ownKeys","filter","provideKey","source","provideDefault","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","slotNodes","_rendered","$createElement","resolveFilter","identity","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","keyCodes","bindObjectProps","asProp","isSync","isReservedAttribute","mustUseProp","domProps","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","isOnce","markStaticNode","bindObjectListeners","ours","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","_c","createElement","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","createComponent","_base","cid","resolveConstructorOptions","model","transformModel","nativeOn","installComponentHooks","createComponentInstanceForVnode","parentElm","refElm","_isComponent","_parentElm","_refElm","inlineTemplate","hooksToMerge","componentVNodeHooks","callback","normalizationType","alwaysNormalize","ALWAYS_NORMALIZE","_createElement","is","SIMPLE_NORMALIZE","getTagNamespace","isReservedTag","parsePlatformTagName","applyNS","registerDeepBindings","force","style","class","initRender","parentData","initInternalComponent","constructor","vnodeComponentOptions","_componentTag","super","superOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","extended","sealed","sealedOptions","dedupe","Vue","_init","initUse","use","plugin","installedPlugins","_installedPlugins","args","unshift","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","ASSET_TYPES","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","current","cached$$1","componentInstance","$destroy","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","isSVG","isUnknownElement","unknownElementCache","HTMLUnknownElement","HTMLElement","query","selected","querySelector","createElement$1","tagName","multiple","setAttribute","createElementNS","namespace","namespaceMap","createTextNode","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","registerRef","isRemoval","ref","refs","refInFor","sameVnode","sameInputType","typeA","typeB","isTextInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldVnode","oldDir","dir","isCreate","emptyNode","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldValue","callHook$1","componentUpdated","inserted","callInsert","modifiers","emptyModifiers","getRawDirName","rawName","join","updateAttrs","inheritAttrs","oldAttrs","setAttr","isIE","isEdge","isXlink","removeAttributeNS","xlinkNS","getXlinkProp","isEnumeratedAttr","removeAttribute","baseSetAttr","isBooleanAttr","isFalsyAttrValue","setAttributeNS","isIE9","__ieph","blocker","stopImmediatePropagation","removeEventListener","addEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","parseFilters","exp","pushFilter","filters","lastFilterIndex","prev","expression","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","charAt","validDivisionCharRE","wrapFilter","baseWarn","msg","pluckModuleFunction","_","addProp","plain","addAttr","addRawAttr","attrsMap","attrsList","addDirective","arg","addHandler","important","warn","right","middle","events","native","nativeEvents","newHandler","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","genComponentModel","number","valueExpression","assignment","genAssignmentCode","parseModel","lastIndexOf","index$1","expressionPos","expressionEndPos","eof","chr","next","isStringStart","parseString","parseBracket","inBracket","stringQuote","_warn","warn$1","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","code","lazy","needCompositionGuard","RANGE_TOKEN","normalizeEvents","CHECKBOX_RADIO_TOKEN","change","createOnceHandler","target$1","onceHandler","remove$2","add$1","once$$1","supportsPassive","updateDOMListeners","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","parseStyleText","getStyle","checkChild","styleData","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","setProp","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","nextFrame","raf","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","TRANSITION","transitionEndEvent","animationEndEvent","ended","end","onEnd","styles","getComputedStyle","transitionDelays","transitionProp","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationProp","animationDurations","animationTimeout","ANIMATION","hasTransform","transformRE","delays","durations","toMs","Number","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","nodeType","enterClass","enterToClass","enterActiveClass","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","activeInstance","transitionNode","isAppear","isRootInsert","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","performLeave","beforeLeave","leaveClass","leaveActiveClass","leaveToClass","explicitLeaveDuration","afterLeave","leaveCancelled","delayLeave","invokerFns","_enter","setSelected","binding","actuallySetSelected","isMultiple","option","getValue","selectedIndex","hasNoMatchingOption","onCompositionStart","onCompositionEnd","trigger","createEvent","initEvent","dispatchEvent","locateNode","getRealChild","compOptions","extractTransitionData","key$1","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","pos","dx","left","dy","top","moved","transform","WebkitTransform","transitionDuration","parseText","delimiters","tagRE","buildRegex","defaultTagRE","tokenValue","tokens","rawTokens","exec","@binding","transformNode","classBinding","genData","transformNode$1","styleBinding","genData$1","decodeAttr","shouldDecodeNewlines","re","encodedAttrWithNewLines","encodedAttr","decodingMap","parseHTML","html","advance","substring","parseEndTag","lowerCasedTagName","stack","lowerCasedTag","lastTag","expectHTML","isUnaryTag$$1","isUnaryTag","no","canBeLeftOpenTag$$1","canBeLeftOpenTag","isPlainTextElement","endTagLength","stackedTag","reStackedTag","reCache","RegExp","rest$1","all","endTag","shouldIgnoreFirstNewline","chars","textEnd","comment","commentEnd","shouldKeepComment","conditionalComment","conditionalEnd","doctypeMatch","doctype","endTagMatch","curIndex","startTagMatch","startTagOpen","attr","startTagClose","attribute","unarySlash","isNonPhrasingTag","unary","IS_REGEX_CAPTURING_BROKEN","shouldDecodeNewlinesForHref","rest","createASTElement","makeAttrsMap","parse","template","closeElement","element","pre","inVPre","platformIsPreTag","inPre","postTransforms","warn$2","isPreTag","platformMustUseProp","platformGetTagNamespace","transforms","preTransforms","root","currentParent","preserveWhitespace","comments","guardIESVGBug","isForbiddenTag","forbidden","processPre","processRawAttrs","processed","processFor","processIf","processOnce","processElement","if","elseif","else","addIfCondition","block","processIfConditions","slotScope","slotTarget","lastNode","isTextTag","decodeHTMLCached","processKey","processRef","processSlot","processComponent","processAttrs","checkInFor","parseFor","inMatch","forAliasRE","for","alias","stripParensRE","iteratorMatch","forIteratorRE","iterator1","iterator2","findPrevElement","condition","ifConditions","slotName","isProp","dirRE","hasBindings","parseModifiers","modifierRE","bindRE","camel","onRE","argMatch","argRE","ieNSBug","ieNSPrefix","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","optimize","isStaticKey","genStaticKeysCached","staticKeys","isPlatformReservedTag","markStatic$1","markStaticRoots","genStaticKeys$1","static","i$1","l$1","staticInFor","staticRoot","isBuiltInTag","isDirectChildOfTemplateFor","genHandlers","genHandler","isMethodPath","simplePathRE","isFunctionExpression","fnExpRE","genModifierCode","modifierCode","genGuard","keyModifier","genKeyFilter","genFilterCode","keyVal","parseInt","keyCode","keyName","keyNames","wrapListeners","bind$1","wrapData","generate","ast","state","CodegenState","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","genData$2","genChildren","onceId","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","dataGenFns","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","genScopedSlot","genForScopedSlot","checkSkip","altGenElement","altGenNode","el$1","getNormalizationType","maybeComponent","genNode","needsNormalization","some","genComment","genText","transformSpecialNewlines","bind$$1","componentName","createFunction","errors","Function","createCompileToFunctionFn","compile","compiled","fnGenErrors","getShouldDecode","href","div","innerHTML","getOuterHTML","outerHTML","container","cloneNode","freeze","camelizeRE","toUpperCase","hyphenateRE","SSR_ATTR","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","performance","warnHandler","ignoredElements","isReservedAttr","_lifecycleHooks","hasProto","WXEnvironment","platform","weexPlatform","UA","userAgent","isIOS","_isServer","_Set","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","Set","uid","subs","addSub","sub","removeSub","addDep","raw","prototypeAccessors","defineProperties","arrayProto","arrayMethods","method","original","observeArray","arrayKeys","getOwnPropertyNames","walk","items","MessageChannel","channel","port","port2","port1","onmessage","postMessage","uid$1","isRenderWatcher","deep","user","active","deps","newDeps","depIds","newDepIds","cleanupDeps","this$1","tmp","teardown","init","keepAlive","mountedNode","prepatch","$mount","insert","destroy","uid$3","_uid","_self","dataDef","propsDef","$set","$delete","immediate","hookRE","cbs","prevEl","prevVnode","prevActiveInstance","__patch__","__vue__","$nextTick","patternTypes","KeepAlive","include","exclude","created","destroyed","mounted","ref$1","builtInComponents","configDef","util","delete","version","emptyStyle","acceptValue","svg","math","isHTMLTag","nodeOps","baseModules","klass","cssText","listDelimiter","propertyDelimiter","cssVarRE","importantRE","setProperty","normalizedName","normalize","vendorNames","capName","hasTransition","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","requestAnimationFrame","activate","platformModules","patch","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","hydrate","postpatch","invokeInsertHook","initial","hasChildNodes","childrenMatch","firstChild","fullInvoke","isRenderedModule","isInitialPatch","isRealElement","hasAttribute","oldElm","parentElm$1","patchable","i$2","vmodel","directive","_vOptions","prevOptions","curOptions","transition$$1","originalDisplay","__vOriginalDisplay","display","unbind","platformDirectives","transitionProps","mode","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","prevChildren","rawChildren","transitionData","kept","removed","c$1","beforeUpdate","updated","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","platformComponents","decoder","regexEscapeRE","open","close","klass$1","style$1","he","decode","ncname","qnameCapture","g","<",">",""","&"," ","	","isIgnoreNewlineTag","model$2","modules$1","directives$1","baseOptions","reduce","esc","tab","space","up","down","stop","prevent","self","ctrl","alt","meta","baseDirectives","cloak","createCompiler","baseCompile","finalOptions","tips","tip","compileToFunctions","idToTemplate","mount","documentElement","eval","__WEBPACK_IMPORTED_MODULE_0_axios__","__WEBPACK_IMPORTED_MODULE_0_axios___default","requestToken","getElementsByTagName","tokenHeaders","headers","requesttoken","sanitize","url","requireAdmin","passwordTimeout","promiseTimeout","clearTimeout","getElementsByClassName","click","OC","Notification","showTemporary","t","PasswordConfirmation","requirePasswordConfirmation","waitForpassword","requiresPasswordConfirmation","response","catch","post","put","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","Item","array","process","title","browser","argv","versions","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","r","__g","f","TypeError","u","F","G","S","y","P","B","U","core","W","R","store","__e","random","virtual","propertyIsEnumerable","ceil","valueOf","x","w","min","$isLabel","$groupLabel","search","isOpen","prefferedOpenDirection","optimizedHeight","maxHeight","internalSearch","required","trackBy","label","searchable","clearOnSelect","hideSelected","allowEmpty","resetAfter","closeOnSelect","customLabel","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","internalValue","select","filteredOptions","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getOptionLabel","updateSearch","selectGroup","disabled","$isDisabled","pointerDirty","deactivate","removeElement","find","wholeGroupSelected","removeLastElement","adjustPosition","pointer","focus","blur","toggle","innerHeight","bottom","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","multiselect__option--highlight","multiselect__option--selected","groupHighlight","multiselect__option--group-selected","addPointerElement","pointerReset","pointerForward","scrollTop","pointerBackward","pointerSet","O","L","k","E","V","entries","values","contentWindow","write","getOwnPropertySymbols","inspectSource","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limit","limitText","showNoResults","tabindex","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","width","position","padding","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","done","preventExtensions","NEED","KEY","fastKey","getWeak","onFreeze","getPrototypeOf","Arguments","C","T","A","$","D","M","N","H","QObject","I","findChild","K","z","iterator","J","q","X","Y","Q","Z","tt","et","keyFor","useSetter","useSimple","multiselect--active","multiselect--disabled","multiselect--above","keydown","currentTarget","preventDefault","stopPropagation","keyup","mousedown","aria-hidden","autocomplete","input","data-select","data-selected","data-deselect","mouseenter","setContentTypeIfUnset","utils","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","defaults","adapter","XMLHttpRequest","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","beforeMount","getElementById","$store","commit","dataset","server","__WEBPACK_IMPORTED_MODULE_0__components_appNavigation__","__WEBPACK_IMPORTED_MODULE_1__components_userList__","__WEBPACK_IMPORTED_MODULE_2_vue__","__WEBPACK_IMPORTED_MODULE_3_vue_localstorage__","__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default","__WEBPACK_IMPORTED_MODULE_4_vue_multiselect__","__WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default","_typeof","appNavigation","userList","Multiselect","groups","getters","getServerData","orderBy","sortGroups","userCount","dispatch","unlimitedQuota","selectedQuota","showConfig","showStoragePath","showUserBackend","showLastLogin","showNewUserForm","showLanguages","getLocalstorage","$localStorage","setLocalStorage","removeGroup","groupid","dialogs","confirm","group","success","setDefaultQuota","_this","quota","app","defaultQuota","validateQuota","validQuota","Util","computerFileSize","humanFileSize","users","getUsers","usersOffset","getUsersOffset","usersLimit","getUsersLimit","getUserCount","settings","quotaOptions","quotaPreset","acc","menu","_this2","getGroups","classes","router","selectedGroup","counter","usercount","actions","icon","action","adminGroup","disabledGroupIndex","findIndex","disabledGroup","activeGroup","new","__WEBPACK_IMPORTED_MODULE_0__appNavigation_navigationItem__","navigationItem","__WEBPACK_IMPORTED_MODULE_0__popoverMenu__","__WEBPACK_IMPORTED_MODULE_1_vue_click_outside__","__WEBPACK_IMPORTED_MODULE_1_vue_click_outside___default","popoverMenu","ClickOutside","openedMenu","showMenu","hideMenu","toggleCollapse","opened","cancelEdit","popupItem","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverMenu_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_24e4fcfe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverMenu_vue__","normalizeComponent","Component","__WEBPACK_IMPORTED_MODULE_0__popoverMenu_popoverItem__","popoverItem","validate","isPopup","elements","contains","isServer","vNode","$isServer","composedPath","__vueClickOutside__","__WEBPACK_IMPORTED_MODULE_0__userList_userRow__","__WEBPACK_IMPORTED_MODULE_1_vue_multiselect__","__WEBPACK_IMPORTED_MODULE_1_vue_multiselect___default","__WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading__","__WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading___default","__WEBPACK_IMPORTED_MODULE_3_vue__","userRow","InfiniteLoading","scrolled","newUser","displayName","password","mailAddress","subAdminsGroups","language","canChangePassword","defaultLanguage","filteredUsers","disabledUsers","enabled","infiniteLoading","isComplete","$router","subadmingroups","minPasswordLength","getPasswordPolicyMinLength","languages","commonlanguages","onScroll","infiniteHandler","$state","offset","loaded","complete","resetForm","assign","createUser","userid","email","subadmin","__WEBPACK_IMPORTED_MODULE_2_vue_multiselect__","__WEBPACK_IMPORTED_MODULE_2_vue_multiselect___default","__WEBPACK_IMPORTED_MODULE_4_v_tooltip__","rand","subadmins","disable","userActions","deleteUser","enableDisableUser","userGroups","includes","userSubAdminsGroups","usedQuota","round","used","pow","userQuota","humanQuota","userLanguage","_this3","availableLanguages","userLang","lang","generateAvatar","size","generateUrl","oc_userconfig","avatar","limitGroups","count","_this4","_this5","updateDisplayName","_this6","updatePassword","_this7","updateEmail","_this8","createGroup","gid","_this9","addUserGroup","_this10","removeUserGroup","_this11","addUserSubAdmin","_this12","removeUserSubAdmin","_this13","setUserQuota","_this14","setUserLanguage","_this15","settle","buildURL","parseHeaders","isURLSameOrigin","createError","btoa","requestData","requestHeaders","request","loadEvent","xDomain","XDomainRequest","onprogress","ontimeout","auth","username","Authorization","paramsSerializer","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onerror","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","message","__CANCEL__","Cancel","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1_vuex_router_sync__","__WEBPACK_IMPORTED_MODULE_2__App_vue__","__WEBPACK_IMPORTED_MODULE_3__router__","__WEBPACK_IMPORTED_MODULE_4__store__","Timeout","clearFn","_id","_clearFn","scope","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","task","tasksByHandle","nextHandle","registerImmediate","handle","runIfPresent","currentlyRunningATask","doc","attachTo","importScripts","postMessageIsAsynchronous","oldOnMessage","messagePrefix","onGlobalMessage","attachEvent","script","onreadystatechange","cloneRoute","fullPath","moduleName","registerModule","namespaced","currentRoute","mutations","ROUTE_CHANGED","currentPath","isTimeTraveling","storeUnwatch","route","afterEachUnHook","afterEach","unregisterModule","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f72d2b7e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__","_vm","_h","esExports","__WEBPACK_IMPORTED_MODULE_1_vue_router__","__WEBPACK_IMPORTED_MODULE_2__views_Users__","routes","isError","resolveProps","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","param","parts","stringifyQuery","encode","val2","createRoute","record","location","redirectedFrom","stringifyQuery$$1","getFullPath","matched","formatMatch","_stringifyQuery","isSameRoute","START","trailingSlashRE","isObjectEqual","aKeys","bKeys","aVal","bVal","isIncludedRoute","queryIncludes","guardEvent","metaKey","ctrlKey","shiftKey","defaultPrevented","button","findAnchor","installed","_Vue","registerInstance","callVal","registerRouteInstance","_routerRoot","_router","history","_route","View","Link","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","resolvePath","relative","append","firstChar","segment","hashIndex","queryIndex","cleanPath","defaultDelimiter","delimiter","PATH_REGEXP","escaped","prefix","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","substr","tokensToFunction","encodeURIComponentPretty","encodeURI","encodeAsterisk","pretty","encodeURIComponent","token","isarray","attachKeys","flags","sensitive","regexpToRegexp","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","strict","endsWithDelimiter","fillParams","routeMsg","regexpCompileCache","pathToRegexp_1","createRouteMap","oldPathList","oldPathMap","oldNameMap","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","instances","redirect","childMatchAs","aliasRoute","normalizeLocation","_normalized","rawPath","parsedPath","basePath","createMatcher","addRoutes","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedPath","aliasedMatch","aliasedRecord","decodeURIComponent","setupScroll","replaceState","getStateKey","saveScrollPosition","setStateKey","handleScroll","isPop","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","positionStore","pageXOffset","pageYOffset","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","selector","scrollTo","genKey","Time","now","toFixed","_key","pushState","runQueue","step","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","normalizeBase","baseEl","resolveQueue","activated","deactivated","extractGuards","records","reverse","guards","instance","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","isValid","bindEnterGuard","poll","getLocation","pathname","checkFallback","ensureSlash","getHash","replaceHash","getUrl","pushHash","supportsPushState","registerHook","createHref","routerView","$route","_routerViewCache","depth","inactive","routerViewDepth","propsToPass","encodeReserveRE","encodeReserveReplacer","commaRE","toTypes","eventTypes","exact","exactActiveClass","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","parse_1","compile_1","tokensToFunction_1","tokensToRegExp_1","ua","Date","History","ready","readyCbs","readyErrorCbs","errorCbs","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","beforeHooks","postEnterCbs","resolveHooks","afterHooks","HTML5History","History$$1","expectScroll","initLocation","go","fromRoute","getCurrentLocation","HashHistory","setupListeners","supportsScroll","AbstractHistory","targetIndex","VueRouter","apps","matcher","setupHashListener","beforeEach","beforeResolve","back","forward","getMatchedComponents","normalizedTo","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Users_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70f1d23b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Users_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_appNavigation_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_85c34754_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_appNavigation_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_navigationItem_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_429bfeff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_navigationItem_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverItem_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_38c13d40_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverItem_vue__","longtext","icon-loading-small","collapsible","backgroundColor","bullet","iconUrl","isInteger","undo","icon-loading","data-apps-slide-toggle","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userList_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_347382ba_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userList_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userRow_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94a7aec0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userRow_vue__","microtaskDebounce","taskDebounce","scheduled","timeoutDuration","functionToCheck","getStyleComputedProperty","getParentNode","nodeName","host","getScrollParent","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","getOffsetParent","offsetParent","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","scrollLeft","getBordersSize","axis","sideA","sideB","getSize","computedStyle","isIE10$1","getWindowSizes","height","getClientRect","offsets","_extends","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","isIE10","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","relativeOffset","innerWidth","isFixed","getBoundaries","popper","reference","boundariesElement","boundaries","boundariesNode","_getWindowSizes","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","check","runModifiers","ends","isDestroyed","arrowStyles","attributes","flipped","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","disableEventListeners","removeOnDestroy","getWindow","defaultView","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","cancelAnimationFrame","isNumeric","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","_data$offsets$arrow","_data$offsets","isVertical","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","clockwise","validPlacements","placementOpposite","flipOrder","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","op","mergeWithPrevious","index2","preventOverflow","priority","primary","escapeWithReference","secondary","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","convertToArray","addClasses","newClasses","className","SVGAnimatedString","newClass","SVGElement","removeClasses","getOptions","defaultPlacement","defaultDelay","defaultTemplate","arrowSelector","defaultArrowSelector","innerSelector","defaultInnerSelector","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","autoHide","loadingClass","defaultLoadingClass","loadingContent","defaultLoadingContent","popperOptions","_extends$1","defaultPopperOptions","typeofOffset","getPlacement","positions","getContent","content","createTooltip","defaultClass","tooltip","_tooltip","Tooltip","setClasses","_vueEl","targetClasses","defaultTargetClass","_tooltipTargetClasses","destroyTooltip","dispose","_tooltipOldShow","setContent","setOptions","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","getInternetExplorerVersion","msie","rv","edge","initCompat","install$1","ResizeObserver","getDefault","popover","handleGlobalClick","handleGlobalClose","handleGlobalTouchend","openPopovers","$_handleGlobalClose","lodash_merge","defaultOptions","vclosepopover","Popover","isBrowser","longerTimeoutBrowsers","supportsMicroTasks","debounce","appVersion","classCallCheck","Constructor","createClass","descriptor","protoProps","staticProps","placements","onLoad","Defaults","Popper","jquery","Utils","PopperUtils","classCallCheck$1","createClass$1","DEFAULT_OPTIONS","openTooltips","_initialiseProps","_isOpen","_classes","_tooltipNode","_setContent","classesUpdated","needPopperUpdate","needRestart","popperInstance","_isDisposed","_enableDocumentTouch","_setEventListeners","tooltipGenerator","tooltipNode","asyncContent","_applyContent","allowHtml","rootNode","titleNode","asyncResult","innerText","_disposeTimer","updateClasses","_ensureShown","_create","_findContainer","_append","_noLongerOpen","disposeTime","disposeTimeout","func","_hide","directEvents","oppositeEvents","evt","usedByTooltip","_scheduleShow","_scheduleHide","computedDelay","_scheduleTimer","_show","_setTooltipNodeEvent","_dispose","relatedreference","toElement","evt2","relatedreference2","_onDocumentTouch","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultAutoHide","defaultHandleResize","addResizeHandlers","_resizeObject","contentDocument","_w","removeResizeHandlers","onload","beforeDestroy","plugin$2","GlobalVue$1","MSStream","cssClass","aria-describedby","popoverId","popoverBaseClass","popoverClass","popoverWrapperClass","popoverArrowClass","popoverInnerClass","handleResize","$_handleResize","Element","openGroup","oldVal","popoverNode","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","$_getOffset","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","_ref$force","skipDelay","$_scheduleShow","$_scheduleHide","$_show","$_disposeTimer","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref3","$_restartPopper","commonjsGlobal","addMapEntry","pair","addSetEntry","arrayEach","iteratee","arrayPush","arrayReduce","accumulator","initAccum","baseTimes","isHostObject","mapToArray","overArg","setToArray","Hash","entry","hashClear","__data__","nativeCreate","hashDelete","hashGet","HASH_UNDEFINED","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","Map","string","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignMergeValue","eq","objValue","baseAssign","copyObject","baseClone","isDeep","isFull","customizer","isArr","initCloneArray","copyArray","getTag","isFunc","funcTag","genTag","cloneBuffer","objectTag","argsTag","initCloneObject","copySymbols","cloneableTags","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","proto","objectCreate","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","objectToString","baseIsNative","isMasked","reIsNative","reIsHostCtor","toSource","baseIsTypedArray","isObjectLike","isLength","typedArrayTags","baseKeys","isPrototype","nativeKeys","baseKeysIn","nativeKeysIn","isProto","baseMerge","srcIndex","isTypedArray","srcValue","baseMergeDeep","newValue","mergeFunc","isCommon","isArrayLikeObject","toPlainObject","baseRest","nativeMax","otherArgs","copy","cloneArrayBuffer","arrayBuffer","byteLength","Uint8Array","cloneDataView","dataView","byteOffset","cloneMap","cloneFunc","cloneRegExp","regexp","reFlags","cloneSet","cloneSymbol","symbol","symbolValueOf","cloneTypedArray","typedArray","getSymbols","isKeyable","getNative","getPrototype","arrayBufferTag","boolTag","dateTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","numberTag","stringTag","regexpTag","setTag","symbolTag","MAX_SAFE_INTEGER","reIsUint","isIterateeCall","isArrayLike","maskSrcKey","objectProto","funcToString","other","objectCtorString","keysIn","stubArray","stubFalse","weakMapTag","reRegExpChar","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","funcProto","coreJsData","IE_PROTO","Buffer","nativeGetSymbols","nativeIsBuffer","DataView","WeakMap","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","ctorString","assigner","sources","GlobalVue","srcset","submit","autocorrect","autocapitalize","spellcheck","displayname","minlength","tag-placeholder","track-by","group-values","group-label","storageLocation","lastLogin","formatDate","auto","relativeModifiedDate","currentUser","sourceRoot","unescape","media","sourceMap","styleSheet","DEBUG","head","locals","STATE_CHANGER","INFINITE_EVENT","INFINITE_LOOP","scrollHandler","isLoading","isFirstLoad","debounceTimer","debounceDuration","infiniteLoopChecked","infiniteLoopTimer","continuousCallTimes","Spinner","isNoResults","isNoMore","distance","onInfinite","spinner","direction","forceUseInfiniteWrapper","Event","attemptLoad","stateChanger","reset","getCurrentDistance","BUBBLES","CIRCLES","DEFAULT","SPIRAL","WAVEDOTS","spinnerView","&scroll","sticky","close-on-select","$$v","infinite","VueLocalStorage","_properties","_namespace","_isSupported","_getLsKey","lsKey","_lsSet","rawValue","localStorage","setItem","_lsGet","defaultValue","defaultType","_process","removeItem","addProperty","vueLocalStorage","SERVER_BUILD","NODE_ENV","isSupported","log","createInstance","defaultConfig","Axios","axios","instanceConfig","CancelToken","isCancel","promises","spread","isSlowBuffer","readFloatLE","_isBuffer","interceptors","InterceptorManager","dispatchRequest","chain","interceptor","fulfilled","rejected","serializedParams","toISOString","ignoreDuplicateOf","parsed","line","resolveURL","urlParsingNode","protocol","hostname","originURL","requestURL","charCode","output","idx","expires","domain","secure","cookie","toGMTString","eject","throwIfCancellationRequested","throwIfRequested","transformData","isAbsoluteURL","combineURLs","baseURL","relativeURL","executor","resolvePromise","checked","$$a","$$el","$$c","$$i","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2__users__","__WEBPACK_IMPORTED_MODULE_3__settings__","__WEBPACK_IMPORTED_MODULE_4__oc__","API_FAILURE","Store","oc","devtoolPlugin","devtoolHook","_devtoolHook","targetState","subscribe","mutation","forEachValue","isPromise","targetModule","newModule","getChild","genericSubscribe","resetStore","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreVM","oldVm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","isRoot","getNamespace","parentState","getNestedState","local","makeLocalContext","forEachMutation","registerMutation","forEachAction","registerAction","forEachGetter","registerGetter","forEachChild","noNamespace","_type","_payload","_options","unifyObjectStyle","payload","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","applyMixin","normalizeMap","normalizeNamespace","getModuleByNamespace","helper","vuexInit","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors$1","addChild","ModuleCollection","rawRootModule","register","rawChildModule","unregister","plugins","_committing","_actionSubscribers","_subscribers","_watcherVM","subscribeAction","preserveState","hotUpdate","newOptions","committing","mapState","states","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","index_esm","__WEBPACK_IMPORTED_MODULE_0__api__","orderGroups","localeCompare","appendUsers","usersObj","setPasswordPolicyMinLength","initGroups","addGroup","groupIndex","groupSearch","_ref4","_ref5","userIndex","addUserData","ocs","_ref6","setUserData","_ref7","humanValue","resetUsers","_ref8","linkToOCS","getUsersFromList","_ref9","getUsersFromGroup","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","addUser","_ref16","_ref17","_ref18","_ref18$enabled","userStatus","_ref19","allowedEmpty","serverData","setServerData","setAppConfig"],"mappings":"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","file":"main.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 23);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(18);\nvar isBuffer = __webpack_require__(48);\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"production\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"production\" !== '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 * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (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 window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (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 = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (false) {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\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 + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\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 tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\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\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\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.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction 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/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\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 if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\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 if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (false) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\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 */\nfunction set (target, key, val) {\n if (false\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\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 if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (false\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"production\" !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\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 */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (false) {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\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 return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n \"production\" !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\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 */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n \"production\" !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (false) {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && \"production\" !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (false) {\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)\n ? val\n : { type: val };\n }\n } else if (false) {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (false) {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (false) {\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);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\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 var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\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 */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (false) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\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 if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n false\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (false) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\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 if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\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 return {\n valid: valid,\n expectedType: expectedType\n }\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 */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\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 if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (false) {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // 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 if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\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 if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (false) {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (false) {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n 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) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\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\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\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 */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\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\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n \"production\" !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(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\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (false) {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\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<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n \"production\" !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n false\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n if (once) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (false) {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (false) {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (false) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (false) {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (false) {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (false) {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (false) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = false\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n \"production\" !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (false) {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n \"production\" !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (false) {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n \"production\" !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (false) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (false) {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (false) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (false) {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (false) {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (false) {\n defineReactive(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (false) {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (false) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes) {\n if (false) {\n warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n }\n slotNodes._rendered = true;\n }\n nodes = slotNodes || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n \"production\" !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n \"production\" !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () { return resolveSlots(children, parent); };\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = data.scopedSlots || emptyObject;\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/* */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (false) {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n // Weex specific: invoke recycle-list optimized @render function for\n // extracting cell-slot template.\n // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n /* istanbul ignore if */\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var options = {\n _isComponent: true,\n parent: parent,\n _parentVnode: vnode,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n hooks[key] = componentVNodeHooks[key];\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n \"production\" !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (false\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (false) {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n // reset _rendered flag on slots for duplicate slot check\n if (false) {\n for (var key in vm.$slots) {\n // $flow-disable-line\n vm.$slots[key]._rendered = false;\n }\n }\n\n if (_parentVnode) {\n vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (false) {\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (false) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (false) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (false) {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (false) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue (options) {\n if (false\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (false) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (false) {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache, key, this$1.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n}\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n}\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (false) {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.5.16';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n \"production\" !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n}\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove () {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (false) {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (false) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (false) {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (false) {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (false) {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (false\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (false\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (false) {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n]\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n}\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n}\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\n }\n}\n\n/* */\n\nfunction baseWarn (msg) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\nfunction addAttr (el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value) {\n el.attrsMap[name] = value;\n el.attrsList.push({ name: name, value: value });\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n modifiers\n) {\n (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n el.plain = false;\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn\n) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n false\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.'\n );\n }\n\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = '~' + name; // mark the event as once\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = '&' + name; // mark the event as passive\n }\n\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (name === 'click') {\n if (modifiers.right) {\n name = 'contextmenu';\n delete modifiers.right;\n } else if (modifiers.middle) {\n name = 'mouseup';\n }\n }\n\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n\n var newHandler = {\n value: value.trim()\n };\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n\n el.plain = false;\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n el,\n name,\n removeFromMap\n) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: (\"\\\"\" + value + \"\\\"\"),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var res = parseModel(value);\n if (res.key === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\n\n\nfunction parseModel (val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index$1 = val.lastIndexOf('.');\n if (index$1 > -1) {\n return {\n exp: val.slice(0, index$1),\n key: '\"' + val.slice(index$1 + 1) + '\"'\n }\n } else {\n return {\n exp: val,\n key: null\n }\n }\n }\n\n str = val;\n index$1 = expressionPos = expressionEndPos = 0;\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (false) {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\"\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (false) {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.'\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, 'change',\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\n \"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n if (false) {\n var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value$1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\n binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\n 'because the latter already expands to a value binding internally'\n );\n }\n }\n\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n handler = withMacroTask(handler);\n if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n event,\n handler._withTask || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n}\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.lazy) {\n // inputs with lazy should only be updated when not in focus\n return false\n }\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n}\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def) {\n if (!def) {\n return\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res\n } else if (typeof def === 'string') {\n return autoCssTransition(def)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (false) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (false) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {}\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n]\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n \"production\" !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n}\n\nvar platformDirectives = {\n model: directive,\n show: show\n}\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (false) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (false\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n}\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (false) {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n}\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n}\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n false\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (false\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push(tokenValue = text.slice(lastIndex, index));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push(tokenValue = text.slice(lastIndex));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n }\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (false) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n}\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (false) {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n}\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n}\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being pased as HTML comment when inlined in page\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n',\n '	': '\\t'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd));\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(lastTag, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n advance(textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n html = '';\n }\n\n if (options.chars && text) {\n options.chars(text);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (false) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') { delete args[3]; }\n if (args[4] === '') { delete args[4]; }\n if (args[5] === '') { delete args[5]; }\n }\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (false\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /([^]*?)\\s+(?:in|of)\\s+([^]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n\n\nfunction createASTElement (\n tag,\n attrs,\n parent\n) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: parent,\n children: []\n }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg) {\n if (!warned) {\n warned = true;\n warn$2(msg);\n }\n }\n\n function closeElement (element) {\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n start: function start (tag, attrs, unary) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n \"production\" !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.'\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n // element-scope stuff\n processElement(element, options);\n }\n\n function checkRootConstraints (el) {\n if (false) {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.'\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.'\n );\n }\n }\n }\n\n // tree management\n if (!root) {\n root = element;\n checkRootConstraints(root);\n } else if (!stack.length) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n checkRootConstraints(element);\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (false) {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\"\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else if (element.slotScope) { // scoped slot\n currentParent.plain = false;\n var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n closeElement(element);\n }\n },\n\n end: function end () {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n closeElement(element);\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (false) {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.'\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && children.length ? ' ' : '';\n if (text) {\n var res;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n children.push({\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n });\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n children.push({\n type: 3,\n text: text\n });\n }\n }\n },\n comment: function comment (text) {\n currentParent.children.push({\n type: 3,\n text: text,\n isComment: true\n });\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processElement (element, options) {\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !element.attrsList.length;\n\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (false) {\n warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n } else if (false) {\n warn$2(\n (\"Invalid v-for expression: \" + exp)\n );\n }\n }\n}\n\n\n\nfunction parseFor (exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) { return }\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '');\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n } else {\n res.alias = alias;\n }\n return res\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (false) {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (false) {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\"\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\nfunction processSlot (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (false) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\"\n );\n }\n } else {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (false) {\n warn$2(\n \"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\",\n true\n );\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (false) {\n warn$2(\n \"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\",\n true\n );\n }\n el.slotScope = slotScope;\n }\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget);\n }\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, isProp;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isProp = false;\n if (modifiers) {\n if (modifiers.prop) {\n isProp = true;\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n genAssignmentCode(value, \"$event\")\n );\n }\n }\n if (isProp || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers, false, warn$2);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, rawName, value, arg, modifiers);\n if (false) {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (false) {\n var res = parseText(value, delimiters);\n if (res) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n );\n }\n }\n addAttr(el, name, JSON.stringify(value));\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true');\n }\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n false\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\"\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\n/**\n * Expand input[v-model] with dyanmic type bindings into v-if-else chains\n * Turn this:\n * <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n * <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n * <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n * <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n\nfunction preTransformNode (el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return\n }\n\n var typeBinding;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\" + (map['v-bind']) + \").type\";\n }\n\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n\n if (hasElse) {\n branch0.else = true;\n } else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n\n return branch0\n }\n }\n}\n\nfunction cloneASTElement (el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$2 = {\n preTransformNode: preTransformNode\n}\n\nvar modules$1 = [\n klass$1,\n style$1,\n model$2\n]\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n}\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nvar keyNames = {\n esc: 'Escape',\n tab: 'Tab',\n enter: 'Enter',\n space: ' ',\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n 'delete': ['Backspace', 'Delete']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative,\n warn\n) {\n var res = isNative ? 'nativeOn:{' : 'on:{';\n for (var name in events) {\n res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, events[name])) + \",\";\n }\n return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n name,\n handler\n) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value\n }\n /* istanbul ignore if */\n return (\"function($event){\" + (handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else if (key === 'exact') {\n var modifiers = (handler.modifiers);\n genModifierCode += genGuard(\n ['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers[keyModifier]; })\n .map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\n .join('||')\n );\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? (\"return \" + (handler.value) + \"($event)\")\n : isFunctionExpression\n ? (\"return (\" + (handler.value) + \")($event)\")\n : handler.value;\n /* istanbul ignore if */\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\n \"_k($event.keyCode,\" +\n (JSON.stringify(key)) + \",\" +\n (JSON.stringify(keyCode)) + \",\" +\n \"$event.key,\" +\n \"\" + (JSON.stringify(keyName)) +\n \")\"\n )\n}\n\n/* */\n\nfunction on (el, dir) {\n if (false) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n}\n\n/* */\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data = el.plain ? undefined : genData$2(el, state);\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n \"production\" !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \"\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (false\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false, state.warn)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (false) {\n state.warn('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n slots,\n state\n) {\n return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n return genScopedSlot(key, slots[key], state)\n }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n key,\n el,\n state\n) {\n if (el.for && !el.forProcessed) {\n return genForScopedSlot(key, el, state)\n }\n var fn = \"function(\" + (String(el.slotScope)) + \"){\" +\n \"return \" + (el.tag === 'template'\n ? el.if\n ? ((el.if) + \"?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state)) + \"}\";\n return (\"{key:\" + key + \",fn:\" + fn + \"}\")\n}\n\nfunction genForScopedSlot (\n key,\n el,\n state\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n el.forProcessed = true; // avoid recursion\n return \"_l((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + (genScopedSlot(key, el, state)) +\n '})'\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n return (altGenElement || genElement)(el$1, state)\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n /* istanbul ignore if */\n {\n res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n }\n }\n return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors\n}\n\nfunction checkNode (node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n}\n\nfunction checkEvent (exp, text, errors) {\n var stipped = exp.replace(stripStringRE, '');\n var keywordMatch = stipped.match(unaryOperatorsRE);\n if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n errors.push(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n }\n checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (\n ident,\n type,\n text,\n errors\n) {\n if (typeof ident === 'string') {\n try {\n new Function((\"var \" + ident + \"=_\"));\n } catch (e) {\n errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n }\n }\n}\n\nfunction checkExpression (exp, text, errors) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\"\\n Raw expression: \" + (text.trim())\n );\n } else {\n errors.push(\n \"invalid expression: \" + (e.message) + \" in\\n\\n\" +\n \" \" + exp + \"\\n\\n\" +\n \" Raw expression: \" + (text.trim()) + \"\\n\"\n );\n }\n }\n}\n\n/* */\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = extend({}, options);\n var warn$$1 = options.warn || warn;\n delete options.warn;\n\n /* istanbul ignore if */\n if (false) {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn$$1(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (false) {\n if (compiled.errors && compiled.errors.length) {\n warn$$1(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n if (compiled.tips && compiled.tips.length) {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (false) {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn$$1(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n finalOptions.warn = function (msg, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives || null),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n var compiled = baseCompile(template, finalOptions);\n if (false) {\n errors.push.apply(errors, detectErrors(compiled.ast));\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nvar div;\nfunction getShouldDecode (href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf(' ') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n \"production\" !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (false) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (false) {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (false) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (false) {\n mark('compile end');\n measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue.compile = compileToFunctions;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Vue);\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3), __webpack_require__(24).setImmediate))\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios__ = __webpack_require__(46);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_axios__);\n\n\nvar requestToken = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken');\nvar tokenHeaders = { headers: { requesttoken: requestToken } };\n\nvar sanitize = function sanitize(url) {\n\treturn url.replace(/\\/$/, ''); // Remove last url slash\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\n\t/**\n * This Promise is used to chain a request that require an admin password confirmation\n * Since chaining Promise have a very precise behavior concerning catch and then,\n * you'll need to be careful when using it.\n * e.g\n * // store\n * \taction(context) {\n *\t\treturn api.requireAdmin().then((response) => {\n *\t\t\treturn api.get('url')\n *\t\t\t\t.then((response) => {API success})\n *\t\t\t\t.catch((error) => {API failure});\n *\t\t}).catch((error) => {requireAdmin failure});\n *\t}\n * // vue\n *\tthis.$store.dispatch('action').then(() => {always executed})\n *\n * Since Promise.then().catch().then() will always execute the last then\n * this.$store.dispatch('action').then will always be executed\n * \n * If you want requireAdmin failure to also catch the API request failure\n * you will need to throw a new error in the api.get.catch()\n * \n * e.g\n *\tapi.requireAdmin().then((response) => {\n *\t\tapi.get('url')\n *\t\t\t.then((response) => {API success})\n *\t\t\t.catch((error) => {throw error;});\n *\t}).catch((error) => {requireAdmin OR API failure});\n * \n * @returns {Promise}\n */\n\trequireAdmin: function requireAdmin() {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\t// TODO: migrate the OC.dialog to Vue and avoid this mess\n\t\t\t// wait for password confirmation\n\t\t\tvar passwordTimeout = void 0;\n\t\t\tvar waitForpassword = function waitForpassword() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tpasswordTimeout = setTimeout(waitForpassword, 500);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\tclearTimeout(promiseTimeout);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\t// automatically reject after 5s if not resolved\n\t\t\tvar promiseTimeout = setTimeout(function () {\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\t// close dialog\n\t\t\t\tif (document.getElementsByClassName('oc-dialog-close').length > 0) {\n\t\t\t\t\tdocument.getElementsByClassName('oc-dialog-close')[0].click();\n\t\t\t\t}\n\t\t\t\tOC.Notification.showTemporary(t('settings', 'You did not enter the password in time'));\n\t\t\t\treject('Password request cancelled');\n\t\t\t}, 7000);\n\n\t\t\t// request password\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation();\n\t\t\twaitForpassword();\n\t\t});\n\t},\n\tget: function get(url) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0_axios___default.a.get(sanitize(url), tokenHeaders).then(function (response) {\n\t\t\treturn Promise.resolve(response);\n\t\t}).catch(function (error) {\n\t\t\treturn Promise.reject(error);\n\t\t});\n\t},\n\tpost: function post(url, data) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0_axios___default.a.post(sanitize(url), data, tokenHeaders).then(function (response) {\n\t\t\treturn Promise.resolve(response);\n\t\t}).catch(function (error) {\n\t\t\treturn Promise.reject(error);\n\t\t});\n\t},\n\tpatch: function patch(url, data) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0_axios___default.a.patch(sanitize(url), data, tokenHeaders).then(function (response) {\n\t\t\treturn Promise.resolve(response);\n\t\t}).catch(function (error) {\n\t\t\treturn Promise.reject(error);\n\t\t});\n\t},\n\tput: function put(url, data) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0_axios___default.a.put(sanitize(url), data, tokenHeaders).then(function (response) {\n\t\t\treturn Promise.resolve(response);\n\t\t}).catch(function (error) {\n\t\t\treturn Promise.reject(error);\n\t\t});\n\t},\n\tdelete: function _delete(url, data) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0_axios___default.a.delete(sanitize(url), { data: data, headers: tokenHeaders.headers }).then(function (response) {\n\t\t\treturn Promise.resolve(response);\n\t\t}).catch(function (error) {\n\t\t\treturn Promise.reject(error);\n\t\t});\n\t}\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(t,e){ true?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=66)}([function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){t.exports=!n(12)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(10),r=n(43),o=n(31),s=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(77),r=n(21);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(9),r=n(52),o=n(18),s=n(55),u=n(53),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,y=t&a.P,g=t&a.B,b=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,m=d?r:r[e]||(r[e]={}),_=m.prototype||(m.prototype={});d&&(n=e);for(l in n)c=!h&&b&&void 0!==b[l],f=(c?b:n)[l],p=g&&c?u(f,i):y&&\"function\"==typeof f?u(Function.call,f):f,b&&s(b,l,f,t&a.U),m[l]!=f&&o(m,l,p),y&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){var i=n(3),r=n(15);t.exports=n(1)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(29)(\"wks\"),r=n(16),o=n(0).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){var i=n(13);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(48),r=n(22);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){var i=n(109),r=n(110);t.exports=n(35)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(8);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var i=n(0),r=n(11),o=n(74),s=n(6),u=function(t,e,n){var a,l,c,f=t&u.F,p=t&u.G,h=t&u.S,d=t&u.P,v=t&u.B,y=t&u.W,g=p?r:r[e]||(r[e]={}),b=g.prototype,m=p?i:h?i[e]:(i[e]||{}).prototype;p&&(n=e);for(a in n)(l=!f&&m&&void 0!==m[a])&&a in g||(c=l?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:v&&l?o(c,i):y&&m[a]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(c):d&&\"function\"==typeof c?o(Function.call,c):c,d&&((g.virtual||(g.virtual={}))[a]=c,t&u.R&&b&&!b[a]&&s(b,a,c)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(3).f,r=n(2),o=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(29)(\"keys\"),r=n(16);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(0),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(13);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var i=n(0),r=n(11),o=n(25),s=n(33),u=n(3).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:s.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e,n){var i=n(53),r=n(36),o=n(57),s=n(37),u=n(104);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,y,g=o(e),b=r(g),m=i(u,d,3),_=s(b.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in b)&&(v=b[x],y=m(v,x,g),t))if(n)w[x]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){t.exports=!n(8)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(51);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(56),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(111)(\"wks\"),r=n(58),o=n(9).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e,n){\"use strict\";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t=\"undefined\"),null===t&&(t=\"null\"),!1===t&&(t=\"false\"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,n,i,r){return function(o){return o.map(function(o){var u;if(!o[n])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var a=s(o[n],t,e,r);return a.length?(u={},v()(u,i,o[i]),v()(u,n,a),u):[]})}}var c=n(65),f=n.n(c),p=n(59),h=(n.n(p),n(122)),d=(n.n(h),n(64)),v=n.n(d),y=n(120),g=(n.n(y),n(121)),b=(n.n(g),n(117)),m=(n.n(b),n(123)),_=(n.n(m),n(118)),x=(n.n(_),n(119)),w=(n.n(x),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:\"\",isOpen:!1,prefferedOpenDirection:\"below\",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:\"Select option\"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return i(t)?\"\":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:\"Press enter to create a tag\"},tagPosition:{type:String,default:\"top\"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){this.multiple||this.clearOnSelect||console.warn(\"[Vue-Multiselect warn]: ClearOnSelect and Multiple props can’t be both set to false.\"),!this.multiple&&this.max&&console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||\"\",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(r(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&(\"bottom\"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?\"\":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?\"\":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search=\"\",this.$emit(\"input\",this.multiple?[]:null))},search:function(){this.$emit(\"search-change\",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return w(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return w(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},getOptionLabel:function(t){if(i(t))return\"\";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?\"\":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(\"Tab\"!==e||this.pointerDirty)){if(t.isTag)this.$emit(\"tag\",t.label,this.id),this.search=\"\",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void(\"Tab\"!==e&&this.removeElement(t));this.$emit(\"select\",t,this.id),this.multiple?this.$emit(\"input\",this.internalValue.concat([t]),this.id):this.$emit(\"input\",t,this.id),this.clearOnSelect&&(this.search=\"\")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit(\"remove\",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit(\"input\",i,this.id)}else{var o=n[this.groupValues].filter(r(this.isSelected));this.$emit(\"select\",o,this.id),this.$emit(\"input\",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(t){return t[this.groupValues].every(this.isSelected)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var n=\"object\"===f()(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit(\"remove\",t,this.id),this.multiple){var i=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit(\"input\",i,this.id)}else this.$emit(\"input\",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf(\"Delete\")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=\"\"),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit(\"open\",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=\"\"),this.$emit(\"close\",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(\"undefined\"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||\"below\"===this.openDirection||\"bottom\"===this.openDirection?(this.prefferedOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.prefferedOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var i=n(59);n.n(i);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer,\"multiselect__option--selected\":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return[\"multiselect__option--disabled\"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return[this.groupSelect?\"multiselect__option--group\":\"multiselect__option--disabled\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(i)}]},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"Enter\",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var i=n(13),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){t.exports=!n(1)&&!n(12)(function(){return 7!=Object.defineProperty(n(42)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){\"use strict\";var i=n(25),r=n(23),o=n(49),s=n(6),u=n(2),a=n(24),l=n(79),c=n(27),f=n(86),p=n(7)(\"iterator\"),h=!([].keys&&\"next\"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,y,g,b){l(n,e,v);var m,_,x,w=function(t){if(!h&&t in P)return P[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+\" Iterator\",O=\"values\"==y,L=!1,P=t.prototype,k=P[p]||P[\"@@iterator\"]||y&&P[y],E=k||w(y),j=y?O?w(\"entries\"):E:void 0,V=\"Array\"==e?P.entries||k:k;if(V&&(x=f(V.call(new t)))!==Object.prototype&&(c(x,S,!0),i||u(x,p)||s(x,p,d)),O&&k&&\"values\"!==k.name&&(L=!0,E=function(){return k.call(this)}),i&&!b||!h&&!L&&P[p]||s(P,p,E),a[e]=E,a[S]=d,y)if(m={values:O?E:w(\"values\"),keys:g?E:w(\"keys\"),entries:j},b)for(_ in m)_ in P||o(P,_,m[_]);else r(r.P+r.F*(h||L),e,m);return m}},function(t,e,n){var i=n(10),r=n(83),o=n(22),s=n(28)(\"IE_PROTO\"),u=function(){},a=function(){var t,e=n(42)(\"iframe\"),i=o.length;for(e.style.display=\"none\",n(76).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),a=t.F;i--;)delete a.prototype[o[i]];return a()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=i(t),n=new u,u.prototype=null,n[s]=t):n=a(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(48),r=n(22).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var i=n(2),r=n(4),o=n(73)(!1),s=n(28)(\"IE_PROTO\");t.exports=function(t,e){var n,u=r(t),a=0,l=[];for(n in u)n!=s&&i(u,n)&&l.push(n);for(;e.length>a;)i(u,n=e[a++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){t.exports=n(6)},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var i=n(50);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(51);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){var i=n(9),r=n(18),o=n(107),s=n(58)(\"src\"),u=Function.toString,a=(\"\"+u).split(\"toString\");n(52).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l=\"function\"==typeof n;l&&(o(n,\"name\")||r(n,\"name\",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?\"\"+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&this[s]||u.call(this)})},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(17);t.exports=function(t){return Object(i(t))}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(5),o=!0;\"find\"in[]&&Array(1).find(function(){o=!1}),i(i.P+i.F*o,\"Array\",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(99)(\"find\")},function(t,e,n){\"use strict\";function i(t){n(124)}var r=n(67),o=n(126),s=n(125),u=i,a=s(r.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){t.exports=n(68)},function(t,e,n){t.exports=n(69)},function(t,e,n){t.exports=n(70)},function(t,e,n){function i(t,e,n){return e in t?r(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=n(61);t.exports=i},function(t,e,n){function i(t){return(i=\"function\"==typeof s&&\"symbol\"==typeof o?function(t){return typeof t}:function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":typeof t})(t)}function r(e){return\"function\"==typeof s&&\"symbol\"===i(o)?t.exports=r=function(t){return i(t)}:t.exports=r=function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":i(t)},r(e)}var o=n(63),s=n(62);t.exports=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(60),r=n(39),o=n(40);n.d(e,\"Multiselect\",function(){return i.a}),n.d(e,\"multiselectMixin\",function(){return r.a}),n.d(e,\"pointerMixin\",function(){return o.a}),e.default=i.a},function(t,e,n){\"use strict\";var i=n(39),r=n(40);e.a={name:\"vue-multiselect\",mixins:[i.a,r.a],props:{name:{type:String,default:\"\"},selectLabel:{type:String,default:\"Press enter to select\"},selectGroupLabel:{type:String,default:\"Press enter to select group\"},selectedLabel:{type:String,default:\"Selected\"},deselectLabel:{type:String,default:\"Press enter to remove\"},deselectGroupLabel:{type:String,default:\"Press enter to deselect group\"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return\"and \".concat(t,\" more\")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:\"\"},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return this.singleValue&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:\"\"},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:\"\"},selectLabelText:function(){return this.showLabels?this.selectLabel:\"\"},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:\"\"},selectedLabelText:function(){return this.showLabels?this.selectedLabel:\"\"},inputStyle:function(){if(this.multiple&&this.value&&this.value.length)return this.isOpen?{width:\"auto\"}:{width:\"0\",position:\"absolute\",padding:\"0\"}},contentStyle:function(){return this.options.length?{display:\"inline-block\"}:{display:\"block\"}},isAbove:function(){return\"above\"===this.openDirection||\"top\"===this.openDirection||\"below\"!==this.openDirection&&\"bottom\"!==this.openDirection&&\"above\"===this.prefferedOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){n(92);var i=n(11).Object;t.exports=function(t,e,n){return i.defineProperty(t,e,n)}},function(t,e,n){n(95),n(93),n(96),n(97),t.exports=n(11).Symbol},function(t,e,n){n(94),n(98),t.exports=n(33).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var i=n(4),r=n(89),o=n(88);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(71);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(14),r=n(47),o=n(26);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,u=n(t),a=o.f,l=0;u.length>l;)a.call(t,s=u[l++])&&e.push(s);return e}},function(t,e,n){t.exports=n(0).document&&document.documentElement},function(t,e,n){var i=n(41);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(41);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){\"use strict\";var i=n(45),r=n(15),o=n(27),s={};n(6)(s,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(14),r=n(4);t.exports=function(t,e){for(var n,o=r(t),s=i(o),u=s.length,a=0;u>a;)if(o[n=s[a++]]===e)return n}},function(t,e,n){var i=n(16)(\"meta\"),r=n(13),o=n(2),s=n(3).f,u=0,a=Object.isExtensible||function(){return!0},l=!n(12)(function(){return a(Object.preventExtensions({}))}),c=function(t){s(t,i,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!r(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!o(t,i)){if(!a(t))return\"F\";if(!e)return\"E\";c(t)}return t[i].i},p=function(t,e){if(!o(t,i)){if(!a(t))return!0;if(!e)return!1;c(t)}return t[i].w},h=function(t){return l&&d.NEED&&a(t)&&!o(t,i)&&c(t),t},d=t.exports={KEY:i,NEED:!1,fastKey:f,getWeak:p,onFreeze:h}},function(t,e,n){var i=n(3),r=n(10),o=n(14);t.exports=n(1)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),u=s.length,a=0;u>a;)i.f(t,n=s[a++],e[n]);return t}},function(t,e,n){var i=n(26),r=n(15),o=n(4),s=n(31),u=n(2),a=n(43),l=Object.getOwnPropertyDescriptor;e.f=n(1)?l:function(t,e){if(t=o(t),e=s(e,!0),a)try{return l(t,e)}catch(t){}if(u(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(4),r=n(46).f,o={}.toString,s=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&\"[object Window]\"==o.call(t)?u(t):r(i(t))}},function(t,e,n){var i=n(2),r=n(90),o=n(28)(\"IE_PROTO\"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(30),r=n(21);t.exports=function(t){return function(e,n){var o,s,u=String(r(e)),a=i(n),l=u.length;return a<0||a>=l?t?\"\":void 0:(o=u.charCodeAt(a),o<55296||o>56319||a+1===l||(s=u.charCodeAt(a+1))<56320||s>57343?t?u.charAt(a):o:t?u.slice(a,a+2):s-56320+(o-55296<<10)+65536)}}},function(t,e,n){var i=n(30),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(30),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(21);t.exports=function(t){return Object(i(t))}},function(t,e,n){\"use strict\";var i=n(72),r=n(80),o=n(24),s=n(4);t.exports=n(44)(Array,\"Array\",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):\"keys\"==e?r(0,n):\"values\"==e?r(0,t[n]):r(0,[n,t[n]])},\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},function(t,e,n){var i=n(23);i(i.S+i.F*!n(1),\"Object\",{defineProperty:n(3).f})},function(t,e){},function(t,e,n){\"use strict\";var i=n(87)(!0);n(44)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var i=n(0),r=n(2),o=n(1),s=n(23),u=n(49),a=n(82).KEY,l=n(12),c=n(29),f=n(27),p=n(16),h=n(7),d=n(33),v=n(32),y=n(81),g=n(75),b=n(78),m=n(10),_=n(4),x=n(31),w=n(15),S=n(45),O=n(85),L=n(84),P=n(3),k=n(14),E=L.f,j=P.f,V=O.f,C=i.Symbol,T=i.JSON,A=T&&T.stringify,$=h(\"_hidden\"),D=h(\"toPrimitive\"),F={}.propertyIsEnumerable,M=c(\"symbol-registry\"),B=c(\"symbols\"),N=c(\"op-symbols\"),R=Object.prototype,H=\"function\"==typeof C,G=i.QObject,I=!G||!G.prototype||!G.prototype.findChild,K=o&&l(function(){return 7!=S(j({},\"a\",{get:function(){return j(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var i=E(R,e);i&&delete R[e],j(t,e,n),i&&t!==R&&j(R,e,i)}:j,z=function(t){var e=B[t]=S(C.prototype);return e._k=t,e},U=H&&\"symbol\"==typeof C.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof C},W=function(t,e,n){return t===R&&W(N,e,n),m(t),e=x(e,!0),m(n),r(B,e)?(n.enumerable?(r(t,$)&&t[$][e]&&(t[$][e]=!1),n=S(n,{enumerable:w(0,!1)})):(r(t,$)||j(t,$,w(1,{})),t[$][e]=!0),K(t,e,n)):j(t,e,n)},J=function(t,e){m(t);for(var n,i=g(e=_(e)),r=0,o=i.length;o>r;)W(t,n=i[r++],e[n]);return t},q=function(t,e){return void 0===e?S(t):J(S(t),e)},X=function(t){var e=F.call(this,t=x(t,!0));return!(this===R&&r(B,t)&&!r(N,t))&&(!(e||!r(this,t)||!r(B,t)||r(this,$)&&this[$][t])||e)},Y=function(t,e){if(t=_(t),e=x(e,!0),t!==R||!r(B,e)||r(N,e)){var n=E(t,e);return!n||!r(B,e)||r(t,$)&&t[$][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=V(_(t)),i=[],o=0;n.length>o;)r(B,e=n[o++])||e==$||e==a||i.push(e);return i},Z=function(t){for(var e,n=t===R,i=V(n?N:_(t)),o=[],s=0;i.length>s;)!r(B,e=i[s++])||n&&!r(R,e)||o.push(B[e]);return o};H||(C=function(){if(this instanceof C)throw TypeError(\"Symbol is not a constructor!\");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(N,n),r(this,$)&&r(this[$],t)&&(this[$][t]=!1),K(this,t,w(1,n))};return o&&I&&K(R,t,{configurable:!0,set:e}),z(t)},u(C.prototype,\"toString\",function(){return this._k}),L.f=Y,P.f=W,n(46).f=O.f=Q,n(26).f=X,n(47).f=Z,o&&!n(25)&&u(R,\"propertyIsEnumerable\",X,!0),d.f=function(t){return z(h(t))}),s(s.G+s.W+s.F*!H,{Symbol:C});for(var tt=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),et=0;tt.length>et;)h(tt[et++]);for(var tt=k(h.store),et=0;tt.length>et;)v(tt[et++]);s(s.S+s.F*!H,\"Symbol\",{for:function(t){return r(M,t+=\"\")?M[t]:M[t]=C(t)},keyFor:function(t){if(U(t))return y(M,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){I=!0},useSimple:function(){I=!1}}),s(s.S+s.F*!H,\"Object\",{create:q,defineProperty:W,defineProperties:J,getOwnPropertyDescriptor:Y,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),T&&s(s.S+s.F*(!H||l(function(){var t=C();return\"[null]\"!=A([t])||\"{}\"!=A({a:t})||\"{}\"!=A(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!U(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!U(e))return e}),i[1]=e,A.apply(T,i)}}}),C.prototype[D]||n(6)(C.prototype,D,C.prototype.valueOf),f(C,\"Symbol\"),f(Math,\"Math\",!0),f(i.JSON,\"JSON\",!0)},function(t,e,n){n(32)(\"asyncIterator\")},function(t,e,n){n(32)(\"observable\")},function(t,e,n){n(91);for(var i=n(0),r=n(6),o=n(24),s=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],a=0;a<5;a++){var l=u[a],c=i[l],f=c&&c.prototype;f&&!f[s]&&r(f,s,l),o[l]=o.Array}},function(t,e,n){var i=n(38)(\"unscopables\"),r=Array.prototype;void 0==r[i]&&n(18)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(19);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var i=n(115),r=n(37),o=n(114);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(50),r=n(57),o=n(36),s=n(37);t.exports=function(t,e,n,u,a){i(e);var l=r(t),c=o(l),f=s(l.length),p=a?f-1:0,h=a?-1:1;if(n<2)for(;;){if(p in c){u=c[p],p+=h;break}if(p+=h,a?p<0:f<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;a?p>=0:f>p;p+=h)p in c&&(u=e(u,c[p],p,l));return u}},function(t,e,n){var i=n(19),r=n(54),o=n(38)(\"species\");t.exports=function(t){var e;return r(t)&&(e=t.constructor,\"function\"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var i=n(103);t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){var i=n(19),r=n(9).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){\"use strict\";var i=n(18),r=n(55),o=n(8),s=n(17),u=n(38);t.exports=function(t,e,n){var a=u(t),l=n(s,a,\"\"[t]),c=l[0],f=l[1];o(function(){var e={};return e[a]=function(){return 7},7!=\"\"[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,a,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(35)&&!n(8)(function(){return 7!=Object.defineProperty(n(105)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(100),r=n(108),o=n(116),s=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(9),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e,n){var i=n(5),r=n(17),o=n(8),s=n(113),u=\"[\"+s+\"]\",a=\"
\",l=RegExp(\"^\"+u+u+\"*\"),c=RegExp(u+u+\"*$\"),f=function(t,e,n){var r={},u=o(function(){return!!s[t]()||a[t]()!=a}),l=r[t]=u?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*u,\"String\",r)},p=f.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,\"\")),2&e&&(t=t.replace(c,\"\")),t};t.exports=f},function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\u2028\\u2029\\ufeff\"},function(t,e,n){var i=n(56),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(36),r=n(17);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(19);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(2);i(i.P+i.F*!n(20)([].filter,!0),\"Array\",{filter:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(101)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;i(i.P+i.F*(s||!n(20)(o)),\"Array\",{indexOf:function(t){return s?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){var i=n(5);i(i.S,\"Array\",{isArray:n(54)})},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(1);i(i.P+i.F*!n(20)([].map,!0),\"Array\",{map:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(102);i(i.P+i.F*!n(20)([].reduce,!0),\"Array\",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){n(106)(\"search\",1,function(t,e,n){return[function(n){\"use strict\";var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){\"use strict\";n(112)(\"trim\",function(t){return function(){return t(this,3)}})},function(t,e){},function(t,e){t.exports=function(t,e,n,i,r,o){var s,u=t=t||{},a=typeof t.default;\"object\"!==a&&\"function\"!==a||(s=t,u=t.default);var l=\"function\"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):i&&(c=i),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"multiselect\",class:{\"multiselect--active\":t.isOpen,\"multiselect--disabled\":t.disabled,\"multiselect--above\":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return\"button\"in e||!t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||!t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}],keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()}}},[t._t(\"caret\",[n(\"div\",{staticClass:\"multiselect__select\",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(\" \"),t._t(\"clear\",null,{search:t.search}),t._v(\" \"),n(\"div\",{ref:\"tags\",staticClass:\"multiselect__tags\"},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.visibleValues.length>0,expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[t._l(t.visibleValues,function(e){return[t._t(\"tag\",[n(\"span\",{staticClass:\"multiselect__tag\"},[n(\"span\",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(\" \"),n(\"i\",{staticClass:\"multiselect__tag-icon\",attrs:{\"aria-hidden\":\"true\",tabindex:\"1\"},on:{keydown:function(n){if(!(\"button\"in n)&&t._k(n.keyCode,\"enter\",13,n.key,\"Enter\"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(\" \"),t.internalValue&&t.internalValue.length>t.limit?[t._t(\"limit\",[n(\"strong\",{staticClass:\"multiselect__strong\",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e(),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect__loading\"}},[t._t(\"loading\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.loading,expression:\"loading\"}],staticClass:\"multiselect__spinner\"})])],2),t._v(\" \"),n(\"input\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen&&t.searchable,expression:\"isOpen && searchable\"}],ref:\"search\",staticClass:\"multiselect__input\",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:\"text\",autocomplete:\"off\",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()},keydown:[function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\"))return null;e.preventDefault(),t.pointerForward()},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\"))return null;e.preventDefault(),t.pointerBackward()},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\"]))return null;e.stopPropagation(),t.removeLastElement()}]}}),t._v(\" \"),t.isSingleLabelVisible?n(\"span\",{staticClass:\"multiselect__single\",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"singleLabel\",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(\" \"),t.isPlaceholderVisible?n(\"span\",{on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"placeholder\",[n(\"span\",{staticClass:\"multiselect__single\"},[t._v(\"\\n \"+t._s(t.placeholder)+\"\\n \")])])],2):t._e()],2),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect\"}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen,expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:{maxHeight:t.optimizedHeight+\"px\"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n(\"ul\",{staticClass:\"multiselect__content\",style:t.contentStyle},[t._t(\"beforeList\"),t._v(\" \"),t.multiple&&t.max===t.internalValue.length?n(\"li\",[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"maxElements\",[t._v(\"Maximum of \"+t._s(t.max)+\" options selected. First remove a selected option to select another.\")])],2)]):t._e(),t._v(\" \"),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,i){return n(\"li\",{key:i,staticClass:\"multiselect__element\"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n(\"span\",{staticClass:\"multiselect__option\",class:t.optionHighlight(i,e),attrs:{\"data-select\":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,\"data-selected\":t.selectedLabelText,\"data-deselect\":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(i)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(\" \"),e&&(e.$isLabel||e.$isDisabled)?n(\"span\",{staticClass:\"multiselect__option\",class:t.groupHighlight(i,e),attrs:{\"data-select\":t.groupSelect&&t.selectGroupLabelText,\"data-deselect\":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(i)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noResult\",[t._v(\"No elements found. Consider changing the search query.\")])],2)]),t._v(\" \"),t._t(\"afterList\")],2)])])],2)},r=[],o={render:i,staticRenderFns:r};e.a=o}])});\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {\n\nvar utils = __webpack_require__(0);\nvar normalizeHeaderName = __webpack_require__(50);\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = __webpack_require__(19);\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = __webpack_require__(19);\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'App',\n\tbeforeMount: function beforeMount() {\n\t\t// importing server data into the store\n\t\tvar serverDataElmt = document.getElementById('serverData');\n\t\tif (serverDataElmt !== null) {\n\t\t\tthis.$store.commit('setServerData', JSON.parse(document.getElementById('serverData').dataset.server));\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__ = __webpack_require__(32);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_userList__ = __webpack_require__(39);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage__ = __webpack_require__(45);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue_multiselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__store_api__ = __webpack_require__(4);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_3_vue_localstorage___default.a);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'Users',\n\tprops: ['selectedGroup'],\n\tcomponents: {\n\t\tappNavigation: __WEBPACK_IMPORTED_MODULE_0__components_appNavigation__[\"a\" /* default */],\n\t\tuserList: __WEBPACK_IMPORTED_MODULE_1__components_userList__[\"a\" /* default */],\n\t\tMultiselect: __WEBPACK_IMPORTED_MODULE_4_vue_multiselect___default.a\n\t},\n\tbeforeMount: function beforeMount() {\n\t\tthis.$store.commit('initGroups', {\n\t\t\tgroups: this.$store.getters.getServerData.groups,\n\t\t\torderBy: this.$store.getters.getServerData.sortGroups,\n\t\t\tuserCount: this.$store.getters.getServerData.userCount\n\t\t});\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength');\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\t// default quota is unlimited\n\t\t\tunlimitedQuota: { id: 'default', label: t('settings', 'Unlimited') },\n\t\t\t// temporary value used for multiselect change\n\t\t\tselectedQuota: false,\n\t\t\tshowConfig: {\n\t\t\t\tshowStoragePath: true,\n\t\t\t\tshowUserBackend: true,\n\t\t\t\tshowLastLogin: true,\n\t\t\t\tshowNewUserForm: true,\n\t\t\t\tshowLanguages: true\n\t\t\t}\n\t\t};\n\t},\n\n\tmethods: {\n\t\tgetLocalstorage: function getLocalstorage(key) {\n\t\t\t// force initialization\n\t\t\tthis.showConfig[key] = this.$localStorage.get(key) === 'true';\n\t\t\treturn this.showConfig[key];\n\t\t},\n\t\tsetLocalStorage: function setLocalStorage(key, status) {\n\t\t\tthis.showConfig[key] = status;\n\t\t\tthis.$localStorage.set(key, status);\n\t\t\treturn status;\n\t\t},\n\t\tremoveGroup: function removeGroup(groupid) {\n\t\t\tvar self = this;\n\t\t\t// TODO migrate to a vue js confirm dialog component \n\t\t\tOC.dialogs.confirm(t('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', { group: groupid }), t('settings', 'Please confirm the group removal '), function (success) {\n\t\t\t\tif (success) {\n\t\t\t\t\tself.$store.dispatch('removeGroup', groupid);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch default quota set request\n * \n * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n * @returns {string}\n */\n\t\tsetDefaultQuota: function setDefaultQuota() {\n\t\t\tvar _this = this;\n\n\t\t\tvar quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';\n\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota\n\t\t\t}).then(function () {\n\t\t\t\tif ((typeof quota === 'undefined' ? 'undefined' : _typeof(quota)) !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota };\n\t\t\t\t}\n\t\t\t\t_this.defaultQuota = quota;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Validate quota string to make sure it's a valid human file size\n * \n * @param {string} quota Quota in readable format '5 GB'\n * @returns {Promise|boolean}\n */\n\t\tvalidateQuota: function validateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tvar validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setDefaultQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t}\n\t},\n\tcomputed: {\n\t\tusers: function users() {\n\t\t\treturn this.$store.getters.getUsers;\n\t\t},\n\t\tloading: function loading() {\n\t\t\treturn Object.keys(this.users).length === 0;\n\t\t},\n\t\tusersOffset: function usersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit: function usersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\n\t\t// Local settings\n\t\tshowLanguages: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLanguages');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLanguages', status);\n\t\t\t}\n\t\t},\n\t\tshowLastLogin: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showLastLogin');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showLastLogin', status);\n\t\t\t}\n\t\t},\n\t\tshowUserBackend: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showUserBackend');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showUserBackend', status);\n\t\t\t}\n\t\t},\n\t\tshowStoragePath: {\n\t\t\tget: function get() {\n\t\t\t\treturn this.getLocalstorage('showStoragePath');\n\t\t\t},\n\t\t\tset: function set(status) {\n\t\t\t\tthis.setLocalStorage('showStoragePath', status);\n\t\t\t}\n\t\t},\n\n\t\tuserCount: function userCount() {\n\t\t\treturn this.$store.getters.getUserCount;\n\t\t},\n\t\tsettings: function settings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\n\n\t\t// default quota\n\t\tquotaOptions: function quotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tvar quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {\n\t\t\t\treturn acc.concat({ id: cur, label: cur });\n\t\t\t}, []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\n\t\t// mapping saved values to objects\n\t\tdefaultQuota: {\n\t\t\tget: function get() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota;\n\t\t\t\t}\n\t\t\t\tif (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota };\n\t\t\t\t}\n\t\t\t\treturn this.unlimitedQuota; // unlimited\n\t\t\t},\n\t\t\tset: function set(quota) {\n\t\t\t\tthis.selectedQuota = quota;\n\t\t\t}\n\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu: function menu() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Data provided php side\n\t\t\tvar groups = this.$store.getters.getGroups;\n\t\t\tgroups = Array.isArray(groups) ? groups : [];\n\n\t\t\t// Map groups\n\t\t\tgroups = groups.map(function (group) {\n\t\t\t\tvar item = {};\n\t\t\t\titem.id = group.id.replace(' ', '_');\n\t\t\t\titem.classes = []; // empty classes, active will be set later\n\t\t\t\titem.router = { // router link to\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: { selectedGroup: group.id }\n\t\t\t\t};\n\t\t\t\titem.text = group.name; // group name\n\t\t\t\titem.utils = { counter: group.usercount }; // users count\n\n\t\t\t\tif (item.id !== 'admin' && item.id !== 'disabled') {\n\t\t\t\t\t// add delete button on real groups\n\t\t\t\t\tvar self = _this2;\n\t\t\t\t\titem.utils.actions = [{\n\t\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\t\ttext: t('settings', 'Remove group'),\n\t\t\t\t\t\taction: function action() {\n\t\t\t\t\t\t\tself.removeGroup(group.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}];\n\t\t\t\t};\n\t\t\t\treturn item;\n\t\t\t});\n\n\t\t\t// Adjust data\n\t\t\tvar adminGroup = groups.find(function (group) {\n\t\t\t\treturn group.id == 'admin';\n\t\t\t});\n\t\t\tvar disabledGroupIndex = groups.findIndex(function (group) {\n\t\t\t\treturn group.id == 'disabled';\n\t\t\t});\n\t\t\tvar disabledGroup = groups[disabledGroupIndex];\n\t\t\tif (adminGroup && adminGroup.text) {\n\t\t\t\tadminGroup.text = t('settings', 'Admins'); // rename admin group\n\t\t\t}\n\t\t\tif (disabledGroup && disabledGroup.text) {\n\t\t\t\tdisabledGroup.text = t('settings', 'Disabled users'); // rename disabled group\n\t\t\t\tif (disabledGroup.utils.counter === 0) {\n\t\t\t\t\tgroups.splice(disabledGroupIndex, 1); // remove disabled if empty\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add everyone group\n\t\t\tgroups.unshift({\n\t\t\t\tid: 'everyone',\n\t\t\t\tclasses: [],\n\t\t\t\trouter: { name: 'users' },\n\t\t\t\ttext: t('settings', 'Everyone'),\n\t\t\t\tutils: { counter: this.userCount }\n\t\t\t});\n\n\t\t\t// Set current group as active\n\t\t\tvar activeGroup = groups.findIndex(function (group) {\n\t\t\t\treturn group.id === _this2.selectedGroup;\n\t\t\t});\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tgroups[activeGroup].classes.push('active');\n\t\t\t} else {\n\t\t\t\tgroups[0].classes.push('active');\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn {\n\t\t\t\tid: 'usergrouplist',\n\t\t\t\tnew: {\n\t\t\t\t\tid: 'new-user-button',\n\t\t\t\t\ttext: t('settings', 'New user'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: function action() {\n\t\t\t\t\t\treturn _this2.showConfig.showNewUserForm = !_this2.showConfig.showNewUserForm;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\titems: groups\n\t\t\t};\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__appNavigation_navigationItem__ = __webpack_require__(33);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'appNavigation',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tnavigationItem: __WEBPACK_IMPORTED_MODULE_0__appNavigation_navigationItem__[\"a\" /* default */]\n\t}\n});\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popoverMenu__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_click_outside__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_click_outside___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_click_outside__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'navigationItem',\n\tprops: ['item'],\n\tcomponents: {\n\t\tpopoverMenu: __WEBPACK_IMPORTED_MODULE_0__popoverMenu__[\"a\" /* default */]\n\t},\n\tdirectives: {\n\t\tClickOutside: __WEBPACK_IMPORTED_MODULE_1_vue_click_outside___default.a\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\topenedMenu: false\n\t\t};\n\t},\n\n\tmethods: {\n\t\tshowMenu: function showMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu: function hideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\t\ttoggleCollapse: function toggleCollapse() {\n\t\t\t// if item.opened isn't set, Vue won't trigger view updates https://vuejs.org/v2/api/#Vue-set\n\t\t\t// ternary is here to detect the undefined state of item.opened\n\t\t\t__WEBPACK_IMPORTED_MODULE_2_vue__[\"a\" /* default */].set(this.item, 'opened', this.item.opened ? !this.item.opened : true);\n\t\t},\n\t\tcancelEdit: function cancelEdit() {\n\t\t\t// remove the editing class\n\t\t\tif (Array.isArray(this.item.classes)) this.item.classes = this.item.classes.filter(function (item) {\n\t\t\t\treturn item !== 'editing';\n\t\t\t});\n\t\t}\n\t},\n\tmounted: function mounted() {\n\t\t// prevent click outside event with popupItem.\n\t\tthis.popupItem = this.$el;\n\t}\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverMenu_vue__ = __webpack_require__(13);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_24e4fcfe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverMenu_vue__ = __webpack_require__(36);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverMenu_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_24e4fcfe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverMenu_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popoverMenu_popoverItem__ = __webpack_require__(34);\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'popoverMenu',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tpopoverItem: __WEBPACK_IMPORTED_MODULE_0__popoverMenu_popoverItem__[\"a\" /* default */]\n\t}\n});\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tprops: ['item']\n});\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nfunction validate(binding) {\r\n if (typeof binding.value !== 'function') {\r\n console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.')\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isPopup(popupItem, elements) {\r\n if (!popupItem || !elements)\r\n return false\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n try {\r\n if (popupItem.contains(elements[i])) {\r\n return true\r\n }\r\n if (elements[i].contains(popupItem)) {\r\n return false\r\n }\r\n } catch(e) {\r\n return false\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nfunction isServer(vNode) {\r\n return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer\r\n}\r\n\r\nexports = module.exports = {\r\n bind: function (el, binding, vNode) {\r\n if (!validate(binding)) return\r\n\r\n // Define Handler and cache it on the element\r\n function handler(e) {\r\n if (!vNode.context) return\r\n\r\n // some components may have related popup item, on which we shall prevent the click outside event handler.\r\n var elements = e.path || (e.composedPath && e.composedPath())\r\n elements && elements.length > 0 && elements.unshift(e.target)\r\n \r\n if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return\r\n\r\n el.__vueClickOutside__.callback(e)\r\n }\r\n\r\n // add Event Listeners\r\n el.__vueClickOutside__ = {\r\n handler: handler,\r\n callback: binding.value\r\n }\r\n !isServer(vNode) && document.addEventListener('click', handler)\r\n },\r\n\r\n update: function (el, binding) {\r\n if (validate(binding)) el.__vueClickOutside__.callback = binding.value\r\n },\r\n \r\n unbind: function (el, binding, vNode) {\r\n // Remove Event Listeners\r\n !isServer(vNode) && document.removeEventListener('click', el.__vueClickOutside__.handler)\r\n delete el.__vueClickOutside__\r\n }\r\n}\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__userList_userRow__ = __webpack_require__(40);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_multiselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_multiselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'userList',\n\tprops: ['users', 'showConfig', 'selectedGroup'],\n\tcomponents: {\n\t\tuserRow: __WEBPACK_IMPORTED_MODULE_0__userList_userRow__[\"a\" /* default */],\n\t\tMultiselect: __WEBPACK_IMPORTED_MODULE_1_vue_multiselect___default.a,\n\t\tInfiniteLoading: __WEBPACK_IMPORTED_MODULE_2_vue_infinite_loading___default.a\n\t},\n\tdata: function data() {\n\t\tvar unlimitedQuota = { id: 'none', label: t('settings', 'Unlimited') },\n\t\t defaultQuota = { id: 'default', label: t('settings', 'Default quota') };\n\t\treturn {\n\t\t\tunlimitedQuota: unlimitedQuota,\n\t\t\tdefaultQuota: defaultQuota,\n\t\t\tloading: false,\n\t\t\tscrolled: false,\n\t\t\tnewUser: {\n\t\t\t\tid: '',\n\t\t\t\tdisplayName: '',\n\t\t\t\tpassword: '',\n\t\t\t\tmailAddress: '',\n\t\t\t\tgroups: [],\n\t\t\t\tsubAdminsGroups: [],\n\t\t\t\tquota: defaultQuota,\n\t\t\t\tlanguage: { code: 'en', name: t('settings', 'Default language') }\n\t\t\t}\n\t\t};\n\t},\n\tmounted: function mounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));\n\t\t}\n\t\t/** \n * Init default language from server data. The use of this.settings\n * requires a computed variable,vwhich break the v-model binding of the form,\n * this is a much easier solution than getter and setter\n */\n\t\t__WEBPACK_IMPORTED_MODULE_3_vue__[\"a\" /* default */].set(this.newUser.language, 'code', this.settings.defaultLanguage);\n\t},\n\n\tcomputed: {\n\t\tsettings: function settings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\t\tfilteredUsers: function filteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\tvar disabledUsers = this.users.filter(function (user) {\n\t\t\t\t\treturn user.enabled !== true;\n\t\t\t\t});\n\t\t\t\tif (disabledUsers.length === 0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {\n\t\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\t\tthis.$router.push('users');\n\t\t\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t\t\t}\n\t\t\t\treturn disabledUsers;\n\t\t\t}\n\t\t\treturn this.users.filter(function (user) {\n\t\t\t\treturn user.enabled === true;\n\t\t\t});\n\t\t},\n\t\tgroups: function groups() {\n\t\t\t// data provided php side + remove the disabled group\n\t\t\treturn this.$store.getters.getGroups.filter(function (group) {\n\t\t\t\treturn group.id !== 'disabled';\n\t\t\t});\n\t\t},\n\t\tsubAdminsGroups: function subAdminsGroups() {\n\t\t\t// data provided php side\n\t\t\treturn this.$store.getters.getServerData.subadmingroups;\n\t\t},\n\t\tquotaOptions: function quotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tvar quotaPreset = this.settings.quotaPreset.reduce(function (acc, cur) {\n\t\t\t\treturn acc.concat({ id: cur, label: cur });\n\t\t\t}, []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\tquotaPreset.unshift(this.defaultQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\t\tminPasswordLength: function minPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\t\tusersOffset: function usersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit: function usersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\n\t\t/* LANGUAGES */\n\t\tlanguages: function languages() {\n\t\t\treturn Array({\n\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\tlanguages: this.settings.languages.commonlanguages\n\t\t\t}, {\n\t\t\t\tlabel: t('settings', 'All languages'),\n\t\t\t\tlanguages: this.settings.languages.languages\n\t\t\t});\n\t\t}\n\t},\n\twatch: {\n\t\t// watch url change and group select\n\t\tselectedGroup: function selectedGroup(val, old) {\n\t\t\tthis.$store.commit('resetUsers');\n\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t}\n\t},\n\tmethods: {\n\t\tonScroll: function onScroll(event) {\n\t\t\tthis.scrolled = event.target.scrollTop > 0;\n\t\t},\n\n\n\t\t/**\n * Validate quota string to make sure it's a valid human file size\n * \n * @param {string} quota Quota in readable format '5 GB'\n * @returns {Object}\n */\n\t\tvalidateQuota: function validateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tvar validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota !== null && validQuota > 0) {\n\t\t\t\t// unify format output\n\t\t\t\tquota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota));\n\t\t\t\treturn this.newUser.quota = { id: quota, label: quota };\n\t\t\t}\n\t\t\t// Default is unlimited\n\t\t\treturn this.newUser.quota = this.quotaOptions[0];\n\t\t},\n\t\tinfiniteHandler: function infiniteHandler($state) {\n\t\t\tthis.$store.dispatch('getUsers', {\n\t\t\t\toffset: this.usersOffset,\n\t\t\t\tlimit: this.usersLimit,\n\t\t\t\tgroup: this.selectedGroup !== 'disabled' ? this.selectedGroup : '' }).then(function (response) {\n\t\t\t\tresponse ? $state.loaded() : $state.complete();\n\t\t\t});\n\t\t},\n\t\tresetForm: function resetForm() {\n\t\t\t// revert form to original state\n\t\t\tObject.assign(this.newUser, this.$options.data.call(this).newUser);\n\t\t\tthis.loading = false;\n\t\t},\n\t\tcreateUser: function createUser() {\n\t\t\tvar _this = this;\n\n\t\t\tthis.loading = true;\n\t\t\tthis.$store.dispatch('addUser', {\n\t\t\t\tuserid: this.newUser.id,\n\t\t\t\tpassword: this.newUser.password,\n\t\t\t\temail: this.newUser.mailAddress,\n\t\t\t\tgroups: this.newUser.groups.map(function (group) {\n\t\t\t\t\treturn group.id;\n\t\t\t\t}),\n\t\t\t\tsubadmin: this.newUser.subAdminsGroups.map(function (group) {\n\t\t\t\t\treturn group.id;\n\t\t\t\t}),\n\t\t\t\tquota: this.newUser.quota.id,\n\t\t\t\tlanguage: this.newUser.language.code\n\t\t\t}).then(function () {\n\t\t\t\treturn _this.resetForm();\n\t\t\t});\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__popoverMenu__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_click_outside__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_click_outside___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue_click_outside__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_multiselect__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_multiselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_multiselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_v_tooltip__ = __webpack_require__(41);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_3_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_4_v_tooltip__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n\tname: 'userRow',\n\tprops: ['user', 'settings', 'groups', 'subAdminsGroups', 'quotaOptions', 'showConfig', 'languages'],\n\tcomponents: {\n\t\tpopoverMenu: __WEBPACK_IMPORTED_MODULE_0__popoverMenu__[\"a\" /* default */],\n\t\tMultiselect: __WEBPACK_IMPORTED_MODULE_2_vue_multiselect___default.a\n\t},\n\tdirectives: {\n\t\tClickOutside: __WEBPACK_IMPORTED_MODULE_1_vue_click_outside___default.a\n\t},\n\tmounted: function mounted() {\n\t\t// required if popup needs to stay opened after menu click\n\t\t// since we only have disable/delete actions, let's close it directly\n\t\t// this.popupItem = this.$el;\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\trand: parseInt(Math.random() * 1000),\n\t\t\topenedMenu: false,\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tdisplayName: false,\n\t\t\t\tpassword: false,\n\t\t\t\tmailAddress: false,\n\t\t\t\tgroups: false,\n\t\t\t\tsubadmins: false,\n\t\t\t\tquota: false,\n\t\t\t\tdelete: false,\n\t\t\t\tdisable: false,\n\t\t\t\tlanguages: false\n\t\t\t}\n\t\t};\n\t},\n\n\tcomputed: {\n\t\t/* USER POPOVERMENU ACTIONS */\n\t\tuserActions: function userActions() {\n\t\t\treturn [{\n\t\t\t\ticon: 'icon-delete',\n\t\t\t\ttext: t('settings', 'Delete user'),\n\t\t\t\taction: this.deleteUser\n\t\t\t}, {\n\t\t\t\ticon: this.user.enabled ? 'icon-close' : 'icon-add',\n\t\t\t\ttext: this.user.enabled ? t('settings', 'Disable user') : t('settings', 'Enable user'),\n\t\t\t\taction: this.enableDisableUser\n\t\t\t}];\n\t\t},\n\n\n\t\t/* GROUPS MANAGEMENT */\n\t\tuserGroups: function userGroups() {\n\t\t\tvar _this = this;\n\n\t\t\tvar userGroups = this.groups.filter(function (group) {\n\t\t\t\treturn _this.user.groups.includes(group.id);\n\t\t\t});\n\t\t\treturn userGroups;\n\t\t},\n\t\tuserSubAdminsGroups: function userSubAdminsGroups() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar userSubAdminsGroups = this.subAdminsGroups.filter(function (group) {\n\t\t\t\treturn _this2.user.subadmin.includes(group.id);\n\t\t\t});\n\t\t\treturn userSubAdminsGroups;\n\t\t},\n\n\n\t\t/* QUOTA MANAGEMENT */\n\t\tusedQuota: function usedQuota() {\n\t\t\tvar quota = this.user.quota.quota;\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100));\n\t\t\t} else {\n\t\t\t\tvar usedInGB = this.user.quota.used / (10 * Math.pow(2, 30));\n\t\t\t\t//asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota\n\t\t\t\tquota = 95 * (1 - 1 / (usedInGB + 1));\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota;\n\t\t},\n\n\t\t// Mapping saved values to objects\n\t\tuserQuota: function userQuota() {\n\t\t\tif (this.user.quota.quota > 0) {\n\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\tvar humanQuota = OC.Util.humanFileSize(this.user.quota.quota);\n\t\t\t\tvar userQuota = this.quotaOptions.find(function (quota) {\n\t\t\t\t\treturn quota.id === humanQuota;\n\t\t\t\t});\n\t\t\t\treturn userQuota ? userQuota : { id: humanQuota, label: humanQuota };\n\t\t\t} else if (this.user.quota.quota === 0 || this.user.quota.quota === 'default') {\n\t\t\t\t// default quota is replaced by the proper value on load\n\t\t\t\treturn this.quotaOptions[0];\n\t\t\t}\n\t\t\treturn this.quotaOptions[1]; // unlimited\n\t\t},\n\n\n\t\t/* PASSWORD POLICY? */\n\t\tminPasswordLength: function minPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage: function userLanguage() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar availableLanguages = this.languages[0].languages.concat(this.languages[1].languages);\n\t\t\tvar userLang = availableLanguages.find(function (lang) {\n\t\t\t\treturn lang.code === _this3.user.language;\n\t\t\t});\n\t\t\tif ((typeof userLang === 'undefined' ? 'undefined' : _typeof(userLang)) !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language\n\t\t\t\t};\n\t\t\t} else if (this.user.language === '') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn userLang;\n\t\t}\n\t},\n\tmethods: {\n\t\t/* MENU HANDLING */\n\t\tshowMenu: function showMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu: function hideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\n\n\t\t/**\n * Generate avatar url\n * \n * @param {string} user The user name\n * @param {int} size Size integer, default 32\n * @returns {string}\n */\n\t\tgenerateAvatar: function generateAvatar(user) {\n\t\t\tvar size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 32;\n\n\t\t\treturn OC.generateUrl('/avatar/{user}/{size}?v={version}', {\n\t\t\t\tuser: user,\n\t\t\t\tsize: size,\n\t\t\t\tversion: oc_userconfig.avatar.version\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Format the limit text in the selected options\n * \n * @param {int} count elements left\n * @returns {string}\n */\n\t\tlimitGroups: function limitGroups(count) {\n\t\t\treturn '+' + count;\n\t\t},\n\t\tdeleteUser: function deleteUser() {\n\t\t\tvar _this4 = this;\n\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tvar userid = this.user.id;\n\t\t\treturn this.$store.dispatch('deleteUser', { userid: userid }).then(function () {\n\t\t\t\t_this4.loading.delete = false;\n\t\t\t\t_this4.loading.all = false;\n\t\t\t});\n\t\t},\n\t\tenableDisableUser: function enableDisableUser() {\n\t\t\tvar _this5 = this;\n\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tvar userid = this.user.id;\n\t\t\tvar enabled = !this.user.enabled;\n\t\t\treturn this.$store.dispatch('enableDisableUser', { userid: userid, enabled: enabled }).then(function () {\n\t\t\t\t_this5.loading.delete = false;\n\t\t\t\t_this5.loading.all = false;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Set user displayName\n * \n * @param {string} displayName The display name\n * @returns {Promise}\n */\n\t\tupdateDisplayName: function updateDisplayName() {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar displayName = this.$refs.displayName.value;\n\t\t\tthis.loading.displayName = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'displayname',\n\t\t\t\tvalue: displayName\n\t\t\t}).then(function () {\n\t\t\t\t_this6.loading.displayName = false;\n\t\t\t\t_this6.$refs.displayName.value = displayName;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Set user password\n * \n * @param {string} password The email adress\n * @returns {Promise}\n */\n\t\tupdatePassword: function updatePassword() {\n\t\t\tvar _this7 = this;\n\n\t\t\tvar password = this.$refs.password.value;\n\t\t\tthis.loading.password = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'password',\n\t\t\t\tvalue: password\n\t\t\t}).then(function () {\n\t\t\t\t_this7.loading.password = false;\n\t\t\t\t_this7.$refs.password.value = ''; // empty & show placeholder \n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Set user mailAddress\n * \n * @param {string} mailAddress The email adress\n * @returns {Promise}\n */\n\t\tupdateEmail: function updateEmail() {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar mailAddress = this.$refs.mailAddress.value;\n\t\t\tthis.loading.mailAddress = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'email',\n\t\t\t\tvalue: mailAddress\n\t\t\t}).then(function () {\n\t\t\t\t_this8.loading.mailAddress = false;\n\t\t\t\t_this8.$refs.mailAddress.value = mailAddress;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Create a new group\n * \n * @param {string} groups Group id\n * @returns {Promise}\n */\n\t\tcreateGroup: function createGroup(gid) {\n\t\t\tvar _this9 = this;\n\n\t\t\tthis.loading = { groups: true, subadmins: true };\n\t\t\tthis.$store.dispatch('addGroup', gid).then(function () {\n\t\t\t\t_this9.loading = { groups: false, subadmins: false };\n\t\t\t\tvar userid = _this9.user.id;\n\t\t\t\t_this9.$store.dispatch('addUserGroup', { userid: userid, gid: gid });\n\t\t\t});\n\t\t\treturn this.$store.getters.getGroups[this.groups.length];\n\t\t},\n\n\n\t\t/**\n * Add user to group\n * \n * @param {object} group Group object\n * @returns {Promise}\n */\n\t\taddUserGroup: function addUserGroup(group) {\n\t\t\tvar _this10 = this;\n\n\t\t\tthis.loading.groups = true;\n\t\t\tvar userid = this.user.id;\n\t\t\tvar gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserGroup', { userid: userid, gid: gid }).then(function () {\n\t\t\t\treturn _this10.loading.groups = false;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Remove user from group\n * \n * @param {object} group Group object\n * @returns {Promise}\n */\n\t\tremoveUserGroup: function removeUserGroup(group) {\n\t\t\tvar _this11 = this;\n\n\t\t\tthis.loading.groups = true;\n\t\t\tvar userid = this.user.id;\n\t\t\tvar gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserGroup', { userid: userid, gid: gid }).then(function () {\n\t\t\t\treturn _this11.loading.groups = false;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Add user to group\n * \n * @param {object} group Group object\n * @returns {Promise}\n */\n\t\taddUserSubAdmin: function addUserSubAdmin(group) {\n\t\t\tvar _this12 = this;\n\n\t\t\tthis.loading.subadmins = true;\n\t\t\tvar userid = this.user.id;\n\t\t\tvar gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserSubAdmin', { userid: userid, gid: gid }).then(function () {\n\t\t\t\treturn _this12.loading.subadmins = false;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Remove user from group\n * \n * @param {object} group Group object\n * @returns {Promise}\n */\n\t\tremoveUserSubAdmin: function removeUserSubAdmin(group) {\n\t\t\tvar _this13 = this;\n\n\t\t\tthis.loading.subadmins = true;\n\t\t\tvar userid = this.user.id;\n\t\t\tvar gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserSubAdmin', { userid: userid, gid: gid }).then(function () {\n\t\t\t\treturn _this13.loading.subadmins = false;\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n * Dispatch quota set request\n * \n * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n * @returns {string}\n */\n\t\tsetUserQuota: function setUserQuota() {\n\t\t\tvar _this14 = this;\n\n\t\t\tvar quota = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'none';\n\n\t\t\tthis.loading.quota = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tquota = quota.id ? quota.id : quota;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'quota',\n\t\t\t\tvalue: quota\n\t\t\t}).then(function () {\n\t\t\t\treturn _this14.loading.quota = false;\n\t\t\t});\n\t\t\treturn quota;\n\t\t},\n\n\n\t\t/**\n * Validate quota string to make sure it's a valid human file size\n * \n * @param {string} quota Quota in readable format '5 GB'\n * @returns {Promise|boolean}\n */\n\t\tvalidateQuota: function validateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tvar validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setUserQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t},\n\n\n\t\t/**\n * Dispatch language set request\n * \n * @param {Object} lang language object {code:'en', name:'English'}\n * @returns {Object}\n */\n\t\tsetUserLanguage: function setUserLanguage(lang) {\n\t\t\tvar _this15 = this;\n\n\t\t\tthis.loading.languages = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'language',\n\t\t\t\tvalue: lang.code\n\t\t\t}).then(function () {\n\t\t\t\treturn _this15.loading.languages = false;\n\t\t\t});\n\t\t\treturn lang;\n\t\t}\n\t}\n});\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\nvar settle = __webpack_require__(51);\nvar buildURL = __webpack_require__(53);\nvar parseHeaders = __webpack_require__(54);\nvar isURLSameOrigin = __webpack_require__(55);\nvar createError = __webpack_require__(20);\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || __webpack_require__(56);\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (\"production\" !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = __webpack_require__(57);\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar enhanceError = __webpack_require__(52);\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"app\", function() { return app; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex_router_sync__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex_router_sync___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vuex_router_sync__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__App_vue__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__router__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__store__ = __webpack_require__(66);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"router\", function() { return __WEBPACK_IMPORTED_MODULE_3__router__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"store\", function() { return __WEBPACK_IMPORTED_MODULE_4__store__[\"a\"]; });\n\n\n\n\n\n\nObject(__WEBPACK_IMPORTED_MODULE_1_vuex_router_sync__[\"sync\"])(__WEBPACK_IMPORTED_MODULE_4__store__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_3__router__[\"a\" /* default */]);\n\n// bind to window\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].prototype.t = t;\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].prototype.OC = OC;\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].prototype.oc_userconfig = oc_userconfig;\n\nvar app = new __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n\trouter: __WEBPACK_IMPORTED_MODULE_3__router__[\"a\" /* default */],\n\tstore: __WEBPACK_IMPORTED_MODULE_4__store__[\"a\" /* default */],\n\trender: function render(h) {\n\t\treturn h(__WEBPACK_IMPORTED_MODULE_2__App_vue__[\"a\" /* default */]);\n\t}\n}).$mount('#content');\n\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\n__webpack_require__(25);\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(5)))\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nexports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__ = __webpack_require__(8);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f72d2b7e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__ = __webpack_require__(28);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f72d2b7e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_router__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__views_Users__ = __webpack_require__(31);\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]);\n\n/*\n * This is the list of routes where the vuejs app will\n * take over php to provide data\n * You need to forward the php routing (routes.php) to\n * /settings/main.php, where the vue-router will ensure\n * the proper route.\n * ⚠️ Routes needs to match the php routes.\n */\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]({\n\tmode: 'history',\n\troutes: [{\n\t\tpath: '/:index(index.php/)?settings/users',\n\t\tcomponent: __WEBPACK_IMPORTED_MODULE_2__views_Users__[\"a\" /* default */],\n\t\tprops: true,\n\t\tname: 'users',\n\t\tchildren: [{\n\t\t\tpath: ':selectedGroup',\n\t\t\tname: 'group',\n\t\t\tcomponent: __WEBPACK_IMPORTED_MODULE_2__views_Users__[\"a\" /* default */]\n\t\t}]\n\t}]\n}));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/**\n * vue-router v3.0.1\n * (c) 2017 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (false) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nvar View = {\n name: 'router-view',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n if (parent.$vnode && parent.$vnode.data.routerView) {\n depth++;\n }\n if (parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n};\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (false) {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\nfunction extend (to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n return to\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n \"production\" !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery$$1),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n name: 'router-link',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(this.to, current, this.append);\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback = globalActiveClass == null\n ? 'router-link-active'\n : globalActiveClass;\n var exactActiveClassFallback = globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass = this.activeClass == null\n ? activeClassFallback\n : this.activeClass;\n var exactActiveClass = this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n var compareTarget = location.path\n ? createRoute(null, location, null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location);\n } else {\n router.push(location);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) { on[e] = handler; });\n } else {\n on[this.event] = handler;\n }\n\n var data = {\n class: classes\n };\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var extend = _Vue.util.extend;\n var aData = a.data = extend({}, a.data);\n aData.on = on;\n var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n aAttrs.href = href;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('router-view', View);\n Vue.component('router-link', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n return filler(params || {}, { pretty: true })\n } catch (e) {\n if (false) {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n }\n}\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (false) {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions = route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(\n path,\n parent,\n pathToRegexpOptions.strict\n );\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props: route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (false) {\n if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias)\n ? route.alias\n : [route.alias];\n\n aliases.forEach(function (alias) {\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (false) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (false) {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next.name || next._normalized) {\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = assign({}, next);\n next._normalized = true;\n var params = assign(assign({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (false) {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction assign (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (false) {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n if (record) {\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n }\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (false) {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (false) {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (false) {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n params[key.name] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n window.history.replaceState({ key: getStateKey() }, '');\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (false) {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior(to, from, isPop ? position : null);\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll.then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n }).catch(function (err) {\n if (false) {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n var el = document.querySelector(shouldScroll.selector);\n if (el) {\n var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState = inBrowser && (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n _key = key;\n}\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: _key }, '', url);\n } else {\n _key = genKey();\n history.pushState({ key: _key }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n \"production\" !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(route, function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) { cb(route); });\n }\n }, function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n }\n });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n if (isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) { cb(err); });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort()\n }\n\n var ref = resolveQueue(this.current.matched, route.matched);\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' && (\n typeof to.path === 'string' ||\n typeof to.name === 'string'\n ))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) { cb(); });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n })\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n next(cb);\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (instances[key]) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\n\nvar HTML5History = (function (History$$1) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History$$1.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n\n if (expectScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (expectScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History$$1 ) HTML5History.__proto__ = History$$1;\n HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\n\nvar HashHistory = (function (History$$1) {\n function HashHistory (router, base, fallback) {\n History$$1.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History$$1 ) HashHistory.__proto__ = History$$1;\n HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(\n cleanPath(base + '/#' + location)\n );\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n return index === -1 ? '' : href.slice(index + 1)\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\n\nvar AbstractHistory = (function (History$$1) {\n function AbstractHistory (router, base) {\n History$$1.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(route, function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n });\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (false) {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n \"production\" !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // main app already initialized.\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n var location = normalizeLocation(\n to,\n current || this.history.current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.0.1';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (VueRouter);\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Users_vue__ = __webpack_require__(9);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70f1d23b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Users_vue__ = __webpack_require__(65);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Users_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70f1d23b_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Users_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_appNavigation_vue__ = __webpack_require__(10);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_85c34754_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_appNavigation_vue__ = __webpack_require__(38);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_appNavigation_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_85c34754_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_appNavigation_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_navigationItem_vue__ = __webpack_require__(11);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_429bfeff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_navigationItem_vue__ = __webpack_require__(37);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_navigationItem_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_429bfeff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_navigationItem_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverItem_vue__ = __webpack_require__(14);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_38c13d40_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverItem_vue__ = __webpack_require__(35);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_popoverItem_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_38c13d40_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_popoverItem_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[(_vm.item.href)?_c('a',{attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#'},on:{\"click\":_vm.item.action}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()]):(_vm.item.action)?_c('button',{on:{\"click\":_vm.item.action}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()]):_c('span',[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',_vm._l((_vm.menu),function(item,key){return _c('popover-item',{key:key,attrs:{\"item\":item}})}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 37 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:[{'icon-loading-small': _vm.item.loading, 'open': _vm.item.opened, 'collapsible': _vm.item.collapsible&&_vm.item.children&&_vm.item.children.length>0 }, _vm.item.classes],attrs:{\"id\":_vm.item.id}},[(_vm.item.bullet)?_c('div',{staticClass:\"app-navigation-entry-bullet\",style:({ backgroundColor: _vm.item.bullet })}):_vm._e(),_vm._v(\" \"),(_vm.item.href)?_c('a',{class:_vm.item.icon,attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#'},on:{\"click\":_vm.toggleCollapse}},[(_vm.item.iconUrl)?_c('img',{attrs:{\"alt\":_vm.item.text,\"src\":_vm.item.iconUrl}}):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\")]):(_vm.item.router)?_c('router-link',{class:_vm.item.icon,attrs:{\"to\":_vm.item.router}},[(_vm.item.iconUrl)?_c('img',{attrs:{\"alt\":_vm.item.text,\"src\":_vm.item.iconUrl}}):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.item.utils)?_c('div',{staticClass:\"app-navigation-entry-utils\"},[_c('ul',[(Number.isInteger(_vm.item.utils.counter))?_c('li',{staticClass:\"app-navigation-entry-utils-counter\"},[_vm._v(_vm._s(_vm.item.utils.counter))]):_vm._e(),_vm._v(\" \"),(_vm.item.utils.actions && _vm.item.utils.actions.length === 1 && Number.isInteger(_vm.item.utils.counter))?_c('li',{staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{class:_vm.item.utils.actions[0].icon,attrs:{\"title\":_vm.item.utils.actions[0].text},on:{\"click\":_vm.item.utils.actions[0].action}})]):(_vm.item.utils.actions && _vm.item.utils.actions.length === 2 && !Number.isInteger(_vm.item.utils.counter))?_vm._l((_vm.item.utils.actions),function(action){return _c('li',{key:action.action,staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{class:action.icon,attrs:{\"title\":action.text},on:{\"click\":action.action}})])}):(_vm.item.utils.actions && _vm.item.utils.actions.length > 1 && (Number.isInteger(_vm.item.utils.counter) || _vm.item.utils.actions.length > 2))?_c('li',{staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideMenu),expression:\"hideMenu\"}],on:{\"click\":_vm.showMenu}})]):_vm._e()],2)]):_vm._e(),_vm._v(\" \"),(_vm.item.utils && _vm.item.utils.actions && _vm.item.utils.actions.length > 1 && (Number.isInteger(_vm.item.utils.counter) || _vm.item.utils.actions.length > 2))?_c('div',{staticClass:\"app-navigation-entry-menu\",class:{ 'open': _vm.openedMenu }},[_c('popover-menu',{attrs:{\"menu\":_vm.item.utils.actions}})],1):_vm._e(),_vm._v(\" \"),(_vm.item.undo)?_c('div',{staticClass:\"app-navigation-entry-deleted\"},[_c('div',{staticClass:\"app-navigation-entry-deleted-description\"},[_vm._v(_vm._s(_vm.item.undo.text))]),_vm._v(\" \"),_c('button',{staticClass:\"app-navigation-entry-deleted-button icon-history\",attrs:{\"title\":_vm.t('settings', 'Undo')}})]):_vm._e(),_vm._v(\" \"),(_vm.item.edit)?_c('div',{staticClass:\"app-navigation-entry-edit\"},[_c('form',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.text),expression:\"item.text\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"text\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-close\",attrs:{\"type\":\"submit\",\"value\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.cancelEdit($event)}}})])]):_vm._e(),_vm._v(\" \"),(_vm.item.children)?_c('ul',_vm._l((_vm.item.children),function(item,key){return _c('navigation-item',{key:key,attrs:{\"item\":item}})})):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'icon-loading': _vm.menu.loading},attrs:{\"id\":\"app-navigation\"}},[(_vm.menu.new)?_c('div',{staticClass:\"app-navigation-new\"},[_c('button',{class:_vm.menu.new.icon,attrs:{\"type\":\"button\",\"id\":_vm.menu.new.id},on:{\"click\":_vm.menu.new.action}},[_vm._v(_vm._s(_vm.menu.new.text))])]):_vm._e(),_vm._v(\" \"),_c('ul',{attrs:{\"id\":_vm.menu.id}},_vm._l((_vm.menu.items),function(item,key){return _c('navigation-item',{key:key,attrs:{\"item\":item}})})),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"app-settings\"}},[_c('div',{attrs:{\"id\":\"app-settings-header\"}},[_c('button',{staticClass:\"settings-button\",attrs:{\"data-apps-slide-toggle\":\"#app-settings-content\"}},[_vm._v(_vm._s(_vm.t('settings', 'Settings')))])]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"app-settings-content\"}},[_vm._t(\"settings-content\")],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userList_vue__ = __webpack_require__(16);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_347382ba_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userList_vue__ = __webpack_require__(44);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userList_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_347382ba_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userList_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userRow_vue__ = __webpack_require__(17);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94a7aec0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userRow_vue__ = __webpack_require__(42);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_userRow_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_94a7aec0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_userRow_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export install */\n/* unused harmony export VTooltip */\n/* unused harmony export VClosePopover */\n/* unused harmony export VPopover */\n/* unused harmony export createTooltip */\n/* unused harmony export destroyTooltip */\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n if (element) {\n return element.ownerDocument.documentElement;\n }\n\n return document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE10$1() && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nfunction convertToArray(value) {\n\tif (typeof value === 'string') {\n\t\tvalue = value.split(' ');\n\t}\n\treturn value;\n}\n\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\nfunction addClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = Array.from(el.className);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tif (classList.indexOf(newClass) === -1) {\n\t\t\tclassList.push(newClass);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\nfunction removeClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = Array.from(el.className);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tvar index = classList.indexOf(newClass);\n\t\tif (index !== -1) {\n\t\t\tclassList.splice(index, 1);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n\tsupportsPassive = false;\n\ttry {\n\t\tvar opts = Object.defineProperty({}, 'passive', {\n\t\t\tget: function get() {\n\t\t\t\tsupportsPassive = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('test', null, opts);\n\t} catch (e) {}\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck$1 = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass$1 = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/* Forked from https://github.com/FezVrasta/popper.js/blob/master/packages/tooltip/src/index.js */\n\nvar DEFAULT_OPTIONS = {\n\tcontainer: false,\n\tdelay: 0,\n\thtml: false,\n\tplacement: 'top',\n\ttitle: '',\n\ttemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\ttrigger: 'hover focus',\n\toffset: 0\n};\n\nvar openTooltips = [];\n\nvar Tooltip = function () {\n\t/**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n *\t\t\tPlacement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n *\t\t\tleft(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n *\t\t\tDelay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n *\t\t\tIf a number is supplied, delay is applied to both hide/show.\n *\t\t\tObject structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n *\t\t\tBase HTML to used when creating the tooltip.\n *\t\t\tThe tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n *\t\t\t`.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n *\t\t\tThe outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n *\t\t\tHow tooltip is triggered - click, hover, focus, manual.\n *\t\t\tYou may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n *\t\t\tThe element used as boundaries for the tooltip. For more information refer to Popper.js'\n *\t\t\t[boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n *\t\t\t[offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n *\t\t\t[options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n\tfunction Tooltip(reference, options) {\n\t\tclassCallCheck$1(this, Tooltip);\n\n\t\t_initialiseProps.call(this);\n\n\t\t// apply user options over default ones\n\t\toptions = _extends$1({}, DEFAULT_OPTIONS, options);\n\n\t\treference.jquery && (reference = reference[0]);\n\n\t\t// cache reference and options\n\t\tthis.reference = reference;\n\t\tthis.options = options;\n\n\t\t// set initial state\n\t\tthis._isOpen = false;\n\n\t\tthis._init();\n\t}\n\n\t//\n\t// Public methods\n\t//\n\n\t/**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n\n\t/**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n\n\tcreateClass$1(Tooltip, [{\n\t\tkey: 'setClasses',\n\t\tvalue: function setClasses(classes) {\n\t\t\tthis._classes = classes;\n\t\t}\n\t}, {\n\t\tkey: 'setContent',\n\t\tvalue: function setContent(content) {\n\t\t\tthis.options.title = content;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._setContent(content, this.options);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'setOptions',\n\t\tvalue: function setOptions(options) {\n\t\t\tvar classesUpdated = false;\n\t\t\tvar classes = options && options.classes || directive.options.defaultClass;\n\t\t\tif (this._classes !== classes) {\n\t\t\t\tthis.setClasses(classes);\n\t\t\t\tclassesUpdated = true;\n\t\t\t}\n\n\t\t\toptions = getOptions(options);\n\n\t\t\tvar needPopperUpdate = false;\n\t\t\tvar needRestart = false;\n\n\t\t\tif (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n\t\t\t\tneedPopperUpdate = true;\n\t\t\t}\n\n\t\t\tif (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n\t\t\t\tneedRestart = true;\n\t\t\t}\n\n\t\t\tfor (var key in options) {\n\t\t\t\tthis.options[key] = options[key];\n\t\t\t}\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tif (needRestart) {\n\t\t\t\t\tvar isOpen = this._isOpen;\n\n\t\t\t\t\tthis.dispose();\n\t\t\t\t\tthis._init();\n\n\t\t\t\t\tif (isOpen) {\n\t\t\t\t\t\tthis.show();\n\t\t\t\t\t}\n\t\t\t\t} else if (needPopperUpdate) {\n\t\t\t\t\tthis.popperInstance.update();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\t// Private methods\n\t\t//\n\n\t}, {\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\t// get events list\n\t\t\tvar events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\t\t\tthis._isDisposed = false;\n\t\t\tthis._enableDocumentTouch = events.indexOf('manual') === -1;\n\n\t\t\t// set event listeners\n\t\t\tthis._setEventListeners(this.reference, events, this.options);\n\t\t}\n\n\t\t/**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n\t}, {\n\t\tkey: '_create',\n\t\tvalue: function _create(reference, template) {\n\t\t\t// create tooltip element\n\t\t\tvar tooltipGenerator = window.document.createElement('div');\n\t\t\ttooltipGenerator.innerHTML = template.trim();\n\t\t\tvar tooltipNode = tooltipGenerator.childNodes[0];\n\n\t\t\t// add unique ID to our tooltip (needed for accessibility reasons)\n\t\t\ttooltipNode.id = 'tooltip_' + Math.random().toString(36).substr(2, 10);\n\n\t\t\t// Initially hide the tooltip\n\t\t\t// The attribute will be switched in a next frame so\n\t\t\t// CSS transitions can play\n\t\t\ttooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tif (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n\t\t\t\ttooltipNode.addEventListener('mouseenter', this.hide);\n\t\t\t\ttooltipNode.addEventListener('click', this.hide);\n\t\t\t}\n\n\t\t\t// return the generated tooltip node\n\t\t\treturn tooltipNode;\n\t\t}\n\t}, {\n\t\tkey: '_setContent',\n\t\tvalue: function _setContent(content, options) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.asyncContent = false;\n\t\t\tthis._applyContent(content, options).then(function () {\n\t\t\t\t_this.popperInstance.update();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_applyContent',\n\t\tvalue: function _applyContent(title, options) {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar allowHtml = options.html;\n\t\t\t\tvar rootNode = _this2._tooltipNode;\n\t\t\t\tvar titleNode = rootNode.querySelector(_this2.options.innerSelector);\n\t\t\t\tif (title.nodeType === 1) {\n\t\t\t\t\t// if title is a node, append it only if allowHtml is true\n\t\t\t\t\tif (allowHtml) {\n\t\t\t\t\t\twhile (titleNode.firstChild) {\n\t\t\t\t\t\t\ttitleNode.removeChild(titleNode.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitleNode.appendChild(title);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof title === 'function') {\n\t\t\t\t\t// if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tvar result = title();\n\t\t\t\t\tif (result && typeof result.then === 'function') {\n\t\t\t\t\t\t_this2.asyncContent = true;\n\t\t\t\t\t\toptions.loadingClass && addClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\tif (options.loadingContent) {\n\t\t\t\t\t\t\t_this2._applyContent(options.loadingContent, options);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult.then(function (asyncResult) {\n\t\t\t\t\t\t\toptions.loadingClass && removeClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\t\treturn _this2._applyContent(asyncResult, options);\n\t\t\t\t\t\t}).then(resolve).catch(reject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this2._applyContent(result, options).then(resolve).catch(reject);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\t// if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tallowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n\t\t\t\t}\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_show',\n\t\tvalue: function _show(reference, options) {\n\t\t\tif (options && typeof options.container === 'string') {\n\t\t\t\tvar container = document.querySelector(options.container);\n\t\t\t\tif (!container) return;\n\t\t\t}\n\n\t\t\tclearTimeout(this._disposeTimer);\n\n\t\t\toptions = Object.assign({}, options);\n\t\t\tdelete options.offset;\n\n\t\t\tvar updateClasses = true;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t\tupdateClasses = false;\n\t\t\t}\n\n\t\t\tvar result = this._ensureShown(reference, options);\n\n\t\t\tif (updateClasses && this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: '_ensureShown',\n\t\tvalue: function _ensureShown(reference, options) {\n\t\t\tvar _this3 = this;\n\n\t\t\t// don't show if it's already visible\n\t\t\tif (this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis._isOpen = true;\n\n\t\t\topenTooltips.push(this);\n\n\t\t\t// if the tooltipNode already exists, just show it\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._tooltipNode.style.display = '';\n\t\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t\tif (this.asyncContent) {\n\t\t\t\t\tthis._setContent(options.title, options);\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// get title\n\t\t\tvar title = reference.getAttribute('title') || options.title;\n\n\t\t\t// don't show tooltip if no title is defined\n\t\t\tif (!title) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// create tooltip node\n\t\t\tvar tooltipNode = this._create(reference, options.template);\n\t\t\tthis._tooltipNode = tooltipNode;\n\n\t\t\tthis._setContent(title, options);\n\n\t\t\t// Add `aria-describedby` to our reference element for accessibility reasons\n\t\t\treference.setAttribute('aria-describedby', tooltipNode.id);\n\n\t\t\t// append tooltip to container\n\t\t\tvar container = this._findContainer(options.container, reference);\n\n\t\t\tthis._append(tooltipNode, container);\n\n\t\t\tvar popperOptions = _extends$1({}, options.popperOptions, {\n\t\t\t\tplacement: options.placement\n\t\t\t});\n\n\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\tarrow: {\n\t\t\t\t\telement: this.options.arrowSelector\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (options.boundariesElement) {\n\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\tboundariesElement: options.boundariesElement\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n\t\t\t// Fix position\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\tif (!_this3._isDisposed && _this3.popperInstance) {\n\t\t\t\t\t_this3.popperInstance.update();\n\n\t\t\t\t\t// Show the tooltip\n\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\tif (!_this3._isDisposed) {\n\t\t\t\t\t\t\t_this3._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t_this3.dispose();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_noLongerOpen',\n\t\tvalue: function _noLongerOpen() {\n\t\t\tvar index = openTooltips.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenTooltips.splice(index, 1);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_hide',\n\t\tvalue: function _hide() /* reference, options */{\n\t\t\tvar _this4 = this;\n\n\t\t\t// don't hide if it's already hidden\n\t\t\tif (!this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tthis._isOpen = false;\n\t\t\tthis._noLongerOpen();\n\n\t\t\t// hide tooltipNode\n\t\t\tthis._tooltipNode.style.display = 'none';\n\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tthis.popperInstance.disableEventListeners();\n\n\t\t\tclearTimeout(this._disposeTimer);\n\t\t\tvar disposeTime = directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis._disposeTimer = setTimeout(function () {\n\t\t\t\t\tif (_this4._tooltipNode) {\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('mouseenter', _this4.hide);\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('click', _this4.hide);\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\t_this4._tooltipNode.parentNode.removeChild(_this4._tooltipNode);\n\t\t\t\t\t\t_this4._tooltipNode = null;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_dispose',\n\t\tvalue: function _dispose() {\n\t\t\tvar _this5 = this;\n\n\t\t\tthis._isDisposed = true;\n\n\t\t\t// remove event listeners first to prevent any unexpected behaviour\n\t\t\tthis._events.forEach(function (_ref) {\n\t\t\t\tvar func = _ref.func,\n\t\t\t\t event = _ref.event;\n\n\t\t\t\t_this5.reference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis._events = [];\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._hide();\n\n\t\t\t\tthis._tooltipNode.removeEventListener('mouseenter', this.hide);\n\t\t\t\tthis._tooltipNode.removeEventListener('click', this.hide);\n\n\t\t\t\t// destroy instance\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tthis._tooltipNode.parentNode.removeChild(this._tooltipNode);\n\t\t\t\t\tthis._tooltipNode = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._noLongerOpen();\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_findContainer',\n\t\tvalue: function _findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t}\n\n\t\t/**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n\t}, {\n\t\tkey: '_append',\n\t\tvalue: function _append(tooltipNode, container) {\n\t\t\tcontainer.appendChild(tooltipNode);\n\t\t}\n\t}, {\n\t\tkey: '_setEventListeners',\n\t\tvalue: function _setEventListeners(reference, events, options) {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (_this6._isOpen === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevt.usedByTooltip = true;\n\t\t\t\t\t_this6._scheduleShow(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (evt.usedByTooltip === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this6._scheduleHide(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_onDocumentTouch',\n\t\tvalue: function _onDocumentTouch(event) {\n\t\t\tif (this._enableDocumentTouch) {\n\t\t\t\tthis._scheduleHide(this.reference, this.options.delay, this.options, event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_scheduleShow',\n\t\tvalue: function _scheduleShow(reference, delay, options /*, evt */) {\n\t\t\tvar _this7 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.show || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\treturn _this7._show(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}, {\n\t\tkey: '_scheduleHide',\n\t\tvalue: function _scheduleHide(reference, delay, options, evt) {\n\t\t\tvar _this8 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.hide || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\tif (_this8._isOpen === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!document.body.contains(_this8._tooltipNode)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\tif (evt.type === 'mouseleave') {\n\t\t\t\t\tvar isSet = _this8._setTooltipNodeEvent(evt, reference, delay, options);\n\n\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_this8._hide(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}]);\n\treturn Tooltip;\n}();\n\n// Hide tooltips on touch devices\n\n\nvar _initialiseProps = function _initialiseProps() {\n\tvar _this9 = this;\n\n\tthis.show = function () {\n\t\t_this9._show(_this9.reference, _this9.options);\n\t};\n\n\tthis.hide = function () {\n\t\t_this9._hide();\n\t};\n\n\tthis.dispose = function () {\n\t\t_this9._dispose();\n\t};\n\n\tthis.toggle = function () {\n\t\tif (_this9._isOpen) {\n\t\t\treturn _this9.hide();\n\t\t} else {\n\t\t\treturn _this9.show();\n\t\t}\n\t};\n\n\tthis._events = [];\n\n\tthis._setTooltipNodeEvent = function (evt, reference, delay, options) {\n\t\tvar relatedreference = evt.relatedreference || evt.toElement;\n\n\t\tvar callback = function callback(evt2) {\n\t\t\tvar relatedreference2 = evt2.relatedreference || evt2.toElement;\n\n\t\t\t// Remove event listener after call\n\t\t\t_this9._tooltipNode.removeEventListener(evt.type, callback);\n\n\t\t\t// If the new reference is not the reference element\n\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t_this9._scheduleHide(reference, options.delay, options, evt2);\n\t\t\t}\n\t\t};\n\n\t\tif (_this9._tooltipNode.contains(relatedreference)) {\n\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t_this9._tooltipNode.addEventListener(evt.type, callback);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n};\n\nif (typeof document !== 'undefined') {\n\tdocument.addEventListener('touchstart', function (event) {\n\t\tfor (var i = 0; i < openTooltips.length; i++) {\n\t\t\topenTooltips[i]._onDocumentTouch(event);\n\t\t}\n\t}, supportsPassive ? {\n\t\tpassive: true\n\t} : false);\n}\n\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar state = {\n\tenabled: true\n};\n\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\n\nvar defaultOptions = {\n\t// Default tooltip placement relative to target element\n\tdefaultPlacement: 'top',\n\t// Default CSS classes applied to the tooltip element\n\tdefaultClass: 'vue-tooltip-theme',\n\t// Default CSS classes applied to the target element of the tooltip\n\tdefaultTargetClass: 'has-tooltip',\n\t// Default HTML template of the tooltip element\n\t// It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n\t// Change if the classes conflict with other libraries (for example bootstrap)\n\tdefaultTemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\t// Selector used to get the arrow element in the tooltip template\n\tdefaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n\t// Selector used to get the inner content element in the tooltip template\n\tdefaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n\t// Delay (ms)\n\tdefaultDelay: 0,\n\t// Default events that trigger the tooltip\n\tdefaultTrigger: 'hover focus',\n\t// Default position offset (px)\n\tdefaultOffset: 0,\n\t// Default container where the tooltip will be appended\n\tdefaultContainer: 'body',\n\tdefaultBoundariesElement: undefined,\n\tdefaultPopperOptions: {},\n\t// Class added when content is loading\n\tdefaultLoadingClass: 'tooltip-loading',\n\t// Displayed when tooltip content is loading\n\tdefaultLoadingContent: '...',\n\t// Hide on mouseover tooltip\n\tautoHide: true,\n\t// Auto destroy tooltip DOM nodes (ms)\n\tdisposeTimeout: 5000,\n\t// Options for popover\n\tpopover: {\n\t\tdefaultPlacement: 'bottom',\n\t\t// Use the `popoverClass` prop for theming\n\t\tdefaultClass: 'vue-popover-theme',\n\t\t// Base class (change if conflicts with other libraries)\n\t\tdefaultBaseClass: 'tooltip popover',\n\t\t// Wrapper class (contains arrow and inner)\n\t\tdefaultWrapperClass: 'wrapper',\n\t\t// Inner content class\n\t\tdefaultInnerClass: 'tooltip-inner popover-inner',\n\t\t// Arrow class\n\t\tdefaultArrowClass: 'tooltip-arrow popover-arrow',\n\t\tdefaultDelay: 0,\n\t\tdefaultTrigger: 'click',\n\t\tdefaultOffset: 0,\n\t\tdefaultContainer: 'body',\n\t\tdefaultBoundariesElement: undefined,\n\t\tdefaultPopperOptions: {},\n\t\t// Hides if clicked outside of popover\n\t\tdefaultAutoHide: true,\n\t\t// Update popper on content resize\n\t\tdefaultHandleResize: true\n\t}\n};\n\nfunction getOptions(options) {\n\tvar result = {\n\t\tplacement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n\t\tdelay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n\t\ttemplate: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n\t\tarrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n\t\tinnerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n\t\ttrigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n\t\toffset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n\t\tcontainer: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n\t\tboundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n\t\tautoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n\t\tloadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n\t\tloadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n\t\tpopperOptions: _extends$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n\t};\n\n\tif (result.offset) {\n\t\tvar typeofOffset = _typeof(result.offset);\n\t\tvar offset = result.offset;\n\n\t\t// One value -> switch\n\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\toffset = '0, ' + offset;\n\t\t}\n\n\t\tif (!result.popperOptions.modifiers) {\n\t\t\tresult.popperOptions.modifiers = {};\n\t\t}\n\t\tresult.popperOptions.modifiers.offset = {\n\t\t\toffset: offset\n\t\t};\n\t}\n\n\treturn result;\n}\n\nfunction getPlacement(value, modifiers) {\n\tvar placement = value.placement;\n\tfor (var i = 0; i < positions.length; i++) {\n\t\tvar pos = positions[i];\n\t\tif (modifiers[pos]) {\n\t\t\tplacement = pos;\n\t\t}\n\t}\n\treturn placement;\n}\n\nfunction getContent(value) {\n\tvar type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\tif (type === 'string') {\n\t\treturn value;\n\t} else if (value && type === 'object') {\n\t\treturn value.content;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nfunction createTooltip(el, value) {\n\tvar modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar content = getContent(value);\n\tvar classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\tvar opts = _extends$1({\n\t\ttitle: content,\n\t\thtml: true\n\t}, getOptions(_extends$1({}, value, {\n\t\tplacement: getPlacement(value, modifiers)\n\t})));\n\tvar tooltip = el._tooltip = new Tooltip(el, opts);\n\ttooltip.setClasses(classes);\n\ttooltip._vueEl = el;\n\n\t// Class on target\n\tvar targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n\tel._tooltipTargetClasses = targetClasses;\n\taddClasses(el, targetClasses);\n\n\treturn tooltip;\n}\n\nfunction destroyTooltip(el) {\n\tif (el._tooltip) {\n\t\tel._tooltip.dispose();\n\t\tdelete el._tooltip;\n\t\tdelete el._tooltipOldShow;\n\t}\n\n\tif (el._tooltipTargetClasses) {\n\t\tremoveClasses(el, el._tooltipTargetClasses);\n\t\tdelete el._tooltipTargetClasses;\n\t}\n}\n\nfunction bind(el, _ref) {\n\tvar value = _ref.value,\n\t oldValue = _ref.oldValue,\n\t modifiers = _ref.modifiers;\n\n\tvar content = getContent(value);\n\tif (!content || !state.enabled) {\n\t\tdestroyTooltip(el);\n\t} else {\n\t\tvar tooltip = void 0;\n\t\tif (el._tooltip) {\n\t\t\ttooltip = el._tooltip;\n\t\t\t// Content\n\t\t\ttooltip.setContent(content);\n\t\t\t// Options\n\t\t\ttooltip.setOptions(_extends$1({}, value, {\n\t\t\t\tplacement: getPlacement(value, modifiers)\n\t\t\t}));\n\t\t} else {\n\t\t\ttooltip = createTooltip(el, value, modifiers);\n\t\t}\n\n\t\t// Manual show\n\t\tif (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n\t\t\tel._tooltipOldShow = value.show;\n\t\t\tvalue.show ? tooltip.show() : tooltip.hide();\n\t\t}\n\t}\n}\n\nvar directive = {\n\toptions: defaultOptions,\n\tbind: bind,\n\tupdate: bind,\n\tunbind: function unbind(el) {\n\t\tdestroyTooltip(el);\n\t}\n};\n\nfunction addListeners(el) {\n\tel.addEventListener('click', onClick);\n\tel.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n\t\tpassive: true\n\t} : false);\n}\n\nfunction removeListeners(el) {\n\tel.removeEventListener('click', onClick);\n\tel.removeEventListener('touchstart', onTouchStart);\n\tel.removeEventListener('touchend', onTouchEnd);\n\tel.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n\tvar el = event.currentTarget;\n\tevent.closePopover = !el.$_vclosepopover_touch;\n\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n\tif (event.changedTouches.length === 1) {\n\t\tvar el = event.currentTarget;\n\t\tel.$_vclosepopover_touch = true;\n\t\tvar touch = event.changedTouches[0];\n\t\tel.$_vclosepopover_touchPoint = touch;\n\t\tel.addEventListener('touchend', onTouchEnd);\n\t\tel.addEventListener('touchcancel', onTouchCancel);\n\t}\n}\n\nfunction onTouchEnd(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n\tif (event.changedTouches.length === 1) {\n\t\tvar touch = event.changedTouches[0];\n\t\tvar firstTouch = el.$_vclosepopover_touchPoint;\n\t\tevent.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n\t\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n\t}\n}\n\nfunction onTouchCancel(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n\tbind: function bind(el, _ref) {\n\t\tvar value = _ref.value,\n\t\t modifiers = _ref.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (typeof value === 'undefined' || value) {\n\t\t\taddListeners(el);\n\t\t}\n\t},\n\tupdate: function update(el, _ref2) {\n\t\tvar value = _ref2.value,\n\t\t oldValue = _ref2.oldValue,\n\t\t modifiers = _ref2.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (value !== oldValue) {\n\t\t\tif (typeof value === 'undefined' || value) {\n\t\t\t\taddListeners(el);\n\t\t\t} else {\n\t\t\t\tremoveListeners(el);\n\t\t\t}\n\t\t}\n\t},\n\tunbind: function unbind(el) {\n\t\tremoveListeners(el);\n\t}\n};\n\nfunction getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tnotify: function notify() {\n\t\t\tthis.$emit('notify');\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.notify);\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis.notify();\n\t\t\t}\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.notify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install$1(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\t/* -- Add more components here -- */\n}\n\n/* -- Plugin definition & Auto-install -- */\n/* You shouldn't have to modify the code below */\n\n// Plugin\nvar plugin$2 = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.3\",\n\tinstall: install$1\n};\n\n// Auto-install\nvar GlobalVue$1 = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue$1 = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n\tGlobalVue$1.use(plugin$2);\n}\n\nfunction getDefault(key) {\n\tvar value = directive.options.popover[key];\n\tif (typeof value === 'undefined') {\n\t\treturn directive.options[key];\n\t}\n\treturn value;\n}\n\nvar isIOS = false;\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n\tisIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Popover = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"v-popover\", class: _vm.cssClass }, [_c('span', { ref: \"trigger\", staticClass: \"trigger\", staticStyle: { \"display\": \"inline-block\" }, attrs: { \"aria-describedby\": _vm.popoverId } }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c('div', { ref: \"popover\", class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass], style: {\n\t\t\t\tdisplay: _vm.isOpen ? '' : 'none'\n\t\t\t}, attrs: { \"id\": _vm.popoverId, \"aria-hidden\": _vm.isOpen ? 'false' : 'true' } }, [_c('div', { class: _vm.popoverWrapperClass }, [_c('div', { ref: \"arrow\", class: _vm.popoverArrowClass }), _vm._v(\" \"), _c('div', { ref: \"inner\", class: _vm.popoverInnerClass, staticStyle: { \"position\": \"relative\" } }, [_c('div', [_vm._t(\"popover\")], 2), _vm._v(\" \"), _vm.handleResize ? _c('ResizeObserver', { on: { \"notify\": _vm.$_handleResize } }) : _vm._e()], 1)])])]);\n\t}, staticRenderFns: [],\n\tname: 'VPopover',\n\n\tcomponents: {\n\t\tResizeObserver: ResizeObserver\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPlacement');\n\t\t\t}\n\t\t},\n\t\tdelay: {\n\t\t\ttype: [String, Number, Object],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultDelay');\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultOffset');\n\t\t\t}\n\t\t},\n\t\ttrigger: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultTrigger');\n\t\t\t}\n\t\t},\n\t\tcontainer: {\n\t\t\ttype: [String, Object, Element],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultContainer');\n\t\t\t}\n\t\t},\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultBoundariesElement');\n\t\t\t}\n\t\t},\n\t\tpopperOptions: {\n\t\t\ttype: Object,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPopperOptions');\n\t\t\t}\n\t\t},\n\t\tpopoverClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultClass');\n\t\t\t}\n\t\t},\n\t\tpopoverBaseClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultBaseClass;\n\t\t\t}\n\t\t},\n\t\tpopoverInnerClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultInnerClass;\n\t\t\t}\n\t\t},\n\t\tpopoverWrapperClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultWrapperClass;\n\t\t\t}\n\t\t},\n\t\tpopoverArrowClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultArrowClass;\n\t\t\t}\n\t\t},\n\t\tautoHide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultAutoHide;\n\t\t\t}\n\t\t},\n\t\thandleResize: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultHandleResize;\n\t\t\t}\n\t\t},\n\t\topenGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null\n\t\t}\n\t},\n\n\tdata: function data() {\n\t\treturn {\n\t\t\tisOpen: false,\n\t\t\tid: Math.random().toString(36).substr(2, 10)\n\t\t};\n\t},\n\n\n\tcomputed: {\n\t\tcssClass: function cssClass() {\n\t\t\treturn {\n\t\t\t\t'open': this.isOpen\n\t\t\t};\n\t\t},\n\t\tpopoverId: function popoverId() {\n\t\t\treturn 'popover_' + this.id;\n\t\t}\n\t},\n\n\twatch: {\n\t\topen: function open(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.show();\n\t\t\t} else {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tdisabled: function disabled(val, oldVal) {\n\t\t\tif (val !== oldVal) {\n\t\t\t\tif (val) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t} else if (this.open) {\n\t\t\t\t\tthis.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcontainer: function container(val) {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\tvar reference = this.$refs.trigger;\n\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\t\t},\n\t\ttrigger: function trigger(val) {\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.$_addEventListeners();\n\t\t},\n\t\toffset: function offset(val) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.$_updatePopper(function () {\n\t\t\t\tif (val) {\n\t\t\t\t\tvar offset = _this.$_getOffset();\n\n\t\t\t\t\t_this.popperInstance.options.modifiers.offset = {\n\t\t\t\t\t\toffset: offset\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\t_this.popperInstance.options.modifiers.offset = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tplacement: function placement(val) {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis.$_updatePopper(function () {\n\t\t\t\t_this2.popperInstance.options.placement = val;\n\t\t\t});\n\t\t},\n\n\n\t\tboundariesElement: '$_restartPopper',\n\n\t\tpopperOptions: {\n\t\t\thandler: '$_restartPopper',\n\t\t\tdeep: true\n\t\t}\n\t},\n\n\tcreated: function created() {\n\t\tthis.$_isDisposed = false;\n\t\tthis.$_mounted = false;\n\t\tthis.$_events = [];\n\t\tthis.$_preventOpen = false;\n\t},\n\tmounted: function mounted() {\n\t\tvar popoverNode = this.$refs.popover;\n\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\n\t\tthis.$_init();\n\n\t\tif (this.open) {\n\t\t\tthis.show();\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.dispose();\n\t},\n\n\n\tmethods: {\n\t\tshow: function show() {\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref.event,\n\t\t\t _ref$skipDelay = _ref.skipDelay,\n\t\t\t skipDelay = _ref$skipDelay === undefined ? false : _ref$skipDelay,\n\t\t\t _ref$force = _ref.force,\n\t\t\t force = _ref$force === undefined ? false : _ref$force;\n\n\t\t\tif (force || !this.disabled) {\n\t\t\t\tthis.$_scheduleShow(event);\n\t\t\t\tthis.$emit('show');\n\t\t\t}\n\t\t\tthis.$emit('update:open', true);\n\t\t},\n\t\thide: function hide() {\n\t\t\tvar _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref2.event,\n\t\t\t _ref2$skipDelay = _ref2.skipDelay;\n\n\t\t\tthis.$_scheduleHide(event);\n\n\t\t\tthis.$emit('hide');\n\t\t\tthis.$emit('update:open', false);\n\t\t},\n\t\tdispose: function dispose() {\n\t\t\tthis.$_isDisposed = true;\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.hide({ skipDelay: true });\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.$_mounted = false;\n\n\t\t\tthis.$emit('dispose');\n\t\t},\n\t\t$_init: function $_init() {\n\t\t\tif (this.trigger.indexOf('manual') === -1) {\n\t\t\t\tthis.$_addEventListeners();\n\t\t\t}\n\t\t},\n\t\t$_show: function $_show() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\n\t\t\t// Already open\n\t\t\tif (this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Popper is already initialized\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.isOpen = true;\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\n\t\t\tif (!this.$_mounted) {\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.$_mounted = true;\n\t\t\t}\n\n\t\t\tif (!this.popperInstance) {\n\t\t\t\tvar popperOptions = _extends$1({}, this.popperOptions, {\n\t\t\t\t\tplacement: this.placement\n\t\t\t\t});\n\n\t\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\t\tarrow: {\n\t\t\t\t\t\telement: this.$refs.arrow\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (this.offset) {\n\t\t\t\t\tvar offset = this.$_getOffset();\n\n\t\t\t\t\tpopperOptions.modifiers.offset = {\n\t\t\t\t\t\toffset: offset\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (this.boundariesElement) {\n\t\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\t\tboundariesElement: this.boundariesElement\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.popperInstance = new Popper(reference, popoverNode, popperOptions);\n\n\t\t\t\t// Fix position\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\tif (!_this3.$_isDisposed && _this3.popperInstance) {\n\t\t\t\t\t\t_this3.popperInstance.update();\n\n\t\t\t\t\t\t// Show the tooltip\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\tif (!_this3.$_isDisposed) {\n\t\t\t\t\t\t\t\t_this3.isOpen = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar openGroup = this.openGroup;\n\t\t\tif (openGroup) {\n\t\t\t\tvar popover = void 0;\n\t\t\t\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\t\t\t\tpopover = openPopovers[i];\n\t\t\t\t\tif (popover.openGroup !== openGroup) {\n\t\t\t\t\t\tpopover.hide();\n\t\t\t\t\t\tpopover.$emit('close-group');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\topenPopovers.push(this);\n\t\t},\n\t\t$_hide: function $_hide() {\n\t\t\tvar _this4 = this;\n\n\t\t\t// Already hidden\n\t\t\tif (!this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar index = openPopovers.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenPopovers.splice(index, 1);\n\t\t\t}\n\n\t\t\tthis.isOpen = false;\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.disableEventListeners();\n\t\t\t}\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\t\t\tvar disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis.$_disposeTimer = setTimeout(function () {\n\t\t\t\t\tvar popoverNode = _this4.$refs.popover;\n\t\t\t\t\tif (popoverNode) {\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t\t\t_this4.$_mounted = false;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\t\t},\n\t\t$_findContainer: function $_findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t},\n\t\t$_getOffset: function $_getOffset() {\n\t\t\tvar typeofOffset = _typeof(this.offset);\n\t\t\tvar offset = this.offset;\n\n\t\t\t// One value -> switch\n\t\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\t\toffset = '0, ' + offset;\n\t\t\t}\n\n\t\t\treturn offset;\n\t\t},\n\t\t$_addEventListeners: function $_addEventListeners() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tvar events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (_this5.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.usedByTooltip = true;\n\t\t\t\t\t!_this5.$_preventOpen && _this5.show({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (event.usedByTooltip) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this5.hide({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t},\n\t\t$_scheduleShow: function $_scheduleShow() {\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_show();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_scheduleHide: function $_scheduleHide() {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_hide();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(function () {\n\t\t\t\t\tif (!_this6.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\t\tif (event && event.type === 'mouseleave') {\n\t\t\t\t\t\tvar isSet = _this6.$_setTooltipNodeEvent(event);\n\n\t\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t_this6.$_hide();\n\t\t\t\t}, computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n\t\t\tvar _this7 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tvar relatedreference = event.relatedreference || event.toElement;\n\n\t\t\tvar callback = function callback(event2) {\n\t\t\t\tvar relatedreference2 = event2.relatedreference || event2.toElement;\n\n\t\t\t\t// Remove event listener after call\n\t\t\t\tpopoverNode.removeEventListener(event.type, callback);\n\n\t\t\t\t// If the new reference is not the reference element\n\t\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t\t_this7.hide({ event: event2 });\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (popoverNode.contains(relatedreference)) {\n\t\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t\tpopoverNode.addEventListener(event.type, callback);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\t$_removeEventListeners: function $_removeEventListeners() {\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tthis.$_events.forEach(function (_ref3) {\n\t\t\t\tvar func = _ref3.func,\n\t\t\t\t event = _ref3.event;\n\n\t\t\t\treference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis.$_events = [];\n\t\t},\n\t\t$_updatePopper: function $_updatePopper(cb) {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tcb();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\t\t},\n\t\t$_restartPopper: function $_restartPopper() {\n\t\t\tif (this.popperInstance) {\n\t\t\t\tvar isOpen = this.isOpen;\n\t\t\t\tthis.dispose();\n\t\t\t\tthis.$_init();\n\t\t\t\tif (isOpen) {\n\t\t\t\t\tthis.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t$_handleGlobalClose: function $_handleGlobalClose(event) {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tthis.hide({ event: event });\n\n\t\t\tif (event.closePopover) {\n\t\t\t\tthis.$emit('close-directive');\n\t\t\t} else {\n\t\t\t\tthis.$emit('auto-hide');\n\t\t\t}\n\n\t\t\tif (touch) {\n\t\t\t\tthis.$_preventOpen = true;\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t_this8.$_preventOpen = false;\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t},\n\t\t$_handleResize: function $_handleResize() {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tthis.popperInstance.update();\n\t\t\t\tthis.$emit('resize');\n\t\t\t}\n\t\t}\n\t}\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n\tif (isIOS) {\n\t\tdocument.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n\t\t\tpassive: true\n\t\t} : false);\n\t} else {\n\t\twindow.addEventListener('click', handleGlobalClick);\n\t}\n}\n\nfunction handleGlobalClick(event) {\n\thandleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n\thandleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\tvar popover = void 0;\n\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\tpopover = openPopovers[i];\n\t\tvar contains = popover.$refs.popover.contains(event.target);\n\t\tif (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n\t\t\tpopover.$_handleGlobalClose(event, touch);\n\t\t}\n\t}\n}\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar lodash_merge = createCommonjsModule(function (module, exports) {\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = 'object' == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (typeof key == 'number' && value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n if (!(isArray(source) || isTypedArray(source))) {\n var props = baseKeysIn(source);\n }\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(object[key], srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n });\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = object[key],\n srcValue = source[key],\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n newValue = srcValue;\n if (isArray(srcValue) || isTypedArray(srcValue)) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n else {\n newValue = objValue;\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n});\n\nfunction install(Vue) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\tif (install.installed) return;\n\tinstall.installed = true;\n\n\tvar finalOptions = {};\n\tlodash_merge(finalOptions, defaultOptions, options);\n\n\tplugin.options = finalOptions;\n\tdirective.options = finalOptions;\n\n\tVue.directive('tooltip', directive);\n\tVue.directive('close-popover', vclosepopover);\n\tVue.component('v-popover', Popover);\n}\n\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = Popover;\n\nvar plugin = {\n\tinstall: install,\n\n\tget enabled() {\n\t\treturn state.enabled;\n\t},\n\n\tset enabled(value) {\n\t\tstate.enabled = value;\n\t}\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (plugin);\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))\n\n/***/ }),\n/* 42 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\",class:{'disabled': _vm.loading.delete || _vm.loading.disable}},[_c('div',{staticClass:\"avatar\",class:{'icon-loading-small': _vm.loading.delete || _vm.loading.disable}},[(!_vm.loading.delete && !_vm.loading.disable)?_c('img',{attrs:{\"alt\":\"\",\"width\":\"32\",\"height\":\"32\",\"src\":_vm.generateAvatar(_vm.user.id, 32),\"srcset\":_vm.generateAvatar(_vm.user.id, 64)+' 2x, '+_vm.generateAvatar(_vm.user.id, 128)+' 4x'}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.user.id))]),_vm._v(\" \"),_c('form',{staticClass:\"displayName\",class:{'icon-loading-small': _vm.loading.displayName},on:{\"submit\":function($event){$event.preventDefault();return _vm.updateDisplayName($event)}}},[_c('input',{ref:\"displayName\",attrs:{\"id\":'displayName'+_vm.user.id+_vm.rand,\"type\":\"text\",\"disabled\":_vm.loading.displayName||_vm.loading.all,\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.user.displayname}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]),_vm._v(\" \"),(_vm.settings.canChangePassword)?_c('form',{staticClass:\"password\",class:{'icon-loading-small': _vm.loading.password},on:{\"submit\":function($event){$event.preventDefault();return _vm.updatePassword($event)}}},[_c('input',{ref:\"password\",attrs:{\"id\":'password'+_vm.user.id+_vm.rand,\"type\":\"password\",\"required\":\"\",\"disabled\":_vm.loading.password||_vm.loading.all,\"minlength\":_vm.minPasswordLength,\"value\":\"\",\"placeholder\":_vm.t('settings', 'New password'),\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):_c('div'),_vm._v(\" \"),_c('form',{staticClass:\"mailAddress\",class:{'icon-loading-small': _vm.loading.mailAddress},on:{\"submit\":function($event){$event.preventDefault();return _vm.updateEmail($event)}}},[_c('input',{ref:\"mailAddress\",attrs:{\"id\":'mailAddress'+_vm.user.id+_vm.rand,\"type\":\"email\",\"disabled\":_vm.loading.mailAddress||_vm.loading.all,\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.user.email}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"groups\",class:{'icon-loading-small': _vm.loading.groups}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userGroups,\"options\":_vm.groups,\"disabled\":_vm.loading.groups||_vm.loading.all,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Add user in group'),\"label\":\"name\",\"track-by\":\"id\",\"limit\":2,\"limitText\":_vm.limitGroups,\"multiple\":true,\"taggable\":true,\"closeOnSelect\":false},on:{\"tag\":_vm.createGroup,\"select\":_vm.addUserGroup,\"remove\":_vm.removeUserGroup}})],1),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\",class:{'icon-loading-small': _vm.loading.subadmins}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userSubAdminsGroups,\"options\":_vm.subAdminsGroups,\"disabled\":_vm.loading.subadmins||_vm.loading.all,\"placeholder\":_vm.t('settings', 'Set user as admin for'),\"label\":\"name\",\"track-by\":\"id\",\"limit\":2,\"limitText\":_vm.limitGroups,\"multiple\":true,\"closeOnSelect\":false},on:{\"select\":_vm.addUserSubAdmin,\"remove\":_vm.removeUserSubAdmin}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\",class:{'icon-loading-small': _vm.loading.quota}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userQuota,\"options\":_vm.quotaOptions,\"disabled\":_vm.loading.quota||_vm.loading.all,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Select user quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota,\"input\":_vm.setUserQuota}}),_vm._v(\" \"),_c('progress',{staticClass:\"quota-user-progress\",class:{'warn':_vm.usedQuota>80},attrs:{\"max\":\"100\"},domProps:{\"value\":_vm.usedQuota}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\",class:{'icon-loading-small': _vm.loading.languages}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userLanguage,\"options\":_vm.languages,\"disabled\":_vm.loading.languages||_vm.loading.all,\"placeholder\":_vm.t('settings', 'No language set'),\"label\":\"name\",\"track-by\":\"code\",\"allowEmpty\":false,\"group-values\":\"languages\",\"group-label\":\"label\"},on:{\"input\":_vm.setUserLanguage}})],1):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"storageLocation\"},[_vm._v(_vm._s(_vm.user.storageLocation))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"userBackend\"},[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.user.lastLogin>0 ? _vm.OC.Util.formatDate(_vm.user.lastLogin) : ''),expression:\"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''\",modifiers:{\"auto\":true}}],staticClass:\"lastLogin\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.user.lastLogin>0 ? _vm.OC.Util.relativeModifiedDate(_vm.user.lastLogin) : _vm.t('settings','Never'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"},[(_vm.OC.currentUser !== _vm.user.id && _vm.user.id !== 'admin' && !_vm.loading.all)?_c('div',{staticClass:\"toggleUserActions\"},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideMenu),expression:\"hideMenu\"}],staticClass:\"icon-more\",on:{\"click\":_vm.showMenu}}),_vm._v(\" \"),_c('div',{staticClass:\"popovermenu\",class:{ 'open': _vm.openedMenu }},[_c('popover-menu',{attrs:{\"menu\":_vm.userActions}})],1)]):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n!function(e,t){ true?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueInfiniteLoading=t():e.VueInfiniteLoading=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var a=i[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,\"a\",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/\",t(t.s=3)}([function(e,t){function i(e,t){var i=e[1]||\"\",a=e[3];if(!a)return i;if(t&&\"function\"==typeof btoa){var r=n(a);return[i].concat(a.sources.map(function(e){return\"/*# sourceURL=\"+a.sourceRoot+e+\" */\"})).concat([r]).join(\"\\n\")}return[i].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=i(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,i){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},a=0;a<this.length;a++){var r=this[a][0];\"number\"==typeof r&&(n[r]=!0)}for(a=0;a<e.length;a++){var o=e[a];\"number\"==typeof o[0]&&n[o[0]]||(i&&!o[2]?o[2]=i:i&&(o[2]=\"(\"+o[2]+\") and (\"+i+\")\"),t.push(o))}},t}},function(e,t,i){function n(e){for(var t=0;t<e.length;t++){var i=e[t],n=f[i.id];if(n){n.refs++;for(var a=0;a<n.parts.length;a++)n.parts[a](i.parts[a]);for(;a<i.parts.length;a++)n.parts.push(r(i.parts[a]));n.parts.length>i.parts.length&&(n.parts.length=i.parts.length)}else{for(var o=[],a=0;a<i.parts.length;a++)o.push(r(i.parts[a]));f[i.id]={id:i.id,refs:1,parts:o}}}}function a(){var e=document.createElement(\"style\");return e.type=\"text/css\",c.appendChild(e),e}function r(e){var t,i,n=document.querySelector('style[data-vue-ssr-id~=\"'+e.id+'\"]');if(n){if(m)return h;n.parentNode.removeChild(n)}if(b){var r=p++;n=u||(u=a()),t=o.bind(null,n,r,!1),i=o.bind(null,n,r,!0)}else n=a(),t=s.bind(null,n),i=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}function o(e,t,i,n){var a=i?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=g(t,a);else{var r=document.createTextNode(a),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(r,o[t]):e.appendChild(r)}}function s(e,t){var i=t.css,n=t.media,a=t.sourceMap;if(n&&e.setAttribute(\"media\",n),a&&(i+=\"\\n/*# sourceURL=\"+a.sources[0]+\" */\",i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}var l=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!l)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.\");var d=i(7),f={},c=l&&(document.head||document.getElementsByTagName(\"head\")[0]),u=null,p=0,m=!1,h=function(){},b=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,i){m=i;var a=d(e,t);return n(a),function(t){for(var i=[],r=0;r<a.length;r++){var o=a[r],s=f[o.id];s.refs--,i.push(s)}t?(a=d(e,t),n(a)):a=[];for(var r=0;r<i.length;r++){var s=i[r];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete f[s.id]}}}};var g=function(){var e=[];return function(t,i){return e[t]=i,e.filter(Boolean).join(\"\\n\")}}()},function(e,t){e.exports=function(e,t,i,n,a,r){var o,s=e=e||{},l=typeof e.default;\"object\"!==l&&\"function\"!==l||(o=e,s=e.default);var d=\"function\"==typeof s?s.options:s;t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0),i&&(d.functional=!0),a&&(d._scopeId=a);var f;if(r?(f=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=f):n&&(f=n),f){var c=d.functional,u=c?d.render:d.beforeCreate;c?(d._injectStyles=f,d.render=function(e,t){return f.call(t),u(e,t)}):d.beforeCreate=u?[].concat(u,f):[f]}return{esModule:o,exports:s,options:d}}},function(e,t,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=i(4);t.default=n.a,\"undefined\"!=typeof window&&window.Vue&&window.Vue.component(\"infinite-loading\",n.a)},function(e,t,i){\"use strict\";function n(e){i(5)}var a=i(8),r=i(14),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-fb2c869e\",null);t.a=l.exports},function(e,t,i){var n=i(6);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"2249d7a7\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,\".infinite-loading-container[data-v-fb2c869e]{clear:both;text-align:center}.infinite-loading-container[data-v-fb2c869e] [class^=loading-]{display:inline-block;margin:15px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.infinite-status-prompt[data-v-fb2c869e]{color:#666;font-size:14px;text-align:center;padding:10px 0}\",\"\"])},function(e,t){e.exports=function(e,t){for(var i=[],n={},a=0;a<t.length;a++){var r=t[a],o=r[0],s=r[1],l=r[2],d=r[3],f={id:e+\":\"+a,css:s,media:l,sourceMap:d};n[o]?n[o].parts.push(f):i.push(n[o]={id:o,parts:[f]})}return i}},function(e,t,i){\"use strict\";var n=i(9),a={STATE_CHANGER:[\"[Vue-infinite-loading warn]: 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:\",'<infinite-loading @infinite=\"infiniteHandler\"></infinite-loading>',\"\\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\"),INFINITE_EVENT:\"[Vue-infinite-loading warn]: `:on-infinite` property will be deprecated soon, please use `@infinite` event instead.\"},r={INFINITE_LOOP:[\"[Vue-infinite-loading error]: executed the callback function more than 10 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<div infinite-wrapper>\\n ...\\n \\x3c!-- set force-use-infinite-wrapper to true --\\x3e\\n <infinite-loading force-use-infinite-wrapper=\"true\"></infinite-loading>\\n</div>\\n ',\"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169\"].join(\"\\n\")};t.a={name:\"InfiniteLoading\",data:function(){return{scrollParent:null,scrollHandler:null,isLoading:!1,isComplete:!1,isFirstLoad:!0,debounceTimer:null,debounceDuration:50,infiniteLoopChecked:!1,infiniteLoopTimer:null,continuousCallTimes:0}},components:{Spinner:n.a},computed:{isNoResults:{cache:!1,get:function(){var e=this.$slots[\"no-results\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&this.isFirstLoad&&!t}},isNoMore:{cache:!1,get:function(){var e=this.$slots[\"no-more\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&!this.isFirstLoad&&!t}}},props:{distance:{type:Number,default:100},onInfinite:Function,spinner:String,direction:{type:String,default:\"bottom\"},forceUseInfiniteWrapper:null},mounted:function(){var e=this;this.scrollParent=this.getScrollParent(),this.scrollHandler=function(e){this.isLoading||(clearTimeout(this.debounceTimer),e&&e.constructor===Event?this.debounceTimer=setTimeout(this.attemptLoad,this.debounceDuration):this.attemptLoad())}.bind(this),setTimeout(this.scrollHandler,1),this.scrollParent.addEventListener(\"scroll\",this.scrollHandler),this.$on(\"$InfiniteLoading:loaded\",function(t){e.isFirstLoad=!1,e.isLoading&&e.$nextTick(e.attemptLoad.bind(null,!0)),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:complete\",function(t){e.isLoading=!1,e.isComplete=!0,e.$nextTick(function(){e.$forceUpdate()}),e.scrollParent.removeEventListener(\"scroll\",e.scrollHandler),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:reset\",function(){e.isLoading=!1,e.isComplete=!1,e.isFirstLoad=!0,e.scrollParent.addEventListener(\"scroll\",e.scrollHandler),setTimeout(e.scrollHandler,1)}),this.onInfinite&&console.warn(a.INFINITE_EVENT),this.stateChanger={loaded:function(){e.$emit(\"$InfiniteLoading:loaded\",{target:e})},complete:function(){e.$emit(\"$InfiniteLoading:complete\",{target:e})},reset:function(){e.$emit(\"$InfiniteLoading:reset\",{target:e})}},this.$watch(\"forceUseInfiniteWrapper\",function(){e.scrollParent=e.getScrollParent()})},deactivated:function(){this.isLoading=!1,this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)},activated:function(){this.scrollParent.addEventListener(\"scroll\",this.scrollHandler)},methods:{attemptLoad:function(e){var t=this,i=this.getCurrentDistance();!this.isComplete&&i<=this.distance&&this.$el.offsetWidth+this.$el.offsetHeight>0?(this.isLoading=!0,\"function\"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit(\"infinite\",this.stateChanger),!e||this.forceUseInfiniteWrapper||this.infiniteLoopChecked||(this.continuousCallTimes+=1,clearTimeout(this.infiniteLoopTimer),this.infiniteLoopTimer=setTimeout(function(){t.infiniteLoopChecked=!0},1e3),this.continuousCallTimes>10&&(console.error(r.INFINITE_LOOP),this.infiniteLoopChecked=!0))):this.isLoading=!1},getCurrentDistance:function(){var e=void 0;if(\"top\"===this.direction)e=isNaN(this.scrollParent.scrollTop)?this.scrollParent.pageYOffset:this.scrollParent.scrollTop;else{e=this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom)}return e},getScrollParent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el,t=void 0;return\"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)}},destroyed:function(){this.isComplete||this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)}}},function(e,t,i){\"use strict\";function n(e){i(10)}var a=i(12),r=i(13),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-6e1fd88f\",null);t.a=l.exports},function(e,t,i){var n=i(11);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"29881045\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,'.loading-wave-dots[data-v-6e1fd88f]{position:relative}.loading-wave-dots[data-v-6e1fd88f] .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-6e1fd88f linear 2.8s infinite;animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite}.loading-wave-dots[data-v-6e1fd88f] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-6e1fd88f{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-6e1fd88f{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-6e1fd88f] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-6e1fd88f linear .75s infinite;animation:loading-circles-data-v-6e1fd88f linear .75s infinite}.loading-circles[data-v-6e1fd88f] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-6e1fd88f] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-6e1fd88f] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite;animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite}.loading-bubbles[data-v-6e1fd88f] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-6e1fd88f{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-6e1fd88f{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-6e1fd88f]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite;animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite}.loading-default[data-v-6e1fd88f]: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-6e1fd88f]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-6e1fd88f linear .85s infinite;animation:loading-rotating-data-v-6e1fd88f linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-6e1fd88f],.loading-circles[data-v-6e1fd88f]{position:relative}.loading-bubbles[data-v-6e1fd88f] .bubble-item,.loading-circles[data-v-6e1fd88f] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child,.loading-circles[data-v-6e1fd88f] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',\"\"])},function(e,t,i){\"use strict\";var n={BUBBLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-bubbles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"bubble-item\"}})}))}},CIRCLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-circles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"circle-item\"}})}))}},DEFAULT:{render:function(e){return e(\"i\",{attrs:{class:\"loading-default\"}})}},SPIRAL:{render:function(e){return e(\"i\",{attrs:{class:\"loading-spiral\"}})}},WAVEDOTS:{render:function(e){return e(\"span\",{attrs:{class:\"loading-wave-dots\"}},Array.apply(Array,Array(5)).map(function(){return e(\"span\",{attrs:{class:\"wave-item\"}})}))}}};t.a={name:\"spinner\",computed:{spinnerView:function(){return n[(this.spinner||\"\").toUpperCase()]||n.DEFAULT}},props:{spinner:String}}},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement;return(e._self._c||t)(e.spinnerView,{tag:\"component\"})},a=[],r={render:n,staticRenderFns:a};t.a=r},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"infinite-loading-container\"},[i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isLoading,expression:\"isLoading\"}]},[e._t(\"spinner\",[i(\"spinner\",{attrs:{spinner:e.spinner}})])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoResults,expression:\"isNoResults\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-results\",[e._v(\"No results :(\")])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoMore,expression:\"isNoMore\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-more\",[e._v(\"No more data :)\")])],2)])},a=[],r={render:n,staticRenderFns:a};t.a=r}])});\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-list-grid\",attrs:{\"id\":\"app-content\"},on:{\"&scroll\":function($event){return _vm.onScroll($event)}}},[_c('div',{staticClass:\"row\",class:{'sticky': _vm.scrolled && !_vm.showConfig.showNewUserForm},attrs:{\"id\":\"grid-header\"}},[_c('div',{staticClass:\"avatar\",attrs:{\"id\":\"headerAvatar\"}}),_vm._v(\" \"),_c('div',{staticClass:\"name\",attrs:{\"id\":\"headerName\"}},[_vm._v(_vm._s(_vm.t('settings', 'Username')))]),_vm._v(\" \"),_c('div',{staticClass:\"displayName\",attrs:{\"id\":\"headerDisplayName\"}},[_vm._v(_vm._s(_vm.t('settings', 'Full name')))]),_vm._v(\" \"),_c('div',{staticClass:\"password\",attrs:{\"id\":\"headerPassword\"}},[_vm._v(_vm._s(_vm.t('settings', 'Password')))]),_vm._v(\" \"),_c('div',{staticClass:\"mailAddress\",attrs:{\"id\":\"headerAddress\"}},[_vm._v(_vm._s(_vm.t('settings', 'Email')))]),_vm._v(\" \"),_c('div',{staticClass:\"groups\",attrs:{\"id\":\"headerGroups\"}},[_vm._v(_vm._s(_vm.t('settings', 'Groups')))]),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\",attrs:{\"id\":\"headerSubAdmins\"}},[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\",attrs:{\"id\":\"headerQuota\"}},[_vm._v(_vm._s(_vm.t('settings', 'Quota')))]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\",attrs:{\"id\":\"headerLanguages\"}},[_vm._v(_vm._s(_vm.t('settings', 'Languages')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"headerStorageLocation storageLocation\"},[_vm._v(_vm._s(_vm.t('settings', 'Storage location')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"headerUserBackend userBackend\"},[_vm._v(_vm._s(_vm.t('settings', 'User backend')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{staticClass:\"headerLastLogin lastLogin\"},[_vm._v(_vm._s(_vm.t('settings', 'Last login')))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"})]),_vm._v(\" \"),_c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConfig.showNewUserForm),expression:\"showConfig.showNewUserForm\"}],staticClass:\"row\",class:{'sticky': _vm.scrolled && _vm.showConfig.showNewUserForm},attrs:{\"id\":\"new-user\",\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_c('div',{class:_vm.loading?'icon-loading-small':'icon-add'}),_vm._v(\" \"),_c('div',{staticClass:\"name\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.id),expression:\"newUser.id\"}],attrs:{\"id\":\"newusername\",\"type\":\"text\",\"required\":\"\",\"placeholder\":_vm.t('settings', 'User name'),\"name\":\"username\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\"},domProps:{\"value\":(_vm.newUser.id)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"id\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"displayName\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.displayName),expression:\"newUser.displayName\"}],attrs:{\"id\":\"newdisplayname\",\"type\":\"text\",\"placeholder\":_vm.t('settings', 'Display name'),\"name\":\"displayname\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\"},domProps:{\"value\":(_vm.newUser.displayName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"displayName\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"password\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.password),expression:\"newUser.password\"}],attrs:{\"id\":\"newuserpassword\",\"type\":\"password\",\"required\":_vm.newUser.mailAddress==='',\"placeholder\":_vm.t('settings', 'Password'),\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\",\"minlength\":_vm.minPasswordLength},domProps:{\"value\":(_vm.newUser.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"mailAddress\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.mailAddress),expression:\"newUser.mailAddress\"}],attrs:{\"id\":\"newemail\",\"type\":\"email\",\"required\":_vm.newUser.password==='',\"placeholder\":_vm.t('settings', 'Mail address'),\"name\":\"email\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\"},domProps:{\"value\":(_vm.newUser.mailAddress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"mailAddress\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"groups\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.groups,\"placeholder\":_vm.t('settings', 'Add user in group'),\"label\":\"name\",\"track-by\":\"id\",\"multiple\":true,\"close-on-select\":false},model:{value:(_vm.newUser.groups),callback:function ($$v) {_vm.$set(_vm.newUser, \"groups\", $$v)},expression:\"newUser.groups\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.subAdminsGroups,\"placeholder\":_vm.t('settings', 'Set user as admin for'),\"label\":\"name\",\"track-by\":\"id\",\"multiple\":true,\"close-on-select\":false},model:{value:(_vm.newUser.subAdminsGroups),callback:function ($$v) {_vm.$set(_vm.newUser, \"subAdminsGroups\", $$v)},expression:\"newUser.subAdminsGroups\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.quotaOptions,\"placeholder\":_vm.t('settings', 'Select user quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota},model:{value:(_vm.newUser.quota),callback:function ($$v) {_vm.$set(_vm.newUser, \"quota\", $$v)},expression:\"newUser.quota\"}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.languages,\"placeholder\":_vm.t('settings', 'Default language'),\"label\":\"name\",\"track-by\":\"code\",\"allowEmpty\":false,\"group-values\":\"languages\",\"group-label\":\"label\"},model:{value:(_vm.newUser.language),callback:function ($$v) {_vm.$set(_vm.newUser, \"language\", $$v)},expression:\"newUser.language\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"storageLocation\"}):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"userBackend\"}):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{staticClass:\"lastLogin\"}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"},[_c('input',{staticClass:\"button primary icon-checkmark-white has-tooltip\",attrs:{\"type\":\"submit\",\"id\":\"newsubmit\",\"value\":\"\",\"title\":_vm.t('settings', 'Add a new user')}}),_vm._v(\" \"),_c('input',{staticClass:\"button icon-close has-tooltip\",attrs:{\"type\":\"reset\",\"id\":\"newreset\",\"value\":\"\",\"title\":_vm.t('settings', 'Cancel and reset the form')},on:{\"click\":_vm.resetForm}})])]),_vm._v(\" \"),_vm._l((_vm.filteredUsers),function(user,key){return _c('user-row',{key:key,attrs:{\"user\":user,\"settings\":_vm.settings,\"showConfig\":_vm.showConfig,\"groups\":_vm.groups,\"subAdminsGroups\":_vm.subAdminsGroups,\"quotaOptions\":_vm.quotaOptions,\"languages\":_vm.languages}})}),_vm._v(\" \"),_c('infinite-loading',{ref:\"infiniteLoading\",on:{\"infinite\":_vm.infiniteHandler}},[_c('div',{attrs:{\"slot\":\"spinner\"},slot:\"spinner\"},[_c('div',{staticClass:\"users-icon-loading icon-loading\"})]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"no-more\"},slot:\"no-more\"},[_c('div',{staticClass:\"users-list-end\"},[_vm._v(\"— \"+_vm._s(_vm.t('settings', 'no more results'))+\" —\")])]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"no-results\"},slot:\"no-results\"},[_c('div',{attrs:{\"id\":\"emptycontent\"}},[_c('div',{staticClass:\"icon-contacts-dark\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No users in here')))])])])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * vue-local-storage v0.6.0\n * (c) 2017 Alexander Avakov\n * @license MIT\n */\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.VueLocalStorage = factory());\n}(this, (function () { 'use strict';\n\nvar VueLocalStorage = function VueLocalStorage () {\n this._properties = {};\n this._namespace = '';\n this._isSupported = true;\n};\n\nvar prototypeAccessors = { namespace: {} };\n\n/**\n * Namespace getter.\n *\n * @returns {string}\n */\nprototypeAccessors.namespace.get = function () {\n return this._namespace\n};\n\n/**\n * Namespace setter.\n *\n * @param {string} value\n */\nprototypeAccessors.namespace.set = function (value) {\n this._namespace = value ? (value + \".\") : '';\n};\n\n/**\n * Concatenates localStorage key with namespace prefix.\n *\n * @param {string} lsKey\n * @returns {string}\n * @private\n */\nVueLocalStorage.prototype._getLsKey = function _getLsKey (lsKey) {\n return (\"\" + (this._namespace) + lsKey)\n};\n\n/**\n * Set a value to localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @param {*} rawValue\n * @param {*} type\n * @private\n */\nVueLocalStorage.prototype._lsSet = function _lsSet (lsKey, rawValue, type) {\n var key = this._getLsKey(lsKey);\n var value = type && [Array, Object].includes(type)\n ? JSON.stringify(rawValue)\n : rawValue;\n\n window.localStorage.setItem(key, value);\n};\n\n/**\n * Get value from localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @returns {any}\n * @private\n */\nVueLocalStorage.prototype._lsGet = function _lsGet (lsKey) {\n var key = this._getLsKey(lsKey);\n\n return window.localStorage[key]\n};\n\n/**\n * Get value from localStorage\n *\n * @param {String} lsKey\n * @param {*} defaultValue\n * @param {*} defaultType\n * @returns {*}\n */\nVueLocalStorage.prototype.get = function get (lsKey, defaultValue, defaultType) {\n var this$1 = this;\n if ( defaultValue === void 0 ) defaultValue = null;\n if ( defaultType === void 0 ) defaultType = String;\n\n if (!this._isSupported) {\n return null\n }\n\n if (this._lsGet(lsKey)) {\n var type = defaultType;\n\n for (var key in this$1._properties) {\n if (key === lsKey) {\n type = this$1._properties[key].type;\n break\n }\n }\n\n return this._process(type, this._lsGet(lsKey))\n }\n\n return defaultValue !== null ? defaultValue : null\n};\n\n/**\n * Set localStorage value\n *\n * @param {String} lsKey\n * @param {*} value\n * @returns {*}\n */\nVueLocalStorage.prototype.set = function set (lsKey, value) {\n var this$1 = this;\n\n if (!this._isSupported) {\n return null\n }\n\n for (var key in this$1._properties) {\n var type = this$1._properties[key].type;\n\n if ((key === lsKey)) {\n this$1._lsSet(lsKey, value, type);\n\n return value\n }\n }\n\n this._lsSet(lsKey, value);\n\n return value\n};\n\n/**\n * Remove value from localStorage\n *\n * @param {String} lsKey\n */\nVueLocalStorage.prototype.remove = function remove (lsKey) {\n if (!this._isSupported) {\n return null\n }\n\n return window.localStorage.removeItem(lsKey)\n};\n\n/**\n * Add new property to localStorage\n *\n * @param {String} key\n * @param {function} type\n * @param {*} defaultValue\n */\nVueLocalStorage.prototype.addProperty = function addProperty (key, type, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n type = type || String;\n\n this._properties[key] = { type: type };\n\n if (!this._lsGet(key) && defaultValue !== null) {\n this._lsSet(key, defaultValue, type);\n }\n};\n\n/**\n * Process the value before return it from localStorage\n *\n * @param {String} type\n * @param {*} value\n * @returns {*}\n * @private\n */\nVueLocalStorage.prototype._process = function _process (type, value) {\n switch (type) {\n case Boolean:\n return value === 'true'\n case Number:\n return parseFloat(value)\n case Array:\n try {\n var array = JSON.parse(value);\n\n return Array.isArray(array) ? array : []\n } catch (e) {\n return []\n }\n case Object:\n try {\n return JSON.parse(value)\n } catch (e) {\n return {}\n }\n default:\n return value\n }\n};\n\nObject.defineProperties( VueLocalStorage.prototype, prototypeAccessors );\n\nvar vueLocalStorage = new VueLocalStorage();\n\nvar index = {\n /**\n * Install vue-local-storage plugin\n *\n * @param {Vue} Vue\n * @param {Object} options\n */\n install: function (Vue, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof process !== 'undefined' &&\n (\n process.server ||\n process.SERVER_BUILD ||\n (Object({\"NODE_ENV\":\"production\"}) && Object({\"NODE_ENV\":\"production\"}).VUE_ENV === 'server')\n )\n ) {\n return\n }\n\n var isSupported = true;\n\n try {\n var test = '__vue-localstorage-test__';\n\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n } catch (e) {\n isSupported = false;\n vueLocalStorage._isSupported = false;\n\n console.error('Local storage is not supported');\n }\n\n var name = options.name || 'localStorage';\n var bind = options.bind;\n\n if (options.namespace) {\n vueLocalStorage.namespace = options.namespace;\n }\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n var this$1 = this;\n\n if (!isSupported) {\n return\n }\n\n if (this.$options[name]) {\n Object.keys(this.$options[name]).forEach(function (key) {\n var config = this$1.$options[name][key];\n var ref = [config.type, config.default];\n var type = ref[0];\n var defaultValue = ref[1];\n\n vueLocalStorage.addProperty(key, type, defaultValue);\n\n var existingProp = Object.getOwnPropertyDescriptor(vueLocalStorage, key);\n\n if (!existingProp) {\n var prop = {\n get: function () { return Vue.localStorage.get(key, defaultValue); },\n set: function (val) { return Vue.localStorage.set(key, val); },\n configurable: true\n };\n\n Object.defineProperty(vueLocalStorage, key, prop);\n Vue.util.defineReactive(vueLocalStorage, key, defaultValue);\n } else if (!Vue.config.silent) {\n console.log((key + \": is already defined and will be reused\"));\n }\n\n if ((bind || config.bind) && config.bind !== false) {\n this$1.$options.computed = this$1.$options.computed || {};\n\n if (!this$1.$options.computed[key]) {\n this$1.$options.computed[key] = {\n get: function () { return Vue.localStorage[key]; },\n set: function (val) { Vue.localStorage[key] = val; }\n };\n }\n }\n });\n }\n }\n });\n\n Vue[name] = vueLocalStorage;\n Vue.prototype[(\"$\" + name)] = vueLocalStorage;\n }\n};\n\nreturn index;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(47);\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\nvar bind = __webpack_require__(18);\nvar Axios = __webpack_require__(49);\nvar defaults = __webpack_require__(7);\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = __webpack_require__(22);\naxios.CancelToken = __webpack_require__(63);\naxios.isCancel = __webpack_require__(21);\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = __webpack_require__(64);\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports) {\n\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar defaults = __webpack_require__(7);\nvar utils = __webpack_require__(0);\nvar InterceptorManager = __webpack_require__(58);\nvar dispatchRequest = __webpack_require__(59);\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar createError = __webpack_require__(20);\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\nvar transformData = __webpack_require__(60);\nvar isCancel = __webpack_require__(21);\nvar defaults = __webpack_require__(7);\nvar isAbsoluteURL = __webpack_require__(61);\nvar combineURLs = __webpack_require__(62);\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(0);\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar Cancel = __webpack_require__(22);\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('app-navigation',{attrs:{\"menu\":_vm.menu}},[_c('template',{slot:\"settings-content\"},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.t('settings', 'Default quota :')))]),_vm._v(\" \"),_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.defaultQuota,\"options\":_vm.quotaOptions,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota,\"input\":_vm.setDefaultQuota}})],1),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showLanguages),expression:\"showLanguages\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showLanguages\"},domProps:{\"checked\":_vm.showLanguages,\"checked\":Array.isArray(_vm.showLanguages)?_vm._i(_vm.showLanguages,null)>-1:(_vm.showLanguages)},on:{\"change\":function($event){var $$a=_vm.showLanguages,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showLanguages=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showLanguages=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showLanguages=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showLanguages\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show Languages')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showLastLogin),expression:\"showLastLogin\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showLastLogin\"},domProps:{\"checked\":_vm.showLastLogin,\"checked\":Array.isArray(_vm.showLastLogin)?_vm._i(_vm.showLastLogin,null)>-1:(_vm.showLastLogin)},on:{\"change\":function($event){var $$a=_vm.showLastLogin,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showLastLogin=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showLastLogin=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showLastLogin=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showLastLogin\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show last login')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showUserBackend),expression:\"showUserBackend\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showUserBackend\"},domProps:{\"checked\":_vm.showUserBackend,\"checked\":Array.isArray(_vm.showUserBackend)?_vm._i(_vm.showUserBackend,null)>-1:(_vm.showUserBackend)},on:{\"change\":function($event){var $$a=_vm.showUserBackend,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showUserBackend=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showUserBackend=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showUserBackend=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showUserBackend\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show user backend')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showStoragePath),expression:\"showStoragePath\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showStoragePath\"},domProps:{\"checked\":_vm.showStoragePath,\"checked\":Array.isArray(_vm.showStoragePath)?_vm._i(_vm.showStoragePath,null)>-1:(_vm.showStoragePath)},on:{\"change\":function($event){var $$a=_vm.showStoragePath,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showStoragePath=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showStoragePath=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showStoragePath=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showStoragePath\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show storage path')))])])])],2),_vm._v(\" \"),_c('user-list',{attrs:{\"users\":_vm.users,\"showConfig\":_vm.showConfig,\"selectedGroup\":_vm.selectedGroup}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__users__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__settings__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__oc__ = __webpack_require__(70);\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */]);\n\nvar debug = \"production\" !== 'production';\n\nvar mutations = {\n\tAPI_FAILURE: function API_FAILURE(state, error) {\n\t\tconsole.log(state, error);\n\t\tOC.Notification.showTemporary(t('settings', 'An error occured during the request. Unable to proceed.'));\n\t}\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */].Store({\n\tmodules: {\n\t\tusers: __WEBPACK_IMPORTED_MODULE_2__users__[\"a\" /* default */],\n\t\tsettings: __WEBPACK_IMPORTED_MODULE_3__settings__[\"a\" /* default */],\n\t\toc: __WEBPACK_IMPORTED_MODULE_4__oc__[\"a\" /* default */]\n\t},\n\tstrict: debug,\n\n\tmutations: mutations\n}));\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Store */\n/* unused harmony export install */\n/* unused harmony export mapState */\n/* unused harmony export mapMutations */\n/* unused harmony export mapGetters */\n/* unused harmony export mapActions */\n/* unused harmony export createNamespacedHelpers */\n/**\n * vuex v3.0.1\n * (c) 2017 Evan You\n * @license MIT\n */\nvar applyMixin = function (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n};\n\nvar devtoolHook =\n typeof window !== 'undefined' &&\n window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\n\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n this._children = Object.create(null);\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if (false) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n if (!parent.getChild(key).runtime) { return }\n\n parent.removeChild(key);\n};\n\nfunction update (path, targetModule, newModule) {\n if (false) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if (false) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if (false) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"Store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n var state = options.state; if ( state === void 0 ) state = {};\n if (typeof state === 'function') {\n state = state() || {};\n }\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n if (Vue.config.devtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nprototypeAccessors.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors.state.set = function (v) {\n if (false) {\n assert(false, \"Use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if (false) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n false\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if (false) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });\n\n return entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload)\n};\n\nStore.prototype.subscribe = function subscribe (fn) {\n return genericSubscribe(fn, this._subscribers)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn) {\n return genericSubscribe(fn, this._actionSubscribers)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if (false) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if (false) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if (false) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\nfunction genericSubscribe (fn, subs) {\n if (subs.indexOf(fn) < 0) {\n subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n computed[key] = function () { return fn(store); };\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (false) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (false) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n var gettersProxy = {};\n\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n\n return gettersProxy\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload, cb) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload, cb);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if (false) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if (false) {\n assert(store._committing, \"Do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.length\n ? path.reduce(function (state, key) { return state[key]; }, state)\n : state\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if (false) {\n assert(typeof type === 'string', (\"Expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if (false) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (false) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\nfunction normalizeMap (map) {\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (false) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\nvar index_esm = {\n Store: Store,\n install: install,\n version: '3.0.1',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers\n};\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (index_esm);\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(4);\n\n\nvar orderGroups = function orderGroups(groups, orderBy) {\n\t/* const SORT_USERCOUNT = 1;\n * const SORT_GROUPNAME = 2;\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\n\tif (orderBy === 1) {\n\t\treturn groups.sort(function (a, b) {\n\t\t\treturn a.usercount < b.usercount;\n\t\t});\n\t} else {\n\t\treturn groups.sort(function (a, b) {\n\t\t\treturn a.name.localeCompare(b.name);\n\t\t});\n\t}\n};\n\nvar state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: 1,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tuserCount: 0\n};\n\nvar mutations = {\n\tappendUsers: function appendUsers(state, usersObj) {\n\t\t// convert obj to array\n\t\tvar users = state.users.concat(Object.keys(usersObj).map(function (userid) {\n\t\t\treturn usersObj[userid];\n\t\t}));\n\t\tstate.usersOffset += state.usersLimit;\n\t\tstate.users = users;\n\t},\n\tsetPasswordPolicyMinLength: function setPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0;\n\t},\n\tinitGroups: function initGroups(state, _ref) {\n\t\tvar groups = _ref.groups,\n\t\t orderBy = _ref.orderBy,\n\t\t userCount = _ref.userCount;\n\n\t\tstate.groups = groups;\n\t\tstate.orderBy = orderBy;\n\t\tstate.userCount = userCount;\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddGroup: function addGroup(state, gid) {\n\t\ttry {\n\t\t\tstate.groups.push({\n\t\t\t\tid: gid,\n\t\t\t\tname: gid,\n\t\t\t\tusercount: 0 // user will be added after the creation\n\t\t\t});\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t\t} catch (e) {\n\t\t\tconsole.log('Can\\'t create group', e);\n\t\t}\n\t},\n\tremoveGroup: function removeGroup(state, gid) {\n\t\tvar groupIndex = state.groups.findIndex(function (groupSearch) {\n\t\t\treturn groupSearch.id == gid;\n\t\t});\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1);\n\t\t}\n\t},\n\taddUserGroup: function addUserGroup(state, _ref2) {\n\t\tvar userid = _ref2.userid,\n\t\t gid = _ref2.gid;\n\n\t\t// this should not be needed as it would means the user contains a group\n\t\t// the server database doesn't have.\n\t\tvar group = state.groups.find(function (groupSearch) {\n\t\t\treturn groupSearch.id == gid;\n\t\t});\n\t\tif (group) {\n\t\t\tgroup.usercount++; // increase count\n\t\t}\n\t\tvar groups = state.users.find(function (user) {\n\t\t\treturn user.id == userid;\n\t\t}).groups;\n\t\tgroups.push(gid);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\tremoveUserGroup: function removeUserGroup(state, _ref3) {\n\t\tvar userid = _ref3.userid,\n\t\t gid = _ref3.gid;\n\n\t\t// this should not be needed as it would means the user contains a group\n\t\t// the server database doesn't have.\n\t\tvar group = state.groups.find(function (groupSearch) {\n\t\t\treturn groupSearch.id == gid;\n\t\t});\n\t\tif (group) {\n\t\t\tgroup.usercount--; // lower count\n\t\t}\n\t\tvar groups = state.users.find(function (user) {\n\t\t\treturn user.id == userid;\n\t\t}).groups;\n\t\tgroups.splice(groups.indexOf(gid), 1);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddUserSubAdmin: function addUserSubAdmin(state, _ref4) {\n\t\tvar userid = _ref4.userid,\n\t\t gid = _ref4.gid;\n\n\t\tvar groups = state.users.find(function (user) {\n\t\t\treturn user.id == userid;\n\t\t}).subadmin;\n\t\tgroups.push(gid);\n\t},\n\tremoveUserSubAdmin: function removeUserSubAdmin(state, _ref5) {\n\t\tvar userid = _ref5.userid,\n\t\t gid = _ref5.gid;\n\n\t\tvar groups = state.users.find(function (user) {\n\t\t\treturn user.id == userid;\n\t\t}).subadmin;\n\t\tgroups.splice(groups.indexOf(gid), 1);\n\t},\n\tdeleteUser: function deleteUser(state, userid) {\n\t\tvar userIndex = state.users.findIndex(function (user) {\n\t\t\treturn user.id == userid;\n\t\t});\n\t\tstate.users.splice(userIndex, 1);\n\t},\n\taddUserData: function addUserData(state, response) {\n\t\tstate.users.push(response.data.ocs.data);\n\t},\n\tenableDisableUser: function enableDisableUser(state, _ref6) {\n\t\tvar userid = _ref6.userid,\n\t\t enabled = _ref6.enabled;\n\n\t\tstate.users.find(function (user) {\n\t\t\treturn user.id == userid;\n\t\t}).enabled = enabled;\n\t\t// increment or not\n\t\tstate.groups.find(function (group) {\n\t\t\treturn group.id == 'disabled';\n\t\t}).usercount += enabled ? -1 : 1;\n\t\tstate.userCount += enabled ? 1 : -1;\n\t\tconsole.log(enabled);\n\t},\n\tsetUserData: function setUserData(state, _ref7) {\n\t\tvar userid = _ref7.userid,\n\t\t key = _ref7.key,\n\t\t value = _ref7.value;\n\n\t\tif (key === 'quota') {\n\t\t\tvar humanValue = OC.Util.computerFileSize(value);\n\t\t\tstate.users.find(function (user) {\n\t\t\t\treturn user.id == userid;\n\t\t\t})[key][key] = humanValue ? humanValue : value;\n\t\t} else {\n\t\t\tstate.users.find(function (user) {\n\t\t\t\treturn user.id == userid;\n\t\t\t})[key] = value;\n\t\t}\n\t},\n\n\n\t/**\n * Reset users list\n */\n\tresetUsers: function resetUsers(state) {\n\t\tstate.users = [];\n\t\tstate.usersOffset = 0;\n\t}\n};\n\nvar getters = {\n\tgetUsers: function getUsers(state) {\n\t\treturn state.users;\n\t},\n\tgetGroups: function getGroups(state) {\n\t\treturn state.groups;\n\t},\n\tgetPasswordPolicyMinLength: function getPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength;\n\t},\n\tgetUsersOffset: function getUsersOffset(state) {\n\t\treturn state.usersOffset;\n\t},\n\tgetUsersLimit: function getUsersLimit(state) {\n\t\treturn state.usersLimit;\n\t},\n\tgetUserCount: function getUserCount(state) {\n\t\treturn state.userCount;\n\t}\n};\n\nvar actions = {\n\n\t/**\n * Get all users with full details\n * \n * @param {Object} context\n * @param {Object} options\n * @param {int} options.offset List offset to request\n * @param {int} options.limit List number to return from offset\n * @param {string} options.search Search amongst users\n * @param {string} options.group Get users from group\n * @returns {Promise}\n */\n\tgetUsers: function getUsers(context, _ref8) {\n\t\tvar offset = _ref8.offset,\n\t\t limit = _ref8.limit,\n\t\t search = _ref8.search,\n\t\t group = _ref8.group;\n\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\tgroup = typeof group === 'string' ? group : '';\n\t\tif (group !== '') {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('cloud/groups/' + group + '/users/details?offset=' + offset + '&limit=' + limit + '&search=' + search, 2)).then(function (response) {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}).catch(function (error) {\n\t\t\t\treturn context.commit('API_FAILURE', error);\n\t\t\t});\n\t\t}\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('cloud/users/details?offset=' + offset + '&limit=' + limit + '&search=' + search, 2)).then(function (response) {\n\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', error);\n\t\t});\n\t},\n\n\n\t/**\n * Get all users with full details\n * \n * @param {Object} context\n * @param {Object} options\n * @param {int} options.offset List offset to request\n * @param {int} options.limit List number to return from offset\n * @returns {Promise}\n */\n\tgetUsersFromList: function getUsersFromList(context, _ref9) {\n\t\tvar offset = _ref9.offset,\n\t\t limit = _ref9.limit,\n\t\t search = _ref9.search;\n\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('cloud/users/details?offset=' + offset + '&limit=' + limit + '&search=' + search, 2)).then(function (response) {\n\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', error);\n\t\t});\n\t},\n\n\n\t/**\n * Get all users with full details from a groupid\n * \n * @param {Object} context\n * @param {Object} options\n * @param {int} options.offset List offset to request\n * @param {int} options.limit List number to return from offset\n * @returns {Promise}\n */\n\tgetUsersFromGroup: function getUsersFromGroup(context, _ref10) {\n\t\tvar groupid = _ref10.groupid,\n\t\t offset = _ref10.offset,\n\t\t limit = _ref10.limit;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('cloud/users/' + groupid + '/details?offset=' + offset + '&limit=' + limit, 2)).then(function (response) {\n\t\t\treturn context.commit('getUsersFromList', response.data.ocs.data.users);\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', error);\n\t\t});\n\t},\n\tgetPasswordPolicyMinLength: function getPasswordPolicyMinLength(context) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('apps/provisioning_api/api/v1/config/apps/password_policy/minLength', 2)).then(function (response) {\n\t\t\treturn context.commit('setPasswordPolicyMinLength', response.data.ocs.data.data);\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', error);\n\t\t});\n\t},\n\n\n\t/**\n * Add group\n * \n * @param {Object} context\n * @param {string} gid Group id\n * @returns {Promise}\n */\n\taddGroup: function addGroup(context, gid) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].post(OC.linkToOCS('cloud/groups', 2), { groupid: gid }).then(function (response) {\n\t\t\t\treturn context.commit('addGroup', gid);\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Remove group\n * \n * @param {Object} context\n * @param {string} gid Group id\n * @returns {Promise}\n */\n\tremoveGroup: function removeGroup(context, gid) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].delete(OC.linkToOCS('cloud/groups/' + gid, 2)).then(function (response) {\n\t\t\t\treturn context.commit('removeGroup', gid);\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { gid: gid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Add user to group\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.gid Group id\n * @returns {Promise}\n */\n\taddUserGroup: function addUserGroup(context, _ref11) {\n\t\tvar userid = _ref11.userid,\n\t\t gid = _ref11.gid;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].post(OC.linkToOCS('cloud/users/' + userid + '/groups', 2), { groupid: gid }).then(function (response) {\n\t\t\t\treturn context.commit('addUserGroup', { userid: userid, gid: gid });\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Remove user from group\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.gid Group id\n * @returns {Promise}\n */\n\tremoveUserGroup: function removeUserGroup(context, _ref12) {\n\t\tvar userid = _ref12.userid,\n\t\t gid = _ref12.gid;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].delete(OC.linkToOCS('cloud/users/' + userid + '/groups', 2), { groupid: gid }).then(function (response) {\n\t\t\t\treturn context.commit('removeUserGroup', { userid: userid, gid: gid });\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Add user to group admin\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.gid Group id\n * @returns {Promise}\n */\n\taddUserSubAdmin: function addUserSubAdmin(context, _ref13) {\n\t\tvar userid = _ref13.userid,\n\t\t gid = _ref13.gid;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].post(OC.linkToOCS('cloud/users/' + userid + '/subadmins', 2), { groupid: gid }).then(function (response) {\n\t\t\t\treturn context.commit('addUserSubAdmin', { userid: userid, gid: gid });\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Remove user from group admin\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.gid Group id\n * @returns {Promise}\n */\n\tremoveUserSubAdmin: function removeUserSubAdmin(context, _ref14) {\n\t\tvar userid = _ref14.userid,\n\t\t gid = _ref14.gid;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].delete(OC.linkToOCS('cloud/users/' + userid + '/subadmins', 2), { groupid: gid }).then(function (response) {\n\t\t\t\treturn context.commit('removeUserSubAdmin', { userid: userid, gid: gid });\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Delete a user\n * \n * @param {Object} context\n * @param {string} userid User id \n * @returns {Promise}\n */\n\tdeleteUser: function deleteUser(context, _ref15) {\n\t\tvar userid = _ref15.userid;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].delete(OC.linkToOCS('cloud/users/' + userid, 2)).then(function (response) {\n\t\t\t\treturn context.commit('deleteUser', userid);\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Add a user\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.password User password \n * @param {string} options.email User email\n * @param {string} options.groups User groups\n * @param {string} options.subadmin User subadmin groups\n * @param {string} options.quota User email\n * @returns {Promise}\n */\n\taddUser: function addUser(_ref16, _ref17) {\n\t\tvar context = _ref16.context,\n\t\t dispatch = _ref16.dispatch;\n\t\tvar userid = _ref17.userid,\n\t\t password = _ref17.password,\n\t\t email = _ref17.email,\n\t\t groups = _ref17.groups,\n\t\t subadmin = _ref17.subadmin,\n\t\t quota = _ref17.quota,\n\t\t language = _ref17.language;\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].post(OC.linkToOCS('cloud/users', 2), { userid: userid, password: password, email: email, groups: groups, subadmin: subadmin, quota: quota, language: language }).then(function (response) {\n\t\t\t\treturn dispatch('addUserData', userid);\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Get user data and commit addition\n * \n * @param {Object} context\n * @param {string} userid User id \n * @returns {Promise}\n */\n\taddUserData: function addUserData(context, userid) {\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].get(OC.linkToOCS('cloud/users/' + userid, 2)).then(function (response) {\n\t\t\t\treturn context.commit('addUserData', response);\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/** Enable or disable user \n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.userid User id\n * @param {boolean} options.enabled User enablement status\n * @returns {Promise}\n */\n\tenableDisableUser: function enableDisableUser(context, _ref18) {\n\t\tvar userid = _ref18.userid,\n\t\t _ref18$enabled = _ref18.enabled,\n\t\t enabled = _ref18$enabled === undefined ? true : _ref18$enabled;\n\n\t\tvar userStatus = enabled ? 'enable' : 'disable';\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].put(OC.linkToOCS('cloud/users/' + userid + '/' + userStatus, 2)).then(function (response) {\n\t\t\t\treturn context.commit('enableDisableUser', { userid: userid, enabled: enabled });\n\t\t\t}).catch(function (error) {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}).catch(function (error) {\n\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t});\n\t},\n\n\n\t/**\n * Edit user data\n * \n * @param {Object} context \n * @param {Object} options\n * @param {string} options.userid User id\n * @param {string} options.key User field to edit\n * @param {string} options.value Value of the change\n * @returns {Promise}\n */\n\tsetUserData: function setUserData(context, _ref19) {\n\t\tvar userid = _ref19.userid,\n\t\t key = _ref19.key,\n\t\t value = _ref19.value;\n\n\t\tvar allowedEmpty = ['email', 'displayname'];\n\t\tif (['email', 'language', 'quota', 'displayname', 'password'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string' && (allowedEmpty.indexOf(key) === -1 && value.length > 0 || allowedEmpty.indexOf(key) !== -1)) {\n\t\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].put(OC.linkToOCS('cloud/users/' + userid, 2), { key: key, value: value }).then(function (response) {\n\t\t\t\t\t\treturn context.commit('setUserData', { userid: userid, key: key, value: value });\n\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\treturn context.commit('API_FAILURE', { userid: userid, error: error });\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'));\n\t}\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({ state: state, mutations: mutations, getters: getters, actions: actions });\n\n/***/ }),\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(4);\n\n\nvar state = {\n\tserverData: {}\n};\nvar mutations = {\n\tsetServerData: function setServerData(state, data) {\n\t\tstate.serverData = data;\n\t}\n};\nvar getters = {\n\tgetServerData: function getServerData(state) {\n\t\treturn state.serverData;\n\t}\n};\nvar actions = {};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({ state: state, mutations: mutations, getters: getters, actions: actions });\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(4);\n\n\nvar state = {};\nvar mutations = {};\nvar getters = {};\nvar actions = {\n\t\t\t\t/**\n * Set application config in database\n * \n * @param {Object} context\n * @param {Object} options\n * @param {string} options.app Application name\n * @param {boolean} options.key Config key\n * @param {boolean} options.value Value to set\n * @returns{Promise}\n */\n\t\t\t\tsetAppConfig: function setAppConfig(context, _ref) {\n\t\t\t\t\t\t\t\tvar app = _ref.app,\n\t\t\t\t\t\t\t\t key = _ref.key,\n\t\t\t\t\t\t\t\t value = _ref.value;\n\n\t\t\t\t\t\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].requireAdmin().then(function (response) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].post(OC.linkToOCS('apps/provisioning_api/api/v1/config/apps/' + app + '/' + key, 2), { value: value }).catch(function (error) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn context.commit('API_FAILURE', { app: app, key: key, value: value, error: error });\n\t\t\t\t\t\t\t\t});;\n\t\t\t\t}\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({ state: state, mutations: mutations, getters: getters, actions: actions });\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// main.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 23);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap eeadc4edca3b66a79df6","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/utils.js\n// module id = 0\n// module chunks = 0","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/component-normalizer.js\n// module id = 1\n// module chunks = 0","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== '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 * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (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 window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (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 = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\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 + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\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 tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\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\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\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.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction 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/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\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 if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\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 if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\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 */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\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 if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\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 */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\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 return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\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 */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\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)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\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);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\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 var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\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 */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\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 if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\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 if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\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 return {\n valid: valid,\n expectedType: expectedType\n }\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 */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\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 if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // 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 if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\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 if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n 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) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\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\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\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 */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\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\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(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\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\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<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n if (once) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes) {\n if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {\n warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n }\n slotNodes._rendered = true;\n }\n nodes = slotNodes || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () { return resolveSlots(children, parent); };\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = data.scopedSlots || emptyObject;\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/* */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n // Weex specific: invoke recycle-list optimized @render function for\n // extracting cell-slot template.\n // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n /* istanbul ignore if */\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var options = {\n _isComponent: true,\n parent: parent,\n _parentVnode: vnode,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n hooks[key] = componentVNodeHooks[key];\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n // reset _rendered flag on slots for duplicate slot check\n if (process.env.NODE_ENV !== 'production') {\n for (var key in vm.$slots) {\n // $flow-disable-line\n vm.$slots[key]._rendered = false;\n }\n }\n\n if (_parentVnode) {\n vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache, key, this$1.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n}\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n}\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.5.16';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n}\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove () {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n]\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n}\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n}\n\n/* */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n } else if (inDouble) {\n if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n } else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n } else if (inRegex) {\n if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n } else if (\n c === 0x7C && // pipe\n exp.charCodeAt(i + 1) !== 0x7C &&\n exp.charCodeAt(i - 1) !== 0x7C &&\n !curly && !square && !paren\n ) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 0x22: inDouble = true; break // \"\n case 0x27: inSingle = true; break // '\n case 0x60: inTemplateString = true; break // `\n case 0x28: paren++; break // (\n case 0x29: paren--; break // )\n case 0x5B: square++; break // [\n case 0x5D: square--; break // ]\n case 0x7B: curly++; break // {\n case 0x7D: curly--; break // }\n }\n if (c === 0x2f) { // /\n var j = i - 1;\n var p = (void 0);\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ') { break }\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n\n function pushFilter () {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n\n return expression\n}\n\nfunction wrapFilter (exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n } else {\n var name = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\n }\n}\n\n/* */\n\nfunction baseWarn (msg) {\n console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n modules,\n key\n) {\n return modules\n ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n : []\n}\n\nfunction addProp (el, name, value) {\n (el.props || (el.props = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\nfunction addAttr (el, name, value) {\n (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value) {\n el.attrsMap[name] = value;\n el.attrsList.push({ name: name, value: value });\n}\n\nfunction addDirective (\n el,\n name,\n rawName,\n value,\n arg,\n modifiers\n) {\n (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n el.plain = false;\n}\n\nfunction addHandler (\n el,\n name,\n value,\n modifiers,\n important,\n warn\n) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV !== 'production' && warn &&\n modifiers.prevent && modifiers.passive\n ) {\n warn(\n 'passive and prevent can\\'t be used together. ' +\n 'Passive handler can\\'t prevent default event.'\n );\n }\n\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = '!' + name; // mark the event as captured\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = '~' + name; // mark the event as once\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = '&' + name; // mark the event as passive\n }\n\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (name === 'click') {\n if (modifiers.right) {\n name = 'contextmenu';\n delete modifiers.right;\n } else if (modifiers.middle) {\n name = 'mouseup';\n }\n }\n\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n } else {\n events = el.events || (el.events = {});\n }\n\n var newHandler = {\n value: value.trim()\n };\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n } else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n } else {\n events[name] = newHandler;\n }\n\n el.plain = false;\n}\n\nfunction getBindingAttr (\n el,\n name,\n getStatic\n) {\n var dynamicValue =\n getAndRemoveAttr(el, ':' + name) ||\n getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue)\n } else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue)\n }\n }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n el,\n name,\n removeFromMap\n) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val\n}\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n el,\n value,\n modifiers\n) {\n var ref = modifiers || {};\n var number = ref.number;\n var trim = ref.trim;\n\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \" + baseValueExpression + \" === 'string'\" +\n \"? \" + baseValueExpression + \".trim()\" +\n \": \" + baseValueExpression + \")\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n var assignment = genAssignmentCode(value, valueExpression);\n\n el.model = {\n value: (\"(\" + value + \")\"),\n expression: (\"\\\"\" + value + \"\\\"\"),\n callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n value,\n assignment\n) {\n var res = parseModel(value);\n if (res.key === null) {\n return (value + \"=\" + assignment)\n } else {\n return (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\n }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\n\n\nfunction parseModel (val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index$1 = val.lastIndexOf('.');\n if (index$1 > -1) {\n return {\n exp: val.slice(0, index$1),\n key: '\"' + val.slice(index$1 + 1) + '\"'\n }\n } else {\n return {\n exp: val,\n key: null\n }\n }\n }\n\n str = val;\n index$1 = expressionPos = expressionEndPos = 0;\n\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n } else if (chr === 0x5B) {\n parseBracket(chr);\n }\n }\n\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n }\n}\n\nfunction next () {\n return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n var inBracket = 1;\n expressionPos = index$1;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue\n }\n if (chr === 0x5B) { inBracket++; }\n if (chr === 0x5D) { inBracket--; }\n if (inBracket === 0) {\n expressionEndPos = index$1;\n break\n }\n }\n}\n\nfunction parseString (chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break\n }\n }\n}\n\n/* */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n el,\n dir,\n _warn\n) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n\n if (process.env.NODE_ENV !== 'production') {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n \"File inputs are read only. Use a v-on:change listener instead.\"\n );\n }\n }\n\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (tag === 'select') {\n genSelect(el, value, modifiers);\n } else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n } else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n } else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n } else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false\n } else if (process.env.NODE_ENV !== 'production') {\n warn$1(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"v-model is not supported on this element type. \" +\n 'If you are working with contenteditable, it\\'s recommended to ' +\n 'wrap a library dedicated for that purpose inside a custom component.'\n );\n }\n\n // ensure runtime directive metadata\n return true\n}\n\nfunction genCheckboxModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked',\n \"Array.isArray(\" + value + \")\" +\n \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n trueValueBinding === 'true'\n ? (\":(\" + value + \")\")\n : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n )\n );\n addHandler(el, 'change',\n \"var $$a=\" + value + \",\" +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\n \"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\n \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n null, true\n );\n}\n\nfunction genRadioModel (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n el,\n value,\n modifiers\n) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \" + selectedVal + \";\";\n code = code + \" \" + (genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n el,\n value,\n modifiers\n) {\n var type = el.attrsMap.type;\n\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n if (process.env.NODE_ENV !== 'production') {\n var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value$1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\n binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\n 'because the latter already expands to a value binding internally'\n );\n }\n }\n\n var ref = modifiers || {};\n var lazy = ref.lazy;\n var number = ref.number;\n var trim = ref.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy\n ? 'change'\n : type === 'range'\n ? RANGE_TOKEN\n : 'input';\n\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\" + valueExpression + \")\";\n }\n\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\" + code;\n }\n\n addProp(el, 'value', (\"(\" + value + \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n}\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n handler = withMacroTask(handler);\n if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n event,\n handler._withTask || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n}\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.lazy) {\n // inputs with lazy should only be updated when not in focus\n return false\n }\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n}\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def) {\n if (!def) {\n return\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res\n } else if (typeof def === 'string') {\n return autoCssTransition(def)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {}\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n]\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n}\n\nvar platformDirectives = {\n model: directive,\n show: show\n}\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n}\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n}\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n}\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n isChrome\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n text,\n delimiters\n) {\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = tagRE.lastIndex = 0;\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push(tokenValue = text.slice(lastIndex, index));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push((\"_s(\" + exp + \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push(tokenValue = text.slice(lastIndex));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n }\n}\n\n/* */\n\nfunction transformNode (el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (process.env.NODE_ENV !== 'production' && staticClass) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\n \"class=\\\"\" + staticClass + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n );\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass);\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n}\n\nfunction genData (el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\" + (el.staticClass) + \",\";\n }\n if (el.classBinding) {\n data += \"class:\" + (el.classBinding) + \",\";\n }\n return data\n}\n\nvar klass$1 = {\n staticKeys: ['staticClass'],\n transformNode: transformNode,\n genData: genData\n}\n\n/* */\n\nfunction transformNode$1 (el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\n \"style=\\\"\" + staticStyle + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n );\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n}\n\nfunction genData$1 (el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\" + (el.staticStyle) + \",\";\n }\n if (el.styleBinding) {\n data += \"style:(\" + (el.styleBinding) + \"),\";\n }\n return data\n}\n\nvar style$1 = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode$1,\n genData: genData$1\n}\n\n/* */\n\nvar decoder;\n\nvar he = {\n decode: function decode (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent\n }\n}\n\n/* */\n\nvar isUnaryTag = makeMap(\n 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being pased as HTML comment when inlined in page\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n',\n '	': '\\t'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag$$1 = options.isUnaryTag || no;\n var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n while (html) {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n\n if (commentEnd >= 0) {\n if (options.shouldKeepComment) {\n options.comment(html.substring(4, commentEnd));\n }\n advance(commentEnd + 3);\n continue\n }\n }\n\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n continue\n }\n }\n\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n continue\n }\n\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n continue\n }\n\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(lastTag, html)) {\n advance(1);\n }\n continue\n }\n }\n\n var text = (void 0), rest = (void 0), next = (void 0);\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (\n !endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)\n ) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0) { break }\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n advance(textEnd);\n }\n\n if (textEnd < 0) {\n text = html;\n html = '';\n }\n\n if (options.chars && text) {\n options.chars(text);\n }\n } else {\n var endTagLength = 0;\n var stackedTag = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength = endTag.length;\n if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return ''\n });\n index += html.length - rest$1.length;\n html = rest$1;\n parseEndTag(stackedTag, index - endTagLength, index);\n }\n\n if (html === last) {\n options.chars && options.chars(html);\n if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {\n options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n }\n break\n }\n }\n\n // Clean up any remaining tags\n parseEndTag();\n\n function advance (n) {\n index += n;\n html = html.substring(n);\n }\n\n function parseStartTag () {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end, attr;\n while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n advance(attr[0].length);\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match\n }\n }\n }\n\n function handleStartTag (match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n\n var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n if (args[3] === '') { delete args[3]; }\n if (args[4] === '') { delete args[4]; }\n if (args[5] === '') { delete args[5]; }\n }\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n }\n\n if (!unary) {\n stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n lastTag = tagName;\n }\n\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n\n function parseEndTag (tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null) { start = index; }\n if (end == null) { end = index; }\n\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n }\n\n // Find the closest opened tag of the same type\n if (tagName) {\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break\n }\n }\n } else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if (process.env.NODE_ENV !== 'production' &&\n (i > pos || !tagName) &&\n options.warn\n ) {\n options.warn(\n (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n );\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n } else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n } else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n}\n\n/* */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /([^]*?)\\s+(?:in|of)\\s+([^]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n\n\nfunction createASTElement (\n tag,\n attrs,\n parent\n) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n parent: parent,\n children: []\n }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n template,\n options\n) {\n warn$2 = options.warn || baseWarn;\n\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n delimiters = options.delimiters;\n\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n\n function warnOnce (msg) {\n if (!warned) {\n warned = true;\n warn$2(msg);\n }\n }\n\n function closeElement (element) {\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n\n parseHTML(template, {\n warn: warn$2,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n start: function start (tag, attrs, unary) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n process.env.NODE_ENV !== 'production' && warn$2(\n 'Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\" + tag + \">\" + ', as they will not be parsed.'\n );\n }\n\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n } else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n // element-scope stuff\n processElement(element, options);\n }\n\n function checkRootConstraints (el) {\n if (process.env.NODE_ENV !== 'production') {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\n \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n 'contain multiple nodes.'\n );\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce(\n 'Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.'\n );\n }\n }\n }\n\n // tree management\n if (!root) {\n root = element;\n checkRootConstraints(root);\n } else if (!stack.length) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n checkRootConstraints(element);\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warnOnce(\n \"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\"\n );\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n } else if (element.slotScope) { // scoped slot\n currentParent.plain = false;\n var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n } else {\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n } else {\n closeElement(element);\n }\n },\n\n end: function end () {\n // remove trailing whitespace\n var element = stack[stack.length - 1];\n var lastNode = element.children[element.children.length - 1];\n if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n element.children.pop();\n }\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n closeElement(element);\n },\n\n chars: function chars (text) {\n if (!currentParent) {\n if (process.env.NODE_ENV !== 'production') {\n if (text === template) {\n warnOnce(\n 'Component template requires a root element, rather than just text.'\n );\n } else if ((text = text.trim())) {\n warnOnce(\n (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n );\n }\n }\n return\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text\n ) {\n return\n }\n var children = currentParent.children;\n text = inPre || text.trim()\n ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n // only preserve whitespace if its not right after a starting tag\n : preserveWhitespace && children.length ? ' ' : '';\n if (text) {\n var res;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n children.push({\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n });\n } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n children.push({\n type: 3,\n text: text\n });\n }\n }\n },\n comment: function comment (text) {\n currentParent.children.push({\n type: 3,\n text: text,\n isComment: true\n });\n }\n });\n return root\n}\n\nfunction processPre (el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n}\n\nfunction processRawAttrs (el) {\n var l = el.attrsList.length;\n if (l) {\n var attrs = el.attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n attrs[i] = {\n name: el.attrsList[i].name,\n value: JSON.stringify(el.attrsList[i].value)\n };\n }\n } else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n}\n\nfunction processElement (element, options) {\n processKey(element);\n\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain = !element.key && !element.attrsList.length;\n\n processRef(element);\n processSlot(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n}\n\nfunction processKey (el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {\n warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n }\n el.key = exp;\n }\n}\n\nfunction processRef (el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n}\n\nfunction processFor (el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n (\"Invalid v-for expression: \" + exp)\n );\n }\n }\n}\n\n\n\nfunction parseFor (exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch) { return }\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '');\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n } else {\n res.alias = alias;\n }\n return res\n}\n\nfunction processIf (el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n } else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n}\n\nfunction processIfConditions (el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n } else if (process.env.NODE_ENV !== 'production') {\n warn$2(\n \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n );\n }\n}\n\nfunction findPrevElement (children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i]\n } else {\n if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {\n warn$2(\n \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n \"will be ignored.\"\n );\n }\n children.pop();\n }\n }\n}\n\nfunction addIfCondition (el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n var once$$1 = getAndRemoveAttr(el, 'v-once');\n if (once$$1 != null) {\n el.once = true;\n }\n}\n\nfunction processSlot (el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (process.env.NODE_ENV !== 'production' && el.key) {\n warn$2(\n \"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\"\n );\n }\n } else {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && slotScope) {\n warn$2(\n \"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\",\n true\n );\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {\n warn$2(\n \"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\",\n true\n );\n }\n el.slotScope = slotScope;\n }\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget);\n }\n }\n }\n}\n\nfunction processComponent (el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n}\n\nfunction processAttrs (el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, isProp;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name);\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) { // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isProp = false;\n if (modifiers) {\n if (modifiers.prop) {\n isProp = true;\n name = camelize(name);\n if (name === 'innerHtml') { name = 'innerHTML'; }\n }\n if (modifiers.camel) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n addHandler(\n el,\n (\"update:\" + (camelize(name))),\n genAssignmentCode(value, \"$event\")\n );\n }\n }\n if (isProp || (\n !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n )) {\n addProp(el, name, value);\n } else {\n addAttr(el, name, value);\n }\n } else if (onRE.test(name)) { // v-on\n name = name.replace(onRE, '');\n addHandler(el, name, value, modifiers, false, warn$2);\n } else { // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n }\n addDirective(el, name, rawName, value, arg, modifiers);\n if (process.env.NODE_ENV !== 'production' && name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n } else {\n // literal attribute\n if (process.env.NODE_ENV !== 'production') {\n var res = parseText(value, delimiters);\n if (res) {\n warn$2(\n name + \"=\\\"\" + value + \"\\\": \" +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n );\n }\n }\n addAttr(el, name, JSON.stringify(value));\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true');\n }\n }\n }\n}\n\nfunction checkInFor (el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true\n }\n parent = parent.parent;\n }\n return false\n}\n\nfunction parseModifiers (name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret = {};\n match.forEach(function (m) { ret[m.slice(1)] = true; });\n return ret\n }\n}\n\nfunction makeAttrsMap (attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (\n process.env.NODE_ENV !== 'production' &&\n map[attrs[i].name] && !isIE && !isEdge\n ) {\n warn$2('duplicate attribute: ' + attrs[i].name);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n return (\n el.tag === 'style' ||\n (el.tag === 'script' && (\n !el.attrsMap.type ||\n el.attrsMap.type === 'text/javascript'\n ))\n )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res\n}\n\nfunction checkForAliasModel (el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn$2(\n \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\"\n );\n }\n _el = _el.parent;\n }\n}\n\n/* */\n\n/**\n * Expand input[v-model] with dyanmic type bindings into v-if-else chains\n * Turn this:\n * <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n * <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n * <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n * <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n\nfunction preTransformNode (el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return\n }\n\n var typeBinding;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\" + (map['v-bind']) + \").type\";\n }\n\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n\n if (hasElse) {\n branch0.else = true;\n } else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n\n return branch0\n }\n }\n}\n\nfunction cloneASTElement (el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$2 = {\n preTransformNode: preTransformNode\n}\n\nvar modules$1 = [\n klass$1,\n style$1,\n model$2\n]\n\n/* */\n\nfunction text (el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\n/* */\n\nfunction html (el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n }\n}\n\nvar directives$1 = {\n model: model,\n text: text,\n html: html\n}\n\n/* */\n\nvar baseOptions = {\n expectHTML: true,\n modules: modules$1,\n directives: directives$1,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys(modules$1)\n};\n\n/* */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n if (!root) { return }\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic$1(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n return makeMap(\n 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n (keys ? ',' + keys : '')\n )\n}\n\nfunction markStatic$1 (node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (\n !isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null\n ) {\n return\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic$1(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n var block = node.ifConditions[i$1].block;\n markStatic$1(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n}\n\nfunction markStaticRoots (node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static && node.children.length && !(\n node.children.length === 1 &&\n node.children[0].type === 3\n )) {\n node.staticRoot = true;\n return\n } else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n markStaticRoots(node.ifConditions[i$1].block, isInFor);\n }\n }\n }\n}\n\nfunction isStatic (node) {\n if (node.type === 2) { // expression\n return false\n }\n if (node.type === 3) { // text\n return true\n }\n return !!(node.pre || (\n !node.hasBindings && // no dynamic bindings\n !node.if && !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)\n ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false\n }\n if (node.for) {\n return true\n }\n }\n return false\n}\n\n/* */\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nvar keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nvar keyNames = {\n esc: 'Escape',\n tab: 'Tab',\n enter: 'Enter',\n space: ' ',\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n 'delete': ['Backspace', 'Delete']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n events,\n isNative,\n warn\n) {\n var res = isNative ? 'nativeOn:{' : 'on:{';\n for (var name in events) {\n res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, events[name])) + \",\";\n }\n return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n name,\n handler\n) {\n if (!handler) {\n return 'function(){}'\n }\n\n if (Array.isArray(handler)) {\n return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n }\n\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value\n }\n /* istanbul ignore if */\n return (\"function($event){\" + (handler.value) + \"}\") // inline statement\n } else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n for (var key in handler.modifiers) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n } else if (key === 'exact') {\n var modifiers = (handler.modifiers);\n genModifierCode += genGuard(\n ['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers[keyModifier]; })\n .map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\n .join('||')\n );\n } else {\n keys.push(key);\n }\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? (\"return \" + (handler.value) + \"($event)\")\n : isFunctionExpression\n ? (\"return (\" + (handler.value) + \")($event)\")\n : handler.value;\n /* istanbul ignore if */\n return (\"function($event){\" + code + handlerCode + \"}\")\n }\n}\n\nfunction genKeyFilter (keys) {\n return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return (\"$event.keyCode!==\" + keyVal)\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\n \"_k($event.keyCode,\" +\n (JSON.stringify(key)) + \",\" +\n (JSON.stringify(keyCode)) + \",\" +\n \"$event.key,\" +\n \"\" + (JSON.stringify(keyName)) +\n \")\"\n )\n}\n\n/* */\n\nfunction on (el, dir) {\n if (process.env.NODE_ENV !== 'production' && dir.modifiers) {\n warn(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/* */\n\nfunction bind$1 (el, dir) {\n el.wrapData = function (code) {\n return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n };\n}\n\n/* */\n\nvar baseDirectives = {\n on: on,\n bind: bind$1,\n cloak: noop\n}\n\n/* */\n\nvar CodegenState = function CodegenState (options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n this.onceId = 0;\n this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n ast,\n options\n) {\n var state = new CodegenState(options);\n var code = ast ? genElement(ast, state) : '_c(\"div\")';\n return {\n render: (\"with(this){return \" + code + \"}\"),\n staticRenderFns: state.staticRenderFns\n }\n}\n\nfunction genElement (el, state) {\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state)\n } else if (el.once && !el.onceProcessed) {\n return genOnce(el, state)\n } else if (el.for && !el.forProcessed) {\n return genFor(el, state)\n } else if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.tag === 'template' && !el.slotTarget) {\n return genChildren(el, state) || 'void 0'\n } else if (el.tag === 'slot') {\n return genSlot(el, state)\n } else {\n // component or element\n var code;\n if (el.component) {\n code = genComponent(el.component, el, state);\n } else {\n var data = el.plain ? undefined : genData$2(el, state);\n\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code\n }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n el.staticProcessed = true;\n state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state)\n } else if (el.staticInFor) {\n var key = '';\n var parent = el.parent;\n while (parent) {\n if (parent.for) {\n key = parent.key;\n break\n }\n parent = parent.parent;\n }\n if (!key) {\n process.env.NODE_ENV !== 'production' && state.warn(\n \"v-once can only be used inside v-for that is keyed. \"\n );\n return genElement(el, state)\n }\n return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n } else {\n return genStatic(el, state)\n }\n}\n\nfunction genIf (\n el,\n state,\n altGen,\n altEmpty\n) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n conditions,\n state,\n altGen,\n altEmpty\n) {\n if (!conditions.length) {\n return altEmpty || '_e()'\n }\n\n var condition = conditions.shift();\n if (condition.exp) {\n return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n } else {\n return (\"\" + (genTernaryExp(condition.block)))\n }\n\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp (el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state)\n }\n}\n\nfunction genFor (\n el,\n state,\n altGen,\n altHelper\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n if (process.env.NODE_ENV !== 'production' &&\n state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key\n ) {\n state.warn(\n \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n \"v-for should have explicit keys. \" +\n \"See https://vuejs.org/guide/list.html#key for more info.\",\n true /* tip */\n );\n }\n\n el.forProcessed = true; // avoid recursion\n return (altHelper || '_l') + \"((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + ((altGen || genElement)(el, state)) +\n '})'\n}\n\nfunction genData$2 (el, state) {\n var data = '{';\n\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs) { data += dirs + ','; }\n\n // key\n if (el.key) {\n data += \"key:\" + (el.key) + \",\";\n }\n // ref\n if (el.ref) {\n data += \"ref:\" + (el.ref) + \",\";\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n }\n // DOM props\n if (el.props) {\n data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n }\n // event handlers\n if (el.events) {\n data += (genHandlers(el.events, false, state.warn)) + \",\";\n }\n if (el.nativeEvents) {\n data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\" + (el.slotTarget) + \",\";\n }\n // scoped slots\n if (el.scopedSlots) {\n data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += inlineTemplate + \",\";\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data\n}\n\nfunction genDirectives (el, state) {\n var dirs = el.directives;\n if (!dirs) { return }\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']'\n }\n}\n\nfunction genInlineTemplate (el, state) {\n var ast = el.children[0];\n if (process.env.NODE_ENV !== 'production' && (\n el.children.length !== 1 || ast.type !== 1\n )) {\n state.warn('Inline-template components must have exactly one child element.');\n }\n if (ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n }\n}\n\nfunction genScopedSlots (\n slots,\n state\n) {\n return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n return genScopedSlot(key, slots[key], state)\n }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n key,\n el,\n state\n) {\n if (el.for && !el.forProcessed) {\n return genForScopedSlot(key, el, state)\n }\n var fn = \"function(\" + (String(el.slotScope)) + \"){\" +\n \"return \" + (el.tag === 'template'\n ? el.if\n ? ((el.if) + \"?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state)) + \"}\";\n return (\"{key:\" + key + \",fn:\" + fn + \"}\")\n}\n\nfunction genForScopedSlot (\n key,\n el,\n state\n) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n el.forProcessed = true; // avoid recursion\n return \"_l((\" + exp + \"),\" +\n \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n \"return \" + (genScopedSlot(key, el, state)) +\n '})'\n}\n\nfunction genChildren (\n el,\n state,\n checkSkip,\n altGenElement,\n altGenNode\n) {\n var children = el.children;\n if (children.length) {\n var el$1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el$1.for &&\n el$1.tag !== 'template' &&\n el$1.tag !== 'slot'\n ) {\n return (altGenElement || genElement)(el$1, state)\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen = altGenNode || genNode;\n return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n children,\n maybeComponent\n) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue\n }\n if (needsNormalization(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res\n}\n\nfunction needsNormalization (el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n if (node.type === 1) {\n return genElement(node, state)\n } if (node.type === 3 && node.isComment) {\n return genComment(node)\n } else {\n return genText(node)\n }\n}\n\nfunction genText (text) {\n return (\"_v(\" + (text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n var bind$$1 = el.attrsMap['v-bind'];\n if ((attrs || bind$$1) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\" + attrs;\n }\n if (bind$$1) {\n res += (attrs ? '' : ',null') + \",\" + bind$$1;\n }\n return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n componentName,\n el,\n state\n) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n var res = '';\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n /* istanbul ignore if */\n {\n res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n }\n }\n return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n return text\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/* */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n 'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n var errors = [];\n if (ast) {\n checkNode(ast, errors);\n }\n return errors\n}\n\nfunction checkNode (node, errors) {\n if (node.type === 1) {\n for (var name in node.attrsMap) {\n if (dirRE.test(name)) {\n var value = node.attrsMap[name];\n if (value) {\n if (name === 'v-for') {\n checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n } else if (onRE.test(name)) {\n checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n } else {\n checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], errors);\n }\n }\n } else if (node.type === 2) {\n checkExpression(node.expression, node.text, errors);\n }\n}\n\nfunction checkEvent (exp, text, errors) {\n var stipped = exp.replace(stripStringRE, '');\n var keywordMatch = stipped.match(unaryOperatorsRE);\n if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n errors.push(\n \"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n );\n }\n checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n checkExpression(node.for || '', text, errors);\n checkIdentifier(node.alias, 'v-for alias', text, errors);\n checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (\n ident,\n type,\n text,\n errors\n) {\n if (typeof ident === 'string') {\n try {\n new Function((\"var \" + ident + \"=_\"));\n } catch (e) {\n errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n }\n }\n}\n\nfunction checkExpression (exp, text, errors) {\n try {\n new Function((\"return \" + exp));\n } catch (e) {\n var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n if (keywordMatch) {\n errors.push(\n \"avoid using JavaScript keyword as property name: \" +\n \"\\\"\" + (keywordMatch[0]) + \"\\\"\\n Raw expression: \" + (text.trim())\n );\n } else {\n errors.push(\n \"invalid expression: \" + (e.message) + \" in\\n\\n\" +\n \" \" + exp + \"\\n\\n\" +\n \" Raw expression: \" + (text.trim()) + \"\\n\"\n );\n }\n }\n}\n\n/* */\n\nfunction createFunction (code, errors) {\n try {\n return new Function(code)\n } catch (err) {\n errors.push({ err: err, code: code });\n return noop\n }\n}\n\nfunction createCompileToFunctionFn (compile) {\n var cache = Object.create(null);\n\n return function compileToFunctions (\n template,\n options,\n vm\n ) {\n options = extend({}, options);\n var warn$$1 = options.warn || warn;\n delete options.warn;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n } catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn$$1(\n 'It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.'\n );\n }\n }\n }\n\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key]\n }\n\n // compile\n var compiled = compile(template, options);\n\n // check compilation errors/tips\n if (process.env.NODE_ENV !== 'production') {\n if (compiled.errors && compiled.errors.length) {\n warn$$1(\n \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n vm\n );\n }\n if (compiled.tips && compiled.tips.length) {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors)\n });\n\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production') {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn$$1(\n \"Failed to generate render function:\\n\\n\" +\n fnGenErrors.map(function (ref) {\n var err = ref.err;\n var code = ref.code;\n\n return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n }).join('\\n'),\n vm\n );\n }\n }\n\n return (cache[key] = res)\n }\n}\n\n/* */\n\nfunction createCompilerCreator (baseCompile) {\n return function createCompiler (baseOptions) {\n function compile (\n template,\n options\n ) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n finalOptions.warn = function (msg, tip) {\n (tip ? tips : errors).push(msg);\n };\n\n if (options) {\n // merge custom modules\n if (options.modules) {\n finalOptions.modules =\n (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(\n Object.create(baseOptions.directives || null),\n options.directives\n );\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n\n var compiled = baseCompile(template, finalOptions);\n if (process.env.NODE_ENV !== 'production') {\n errors.push.apply(errors, detectErrors(compiled.ast));\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled\n }\n\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n }\n }\n}\n\n/* */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n template,\n options\n) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n }\n});\n\n/* */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/* */\n\n// check whether current browser encodes a char inside attribute values\nvar div;\nfunction getShouldDecode (href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf(' ') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/* */\n\nvar idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && query(el);\n\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n );\n return this\n }\n\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !template) {\n warn(\n (\"Template element not found or is empty: \" + (options.template)),\n this\n );\n }\n }\n } else if (template.nodeType) {\n template = template.innerHTML;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn('invalid template option:' + template, this);\n }\n return this\n }\n } else if (el) {\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile');\n }\n\n var ref = compileToFunctions(template, {\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this);\n var render = ref.render;\n var staticRenderFns = ref.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n mark('compile end');\n measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n if (el.outerHTML) {\n return el.outerHTML\n } else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML\n }\n}\n\nVue.compile = compileToFunctions;\n\nexport default Vue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue/dist/vue.esm.js\n// module id = 2\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0","import axios from 'axios';\n\nconst requestToken = document.getElementsByTagName('head')[0].getAttribute('data-requesttoken');\nconst tokenHeaders = { headers: { requesttoken: requestToken } };\n\nconst sanitize = function(url) {\n\treturn url.replace(/\\/$/, ''); // Remove last url slash\n};\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * \taction(context) {\n\t *\t\treturn api.requireAdmin().then((response) => {\n\t *\t\t\treturn api.get('url')\n\t *\t\t\t\t.then((response) => {API success})\n\t *\t\t\t\t.catch((error) => {API failure});\n\t *\t\t}).catch((error) => {requireAdmin failure});\n\t *\t}\n\t * // vue\n\t *\tthis.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t * \n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t * \n\t * e.g\n\t *\tapi.requireAdmin().then((response) => {\n\t *\t\tapi.get('url')\n\t *\t\t\t.then((response) => {API success})\n\t *\t\t\t.catch((error) => {throw error;});\n\t *\t}).catch((error) => {requireAdmin OR API failure});\n\t * \n\t * @returns {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\t// TODO: migrate the OC.dialog to Vue and avoid this mess\n\t\t\t// wait for password confirmation\n\t\t\tlet passwordTimeout;\n\t\t\tlet waitForpassword = function() {\n\t\t\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\t\t\tpasswordTimeout = setTimeout(waitForpassword, 500);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\tclearTimeout(promiseTimeout);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\t// automatically reject after 5s if not resolved\n\t\t\tlet promiseTimeout = setTimeout(() => {\n\t\t\t\tclearTimeout(passwordTimeout);\n\t\t\t\t// close dialog\n\t\t\t\tif (document.getElementsByClassName('oc-dialog-close').length>0) {\n\t\t\t\t\tdocument.getElementsByClassName('oc-dialog-close')[0].click();\n\t\t\t\t}\n\t\t\t\tOC.Notification.showTemporary(t('settings', 'You did not enter the password in time'));\n\t\t\t\treject('Password request cancelled');\n\t\t\t}, 7000); \n\n\t\t\t// request password\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation();\n\t\t\twaitForpassword();\n\t\t});\n\t},\n\tget(url) {\n\t\treturn axios.get(sanitize(url), tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tpost(url, data) {\n\t\treturn axios.post(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data, tokenHeaders)\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { data: data, headers: tokenHeaders.headers })\n\t\t\t.then((response) => Promise.resolve(response))\n\t\t\t.catch((error) => Promise.reject(error));\n\t}\n};\n\n\n// WEBPACK FOOTER //\n// ./src/store/api.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 5\n// module chunks = 0","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"/\",e(e.s=66)}([function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){t.exports=!n(12)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(10),r=n(43),o=n(31),s=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(77),r=n(21);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(9),r=n(52),o=n(18),s=n(55),u=n(53),a=function(t,e,n){var l,c,f,p,h=t&a.F,d=t&a.G,v=t&a.S,y=t&a.P,g=t&a.B,b=d?i:v?i[e]||(i[e]={}):(i[e]||{}).prototype,m=d?r:r[e]||(r[e]={}),_=m.prototype||(m.prototype={});d&&(n=e);for(l in n)c=!h&&b&&void 0!==b[l],f=(c?b:n)[l],p=g&&c?u(f,i):y&&\"function\"==typeof f?u(Function.call,f):f,b&&s(b,l,f,t&a.U),m[l]!=f&&o(m,l,p),y&&_[l]!=f&&(_[l]=f)};i.core=r,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e,n){var i=n(3),r=n(15);t.exports=n(1)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(29)(\"wks\"),r=n(16),o=n(0).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var n=t.exports=\"undefined\"!=typeof window&&window.Math==Math?window:\"undefined\"!=typeof self&&self.Math==Math?self:Function(\"return this\")();\"number\"==typeof __g&&(__g=n)},function(t,e,n){var i=n(13);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(48),r=n(22);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e,n){var i=n(109),r=n(110);t.exports=n(35)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t){return\"object\"==typeof t?null!==t:\"function\"==typeof t}},function(t,e,n){var i=n(8);t.exports=function(t,e){return!!t&&i(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},function(t,e){t.exports=\"constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf\".split(\",\")},function(t,e,n){var i=n(0),r=n(11),o=n(74),s=n(6),u=function(t,e,n){var a,l,c,f=t&u.F,p=t&u.G,h=t&u.S,d=t&u.P,v=t&u.B,y=t&u.W,g=p?r:r[e]||(r[e]={}),b=g.prototype,m=p?i:h?i[e]:(i[e]||{}).prototype;p&&(n=e);for(a in n)(l=!f&&m&&void 0!==m[a])&&a in g||(c=l?m[a]:n[a],g[a]=p&&\"function\"!=typeof m[a]?n[a]:v&&l?o(c,i):y&&m[a]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(c):d&&\"function\"==typeof c?o(Function.call,c):c,d&&((g.virtual||(g.virtual={}))[a]=c,t&u.R&&b&&!b[a]&&s(b,a,c)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports={}},function(t,e){t.exports=!0},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(3).f,r=n(2),o=n(7)(\"toStringTag\");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(29)(\"keys\"),r=n(16);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(0),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(13);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){var i=n(0),r=n(11),o=n(25),s=n(33),u=n(3).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});\"_\"==t.charAt(0)||t in e||u(e,t,{value:s.f(t)})}},function(t,e,n){e.f=n(7)},function(t,e,n){var i=n(53),r=n(36),o=n(57),s=n(37),u=n(104);t.exports=function(t,e){var n=1==t,a=2==t,l=3==t,c=4==t,f=6==t,p=5==t||f,h=e||u;return function(e,u,d){for(var v,y,g=o(e),b=r(g),m=i(u,d,3),_=s(b.length),x=0,w=n?h(e,_):a?h(e,0):void 0;_>x;x++)if((p||x in b)&&(v=b[x],y=m(v,x,g),t))if(n)w[x]=y;else if(y)switch(t){case 3:return!0;case 5:return v;case 6:return x;case 2:w.push(v)}else if(c)return!1;return f?-1:l||c?c:w}}},function(t,e,n){t.exports=!n(8)(function(){return 7!=Object.defineProperty({},\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(51);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(56),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(111)(\"wks\"),r=n(58),o=n(9).Symbol,s=\"function\"==typeof o;(t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)(\"Symbol.\"+t))}).store=i},function(t,e,n){\"use strict\";function i(t){return 0!==t&&(!(!Array.isArray(t)||0!==t.length)||!t)}function r(t){return function(){return!t.apply(void 0,arguments)}}function o(t,e){return void 0===t&&(t=\"undefined\"),null===t&&(t=\"null\"),!1===t&&(t=\"false\"),-1!==t.toString().toLowerCase().indexOf(e.trim())}function s(t,e,n,i){return t.filter(function(t){return o(i(t,n),e)})}function u(t){return t.filter(function(t){return!t.$isLabel})}function a(t,e){return function(n){return n.reduce(function(n,i){return i[t]&&i[t].length?(n.push({$groupLabel:i[e],$isLabel:!0}),n.concat(i[t])):n},[])}}function l(t,e,n,i,r){return function(o){return o.map(function(o){var u;if(!o[n])return console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\"),[];var a=s(o[n],t,e,r);return a.length?(u={},v()(u,i,o[i]),v()(u,n,a),u):[]})}}var c=n(65),f=n.n(c),p=n(59),h=(n.n(p),n(122)),d=(n.n(h),n(64)),v=n.n(d),y=n(120),g=(n.n(y),n(121)),b=(n.n(g),n(117)),m=(n.n(b),n(123)),_=(n.n(m),n(118)),x=(n.n(_),n(119)),w=(n.n(x),function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return e.reduce(function(t,e){return e(t)},t)}});e.a={data:function(){return{search:\"\",isOpen:!1,prefferedOpenDirection:\"below\",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:\"Select option\"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(t,e){return i(t)?\"\":e?t[e]:t}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:\"Press enter to create a tag\"},tagPosition:{type:String,default:\"top\"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1}},mounted:function(){this.multiple||this.clearOnSelect||console.warn(\"[Vue-Multiselect warn]: ClearOnSelect and Multiple props can’t be both set to false.\"),!this.multiple&&this.max&&console.warn(\"[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.\"),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var t=this.search||\"\",e=t.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,e,this.label):s(n,e,this.label,this.customLabel):this.groupValues?a(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(r(this.isSelected)):n,this.taggable&&e.length&&!this.isExistingOption(e)&&(\"bottom\"===this.tagPosition?n.push({isTag:!0,label:t}):n.unshift({isTag:!0,label:t})),n.slice(0,this.optionsLimit)},valueKeys:function(){var t=this;return this.trackBy?this.internalValue.map(function(e){return e[t.trackBy]}):this.internalValue},optionKeys:function(){var t=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(e){return t.customLabel(e,t.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?\"\":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?\"\":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search=\"\",this.$emit(\"input\",this.multiple?[]:null))},search:function(){this.$emit(\"search-change\",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(t,e,n){return w(l(e,n,this.groupValues,this.groupLabel,this.customLabel),a(this.groupValues,this.groupLabel))(t)},flatAndStrip:function(t){return w(a(this.groupValues,this.groupLabel),u)(t)},updateSearch:function(t){this.search=t},isExistingOption:function(t){return!!this.options&&this.optionKeys.indexOf(t)>-1},isSelected:function(t){var e=this.trackBy?t[this.trackBy]:t;return this.valueKeys.indexOf(e)>-1},getOptionLabel:function(t){if(i(t))return\"\";if(t.isTag)return t.label;if(t.$isLabel)return t.$groupLabel;var e=this.customLabel(t,this.label);return i(e)?\"\":e},select:function(t,e){if(t.$isLabel&&this.groupSelect)return void this.selectGroup(t);if(!(-1!==this.blockKeys.indexOf(e)||this.disabled||t.$isDisabled||t.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&(\"Tab\"!==e||this.pointerDirty)){if(t.isTag)this.$emit(\"tag\",t.label,this.id),this.search=\"\",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(t))return void(\"Tab\"!==e&&this.removeElement(t));this.$emit(\"select\",t,this.id),this.multiple?this.$emit(\"input\",this.internalValue.concat([t]),this.id):this.$emit(\"input\",t,this.id),this.clearOnSelect&&(this.search=\"\")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(t){var e=this,n=this.options.find(function(n){return n[e.groupLabel]===t.$groupLabel});if(n)if(this.wholeGroupSelected(n)){this.$emit(\"remove\",n[this.groupValues],this.id);var i=this.internalValue.filter(function(t){return-1===n[e.groupValues].indexOf(t)});this.$emit(\"input\",i,this.id)}else{var o=n[this.groupValues].filter(r(this.isSelected));this.$emit(\"select\",o,this.id),this.$emit(\"input\",this.internalValue.concat(o),this.id)}},wholeGroupSelected:function(t){return t[this.groupValues].every(this.isSelected)},removeElement:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var n=\"object\"===f()(t)?this.valueKeys.indexOf(t[this.trackBy]):this.valueKeys.indexOf(t);if(this.$emit(\"remove\",t,this.id),this.multiple){var i=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit(\"input\",i,this.id)}else this.$emit(\"input\",null,this.id);this.closeOnSelect&&e&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf(\"Delete\")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var t=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=\"\"),this.$nextTick(function(){return t.$refs.search.focus()})):this.$el.focus(),this.$emit(\"open\",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search.blur():this.$el.blur(),this.preserveSearch||(this.search=\"\"),this.$emit(\"close\",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if(\"undefined\"!=typeof window){var t=this.$el.getBoundingClientRect().top,e=window.innerHeight-this.$el.getBoundingClientRect().bottom;e>this.maxHeight||e>t||\"below\"===this.openDirection||\"bottom\"===this.openDirection?(this.prefferedOpenDirection=\"below\",this.optimizedHeight=Math.min(e-40,this.maxHeight)):(this.prefferedOpenDirection=\"above\",this.optimizedHeight=Math.min(t-40,this.maxHeight))}}}}},function(t,e,n){\"use strict\";var i=n(59);n.n(i);e.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1}},methods:{optionHighlight:function(t,e){return{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer,\"multiselect__option--selected\":this.isSelected(e)}},groupHighlight:function(t,e){var n=this;if(!this.groupSelect)return[\"multiselect__option--disabled\"];var i=this.options.find(function(t){return t[n.groupLabel]===e.$groupLabel});return[this.groupSelect?\"multiselect__option--group\":\"multiselect__option--disabled\",{\"multiselect__option--highlight\":t===this.pointer&&this.showPointer},{\"multiselect__option--group-selected\":this.wholeGroupSelected(i)}]},addPointerElement:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"Enter\",e=t.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(t){this.pointer=t,this.pointerDirty=!0}}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var i=n(13),r=n(0).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){t.exports=!n(1)&&!n(12)(function(){return 7!=Object.defineProperty(n(42)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){\"use strict\";var i=n(25),r=n(23),o=n(49),s=n(6),u=n(2),a=n(24),l=n(79),c=n(27),f=n(86),p=n(7)(\"iterator\"),h=!([].keys&&\"next\"in[].keys()),d=function(){return this};t.exports=function(t,e,n,v,y,g,b){l(n,e,v);var m,_,x,w=function(t){if(!h&&t in P)return P[t];switch(t){case\"keys\":case\"values\":return function(){return new n(this,t)}}return function(){return new n(this,t)}},S=e+\" Iterator\",O=\"values\"==y,L=!1,P=t.prototype,k=P[p]||P[\"@@iterator\"]||y&&P[y],E=k||w(y),j=y?O?w(\"entries\"):E:void 0,V=\"Array\"==e?P.entries||k:k;if(V&&(x=f(V.call(new t)))!==Object.prototype&&(c(x,S,!0),i||u(x,p)||s(x,p,d)),O&&k&&\"values\"!==k.name&&(L=!0,E=function(){return k.call(this)}),i&&!b||!h&&!L&&P[p]||s(P,p,E),a[e]=E,a[S]=d,y)if(m={values:O?E:w(\"values\"),keys:g?E:w(\"keys\"),entries:j},b)for(_ in m)_ in P||o(P,_,m[_]);else r(r.P+r.F*(h||L),e,m);return m}},function(t,e,n){var i=n(10),r=n(83),o=n(22),s=n(28)(\"IE_PROTO\"),u=function(){},a=function(){var t,e=n(42)(\"iframe\"),i=o.length;for(e.style.display=\"none\",n(76).appendChild(e),e.src=\"javascript:\",t=e.contentWindow.document,t.open(),t.write(\"<script>document.F=Object<\\/script>\"),t.close(),a=t.F;i--;)delete a.prototype[o[i]];return a()};t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=i(t),n=new u,u.prototype=null,n[s]=t):n=a(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(48),r=n(22).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var i=n(2),r=n(4),o=n(73)(!1),s=n(28)(\"IE_PROTO\");t.exports=function(t,e){var n,u=r(t),a=0,l=[];for(n in u)n!=s&&i(u,n)&&l.push(n);for(;e.length>a;)i(u,n=e[a++])&&(~o(l,n)||l.push(n));return l}},function(t,e,n){t.exports=n(6)},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=t.exports={version:\"2.4.0\"};\"number\"==typeof __e&&(__e=n)},function(t,e,n){var i=n(50);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(51);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){var i=n(9),r=n(18),o=n(107),s=n(58)(\"src\"),u=Function.toString,a=(\"\"+u).split(\"toString\");n(52).inspectSource=function(t){return u.call(t)},(t.exports=function(t,e,n,u){var l=\"function\"==typeof n;l&&(o(n,\"name\")||r(n,\"name\",e)),t[e]!==n&&(l&&(o(n,s)||r(n,s,t[e]?\"\"+t[e]:a.join(String(e)))),t===i?t[e]=n:u?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,\"toString\",function(){return\"function\"==typeof this&&this[s]||u.call(this)})},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(17);t.exports=function(t){return Object(i(t))}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return\"Symbol(\".concat(void 0===t?\"\":t,\")_\",(++n+i).toString(36))}},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(5),o=!0;\"find\"in[]&&Array(1).find(function(){o=!1}),i(i.P+i.F*o,\"Array\",{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n(99)(\"find\")},function(t,e,n){\"use strict\";function i(t){n(124)}var r=n(67),o=n(126),s=n(125),u=i,a=s(r.a,o.a,!1,u,null,null);e.a=a.exports},function(t,e,n){t.exports=n(68)},function(t,e,n){t.exports=n(69)},function(t,e,n){t.exports=n(70)},function(t,e,n){function i(t,e,n){return e in t?r(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var r=n(61);t.exports=i},function(t,e,n){function i(t){return(i=\"function\"==typeof s&&\"symbol\"==typeof o?function(t){return typeof t}:function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":typeof t})(t)}function r(e){return\"function\"==typeof s&&\"symbol\"===i(o)?t.exports=r=function(t){return i(t)}:t.exports=r=function(t){return t&&\"function\"==typeof s&&t.constructor===s&&t!==s.prototype?\"symbol\":i(t)},r(e)}var o=n(63),s=n(62);t.exports=r},function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=n(60),r=n(39),o=n(40);n.d(e,\"Multiselect\",function(){return i.a}),n.d(e,\"multiselectMixin\",function(){return r.a}),n.d(e,\"pointerMixin\",function(){return o.a}),e.default=i.a},function(t,e,n){\"use strict\";var i=n(39),r=n(40);e.a={name:\"vue-multiselect\",mixins:[i.a,r.a],props:{name:{type:String,default:\"\"},selectLabel:{type:String,default:\"Press enter to select\"},selectGroupLabel:{type:String,default:\"Press enter to select group\"},selectedLabel:{type:String,default:\"Selected\"},deselectLabel:{type:String,default:\"Press enter to remove\"},deselectGroupLabel:{type:String,default:\"Press enter to deselect group\"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(t){return\"and \".concat(t,\" more\")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:\"\"},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{isSingleLabelVisible:function(){return this.singleValue&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:\"\"},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:\"\"},selectLabelText:function(){return this.showLabels?this.selectLabel:\"\"},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:\"\"},selectedLabelText:function(){return this.showLabels?this.selectedLabel:\"\"},inputStyle:function(){if(this.multiple&&this.value&&this.value.length)return this.isOpen?{width:\"auto\"}:{width:\"0\",position:\"absolute\",padding:\"0\"}},contentStyle:function(){return this.options.length?{display:\"inline-block\"}:{display:\"block\"}},isAbove:function(){return\"above\"===this.openDirection||\"top\"===this.openDirection||\"below\"!==this.openDirection&&\"bottom\"!==this.openDirection&&\"above\"===this.prefferedOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},function(t,e,n){n(92);var i=n(11).Object;t.exports=function(t,e,n){return i.defineProperty(t,e,n)}},function(t,e,n){n(95),n(93),n(96),n(97),t.exports=n(11).Symbol},function(t,e,n){n(94),n(98),t.exports=n(33).f(\"iterator\")},function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(t+\" is not a function!\");return t}},function(t,e){t.exports=function(){}},function(t,e,n){var i=n(4),r=n(89),o=n(88);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(71);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var i=n(14),r=n(47),o=n(26);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,u=n(t),a=o.f,l=0;u.length>l;)a.call(t,s=u[l++])&&e.push(s);return e}},function(t,e,n){t.exports=n(0).document&&document.documentElement},function(t,e,n){var i=n(41);t.exports=Object(\"z\").propertyIsEnumerable(0)?Object:function(t){return\"String\"==i(t)?t.split(\"\"):Object(t)}},function(t,e,n){var i=n(41);t.exports=Array.isArray||function(t){return\"Array\"==i(t)}},function(t,e,n){\"use strict\";var i=n(45),r=n(15),o=n(27),s={};n(6)(s,n(7)(\"iterator\"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+\" Iterator\")}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var i=n(14),r=n(4);t.exports=function(t,e){for(var n,o=r(t),s=i(o),u=s.length,a=0;u>a;)if(o[n=s[a++]]===e)return n}},function(t,e,n){var i=n(16)(\"meta\"),r=n(13),o=n(2),s=n(3).f,u=0,a=Object.isExtensible||function(){return!0},l=!n(12)(function(){return a(Object.preventExtensions({}))}),c=function(t){s(t,i,{value:{i:\"O\"+ ++u,w:{}}})},f=function(t,e){if(!r(t))return\"symbol\"==typeof t?t:(\"string\"==typeof t?\"S\":\"P\")+t;if(!o(t,i)){if(!a(t))return\"F\";if(!e)return\"E\";c(t)}return t[i].i},p=function(t,e){if(!o(t,i)){if(!a(t))return!0;if(!e)return!1;c(t)}return t[i].w},h=function(t){return l&&d.NEED&&a(t)&&!o(t,i)&&c(t),t},d=t.exports={KEY:i,NEED:!1,fastKey:f,getWeak:p,onFreeze:h}},function(t,e,n){var i=n(3),r=n(10),o=n(14);t.exports=n(1)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),u=s.length,a=0;u>a;)i.f(t,n=s[a++],e[n]);return t}},function(t,e,n){var i=n(26),r=n(15),o=n(4),s=n(31),u=n(2),a=n(43),l=Object.getOwnPropertyDescriptor;e.f=n(1)?l:function(t,e){if(t=o(t),e=s(e,!0),a)try{return l(t,e)}catch(t){}if(u(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e,n){var i=n(4),r=n(46).f,o={}.toString,s=\"object\"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&\"[object Window]\"==o.call(t)?u(t):r(i(t))}},function(t,e,n){var i=n(2),r=n(90),o=n(28)(\"IE_PROTO\"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:\"function\"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(30),r=n(21);t.exports=function(t){return function(e,n){var o,s,u=String(r(e)),a=i(n),l=u.length;return a<0||a>=l?t?\"\":void 0:(o=u.charCodeAt(a),o<55296||o>56319||a+1===l||(s=u.charCodeAt(a+1))<56320||s>57343?t?u.charAt(a):o:t?u.slice(a,a+2):s-56320+(o-55296<<10)+65536)}}},function(t,e,n){var i=n(30),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(30),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(21);t.exports=function(t){return Object(i(t))}},function(t,e,n){\"use strict\";var i=n(72),r=n(80),o=n(24),s=n(4);t.exports=n(44)(Array,\"Array\",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):\"keys\"==e?r(0,n):\"values\"==e?r(0,t[n]):r(0,[n,t[n]])},\"values\"),o.Arguments=o.Array,i(\"keys\"),i(\"values\"),i(\"entries\")},function(t,e,n){var i=n(23);i(i.S+i.F*!n(1),\"Object\",{defineProperty:n(3).f})},function(t,e){},function(t,e,n){\"use strict\";var i=n(87)(!0);n(44)(String,\"String\",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){\"use strict\";var i=n(0),r=n(2),o=n(1),s=n(23),u=n(49),a=n(82).KEY,l=n(12),c=n(29),f=n(27),p=n(16),h=n(7),d=n(33),v=n(32),y=n(81),g=n(75),b=n(78),m=n(10),_=n(4),x=n(31),w=n(15),S=n(45),O=n(85),L=n(84),P=n(3),k=n(14),E=L.f,j=P.f,V=O.f,C=i.Symbol,T=i.JSON,A=T&&T.stringify,$=h(\"_hidden\"),D=h(\"toPrimitive\"),F={}.propertyIsEnumerable,M=c(\"symbol-registry\"),B=c(\"symbols\"),N=c(\"op-symbols\"),R=Object.prototype,H=\"function\"==typeof C,G=i.QObject,I=!G||!G.prototype||!G.prototype.findChild,K=o&&l(function(){return 7!=S(j({},\"a\",{get:function(){return j(this,\"a\",{value:7}).a}})).a})?function(t,e,n){var i=E(R,e);i&&delete R[e],j(t,e,n),i&&t!==R&&j(R,e,i)}:j,z=function(t){var e=B[t]=S(C.prototype);return e._k=t,e},U=H&&\"symbol\"==typeof C.iterator?function(t){return\"symbol\"==typeof t}:function(t){return t instanceof C},W=function(t,e,n){return t===R&&W(N,e,n),m(t),e=x(e,!0),m(n),r(B,e)?(n.enumerable?(r(t,$)&&t[$][e]&&(t[$][e]=!1),n=S(n,{enumerable:w(0,!1)})):(r(t,$)||j(t,$,w(1,{})),t[$][e]=!0),K(t,e,n)):j(t,e,n)},J=function(t,e){m(t);for(var n,i=g(e=_(e)),r=0,o=i.length;o>r;)W(t,n=i[r++],e[n]);return t},q=function(t,e){return void 0===e?S(t):J(S(t),e)},X=function(t){var e=F.call(this,t=x(t,!0));return!(this===R&&r(B,t)&&!r(N,t))&&(!(e||!r(this,t)||!r(B,t)||r(this,$)&&this[$][t])||e)},Y=function(t,e){if(t=_(t),e=x(e,!0),t!==R||!r(B,e)||r(N,e)){var n=E(t,e);return!n||!r(B,e)||r(t,$)&&t[$][e]||(n.enumerable=!0),n}},Q=function(t){for(var e,n=V(_(t)),i=[],o=0;n.length>o;)r(B,e=n[o++])||e==$||e==a||i.push(e);return i},Z=function(t){for(var e,n=t===R,i=V(n?N:_(t)),o=[],s=0;i.length>s;)!r(B,e=i[s++])||n&&!r(R,e)||o.push(B[e]);return o};H||(C=function(){if(this instanceof C)throw TypeError(\"Symbol is not a constructor!\");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===R&&e.call(N,n),r(this,$)&&r(this[$],t)&&(this[$][t]=!1),K(this,t,w(1,n))};return o&&I&&K(R,t,{configurable:!0,set:e}),z(t)},u(C.prototype,\"toString\",function(){return this._k}),L.f=Y,P.f=W,n(46).f=O.f=Q,n(26).f=X,n(47).f=Z,o&&!n(25)&&u(R,\"propertyIsEnumerable\",X,!0),d.f=function(t){return z(h(t))}),s(s.G+s.W+s.F*!H,{Symbol:C});for(var tt=\"hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables\".split(\",\"),et=0;tt.length>et;)h(tt[et++]);for(var tt=k(h.store),et=0;tt.length>et;)v(tt[et++]);s(s.S+s.F*!H,\"Symbol\",{for:function(t){return r(M,t+=\"\")?M[t]:M[t]=C(t)},keyFor:function(t){if(U(t))return y(M,t);throw TypeError(t+\" is not a symbol!\")},useSetter:function(){I=!0},useSimple:function(){I=!1}}),s(s.S+s.F*!H,\"Object\",{create:q,defineProperty:W,defineProperties:J,getOwnPropertyDescriptor:Y,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),T&&s(s.S+s.F*(!H||l(function(){var t=C();return\"[null]\"!=A([t])||\"{}\"!=A({a:t})||\"{}\"!=A(Object(t))})),\"JSON\",{stringify:function(t){if(void 0!==t&&!U(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],\"function\"==typeof e&&(n=e),!n&&b(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!U(e))return e}),i[1]=e,A.apply(T,i)}}}),C.prototype[D]||n(6)(C.prototype,D,C.prototype.valueOf),f(C,\"Symbol\"),f(Math,\"Math\",!0),f(i.JSON,\"JSON\",!0)},function(t,e,n){n(32)(\"asyncIterator\")},function(t,e,n){n(32)(\"observable\")},function(t,e,n){n(91);for(var i=n(0),r=n(6),o=n(24),s=n(7)(\"toStringTag\"),u=[\"NodeList\",\"DOMTokenList\",\"MediaList\",\"StyleSheetList\",\"CSSRuleList\"],a=0;a<5;a++){var l=u[a],c=i[l],f=c&&c.prototype;f&&!f[s]&&r(f,s,l),o[l]=o.Array}},function(t,e,n){var i=n(38)(\"unscopables\"),r=Array.prototype;void 0==r[i]&&n(18)(r,i,{}),t.exports=function(t){r[i][t]=!0}},function(t,e,n){var i=n(19);t.exports=function(t){if(!i(t))throw TypeError(t+\" is not an object!\");return t}},function(t,e,n){var i=n(115),r=n(37),o=n(114);t.exports=function(t){return function(e,n,s){var u,a=i(e),l=r(a.length),c=o(s,l);if(t&&n!=n){for(;l>c;)if((u=a[c++])!=u)return!0}else for(;l>c;c++)if((t||c in a)&&a[c]===n)return t||c||0;return!t&&-1}}},function(t,e,n){var i=n(50),r=n(57),o=n(36),s=n(37);t.exports=function(t,e,n,u,a){i(e);var l=r(t),c=o(l),f=s(l.length),p=a?f-1:0,h=a?-1:1;if(n<2)for(;;){if(p in c){u=c[p],p+=h;break}if(p+=h,a?p<0:f<=p)throw TypeError(\"Reduce of empty array with no initial value\")}for(;a?p>=0:f>p;p+=h)p in c&&(u=e(u,c[p],p,l));return u}},function(t,e,n){var i=n(19),r=n(54),o=n(38)(\"species\");t.exports=function(t){var e;return r(t)&&(e=t.constructor,\"function\"!=typeof e||e!==Array&&!r(e.prototype)||(e=void 0),i(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){var i=n(103);t.exports=function(t,e){return new(i(t))(e)}},function(t,e,n){var i=n(19),r=n(9).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){\"use strict\";var i=n(18),r=n(55),o=n(8),s=n(17),u=n(38);t.exports=function(t,e,n){var a=u(t),l=n(s,a,\"\"[t]),c=l[0],f=l[1];o(function(){var e={};return e[a]=function(){return 7},7!=\"\"[t](e)})&&(r(String.prototype,t,c),i(RegExp.prototype,a,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)}))}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){t.exports=!n(35)&&!n(8)(function(){return 7!=Object.defineProperty(n(105)(\"div\"),\"a\",{get:function(){return 7}}).a})},function(t,e,n){var i=n(100),r=n(108),o=n(116),s=Object.defineProperty;e.f=n(35)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if(\"get\"in n||\"set\"in n)throw TypeError(\"Accessors not supported!\");return\"value\"in n&&(t[e]=n.value),t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(9),r=i[\"__core-js_shared__\"]||(i[\"__core-js_shared__\"]={});t.exports=function(t){return r[t]||(r[t]={})}},function(t,e,n){var i=n(5),r=n(17),o=n(8),s=n(113),u=\"[\"+s+\"]\",a=\"
\",l=RegExp(\"^\"+u+u+\"*\"),c=RegExp(u+u+\"*$\"),f=function(t,e,n){var r={},u=o(function(){return!!s[t]()||a[t]()!=a}),l=r[t]=u?e(p):s[t];n&&(r[n]=l),i(i.P+i.F*u,\"String\",r)},p=f.trim=function(t,e){return t=String(r(t)),1&e&&(t=t.replace(l,\"\")),2&e&&(t=t.replace(c,\"\")),t};t.exports=f},function(t,e){t.exports=\"\\t\\n\\v\\f\\r \\u2028\\u2029\\ufeff\"},function(t,e,n){var i=n(56),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(36),r=n(17);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(19);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if(\"function\"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&\"function\"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError(\"Can't convert object to primitive value\")}},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(2);i(i.P+i.F*!n(20)([].filter,!0),\"Array\",{filter:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(101)(!1),o=[].indexOf,s=!!o&&1/[1].indexOf(1,-0)<0;i(i.P+i.F*(s||!n(20)(o)),\"Array\",{indexOf:function(t){return s?o.apply(this,arguments)||0:r(this,t,arguments[1])}})},function(t,e,n){var i=n(5);i(i.S,\"Array\",{isArray:n(54)})},function(t,e,n){\"use strict\";var i=n(5),r=n(34)(1);i(i.P+i.F*!n(20)([].map,!0),\"Array\",{map:function(t){return r(this,t,arguments[1])}})},function(t,e,n){\"use strict\";var i=n(5),r=n(102);i(i.P+i.F*!n(20)([].reduce,!0),\"Array\",{reduce:function(t){return r(this,t,arguments.length,arguments[1],!1)}})},function(t,e,n){n(106)(\"search\",1,function(t,e,n){return[function(n){\"use strict\";var i=t(this),r=void 0==n?void 0:n[e];return void 0!==r?r.call(n,i):new RegExp(n)[e](String(i))},n]})},function(t,e,n){\"use strict\";n(112)(\"trim\",function(t){return function(){return t(this,3)}})},function(t,e){},function(t,e){t.exports=function(t,e,n,i,r,o){var s,u=t=t||{},a=typeof t.default;\"object\"!==a&&\"function\"!==a||(s=t,u=t.default);var l=\"function\"==typeof u?u.options:u;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):i&&(c=i),c){var f=l.functional,p=f?l.render:l.beforeCreate;f?(l._injectStyles=c,l.render=function(t,e){return c.call(e),p(t,e)}):l.beforeCreate=p?[].concat(p,c):[c]}return{esModule:s,exports:u,options:l}}},function(t,e,n){\"use strict\";var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"multiselect\",class:{\"multiselect--active\":t.isOpen,\"multiselect--disabled\":t.disabled,\"multiselect--above\":t.isAbove},attrs:{tabindex:t.searchable?-1:t.tabindex},on:{focus:function(e){t.activate()},blur:function(e){!t.searchable&&t.deactivate()},keydown:[function(e){return\"button\"in e||!t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerForward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\")?e.target!==e.currentTarget?null:(e.preventDefault(),void t.pointerBackward()):null},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")||!t._k(e.keyCode,\"tab\",9,e.key,\"Tab\")?(e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null}],keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()}}},[t._t(\"caret\",[n(\"div\",{staticClass:\"multiselect__select\",on:{mousedown:function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}}})],{toggle:t.toggle}),t._v(\" \"),t._t(\"clear\",null,{search:t.search}),t._v(\" \"),n(\"div\",{ref:\"tags\",staticClass:\"multiselect__tags\"},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.visibleValues.length>0,expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[t._l(t.visibleValues,function(e){return[t._t(\"tag\",[n(\"span\",{staticClass:\"multiselect__tag\"},[n(\"span\",{domProps:{textContent:t._s(t.getOptionLabel(e))}}),t._v(\" \"),n(\"i\",{staticClass:\"multiselect__tag-icon\",attrs:{\"aria-hidden\":\"true\",tabindex:\"1\"},on:{keydown:function(n){if(!(\"button\"in n)&&t._k(n.keyCode,\"enter\",13,n.key,\"Enter\"))return null;n.preventDefault(),t.removeElement(e)},mousedown:function(n){n.preventDefault(),t.removeElement(e)}}})])],{option:e,search:t.search,remove:t.removeElement})]})],2),t._v(\" \"),t.internalValue&&t.internalValue.length>t.limit?[t._t(\"limit\",[n(\"strong\",{staticClass:\"multiselect__strong\",domProps:{textContent:t._s(t.limitText(t.internalValue.length-t.limit))}})])]:t._e(),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect__loading\"}},[t._t(\"loading\",[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.loading,expression:\"loading\"}],staticClass:\"multiselect__spinner\"})])],2),t._v(\" \"),n(\"input\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen&&t.searchable,expression:\"isOpen && searchable\"}],ref:\"search\",staticClass:\"multiselect__input\",style:t.inputStyle,attrs:{name:t.name,id:t.id,type:\"text\",autocomplete:\"off\",placeholder:t.placeholder,disabled:t.disabled,tabindex:t.tabindex},domProps:{value:t.search},on:{input:function(e){t.updateSearch(e.target.value)},focus:function(e){e.preventDefault(),t.activate()},blur:function(e){e.preventDefault(),t.deactivate()},keyup:function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"esc\",27,e.key,\"Escape\"))return null;t.deactivate()},keydown:[function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"down\",40,e.key,\"ArrowDown\"))return null;e.preventDefault(),t.pointerForward()},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"up\",38,e.key,\"ArrowUp\"))return null;e.preventDefault(),t.pointerBackward()},function(e){return\"button\"in e||!t._k(e.keyCode,\"enter\",13,e.key,\"Enter\")?(e.preventDefault(),e.stopPropagation(),e.target!==e.currentTarget?null:void t.addPointerElement(e)):null},function(e){if(!(\"button\"in e)&&t._k(e.keyCode,\"delete\",[8,46],e.key,[\"Backspace\",\"Delete\"]))return null;e.stopPropagation(),t.removeLastElement()}]}}),t._v(\" \"),t.isSingleLabelVisible?n(\"span\",{staticClass:\"multiselect__single\",on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"singleLabel\",[[t._v(t._s(t.currentOptionLabel))]],{option:t.singleValue})],2):t._e(),t._v(\" \"),t.isPlaceholderVisible?n(\"span\",{on:{mousedown:function(e){return e.preventDefault(),t.toggle(e)}}},[t._t(\"placeholder\",[n(\"span\",{staticClass:\"multiselect__single\"},[t._v(\"\\n \"+t._s(t.placeholder)+\"\\n \")])])],2):t._e()],2),t._v(\" \"),n(\"transition\",{attrs:{name:\"multiselect\"}},[n(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.isOpen,expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:{maxHeight:t.optimizedHeight+\"px\"},on:{focus:t.activate,mousedown:function(t){t.preventDefault()}}},[n(\"ul\",{staticClass:\"multiselect__content\",style:t.contentStyle},[t._t(\"beforeList\"),t._v(\" \"),t.multiple&&t.max===t.internalValue.length?n(\"li\",[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"maxElements\",[t._v(\"Maximum of \"+t._s(t.max)+\" options selected. First remove a selected option to select another.\")])],2)]):t._e(),t._v(\" \"),!t.max||t.internalValue.length<t.max?t._l(t.filteredOptions,function(e,i){return n(\"li\",{key:i,staticClass:\"multiselect__element\"},[e&&(e.$isLabel||e.$isDisabled)?t._e():n(\"span\",{staticClass:\"multiselect__option\",class:t.optionHighlight(i,e),attrs:{\"data-select\":e&&e.isTag?t.tagPlaceholder:t.selectLabelText,\"data-selected\":t.selectedLabelText,\"data-deselect\":t.deselectLabelText},on:{click:function(n){n.stopPropagation(),t.select(e)},mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.pointerSet(i)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2),t._v(\" \"),e&&(e.$isLabel||e.$isDisabled)?n(\"span\",{staticClass:\"multiselect__option\",class:t.groupHighlight(i,e),attrs:{\"data-select\":t.groupSelect&&t.selectGroupLabelText,\"data-deselect\":t.groupSelect&&t.deselectGroupLabelText},on:{mouseenter:function(e){if(e.target!==e.currentTarget)return null;t.groupSelect&&t.pointerSet(i)},mousedown:function(n){n.preventDefault(),t.selectGroup(e)}}},[t._t(\"option\",[n(\"span\",[t._v(t._s(t.getOptionLabel(e)))])],{option:e,search:t.search})],2):t._e()])}):t._e(),t._v(\" \"),n(\"li\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.showNoResults&&0===t.filteredOptions.length&&t.search&&!t.loading,expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[n(\"span\",{staticClass:\"multiselect__option\"},[t._t(\"noResult\",[t._v(\"No elements found. Consider changing the search query.\")])],2)]),t._v(\" \"),t._t(\"afterList\")],2)])])],2)},r=[],o={render:i,staticRenderFns:r};e.a=o}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-multiselect/dist/vue-multiselect.min.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/defaults.js\n// module id = 7\n// module chunks = 0","<template>\n\t<router-view></router-view>\n</template>\n\n<script>\nexport default {\n\tname: 'App',\n\tbeforeMount: function() {\n\t\t// importing server data into the store\n\t\tconst serverDataElmt = document.getElementById('serverData');\n\t\tif (serverDataElmt !== null) {\n\t\t\tthis.$store.commit('setServerData', JSON.parse(document.getElementById('serverData').dataset.server));\n\t\t}\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","<template>\n\t<div id=\"app\">\n\t\t<app-navigation :menu=\"menu\">\n\t\t\t<template slot=\"settings-content\">\n\t\t\t\t<div>\n\t\t\t\t\t<p>{{t('settings', 'Default quota :')}}</p>\n\t\t\t\t\t<multiselect :value=\"defaultQuota\" :options=\"quotaOptions\"\n\t\t\t\t\t\t\t\ttag-placeholder=\"create\" :placeholder=\"t('settings', 'Select default quota')\"\n\t\t\t\t\t\t\t\tlabel=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t\t:allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t\t\t@tag=\"validateQuota\" @input=\"setDefaultQuota\">\n\t\t\t\t\t</multiselect>\n\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showLanguages\" class=\"checkbox\"\n\t\t\t\t\t\t :checked=\"showLanguages\" v-model=\"showLanguages\">\n\t\t\t\t\t<label for=\"showLanguages\">{{t('settings', 'Show Languages')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showLastLogin\" class=\"checkbox\"\n\t\t\t\t\t\t :checked=\"showLastLogin\" v-model=\"showLastLogin\">\n\t\t\t\t\t<label for=\"showLastLogin\">{{t('settings', 'Show last login')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showUserBackend\" class=\"checkbox\"\n\t\t\t\t\t\t :checked=\"showUserBackend\" v-model=\"showUserBackend\">\n\t\t\t\t\t<label for=\"showUserBackend\">{{t('settings', 'Show user backend')}}</label>\n\t\t\t\t</div>\n\t\t\t\t<div>\n\t\t\t\t\t<input type=\"checkbox\" id=\"showStoragePath\" class=\"checkbox\"\n\t\t\t\t\t\t :checked=\"showStoragePath\" v-model=\"showStoragePath\">\n\t\t\t\t\t<label for=\"showStoragePath\">{{t('settings', 'Show storage path')}}</label>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</app-navigation>\n\t\t<user-list :users=\"users\" :showConfig=\"showConfig\" :selectedGroup=\"selectedGroup\" />\n\t</div>\n</template>\n\n<script>\nimport appNavigation from '../components/appNavigation';\nimport userList from '../components/userList';\nimport Vue from 'vue';\nimport VueLocalStorage from 'vue-localstorage'\nimport Multiselect from 'vue-multiselect';\nimport api from '../store/api';\n\nVue.use(VueLocalStorage)\nVue.use(VueLocalStorage)\n\nexport default {\n\tname: 'Users',\n\tprops: ['selectedGroup'],\n\tcomponents: {\n\t\tappNavigation,\n\t\tuserList,\n\t\tMultiselect\n\t},\n\tbeforeMount() {\n\t\tthis.$store.commit('initGroups', {\n\t\t\tgroups: this.$store.getters.getServerData.groups,\n\t\t\torderBy: this.$store.getters.getServerData.sortGroups,\n\t\t\tuserCount: this.$store.getters.getServerData.userCount\n\t\t});\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength');\n\t},\n\tdata() {\n\t\treturn {\n\t\t\t// default quota is unlimited\n\t\t\tunlimitedQuota: {id:'default', label:t('settings', 'Unlimited')},\n\t\t\t// temporary value used for multiselect change\n\t\t\tselectedQuota: false,\n\t\t\tshowConfig: {\n\t\t\t\tshowStoragePath: true,\n\t\t\t\tshowUserBackend: true,\n\t\t\t\tshowLastLogin: true,\n\t\t\t\tshowNewUserForm: true,\n\t\t\t\tshowLanguages: true\n\t\t\t}\n\t\t}\n\t},\n\tmethods: {\n\t\tgetLocalstorage(key) {\n\t\t\t// force initialization\n\t\t\tthis.showConfig[key] = this.$localStorage.get(key) === 'true';\n\t\t\treturn this.showConfig[key];\n\t\t},\n\t\tsetLocalStorage(key, status) {\n\t\t\tthis.showConfig[key] = status;\n\t\t\tthis.$localStorage.set(key, status);\n\t\t\treturn status;\n\t\t},\n\t\tremoveGroup(groupid) {\n\t\t\tlet self = this;\n\t\t\t// TODO migrate to a vue js confirm dialog component \n\t\t\tOC.dialogs.confirm(\n\t\t\t\tt('settings', 'You are about to remove the group {group}. The users will NOT be deleted.', {group: groupid}),\n\t\t\t\tt('settings','Please confirm the group removal '),\n\t\t\t\tfunction (success) {\n\t\t\t\t\tif (success) {\n\t\t\t\t\t\tself.$store.dispatch('removeGroup', groupid);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t/**\n\t\t * Dispatch default quota set request\n\t\t * \n\t\t * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @returns {string}\n\t\t */\n\t\tsetDefaultQuota(quota = 'none') {\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota\n\t\t\t}).then(() => {\n\t\t\t\tif (typeof quota !== 'object') {\n\t\t\t\t\tquota = {id: quota, label: quota};\n\t\t\t\t}\n\t\t\t\tthis.defaultQuota = quota;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Promise|boolean}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setDefaultQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setDefaultQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t},\n\t},\n\tcomputed: {\n\t\tusers() {\n\t\t\treturn this.$store.getters.getUsers;\n\t\t},\n\t\tloading() {\n\t\t\treturn Object.keys(this.users).length === 0;\n\t\t},\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\t\t// Local settings\n\t\tshowLanguages: {\n\t\t\tget: function() {return this.getLocalstorage('showLanguages')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showLanguages', status);\n\t\t\t}\n\t\t},\n\t\tshowLastLogin: {\n\t\t\tget: function() {return this.getLocalstorage('showLastLogin')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showLastLogin', status);\n\t\t\t}\n\t\t},\n\t\tshowUserBackend: {\n\t\t\tget: function() {return this.getLocalstorage('showUserBackend')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showUserBackend', status);\n\t\t\t}\n\t\t},\n\t\tshowStoragePath: {\n\t\t\tget: function() {return this.getLocalstorage('showStoragePath')},\n\t\t\tset: function(status) {\n\t\t\t\tthis.setLocalStorage('showStoragePath', status);\n\t\t\t}\n\t\t},\n\n\t\tuserCount() {\n\t\t\treturn this.$store.getters.getUserCount;\n\t\t},\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\n\t\t// default quota\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tlet quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\t\t// mapping saved values to objects\n\t\tdefaultQuota: {\n\t\t\tget: function() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota;\n\t\t\t\t}\n\t\t\t\tif (OC.Util.computerFileSize(this.settings.defaultQuota) > 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn {id:this.settings.defaultQuota, label:this.settings.defaultQuota};\n\t\t\t\t}\n\t\t\t\treturn this.unlimitedQuota; // unlimited\n\t\t\t},\n\t\t\tset: function(quota) {\n\t\t\t\tthis.selectedQuota = quota;\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t\t// BUILD APP NAVIGATION MENU OBJECT\n\t\tmenu() {\n\t\t\t// Data provided php side\n\t\t\tlet groups = this.$store.getters.getGroups;\n\t\t\tgroups = Array.isArray(groups) ? groups : [];\n\n\t\t\t// Map groups\n\t\t\tgroups = groups.map(group => {\n\t\t\t\tlet item = {};\n\t\t\t\titem.id = group.id.replace(' ', '_');\n\t\t\t\titem.classes = [];\t\t\t\t\t\t\t// empty classes, active will be set later\n\t\t\t\titem.router = {\t\t\t\t\t\t\t\t// router link to\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tparams: {selectedGroup: group.id}\n\t\t\t\t};\n\t\t\t\titem.text = group.name;\t\t\t\t\t\t// group name\n\t\t\t\titem.utils = {counter: group.usercount};\t// users count\n\n\t\t\t\tif (item.id !== 'admin' && item.id !== 'disabled') {\n\t\t\t\t\t// add delete button on real groups\n\t\t\t\t\tlet self = this;\n\t\t\t\t\titem.utils.actions = [{\n\t\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\t\ttext: t('settings', 'Remove group'),\n\t\t\t\t\t\taction: function() {self.removeGroup(group.id)}\n\t\t\t\t\t}];\n\t\t\t\t};\n\t\t\t\treturn item;\n\t\t\t});\n\n\t\t\t// Adjust data\n\t\t\tlet adminGroup = groups.find(group => group.id == 'admin');\n\t\t\tlet disabledGroupIndex = groups.findIndex(group => group.id == 'disabled');\n\t\t\tlet disabledGroup = groups[disabledGroupIndex];\n\t\t\tif (adminGroup && adminGroup.text) {\n\t\t\t\tadminGroup.text = t('settings', 'Admins'); // rename admin group\n\t\t\t}\n\t\t\tif (disabledGroup && disabledGroup.text) {\n\t\t\t\tdisabledGroup.text = t('settings', 'Disabled users'); // rename disabled group\n\t\t\t\tif (disabledGroup.utils.counter === 0) {\n\t\t\t\t\tgroups.splice(disabledGroupIndex, 1); // remove disabled if empty\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add everyone group\n\t\t\tgroups.unshift({\n\t\t\t\tid: 'everyone',\n\t\t\t\tclasses: [],\n\t\t\t\trouter: {name:'users'},\n\t\t\t\ttext: t('settings', 'Everyone'),\n\t\t\t\tutils: {counter: this.userCount}\n\t\t\t});\n\n\t\t\t// Set current group as active\n\t\t\tlet activeGroup = groups.findIndex(group => group.id === this.selectedGroup);\n\t\t\tif (activeGroup >= 0) {\n\t\t\t\tgroups[activeGroup].classes.push('active');\n\t\t\t} else {\n\t\t\t\tgroups[0].classes.push('active');\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn {\n\t\t\t\tid: 'usergrouplist',\n\t\t\t\tnew: {\n\t\t\t\t\tid:'new-user-button',\n\t\t\t\t\ttext: t('settings','New user'),\n\t\t\t\t\ticon: 'icon-add',\n\t\t\t\t\taction: () => this.showConfig.showNewUserForm=!this.showConfig.showNewUserForm\n\t\t\t\t},\n\t\t\t\titems: groups\n\t\t\t}\n\t\t},\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/views/Users.vue","<template>\n\t<div id=\"app-navigation\" :class=\"{'icon-loading': menu.loading}\">\n\t\t<div class=\"app-navigation-new\" v-if=\"menu.new\">\n\t\t\t<button type=\"button\" :id=\"menu.new.id\" :class=\"menu.new.icon\" @click=\"menu.new.action\">{{menu.new.text}}</button>\n\t\t</div>\n\t\t<ul :id=\"menu.id\">\n\t\t\t<navigation-item v-for=\"(item, key) in menu.items\" :item=\"item\" :key=\"key\" />\n\t\t</ul>\n\t\t<div id=\"app-settings\">\n\t\t\t<div id=\"app-settings-header\">\n\t\t\t\t<button class=\"settings-button\"\n\t\t\t\t\t\tdata-apps-slide-toggle=\"#app-settings-content\"\n\t\t\t\t>{{t('settings', 'Settings')}}</button>\n\t\t\t</div>\n\t\t\t<div id=\"app-settings-content\">\n\t\t\t\t<slot name=\"settings-content\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport navigationItem from './appNavigation/navigationItem';\n\nexport default {\n\tname: 'appNavigation',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tnavigationItem\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/appNavigation.vue","<template>\n\t<li :id=\"item.id\" :class=\"[{'icon-loading-small': item.loading, 'open': item.opened, 'collapsible': item.collapsible&&item.children&&item.children.length>0 }, item.classes]\">\n\n\t\t<!-- Bullet -->\n\t\t<div v-if=\"item.bullet\" class=\"app-navigation-entry-bullet\" :style=\"{ backgroundColor: item.bullet }\"></div>\n\n\t\t<!-- Main link -->\n\t\t<a v-if=\"item.href\" :href=\"(item.href) ? item.href : '#' \" @click=\"toggleCollapse\" :class=\"item.icon\" >\n\t\t\t<img v-if=\"item.iconUrl\" :alt=\"item.text\" :src=\"item.iconUrl\">\n\t\t\t{{item.text}}\n\t\t</a>\n\n\t\t<!-- Router link if specified. href OR router -->\n\t\t<router-link :to=\"item.router\" v-else-if=\"item.router\" :class=\"item.icon\" >\n\t\t\t<img v-if=\"item.iconUrl\" :alt=\"item.text\" :src=\"item.iconUrl\">\n\t\t\t{{item.text}}\n\t\t</router-link>\t\n\n\t\t<!-- Popover, counter and button(s) -->\n\t\t<div v-if=\"item.utils\" class=\"app-navigation-entry-utils\">\n\t\t\t<ul>\n\t\t\t\t<!-- counter -->\n\t\t\t\t<li v-if=\"Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-counter\">{{item.utils.counter}}</li>\n\n\t\t\t\t<!-- first action if only one action and counter -->\n\t\t\t\t<li v-if=\"item.utils.actions && item.utils.actions.length === 1 && Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button @click=\"item.utils.actions[0].action\" :class=\"item.utils.actions[0].icon\" :title=\"item.utils.actions[0].text\"></button>\n\t\t\t\t</li>\n\n\t\t\t\t<!-- second action only two actions and no counter -->\n\t\t\t\t<li v-else-if=\"item.utils.actions && item.utils.actions.length === 2 && !Number.isInteger(item.utils.counter)\"\n\t\t\t\t\tv-for=\"action in item.utils.actions\" :key=\"action.action\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button @click=\"action.action\" :class=\"action.icon\" :title=\"action.text\"></button>\n\t\t\t\t</li>\n\n\t\t\t\t<!-- menu if only at least one action and counter OR two actions and no counter-->\n\t\t\t\t<li v-else-if=\"item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)\"\n\t\t\t\t\tclass=\"app-navigation-entry-utils-menu-button\">\n\t\t\t\t\t<button v-click-outside=\"hideMenu\" @click=\"showMenu\" ></button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</div>\n\n\t\t<!-- if more than 2 actions or more than 1 actions with counter -->\n\t\t<div v-if=\"item.utils && item.utils.actions && item.utils.actions.length > 1 && (Number.isInteger(item.utils.counter) || item.utils.actions.length > 2)\"\n\t\t\t class=\"app-navigation-entry-menu\" :class=\"{ 'open': openedMenu }\">\n\t\t\t <popover-menu :menu=\"item.utils.actions\"/>\n\t\t</div>\n\n\t\t<!-- undo entry -->\n\t\t<div class=\"app-navigation-entry-deleted\" v-if=\"item.undo\">\n\t\t\t<div class=\"app-navigation-entry-deleted-description\">{{item.undo.text}}</div>\n\t\t\t<button class=\"app-navigation-entry-deleted-button icon-history\" :title=\"t('settings', 'Undo')\"></button>\n\t\t</div>\n\n\t\t<!-- edit entry -->\n\t\t<div class=\"app-navigation-entry-edit\" v-if=\"item.edit\">\n\t\t\t<form>\n\t\t\t\t<input type=\"text\" v-model=\"item.text\">\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t\t\t<input type=\"submit\" value=\"\" class=\"icon-close\" @click.stop.prevent=\"cancelEdit\">\n\t\t\t</form>\n\t\t</div>\n\n\t\t<!-- if the item has children, inject the component with proper data -->\n\t\t<ul v-if=\"item.children\">\n\t\t\t<navigation-item v-for=\"(item, key) in item.children\" :item=\"item\" :key=\"key\" />\n\t\t</ul>\n\t</li>\n</template>\n\n<script>\nimport popoverMenu from '../popoverMenu';\nimport ClickOutside from 'vue-click-outside';\nimport Vue from 'vue';\n\nexport default {\n\tname: 'navigationItem',\n\tprops: ['item'],\n\tcomponents: {\n\t\tpopoverMenu\n\t},\n\tdirectives: {\n\t\tClickOutside\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topenedMenu: false\n\t\t}\n\t},\n\tmethods: {\n\t\tshowMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\t\ttoggleCollapse() {\n\t\t\t// if item.opened isn't set, Vue won't trigger view updates https://vuejs.org/v2/api/#Vue-set\n\t\t\t// ternary is here to detect the undefined state of item.opened\n\t\t\tVue.set(this.item, 'opened', this.item.opened ? !this.item.opened : true);\n\t\t},\n\t\tcancelEdit() {\n\t\t\t// remove the editing class\n\t\t\tif (Array.isArray(this.item.classes))\n\t\t\t\tthis.item.classes = this.item.classes.filter(item => item !== 'editing');\n\t\t}\n\t},\n\tmounted() {\n\t\t// prevent click outside event with popupItem.\n\t\tthis.popupItem = this.$el;\n\t},\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/appNavigation/navigationItem.vue","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverMenu.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverMenu.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-24e4fcfe\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./popoverMenu.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/popoverMenu.vue\n// module id = 12\n// module chunks = 0","<template>\n\t<ul>\n\t\t<popover-item v-for=\"(item, key) in menu\" :item=\"item\" :key=\"key\" />\n\t</ul>\n</template>\n\n\n<script>\nimport popoverItem from './popoverMenu/popoverItem';\n\nexport default {\n\tname: 'popoverMenu',\n\tprops: ['menu'],\n\tcomponents: {\n\t\tpopoverItem\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/popoverMenu.vue","<template>\n\t<li>\n\t\t<!-- If item.href is set, a link will be directly used -->\n\t\t<a @click=\"item.action\" v-if=\"item.href\" :href=\"(item.href) ? item.href : '#' \">\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</a>\n\t\t<!-- If item.action is set instead, a button will be used -->\n\t\t<button @click=\"item.action\" v-else-if=\"item.action\">\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</button>\n\t\t<!-- If item.longtext is set AND the item does not have an action -->\n\t\t<span v-else>\n\t\t\t<span :class=\"item.icon\"></span>\n\t\t\t<span v-if=\"item.text\">{{item.text}}</span>\n\t\t\t<p v-else-if=\"item.longtext\">{{item.longtext}}</p>\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nexport default {\n\tprops: ['item']\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/popoverMenu/popoverItem.vue","function validate(binding) {\r\n if (typeof binding.value !== 'function') {\r\n console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.')\r\n return false\r\n }\r\n\r\n return true\r\n}\r\n\r\nfunction isPopup(popupItem, elements) {\r\n if (!popupItem || !elements)\r\n return false\r\n\r\n for (var i = 0, len = elements.length; i < len; i++) {\r\n try {\r\n if (popupItem.contains(elements[i])) {\r\n return true\r\n }\r\n if (elements[i].contains(popupItem)) {\r\n return false\r\n }\r\n } catch(e) {\r\n return false\r\n }\r\n }\r\n\r\n return false\r\n}\r\n\r\nfunction isServer(vNode) {\r\n return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer\r\n}\r\n\r\nexports = module.exports = {\r\n bind: function (el, binding, vNode) {\r\n if (!validate(binding)) return\r\n\r\n // Define Handler and cache it on the element\r\n function handler(e) {\r\n if (!vNode.context) return\r\n\r\n // some components may have related popup item, on which we shall prevent the click outside event handler.\r\n var elements = e.path || (e.composedPath && e.composedPath())\r\n elements && elements.length > 0 && elements.unshift(e.target)\r\n \r\n if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return\r\n\r\n el.__vueClickOutside__.callback(e)\r\n }\r\n\r\n // add Event Listeners\r\n el.__vueClickOutside__ = {\r\n handler: handler,\r\n callback: binding.value\r\n }\r\n !isServer(vNode) && document.addEventListener('click', handler)\r\n },\r\n\r\n update: function (el, binding) {\r\n if (validate(binding)) el.__vueClickOutside__.callback = binding.value\r\n },\r\n \r\n unbind: function (el, binding, vNode) {\r\n // Remove Event Listeners\r\n !isServer(vNode) && document.removeEventListener('click', el.__vueClickOutside__.handler)\r\n delete el.__vueClickOutside__\r\n }\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-click-outside/index.js\n// module id = 15\n// module chunks = 0","<template>\n\t<div id=\"app-content\" class=\"user-list-grid\" v-on:scroll.passive=\"onScroll\">\n\t\t<div class=\"row\" id=\"grid-header\" :class=\"{'sticky': scrolled && !showConfig.showNewUserForm}\">\n\t\t\t<div id=\"headerAvatar\" class=\"avatar\"></div>\n\t\t\t<div id=\"headerName\" class=\"name\">{{ t('settings', 'Username') }}</div>\n\t\t\t<div id=\"headerDisplayName\" class=\"displayName\">{{ t('settings', 'Full name') }}</div>\n\t\t\t<div id=\"headerPassword\" class=\"password\">{{ t('settings', 'Password') }}</div>\n\t\t\t<div id=\"headerAddress\" class=\"mailAddress\">{{ t('settings', 'Email') }}</div>\n\t\t\t<div id=\"headerGroups\" class=\"groups\">{{ t('settings', 'Groups') }}</div>\n\t\t\t<div id=\"headerSubAdmins\" class=\"subadmins\"\n\t\t\t\t v-if=\"subAdminsGroups.length>0\">{{ t('settings', 'Group admin for') }}</div>\n\t\t\t<div id=\"headerQuota\" class=\"quota\">{{ t('settings', 'Quota') }}</div>\n\t\t\t<div id=\"headerLanguages\" class=\"languages\"\n\t\t\t\t v-if=\"showConfig.showLanguages\">{{ t('settings', 'Languages') }}</div>\n\t\t\t<div class=\"headerStorageLocation storageLocation\"\n\t\t\t\t v-if=\"showConfig.showStoragePath\">{{ t('settings', 'Storage location') }}</div>\n\t\t\t<div class=\"headerUserBackend userBackend\"\n\t\t\t\t v-if=\"showConfig.showUserBackend\">{{ t('settings', 'User backend') }}</div>\n\t\t\t<div class=\"headerLastLogin lastLogin\" \n\t\t\t\t v-if=\"showConfig.showLastLogin\">{{ t('settings', 'Last login') }}</div>\n\t\t\t<div class=\"userActions\"></div>\n\t\t</div>\n\n\t\t<form class=\"row\" id=\"new-user\" v-show=\"showConfig.showNewUserForm\"\n\t\t\t v-on:submit.prevent=\"createUser\" :disabled=\"loading\"\n\t\t\t :class=\"{'sticky': scrolled && showConfig.showNewUserForm}\">\n\t\t\t<div :class=\"loading?'icon-loading-small':'icon-add'\"></div>\n\t\t\t<div class=\"name\">\n\t\t\t\t<input id=\"newusername\" type=\"text\" required v-model=\"newUser.id\"\n\t\t\t\t\t :placeholder=\"t('settings', 'User name')\" name=\"username\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\"\n\t\t\t\t\t pattern=\"[a-zA-Z0-9 _\\.@\\-']+\">\n\t\t\t</div>\n\t\t\t<div class=\"displayName\">\n\t\t\t\t<input id=\"newdisplayname\" type=\"text\" v-model=\"newUser.displayName\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Display name')\" name=\"displayname\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\">\n\t\t\t</div>\n\t\t\t<div class=\"password\">\n\t\t\t\t<input id=\"newuserpassword\" type=\"password\" v-model=\"newUser.password\"\n\t\t\t\t\t :required=\"newUser.mailAddress===''\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Password')\" name=\"password\"\n\t\t\t\t\t autocomplete=\"new-password\" autocapitalize=\"none\" autocorrect=\"off\"\n\t\t\t\t\t :minlength=\"minPasswordLength\">\n\t\t\t</div>\n\t\t\t<div class=\"mailAddress\">\n\t\t\t\t<input id=\"newemail\" type=\"email\" v-model=\"newUser.mailAddress\"\n\t\t\t\t\t :required=\"newUser.password===''\"\n\t\t\t\t\t :placeholder=\"t('settings', 'Mail address')\" name=\"email\"\n\t\t\t\t\t autocomplete=\"off\" autocapitalize=\"none\" autocorrect=\"off\">\n\t\t\t</div>\n\t\t\t<div class=\"groups\">\n\t\t\t\t<multiselect :options=\"groups\" v-model=\"newUser.groups\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Add user in group')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :multiple=\"true\" :close-on-select=\"false\">\n\t\t\t\t\t<span slot=\"noResult\">{{t('settings','No result')}}</span>\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"subadmins\" v-if=\"subAdminsGroups.length>0\">\n\t\t\t\t<multiselect :options=\"subAdminsGroups\" v-model=\"newUser.subAdminsGroups\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Set user as admin for')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :multiple=\"true\" :close-on-select=\"false\">\n\t\t\t\t\t<span slot=\"noResult\">{{t('settings','No result')}}</span>\n\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"quota\">\n\t\t\t\t<multiselect :options=\"quotaOptions\" v-model=\"newUser.quota\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Select user quota')\"\n\t\t\t\t\t\t\t label=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t \t @tag=\"validateQuota\" >\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"languages\" v-if=\"showConfig.showLanguages\">\n\t\t\t\t<multiselect :options=\"languages\" v-model=\"newUser.language\"\n\t\t\t\t\t\t\t :placeholder=\"t('settings', 'Default language')\"\n\t\t\t\t\t\t\t label=\"name\" track-by=\"code\" class=\"multiselect-vue\"\n\t\t\t\t\t\t\t :allowEmpty=\"false\" group-values=\"languages\" group-label=\"label\">\n\t\t\t\t</multiselect>\n\t\t\t</div>\n\t\t\t<div class=\"storageLocation\" v-if=\"showConfig.showStoragePath\"></div>\n\t\t\t<div class=\"userBackend\" v-if=\"showConfig.showUserBackend\"></div>\n\t\t\t<div class=\"lastLogin\" v-if=\"showConfig.showLastLogin\"></div>\n\t\t\t<div class=\"userActions\">\n\t\t\t\t<input type=\"submit\" id=\"newsubmit\" class=\"button primary icon-checkmark-white has-tooltip\"\n\t\t\t\t\t value=\"\" :title=\"t('settings', 'Add a new user')\">\n\t\t\t\t<input type=\"reset\" id=\"newreset\" class=\"button icon-close has-tooltip\" @click=\"resetForm\"\n\t\t\t\t\t value=\"\" :title=\"t('settings', 'Cancel and reset the form')\">\n\t\t\t</div>\n\t\t</form>\n\n\t\t<user-row v-for=\"(user, key) in filteredUsers\" :user=\"user\" :key=\"key\" :settings=\"settings\" :showConfig=\"showConfig\"\n\t\t\t\t :groups=\"groups\" :subAdminsGroups=\"subAdminsGroups\" :quotaOptions=\"quotaOptions\" :languages=\"languages\" />\n\t\t<infinite-loading @infinite=\"infiniteHandler\" ref=\"infiniteLoading\">\n\t\t\t<div slot=\"spinner\"><div class=\"users-icon-loading icon-loading\"></div></div>\n\t\t\t<div slot=\"no-more\"><div class=\"users-list-end\">— {{t('settings', 'no more results')}} —</div></div>\n\t\t\t<div slot=\"no-results\">\n\t\t\t\t<div id=\"emptycontent\">\n\t\t\t\t\t<div class=\"icon-contacts-dark\"></div>\n\t\t\t\t\t<h2>{{t('settings', 'No users in here')}}</h2>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</infinite-loading>\n\t</div>\n</template>\n\n<script>\nimport userRow from './userList/userRow';\nimport Multiselect from 'vue-multiselect';\nimport InfiniteLoading from 'vue-infinite-loading';\nimport Vue from 'vue';\n\nexport default {\n\tname: 'userList',\n\tprops: ['users', 'showConfig', 'selectedGroup'],\n\tcomponents: {\n\t\tuserRow,\n\t\tMultiselect,\n\t\tInfiniteLoading\n\t},\n\tdata() {\n\t\tlet unlimitedQuota = {id:'none', label:t('settings', 'Unlimited')},\n\t\t\tdefaultQuota = {id:'default', label:t('settings', 'Default quota')};\n\t\treturn {\n\t\t\tunlimitedQuota: unlimitedQuota,\n\t\t\tdefaultQuota: defaultQuota,\n\t\t\tloading: false,\n\t\t\tscrolled: false,\n\t\t\tnewUser: {\n\t\t\t\tid:'',\n\t\t\t\tdisplayName:'',\n\t\t\t\tpassword:'',\n\t\t\t\tmailAddress:'',\n\t\t\t\tgroups: [],\n\t\t\t\tsubAdminsGroups: [],\n\t\t\t\tquota: defaultQuota,\n\t\t\t\tlanguage: {code: 'en', name: t('settings', 'Default language')}\n\t\t\t}\n\t\t};\n\t},\n\tmounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'));\n\t\t}\n\t\t/** \n\t\t * Init default language from server data. The use of this.settings\n\t\t * requires a computed variable,vwhich break the v-model binding of the form,\n\t\t * this is a much easier solution than getter and setter\n\t\t */\n\t\tVue.set(this.newUser.language, 'code', this.settings.defaultLanguage);\n\t},\n\tcomputed: {\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData;\n\t\t},\n\t\tfilteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\tlet disabledUsers = this.users.filter(user => user.enabled !== true);\n\t\t\t\tif (disabledUsers.length===0 && this.$refs.infiniteLoading && this.$refs.infiniteLoading.isComplete) {\n\t\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\t\tthis.$router.push('users');\n\t\t\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t\t\t}\n\t\t\t\treturn disabledUsers;\n\t\t\t}\n\t\t\treturn this.users.filter(user => user.enabled === true);\n\t\t},\n\t\tgroups() {\n\t\t\t// data provided php side + remove the disabled group\n\t\t\treturn this.$store.getters.getGroups.filter(group => group.id !== 'disabled');\n\t\t},\n\t\tsubAdminsGroups() {\n\t\t\t// data provided php side\n\t\t\treturn this.$store.getters.getServerData.subadmingroups;\n\t\t},\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tlet quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({id:cur, label:cur}), []);\n\t\t\t// add default presets\n\t\t\tquotaPreset.unshift(this.unlimitedQuota);\n\t\t\tquotaPreset.unshift(this.defaultQuota);\n\t\t\treturn quotaPreset;\n\t\t},\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset;\n\t\t},\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit;\n\t\t},\n\n\t\t/* LANGUAGES */\n\t\tlanguages() {\n\t\t\treturn Array(\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonlanguages\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'All languages'),\n\t\t\t\t\tlanguages: this.settings.languages.languages\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t},\n\twatch: {\n\t\t// watch url change and group select\n\t\tselectedGroup: function (val, old) {\n\t\t\tthis.$store.commit('resetUsers');\n\t\t\tthis.$refs.infiniteLoading.$emit('$InfiniteLoading:reset');\n\t\t}\n\t},\n\tmethods: {\n\t\tonScroll(event) {\n\t\t\tthis.scrolled = event.target.scrollTop>0;\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Object}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota !== null && validQuota > 0) {\n\t\t\t\t// unify format output\n\t\t\t\tquota = OC.Util.humanFileSize(OC.Util.computerFileSize(quota));\n\t\t\t\treturn this.newUser.quota = {id: quota, label: quota};\n\t\t\t}\n\t\t\t// Default is unlimited\n\t\t\treturn this.newUser.quota = this.quotaOptions[0];\n\t\t},\n\n\t\tinfiniteHandler($state) {\n\t\t\tthis.$store.dispatch('getUsers', {\n\t\t\t\toffset: this.usersOffset,\n\t\t\t\tlimit: this.usersLimit,\n\t\t\t\tgroup: this.selectedGroup !== 'disabled' ? this.selectedGroup : ''})\n\t\t\t\t.then((response) => {response?$state.loaded():$state.complete()});\n\t\t},\n\n\t\tresetForm() {\n\t\t\t// revert form to original state\n\t\t\tObject.assign(this.newUser, this.$options.data.call(this).newUser);\n\t\t\tthis.loading = false;\n\t\t},\n\t\tcreateUser() {\n\t\t\tthis.loading = true;\n\t\t\tthis.$store.dispatch('addUser', {\n\t\t\t\tuserid: this.newUser.id,\n\t\t\t\tpassword: this.newUser.password,\n\t\t\t\temail: this.newUser.mailAddress,\n\t\t\t\tgroups: this.newUser.groups.map(group => group.id),\n\t\t\t\tsubadmin: this.newUser.subAdminsGroups.map(group => group.id),\n\t\t\t\tquota: this.newUser.quota.id,\n\t\t\t\tlanguage: this.newUser.language.code,\n\t\t\t}).then(() => this.resetForm());\n\t\t}\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/userList.vue","<template>\n\t<div class=\"row\" :class=\"{'disabled': loading.delete || loading.disable}\">\n\t\t<div class=\"avatar\" :class=\"{'icon-loading-small': loading.delete || loading.disable}\">\n\t\t\t<img alt=\"\" width=\"32\" height=\"32\" :src=\"generateAvatar(user.id, 32)\"\n\t\t\t\t :srcset=\"generateAvatar(user.id, 64)+' 2x, '+generateAvatar(user.id, 128)+' 4x'\"\n\t\t\t\t v-if=\"!loading.delete && !loading.disable\">\n\t\t</div>\n\t\t<div class=\"name\">{{user.id}}</div>\n\t\t<form class=\"displayName\" :class=\"{'icon-loading-small': loading.displayName}\" v-on:submit.prevent=\"updateDisplayName\">\n\t\t\t<input :id=\"'displayName'+user.id+rand\" type=\"text\"\n\t\t\t\t\t:disabled=\"loading.displayName||loading.all\"\n\t\t\t\t\t:value=\"user.displayname\" ref=\"displayName\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<form class=\"password\" v-if=\"settings.canChangePassword\" :class=\"{'icon-loading-small': loading.password}\"\n\t\t\t v-on:submit.prevent=\"updatePassword\">\n\t\t\t<input :id=\"'password'+user.id+rand\" type=\"password\" required\n\t\t\t\t\t:disabled=\"loading.password||loading.all\" :minlength=\"minPasswordLength\"\n\t\t\t\t\tvalue=\"\" :placeholder=\"t('settings', 'New password')\" ref=\"password\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<div v-else></div>\n\t\t<form class=\"mailAddress\" :class=\"{'icon-loading-small': loading.mailAddress}\" v-on:submit.prevent=\"updateEmail\">\n\t\t\t<input :id=\"'mailAddress'+user.id+rand\" type=\"email\"\n\t\t\t\t\t:disabled=\"loading.mailAddress||loading.all\"\n\t\t\t\t\t:value=\"user.email\" ref=\"mailAddress\"\n\t\t\t\t\tautocomplete=\"new-password\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" />\n\t\t\t<input type=\"submit\" class=\"icon-confirm\" value=\"\" />\n\t\t</form>\n\t\t<div class=\"groups\" :class=\"{'icon-loading-small': loading.groups}\">\n\t\t\t<multiselect :value=\"userGroups\" :options=\"groups\" :disabled=\"loading.groups||loading.all\"\n\t\t\t\t\t\t tag-placeholder=\"create\" :placeholder=\"t('settings', 'Add user in group')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :limit=\"2\" :limitText=\"limitGroups\"\n\t\t\t\t\t\t :multiple=\"true\" :taggable=\"true\" :closeOnSelect=\"false\"\n\t\t\t\t\t\t @tag=\"createGroup\" @select=\"addUserGroup\" @remove=\"removeUserGroup\">\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"subadmins\" v-if=\"subAdminsGroups.length>0\" :class=\"{'icon-loading-small': loading.subadmins}\">\n\t\t\t<multiselect :value=\"userSubAdminsGroups\" :options=\"subAdminsGroups\" :disabled=\"loading.subadmins||loading.all\"\n\t\t\t\t\t\t :placeholder=\"t('settings', 'Set user as admin for')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :limit=\"2\" :limitText=\"limitGroups\"\n\t\t\t\t\t\t :multiple=\"true\" :closeOnSelect=\"false\"\n\t\t\t\t\t\t @select=\"addUserSubAdmin\" @remove=\"removeUserSubAdmin\">\n\t\t\t\t<span slot=\"noResult\">{{t('settings','No result')}}</span>\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"quota\" :class=\"{'icon-loading-small': loading.quota}\">\n\t\t\t<multiselect :value=\"userQuota\" :options=\"quotaOptions\" :disabled=\"loading.quota||loading.all\"\n\t\t\t\t\t\t tag-placeholder=\"create\" :placeholder=\"t('settings', 'Select user quota')\"\n\t\t\t\t\t\t label=\"label\" track-by=\"id\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :allowEmpty=\"false\" :taggable=\"true\"\n\t\t\t\t\t\t @tag=\"validateQuota\" @input=\"setUserQuota\">\n\t\t\t</multiselect>\n\t\t\t<progress class=\"quota-user-progress\" :class=\"{'warn':usedQuota>80}\" :value=\"usedQuota\" max=\"100\"></progress>\n\t\t</div>\n\t\t<div class=\"languages\" :class=\"{'icon-loading-small': loading.languages}\"\n\t\t\t v-if=\"showConfig.showLanguages\">\n\t\t\t<multiselect :value=\"userLanguage\" :options=\"languages\" :disabled=\"loading.languages||loading.all\"\n\t\t\t\t\t\t :placeholder=\"t('settings', 'No language set')\"\n\t\t\t\t\t\t label=\"name\" track-by=\"code\" class=\"multiselect-vue\"\n\t\t\t\t\t\t :allowEmpty=\"false\" group-values=\"languages\" group-label=\"label\"\n\t\t\t\t\t\t @input=\"setUserLanguage\">\n\t\t\t</multiselect>\n\t\t</div>\n\t\t<div class=\"storageLocation\" v-if=\"showConfig.showStoragePath\">{{user.storageLocation}}</div>\n\t\t<div class=\"userBackend\" v-if=\"showConfig.showUserBackend\">{{user.backend}}</div>\n\t\t<div class=\"lastLogin\" v-if=\"showConfig.showLastLogin\" v-tooltip.auto=\"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''\">\n\t\t\t{{user.lastLogin>0 ? OC.Util.relativeModifiedDate(user.lastLogin) : t('settings','Never')}}\n\t\t</div>\n\t\t<div class=\"userActions\">\n\t\t\t<div class=\"toggleUserActions\" v-if=\"OC.currentUser !== user.id && user.id !== 'admin' && !loading.all\">\n\t\t\t\t<div class=\"icon-more\" v-click-outside=\"hideMenu\" @click=\"showMenu\"></div>\n\t\t\t\t<div class=\"popovermenu\" :class=\"{ 'open': openedMenu }\">\n\t\t\t\t\t<popover-menu :menu=\"userActions\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n</template>\n\n<script>\nimport popoverMenu from '../popoverMenu';\nimport ClickOutside from 'vue-click-outside';\nimport Multiselect from 'vue-multiselect';\nimport Vue from 'vue'\nimport VTooltip from 'v-tooltip'\n\nVue.use(VTooltip)\n\nexport default {\n\tname: 'userRow',\n\tprops: ['user', 'settings', 'groups', 'subAdminsGroups', 'quotaOptions', 'showConfig', 'languages'],\n\tcomponents: {\n\t\tpopoverMenu,\n\t\tMultiselect\n\t},\n\tdirectives: {\n\t\tClickOutside\n\t},\n\tmounted() {\n\t\t// required if popup needs to stay opened after menu click\n\t\t// since we only have disable/delete actions, let's close it directly\n\t\t// this.popupItem = this.$el;\n\t},\n\tdata() {\n\t\treturn {\n\t\t\trand: parseInt(Math.random() * 1000),\n\t\t\topenedMenu: false,\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tdisplayName: false,\n\t\t\t\tpassword: false,\n\t\t\t\tmailAddress: false,\n\t\t\t\tgroups: false,\n\t\t\t\tsubadmins: false,\n\t\t\t\tquota: false,\n\t\t\t\tdelete: false,\n\t\t\t\tdisable: false,\n\t\t\t\tlanguages: false\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\t/* USER POPOVERMENU ACTIONS */\n\t\tuserActions() {\n\t\t\treturn [{\n\t\t\t\ticon: 'icon-delete',\n\t\t\t\ttext: t('settings','Delete user'),\n\t\t\t\taction: this.deleteUser\n\t\t\t},{\n\t\t\t\ticon: this.user.enabled ? 'icon-close' : 'icon-add',\n\t\t\t\ttext: this.user.enabled ? t('settings','Disable user') : t('settings','Enable user'),\n\t\t\t\taction: this.enableDisableUser\n\t\t\t}]\n\t\t},\n\n\t\t/* GROUPS MANAGEMENT */\n\t\tuserGroups() {\n\t\t\tlet userGroups = this.groups.filter(group => this.user.groups.includes(group.id));\n\t\t\treturn userGroups;\n\t\t},\n\t\tuserSubAdminsGroups() {\n\t\t\tlet userSubAdminsGroups = this.subAdminsGroups.filter(group => this.user.subadmin.includes(group.id));\n\t\t\treturn userSubAdminsGroups;\n\t\t},\n\n\t\t/* QUOTA MANAGEMENT */\n\t\tusedQuota() {\n\t\t\tlet quota = this.user.quota.quota;\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100));\n\t\t\t} else {\n\t\t\t\tvar usedInGB = this.user.quota.used / (10 * Math.pow(2, 30));\n\t\t\t\t//asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota\n\t\t\t\tquota = 95 * (1 - (1 / (usedInGB + 1)));\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota;\n\t\t},\n\t\t// Mapping saved values to objects\n\t\tuserQuota() {\n\t\t\tif (this.user.quota.quota > 0) {\n\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\tlet humanQuota = OC.Util.humanFileSize(this.user.quota.quota);\n\t\t\t\tlet userQuota = this.quotaOptions.find(quota => quota.id === humanQuota);\n\t\t\t\treturn userQuota ? userQuota : {id:humanQuota, label:humanQuota};\n\t\t\t} else if (this.user.quota.quota === 0 || this.user.quota.quota === 'default') {\n\t\t\t\t// default quota is replaced by the proper value on load\n\t\t\t\treturn this.quotaOptions[0];\n\t\t\t}\n\t\t\treturn this.quotaOptions[1]; // unlimited\n\t\t},\n\n\t\t/* PASSWORD POLICY? */\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength;\n\t\t},\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage() {\n\t\t\tlet availableLanguages = this.languages[0].languages.concat(this.languages[1].languages);\n\t\t\tlet userLang = availableLanguages.find(lang => lang.code === this.user.language);\n\t\t\tif (typeof userLang !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language\n\t\t\t\t}\n\t\t\t} else if(this.user.language === '') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn userLang;\n\t\t}\n\t},\n\tmethods: {\n\t\t/* MENU HANDLING */\n\t\tshowMenu() {\n\t\t\tthis.openedMenu = true;\n\t\t},\n\t\thideMenu() {\n\t\t\tthis.openedMenu = false;\n\t\t},\n\n\t\t/**\n\t\t * Generate avatar url\n\t\t * \n\t\t * @param {string} user The user name\n\t\t * @param {int} size Size integer, default 32\n\t\t * @returns {string}\n\t\t */\n\t\tgenerateAvatar(user, size=32) {\n\t\t\treturn OC.generateUrl(\n\t\t\t\t'/avatar/{user}/{size}?v={version}',\n\t\t\t\t{\n\t\t\t\t\tuser: user,\n\t\t\t\t\tsize: size,\n\t\t\t\t\tversion: oc_userconfig.avatar.version\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\n\t\t/**\n\t\t * Format the limit text in the selected options\n\t\t * \n\t\t * @param {int} count elements left\n\t\t * @returns {string}\n\t\t */\n\t\tlimitGroups(count) {\n\t\t\treturn '+'+count;\n\t\t},\n\n\t\tdeleteUser() {\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tlet userid = this.user.id;\n\t\t\treturn this.$store.dispatch('deleteUser', {userid})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t});\n\t\t},\n\n\t\tenableDisableUser() {\n\t\t\tthis.loading.delete = true;\n\t\t\tthis.loading.all = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet enabled = !this.user.enabled;\n\t\t\treturn this.$store.dispatch('enableDisableUser', {userid, enabled})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user displayName\n\t\t * \n\t\t * @param {string} displayName The display name\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdateDisplayName() {\n\t\t\tlet displayName = this.$refs.displayName.value;\n\t\t\tthis.loading.displayName = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'displayname',\n\t\t\t\tvalue: displayName\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.displayName = false;\n\t\t\t\tthis.$refs.displayName.value = displayName;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user password\n\t\t * \n\t\t * @param {string} password The email adress\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdatePassword() {\n\t\t\tlet password = this.$refs.password.value;\n\t\t\tthis.loading.password = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'password',\n\t\t\t\tvalue: password\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.password = false;\n\t\t\t\tthis.$refs.password.value = ''; // empty & show placeholder \n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Set user mailAddress\n\t\t * \n\t\t * @param {string} mailAddress The email adress\n\t\t * @returns {Promise}\n\t\t */\n\t\tupdateEmail() {\n\t\t\tlet mailAddress = this.$refs.mailAddress.value;\n\t\t\tthis.loading.mailAddress = true;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id,\n\t\t\t\tkey: 'email',\n\t\t\t\tvalue: mailAddress\n\t\t\t}).then(() => {\n\t\t\t\tthis.loading.mailAddress = false;\n\t\t\t\tthis.$refs.mailAddress.value = mailAddress;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Create a new group\n\t\t * \n\t\t * @param {string} groups Group id\n\t\t * @returns {Promise}\n\t\t */\n\t\tcreateGroup(gid) {\n\t\t\tthis.loading = {groups:true, subadmins:true}\n\t\t\tthis.$store.dispatch('addGroup', gid).then(() => {\n\t\t\t\tthis.loading = {groups:false, subadmins:false};\n\t\t\t\tlet userid = this.user.id;\n\t\t\t\tthis.$store.dispatch('addUserGroup', {userid, gid});\n\t\t\t});\n\t\t\treturn this.$store.getters.getGroups[this.groups.length];\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\taddUserGroup(group) {\n\t\t\tthis.loading.groups = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserGroup', {userid, gid})\n\t\t\t\t.then(() => this.loading.groups = false);\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\tremoveUserGroup(group) {\n\t\t\tthis.loading.groups = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserGroup', {userid, gid})\n\t\t\t\t.then(() => this.loading.groups = false);\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\taddUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('addUserSubAdmin', {userid, gid})\n\t\t\t\t.then(() => this.loading.subadmins = false);\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t * \n\t\t * @param {object} group Group object\n\t\t * @returns {Promise}\n\t\t */\n\t\tremoveUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true;\n\t\t\tlet userid = this.user.id;\n\t\t\tlet gid = group.id;\n\t\t\treturn this.$store.dispatch('removeUserSubAdmin', {userid, gid})\n\t\t\t\t.then(() => this.loading.subadmins = false);\n\t\t},\n\n\t\t/**\n\t\t * Dispatch quota set request\n\t\t * \n\t\t * @param {string|Object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @returns {string}\n\t\t */\n\t\tsetUserQuota(quota = 'none') {\n\t\t\tthis.loading.quota = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tquota = quota.id ? quota.id : quota;\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'quota',\n\t\t\t\tvalue: quota\n\t\t\t}).then(() => this.loading.quota = false);\n\t\t\treturn quota;\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t * \n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @returns {Promise|boolean}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tlet validQuota = OC.Util.computerFileSize(quota);\n\t\t\tif (validQuota === 0) {\n\t\t\t\treturn this.setUserQuota('none');\n\t\t\t} else if (validQuota !== null) {\n\t\t\t\t// unify format output\n\t\t\t\treturn this.setUserQuota(OC.Util.humanFileSize(OC.Util.computerFileSize(quota)));\n\t\t\t}\n\t\t\t// if no valid do not change\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * Dispatch language set request\n\t\t * \n\t\t * @param {Object} lang language object {code:'en', name:'English'}\n\t\t * @returns {Object}\n\t\t */\n\t\tsetUserLanguage(lang) {\n\t\t\tthis.loading.languages = true;\n\t\t\t// ensure we only send the preset id\n\t\t\tthis.$store.dispatch('setUserData', {\n\t\t\t\tuserid: this.user.id, \n\t\t\t\tkey: 'language',\n\t\t\t\tvalue: lang.code\n\t\t\t}).then(() => this.loading.languages = false);\n\t\t\treturn lang;\n\t\t}\n\t}\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// src/components/userList/userRow.vue","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/bind.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/adapters/xhr.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/createError.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/cancel/isCancel.js\n// module id = 21\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/cancel/Cancel.js\n// module id = 22\n// module chunks = 0","import Vue from 'vue';\nimport { sync } from 'vuex-router-sync';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\n\nsync(store, router);\n\n// bind to window\nVue.prototype.t = t;\nVue.prototype.OC = OC;\nVue.prototype.oc_userconfig = oc_userconfig;\n\nconst app = new Vue({\n\trouter,\n\tstore,\n\trender: h => h(App)\n}).$mount('#content');\n\nexport { app, router, store };\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 24\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/setimmediate/setImmediate.js\n// module id = 25\n// module chunks = 0","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vuex-router-sync/index.js\n// module id = 26\n// module chunks = 0","var normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f72d2b7e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 27\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f72d2b7e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 28\n// module chunks = 0","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Users from './views/Users';\n\nVue.use(Router);\n\n/*\n * This is the list of routes where the vuejs app will\n * take over php to provide data\n * You need to forward the php routing (routes.php) to\n * /settings/main.php, where the vue-router will ensure\n * the proper route.\n * ⚠️ Routes needs to match the php routes.\n */\n\nexport default new Router({\n\tmode: 'history',\n\troutes: [\n\t\t{\n\t\t\tpath: '/:index(index.php/)?settings/users',\n\t\t\tcomponent: Users,\n\t\t\tprops: true,\n\t\t\tname: 'users',\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup',\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tcomponent: Users\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/router.js","/**\n * vue-router v3.0.1\n * (c) 2017 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nvar View = {\n name: 'router-view',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n if (parent.$vnode && parent.$vnode.data.routerView) {\n depth++;\n }\n if (parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n return h(cache[name], data, children)\n }\n\n var matched = route.matched[depth];\n // render empty node if no matched route\n if (!matched) {\n cache[name] = null;\n return h()\n }\n\n var component = cache[name] = matched.components[name];\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // resolve props\n var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n\n return h(component, data, children)\n }\n};\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\nfunction extend (to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n return to\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery$$1),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n name: 'router-link',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(this.to, current, this.append);\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback = globalActiveClass == null\n ? 'router-link-active'\n : globalActiveClass;\n var exactActiveClassFallback = globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass = this.activeClass == null\n ? activeClassFallback\n : this.activeClass;\n var exactActiveClass = this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n var compareTarget = location.path\n ? createRoute(null, location, null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location);\n } else {\n router.push(location);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) { on[e] = handler; });\n } else {\n on[this.event] = handler;\n }\n\n var data = {\n class: classes\n };\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var extend = _Vue.util.extend;\n var aData = a.data = extend({}, a.data);\n aData.on = on;\n var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n aAttrs.href = href;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('router-view', View);\n Vue.component('router-link', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n return filler(params || {}, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n }\n}\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions = route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(\n path,\n parent,\n pathToRegexpOptions.strict\n );\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props: route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias)\n ? route.alias\n : [route.alias];\n\n aliases.forEach(function (alias) {\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next.name || next._normalized) {\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = assign({}, next);\n next._normalized = true;\n var params = assign(assign({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction assign (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n if (record) {\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n }\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n params[key.name] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n window.history.replaceState({ key: getStateKey() }, '');\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior(to, from, isPop ? position : null);\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll.then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n }).catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n var el = document.querySelector(shouldScroll.selector);\n if (el) {\n var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState = inBrowser && (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n _key = key;\n}\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n history.replaceState({ key: _key }, '', url);\n } else {\n _key = genKey();\n history.pushState({ key: _key }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(route, function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) { cb(route); });\n }\n }, function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n }\n });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n if (isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) { cb(err); });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort()\n }\n\n var ref = resolveQueue(this.current.matched, route.matched);\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' && (\n typeof to.path === 'string' ||\n typeof to.name === 'string'\n ))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) { cb(); });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n })\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n next(cb);\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (instances[key]) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\n\nvar HTML5History = (function (History$$1) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History$$1.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n\n if (expectScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (expectScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History$$1 ) HTML5History.__proto__ = History$$1;\n HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\n\nvar HashHistory = (function (History$$1) {\n function HashHistory (router, base, fallback) {\n History$$1.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History$$1 ) HashHistory.__proto__ = History$$1;\n HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(\n cleanPath(base + '/#' + location)\n );\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n return index === -1 ? '' : href.slice(index + 1)\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\n\nvar AbstractHistory = (function (History$$1) {\n function AbstractHistory (router, base) {\n History$$1.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(location, function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(route, function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n });\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // main app already initialized.\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n var location = normalizeLocation(\n to,\n current || this.history.current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.0.1';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-router/dist/vue-router.esm.js\n// module id = 30\n// module chunks = 0","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Users.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Users.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-70f1d23b\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Users.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/Users.vue\n// module id = 31\n// module chunks = 0","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./appNavigation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./appNavigation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-85c34754\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./appNavigation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/appNavigation.vue\n// module id = 32\n// module chunks = 0","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./navigationItem.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./navigationItem.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-429bfeff\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./navigationItem.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/appNavigation/navigationItem.vue\n// module id = 33\n// module chunks = 0","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverItem.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./popoverItem.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-38c13d40\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./popoverItem.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/popoverMenu/popoverItem.vue\n// module id = 34\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[(_vm.item.href)?_c('a',{attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#'},on:{\"click\":_vm.item.action}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()]):(_vm.item.action)?_c('button',{on:{\"click\":_vm.item.action}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()]):_c('span',[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text)?_c('span',[_vm._v(_vm._s(_vm.item.text))]):(_vm.item.longtext)?_c('p',[_vm._v(_vm._s(_vm.item.longtext))]):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-38c13d40\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/popoverMenu/popoverItem.vue\n// module id = 35\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',_vm._l((_vm.menu),function(item,key){return _c('popover-item',{key:key,attrs:{\"item\":item}})}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-24e4fcfe\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/popoverMenu.vue\n// module id = 36\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:[{'icon-loading-small': _vm.item.loading, 'open': _vm.item.opened, 'collapsible': _vm.item.collapsible&&_vm.item.children&&_vm.item.children.length>0 }, _vm.item.classes],attrs:{\"id\":_vm.item.id}},[(_vm.item.bullet)?_c('div',{staticClass:\"app-navigation-entry-bullet\",style:({ backgroundColor: _vm.item.bullet })}):_vm._e(),_vm._v(\" \"),(_vm.item.href)?_c('a',{class:_vm.item.icon,attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#'},on:{\"click\":_vm.toggleCollapse}},[(_vm.item.iconUrl)?_c('img',{attrs:{\"alt\":_vm.item.text,\"src\":_vm.item.iconUrl}}):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\")]):(_vm.item.router)?_c('router-link',{class:_vm.item.icon,attrs:{\"to\":_vm.item.router}},[(_vm.item.iconUrl)?_c('img',{attrs:{\"alt\":_vm.item.text,\"src\":_vm.item.iconUrl}}):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.item.utils)?_c('div',{staticClass:\"app-navigation-entry-utils\"},[_c('ul',[(Number.isInteger(_vm.item.utils.counter))?_c('li',{staticClass:\"app-navigation-entry-utils-counter\"},[_vm._v(_vm._s(_vm.item.utils.counter))]):_vm._e(),_vm._v(\" \"),(_vm.item.utils.actions && _vm.item.utils.actions.length === 1 && Number.isInteger(_vm.item.utils.counter))?_c('li',{staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{class:_vm.item.utils.actions[0].icon,attrs:{\"title\":_vm.item.utils.actions[0].text},on:{\"click\":_vm.item.utils.actions[0].action}})]):(_vm.item.utils.actions && _vm.item.utils.actions.length === 2 && !Number.isInteger(_vm.item.utils.counter))?_vm._l((_vm.item.utils.actions),function(action){return _c('li',{key:action.action,staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{class:action.icon,attrs:{\"title\":action.text},on:{\"click\":action.action}})])}):(_vm.item.utils.actions && _vm.item.utils.actions.length > 1 && (Number.isInteger(_vm.item.utils.counter) || _vm.item.utils.actions.length > 2))?_c('li',{staticClass:\"app-navigation-entry-utils-menu-button\"},[_c('button',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideMenu),expression:\"hideMenu\"}],on:{\"click\":_vm.showMenu}})]):_vm._e()],2)]):_vm._e(),_vm._v(\" \"),(_vm.item.utils && _vm.item.utils.actions && _vm.item.utils.actions.length > 1 && (Number.isInteger(_vm.item.utils.counter) || _vm.item.utils.actions.length > 2))?_c('div',{staticClass:\"app-navigation-entry-menu\",class:{ 'open': _vm.openedMenu }},[_c('popover-menu',{attrs:{\"menu\":_vm.item.utils.actions}})],1):_vm._e(),_vm._v(\" \"),(_vm.item.undo)?_c('div',{staticClass:\"app-navigation-entry-deleted\"},[_c('div',{staticClass:\"app-navigation-entry-deleted-description\"},[_vm._v(_vm._s(_vm.item.undo.text))]),_vm._v(\" \"),_c('button',{staticClass:\"app-navigation-entry-deleted-button icon-history\",attrs:{\"title\":_vm.t('settings', 'Undo')}})]):_vm._e(),_vm._v(\" \"),(_vm.item.edit)?_c('div',{staticClass:\"app-navigation-entry-edit\"},[_c('form',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.text),expression:\"item.text\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.item.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"text\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-close\",attrs:{\"type\":\"submit\",\"value\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.cancelEdit($event)}}})])]):_vm._e(),_vm._v(\" \"),(_vm.item.children)?_c('ul',_vm._l((_vm.item.children),function(item,key){return _c('navigation-item',{key:key,attrs:{\"item\":item}})})):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-429bfeff\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/appNavigation/navigationItem.vue\n// module id = 37\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'icon-loading': _vm.menu.loading},attrs:{\"id\":\"app-navigation\"}},[(_vm.menu.new)?_c('div',{staticClass:\"app-navigation-new\"},[_c('button',{class:_vm.menu.new.icon,attrs:{\"type\":\"button\",\"id\":_vm.menu.new.id},on:{\"click\":_vm.menu.new.action}},[_vm._v(_vm._s(_vm.menu.new.text))])]):_vm._e(),_vm._v(\" \"),_c('ul',{attrs:{\"id\":_vm.menu.id}},_vm._l((_vm.menu.items),function(item,key){return _c('navigation-item',{key:key,attrs:{\"item\":item}})})),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"app-settings\"}},[_c('div',{attrs:{\"id\":\"app-settings-header\"}},[_c('button',{staticClass:\"settings-button\",attrs:{\"data-apps-slide-toggle\":\"#app-settings-content\"}},[_vm._v(_vm._s(_vm.t('settings', 'Settings')))])]),_vm._v(\" \"),_c('div',{attrs:{\"id\":\"app-settings-content\"}},[_vm._t(\"settings-content\")],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-85c34754\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/appNavigation.vue\n// module id = 38\n// module chunks = 0","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./userList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./userList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-347382ba\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./userList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/userList.vue\n// module id = 39\n// module chunks = 0","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userRow.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./userRow.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-94a7aec0\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./userRow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/userList/userRow.vue\n// module id = 40\n// module chunks = 0","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n if (element) {\n return element.ownerDocument.documentElement;\n }\n\n return document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE10$1() && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nfunction convertToArray(value) {\n\tif (typeof value === 'string') {\n\t\tvalue = value.split(' ');\n\t}\n\treturn value;\n}\n\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\nfunction addClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = Array.from(el.className);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tif (classList.indexOf(newClass) === -1) {\n\t\t\tclassList.push(newClass);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\nfunction removeClasses(el, classes) {\n\tvar newClasses = convertToArray(classes);\n\tvar classList = void 0;\n\tif (el.className instanceof SVGAnimatedString) {\n\t\tclassList = Array.from(el.className);\n\t} else {\n\t\tclassList = convertToArray(el.className);\n\t}\n\tnewClasses.forEach(function (newClass) {\n\t\tvar index = classList.indexOf(newClass);\n\t\tif (index !== -1) {\n\t\t\tclassList.splice(index, 1);\n\t\t}\n\t});\n\tif (el instanceof SVGElement) {\n\t\tel.setAttribute('class', classList.join(' '));\n\t} else {\n\t\tel.className = classList.join(' ');\n\t}\n}\n\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n\tsupportsPassive = false;\n\ttry {\n\t\tvar opts = Object.defineProperty({}, 'passive', {\n\t\t\tget: function get() {\n\t\t\t\tsupportsPassive = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('test', null, opts);\n\t} catch (e) {}\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck$1 = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass$1 = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/* Forked from https://github.com/FezVrasta/popper.js/blob/master/packages/tooltip/src/index.js */\n\nvar DEFAULT_OPTIONS = {\n\tcontainer: false,\n\tdelay: 0,\n\thtml: false,\n\tplacement: 'top',\n\ttitle: '',\n\ttemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\ttrigger: 'hover focus',\n\toffset: 0\n};\n\nvar openTooltips = [];\n\nvar Tooltip = function () {\n\t/**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n *\t\t\tPlacement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n *\t\t\tleft(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n *\t\t\tDelay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n *\t\t\tIf a number is supplied, delay is applied to both hide/show.\n *\t\t\tObject structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>']\n *\t\t\tBase HTML to used when creating the tooltip.\n *\t\t\tThe tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n *\t\t\t`.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n *\t\t\tThe outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n *\t\t\tHow tooltip is triggered - click, hover, focus, manual.\n *\t\t\tYou may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n *\t\t\tThe element used as boundaries for the tooltip. For more information refer to Popper.js'\n *\t\t\t[boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n *\t\t\t[offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n *\t\t\t[options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n\tfunction Tooltip(reference, options) {\n\t\tclassCallCheck$1(this, Tooltip);\n\n\t\t_initialiseProps.call(this);\n\n\t\t// apply user options over default ones\n\t\toptions = _extends$1({}, DEFAULT_OPTIONS, options);\n\n\t\treference.jquery && (reference = reference[0]);\n\n\t\t// cache reference and options\n\t\tthis.reference = reference;\n\t\tthis.options = options;\n\n\t\t// set initial state\n\t\tthis._isOpen = false;\n\n\t\tthis._init();\n\t}\n\n\t//\n\t// Public methods\n\t//\n\n\t/**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n\n\t/**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n\n\t/**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n\n\tcreateClass$1(Tooltip, [{\n\t\tkey: 'setClasses',\n\t\tvalue: function setClasses(classes) {\n\t\t\tthis._classes = classes;\n\t\t}\n\t}, {\n\t\tkey: 'setContent',\n\t\tvalue: function setContent(content) {\n\t\t\tthis.options.title = content;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._setContent(content, this.options);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'setOptions',\n\t\tvalue: function setOptions(options) {\n\t\t\tvar classesUpdated = false;\n\t\t\tvar classes = options && options.classes || directive.options.defaultClass;\n\t\t\tif (this._classes !== classes) {\n\t\t\t\tthis.setClasses(classes);\n\t\t\t\tclassesUpdated = true;\n\t\t\t}\n\n\t\t\toptions = getOptions(options);\n\n\t\t\tvar needPopperUpdate = false;\n\t\t\tvar needRestart = false;\n\n\t\t\tif (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n\t\t\t\tneedPopperUpdate = true;\n\t\t\t}\n\n\t\t\tif (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n\t\t\t\tneedRestart = true;\n\t\t\t}\n\n\t\t\tfor (var key in options) {\n\t\t\t\tthis.options[key] = options[key];\n\t\t\t}\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tif (needRestart) {\n\t\t\t\t\tvar isOpen = this._isOpen;\n\n\t\t\t\t\tthis.dispose();\n\t\t\t\t\tthis._init();\n\n\t\t\t\t\tif (isOpen) {\n\t\t\t\t\t\tthis.show();\n\t\t\t\t\t}\n\t\t\t\t} else if (needPopperUpdate) {\n\t\t\t\t\tthis.popperInstance.update();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//\n\t\t// Private methods\n\t\t//\n\n\t}, {\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\t// get events list\n\t\t\tvar events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\t\t\tthis._isDisposed = false;\n\t\t\tthis._enableDocumentTouch = events.indexOf('manual') === -1;\n\n\t\t\t// set event listeners\n\t\t\tthis._setEventListeners(this.reference, events, this.options);\n\t\t}\n\n\t\t/**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n\t}, {\n\t\tkey: '_create',\n\t\tvalue: function _create(reference, template) {\n\t\t\t// create tooltip element\n\t\t\tvar tooltipGenerator = window.document.createElement('div');\n\t\t\ttooltipGenerator.innerHTML = template.trim();\n\t\t\tvar tooltipNode = tooltipGenerator.childNodes[0];\n\n\t\t\t// add unique ID to our tooltip (needed for accessibility reasons)\n\t\t\ttooltipNode.id = 'tooltip_' + Math.random().toString(36).substr(2, 10);\n\n\t\t\t// Initially hide the tooltip\n\t\t\t// The attribute will be switched in a next frame so\n\t\t\t// CSS transitions can play\n\t\t\ttooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tif (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n\t\t\t\ttooltipNode.addEventListener('mouseenter', this.hide);\n\t\t\t\ttooltipNode.addEventListener('click', this.hide);\n\t\t\t}\n\n\t\t\t// return the generated tooltip node\n\t\t\treturn tooltipNode;\n\t\t}\n\t}, {\n\t\tkey: '_setContent',\n\t\tvalue: function _setContent(content, options) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.asyncContent = false;\n\t\t\tthis._applyContent(content, options).then(function () {\n\t\t\t\t_this.popperInstance.update();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_applyContent',\n\t\tvalue: function _applyContent(title, options) {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar allowHtml = options.html;\n\t\t\t\tvar rootNode = _this2._tooltipNode;\n\t\t\t\tvar titleNode = rootNode.querySelector(_this2.options.innerSelector);\n\t\t\t\tif (title.nodeType === 1) {\n\t\t\t\t\t// if title is a node, append it only if allowHtml is true\n\t\t\t\t\tif (allowHtml) {\n\t\t\t\t\t\twhile (titleNode.firstChild) {\n\t\t\t\t\t\t\ttitleNode.removeChild(titleNode.firstChild);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitleNode.appendChild(title);\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof title === 'function') {\n\t\t\t\t\t// if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tvar result = title();\n\t\t\t\t\tif (result && typeof result.then === 'function') {\n\t\t\t\t\t\t_this2.asyncContent = true;\n\t\t\t\t\t\toptions.loadingClass && addClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\tif (options.loadingContent) {\n\t\t\t\t\t\t\t_this2._applyContent(options.loadingContent, options);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult.then(function (asyncResult) {\n\t\t\t\t\t\t\toptions.loadingClass && removeClasses(rootNode, options.loadingClass);\n\t\t\t\t\t\t\treturn _this2._applyContent(asyncResult, options);\n\t\t\t\t\t\t}).then(resolve).catch(reject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this2._applyContent(result, options).then(resolve).catch(reject);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t} else {\n\t\t\t\t\t// if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n\t\t\t\t\tallowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n\t\t\t\t}\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_show',\n\t\tvalue: function _show(reference, options) {\n\t\t\tif (options && typeof options.container === 'string') {\n\t\t\t\tvar container = document.querySelector(options.container);\n\t\t\t\tif (!container) return;\n\t\t\t}\n\n\t\t\tclearTimeout(this._disposeTimer);\n\n\t\t\toptions = Object.assign({}, options);\n\t\t\tdelete options.offset;\n\n\t\t\tvar updateClasses = true;\n\t\t\tif (this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t\tupdateClasses = false;\n\t\t\t}\n\n\t\t\tvar result = this._ensureShown(reference, options);\n\n\t\t\tif (updateClasses && this._tooltipNode) {\n\t\t\t\taddClasses(this._tooltipNode, this._classes);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t}, {\n\t\tkey: '_ensureShown',\n\t\tvalue: function _ensureShown(reference, options) {\n\t\t\tvar _this3 = this;\n\n\t\t\t// don't show if it's already visible\n\t\t\tif (this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tthis._isOpen = true;\n\n\t\t\topenTooltips.push(this);\n\n\t\t\t// if the tooltipNode already exists, just show it\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._tooltipNode.style.display = '';\n\t\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t\tif (this.asyncContent) {\n\t\t\t\t\tthis._setContent(options.title, options);\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// get title\n\t\t\tvar title = reference.getAttribute('title') || options.title;\n\n\t\t\t// don't show tooltip if no title is defined\n\t\t\tif (!title) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// create tooltip node\n\t\t\tvar tooltipNode = this._create(reference, options.template);\n\t\t\tthis._tooltipNode = tooltipNode;\n\n\t\t\tthis._setContent(title, options);\n\n\t\t\t// Add `aria-describedby` to our reference element for accessibility reasons\n\t\t\treference.setAttribute('aria-describedby', tooltipNode.id);\n\n\t\t\t// append tooltip to container\n\t\t\tvar container = this._findContainer(options.container, reference);\n\n\t\t\tthis._append(tooltipNode, container);\n\n\t\t\tvar popperOptions = _extends$1({}, options.popperOptions, {\n\t\t\t\tplacement: options.placement\n\t\t\t});\n\n\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\tarrow: {\n\t\t\t\t\telement: this.options.arrowSelector\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (options.boundariesElement) {\n\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\tboundariesElement: options.boundariesElement\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n\t\t\t// Fix position\n\t\t\trequestAnimationFrame(function () {\n\t\t\t\tif (!_this3._isDisposed && _this3.popperInstance) {\n\t\t\t\t\t_this3.popperInstance.update();\n\n\t\t\t\t\t// Show the tooltip\n\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\tif (!_this3._isDisposed) {\n\t\t\t\t\t\t\t_this3._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t_this3.dispose();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_noLongerOpen',\n\t\tvalue: function _noLongerOpen() {\n\t\t\tvar index = openTooltips.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenTooltips.splice(index, 1);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_hide',\n\t\tvalue: function _hide() /* reference, options */{\n\t\t\tvar _this4 = this;\n\n\t\t\t// don't hide if it's already hidden\n\t\t\tif (!this._isOpen) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tthis._isOpen = false;\n\t\t\tthis._noLongerOpen();\n\n\t\t\t// hide tooltipNode\n\t\t\tthis._tooltipNode.style.display = 'none';\n\t\t\tthis._tooltipNode.setAttribute('aria-hidden', 'true');\n\n\t\t\tthis.popperInstance.disableEventListeners();\n\n\t\t\tclearTimeout(this._disposeTimer);\n\t\t\tvar disposeTime = directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis._disposeTimer = setTimeout(function () {\n\t\t\t\t\tif (_this4._tooltipNode) {\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('mouseenter', _this4.hide);\n\t\t\t\t\t\t_this4._tooltipNode.removeEventListener('click', _this4.hide);\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\t_this4._tooltipNode.parentNode.removeChild(_this4._tooltipNode);\n\t\t\t\t\t\t_this4._tooltipNode = null;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_dispose',\n\t\tvalue: function _dispose() {\n\t\t\tvar _this5 = this;\n\n\t\t\tthis._isDisposed = true;\n\n\t\t\t// remove event listeners first to prevent any unexpected behaviour\n\t\t\tthis._events.forEach(function (_ref) {\n\t\t\t\tvar func = _ref.func,\n\t\t\t\t event = _ref.event;\n\n\t\t\t\t_this5.reference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis._events = [];\n\n\t\t\tif (this._tooltipNode) {\n\t\t\t\tthis._hide();\n\n\t\t\t\tthis._tooltipNode.removeEventListener('mouseenter', this.hide);\n\t\t\t\tthis._tooltipNode.removeEventListener('click', this.hide);\n\n\t\t\t\t// destroy instance\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tthis._tooltipNode.parentNode.removeChild(this._tooltipNode);\n\t\t\t\t\tthis._tooltipNode = null;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._noLongerOpen();\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t}, {\n\t\tkey: '_findContainer',\n\t\tvalue: function _findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t}\n\n\t\t/**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n\t}, {\n\t\tkey: '_append',\n\t\tvalue: function _append(tooltipNode, container) {\n\t\t\tcontainer.appendChild(tooltipNode);\n\t\t}\n\t}, {\n\t\tkey: '_setEventListeners',\n\t\tvalue: function _setEventListeners(reference, events, options) {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (_this6._isOpen === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevt.usedByTooltip = true;\n\t\t\t\t\t_this6._scheduleShow(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(evt) {\n\t\t\t\t\tif (evt.usedByTooltip === true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this6._scheduleHide(reference, options.delay, options, evt);\n\t\t\t\t};\n\t\t\t\t_this6._events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_onDocumentTouch',\n\t\tvalue: function _onDocumentTouch(event) {\n\t\t\tif (this._enableDocumentTouch) {\n\t\t\t\tthis._scheduleHide(this.reference, this.options.delay, this.options, event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_scheduleShow',\n\t\tvalue: function _scheduleShow(reference, delay, options /*, evt */) {\n\t\t\tvar _this7 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.show || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\treturn _this7._show(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}, {\n\t\tkey: '_scheduleHide',\n\t\tvalue: function _scheduleHide(reference, delay, options, evt) {\n\t\t\tvar _this8 = this;\n\n\t\t\t// defaults to 0\n\t\t\tvar computedDelay = delay && delay.hide || delay || 0;\n\t\t\tclearTimeout(this._scheduleTimer);\n\t\t\tthis._scheduleTimer = window.setTimeout(function () {\n\t\t\t\tif (_this8._isOpen === false) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!document.body.contains(_this8._tooltipNode)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\tif (evt.type === 'mouseleave') {\n\t\t\t\t\tvar isSet = _this8._setTooltipNodeEvent(evt, reference, delay, options);\n\n\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t_this8._hide(reference, options);\n\t\t\t}, computedDelay);\n\t\t}\n\t}]);\n\treturn Tooltip;\n}();\n\n// Hide tooltips on touch devices\n\n\nvar _initialiseProps = function _initialiseProps() {\n\tvar _this9 = this;\n\n\tthis.show = function () {\n\t\t_this9._show(_this9.reference, _this9.options);\n\t};\n\n\tthis.hide = function () {\n\t\t_this9._hide();\n\t};\n\n\tthis.dispose = function () {\n\t\t_this9._dispose();\n\t};\n\n\tthis.toggle = function () {\n\t\tif (_this9._isOpen) {\n\t\t\treturn _this9.hide();\n\t\t} else {\n\t\t\treturn _this9.show();\n\t\t}\n\t};\n\n\tthis._events = [];\n\n\tthis._setTooltipNodeEvent = function (evt, reference, delay, options) {\n\t\tvar relatedreference = evt.relatedreference || evt.toElement;\n\n\t\tvar callback = function callback(evt2) {\n\t\t\tvar relatedreference2 = evt2.relatedreference || evt2.toElement;\n\n\t\t\t// Remove event listener after call\n\t\t\t_this9._tooltipNode.removeEventListener(evt.type, callback);\n\n\t\t\t// If the new reference is not the reference element\n\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t_this9._scheduleHide(reference, options.delay, options, evt2);\n\t\t\t}\n\t\t};\n\n\t\tif (_this9._tooltipNode.contains(relatedreference)) {\n\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t_this9._tooltipNode.addEventListener(evt.type, callback);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n};\n\nif (typeof document !== 'undefined') {\n\tdocument.addEventListener('touchstart', function (event) {\n\t\tfor (var i = 0; i < openTooltips.length; i++) {\n\t\t\topenTooltips[i]._onDocumentTouch(event);\n\t\t}\n\t}, supportsPassive ? {\n\t\tpassive: true\n\t} : false);\n}\n\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar state = {\n\tenabled: true\n};\n\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\n\nvar defaultOptions = {\n\t// Default tooltip placement relative to target element\n\tdefaultPlacement: 'top',\n\t// Default CSS classes applied to the tooltip element\n\tdefaultClass: 'vue-tooltip-theme',\n\t// Default CSS classes applied to the target element of the tooltip\n\tdefaultTargetClass: 'has-tooltip',\n\t// Default HTML template of the tooltip element\n\t// It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n\t// Change if the classes conflict with other libraries (for example bootstrap)\n\tdefaultTemplate: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n\t// Selector used to get the arrow element in the tooltip template\n\tdefaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n\t// Selector used to get the inner content element in the tooltip template\n\tdefaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n\t// Delay (ms)\n\tdefaultDelay: 0,\n\t// Default events that trigger the tooltip\n\tdefaultTrigger: 'hover focus',\n\t// Default position offset (px)\n\tdefaultOffset: 0,\n\t// Default container where the tooltip will be appended\n\tdefaultContainer: 'body',\n\tdefaultBoundariesElement: undefined,\n\tdefaultPopperOptions: {},\n\t// Class added when content is loading\n\tdefaultLoadingClass: 'tooltip-loading',\n\t// Displayed when tooltip content is loading\n\tdefaultLoadingContent: '...',\n\t// Hide on mouseover tooltip\n\tautoHide: true,\n\t// Auto destroy tooltip DOM nodes (ms)\n\tdisposeTimeout: 5000,\n\t// Options for popover\n\tpopover: {\n\t\tdefaultPlacement: 'bottom',\n\t\t// Use the `popoverClass` prop for theming\n\t\tdefaultClass: 'vue-popover-theme',\n\t\t// Base class (change if conflicts with other libraries)\n\t\tdefaultBaseClass: 'tooltip popover',\n\t\t// Wrapper class (contains arrow and inner)\n\t\tdefaultWrapperClass: 'wrapper',\n\t\t// Inner content class\n\t\tdefaultInnerClass: 'tooltip-inner popover-inner',\n\t\t// Arrow class\n\t\tdefaultArrowClass: 'tooltip-arrow popover-arrow',\n\t\tdefaultDelay: 0,\n\t\tdefaultTrigger: 'click',\n\t\tdefaultOffset: 0,\n\t\tdefaultContainer: 'body',\n\t\tdefaultBoundariesElement: undefined,\n\t\tdefaultPopperOptions: {},\n\t\t// Hides if clicked outside of popover\n\t\tdefaultAutoHide: true,\n\t\t// Update popper on content resize\n\t\tdefaultHandleResize: true\n\t}\n};\n\nfunction getOptions(options) {\n\tvar result = {\n\t\tplacement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n\t\tdelay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n\t\ttemplate: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n\t\tarrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n\t\tinnerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n\t\ttrigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n\t\toffset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n\t\tcontainer: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n\t\tboundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n\t\tautoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n\t\tloadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n\t\tloadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n\t\tpopperOptions: _extends$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n\t};\n\n\tif (result.offset) {\n\t\tvar typeofOffset = _typeof(result.offset);\n\t\tvar offset = result.offset;\n\n\t\t// One value -> switch\n\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\toffset = '0, ' + offset;\n\t\t}\n\n\t\tif (!result.popperOptions.modifiers) {\n\t\t\tresult.popperOptions.modifiers = {};\n\t\t}\n\t\tresult.popperOptions.modifiers.offset = {\n\t\t\toffset: offset\n\t\t};\n\t}\n\n\treturn result;\n}\n\nfunction getPlacement(value, modifiers) {\n\tvar placement = value.placement;\n\tfor (var i = 0; i < positions.length; i++) {\n\t\tvar pos = positions[i];\n\t\tif (modifiers[pos]) {\n\t\t\tplacement = pos;\n\t\t}\n\t}\n\treturn placement;\n}\n\nfunction getContent(value) {\n\tvar type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\tif (type === 'string') {\n\t\treturn value;\n\t} else if (value && type === 'object') {\n\t\treturn value.content;\n\t} else {\n\t\treturn false;\n\t}\n}\n\nfunction createTooltip(el, value) {\n\tvar modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\tvar content = getContent(value);\n\tvar classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\tvar opts = _extends$1({\n\t\ttitle: content,\n\t\thtml: true\n\t}, getOptions(_extends$1({}, value, {\n\t\tplacement: getPlacement(value, modifiers)\n\t})));\n\tvar tooltip = el._tooltip = new Tooltip(el, opts);\n\ttooltip.setClasses(classes);\n\ttooltip._vueEl = el;\n\n\t// Class on target\n\tvar targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n\tel._tooltipTargetClasses = targetClasses;\n\taddClasses(el, targetClasses);\n\n\treturn tooltip;\n}\n\nfunction destroyTooltip(el) {\n\tif (el._tooltip) {\n\t\tel._tooltip.dispose();\n\t\tdelete el._tooltip;\n\t\tdelete el._tooltipOldShow;\n\t}\n\n\tif (el._tooltipTargetClasses) {\n\t\tremoveClasses(el, el._tooltipTargetClasses);\n\t\tdelete el._tooltipTargetClasses;\n\t}\n}\n\nfunction bind(el, _ref) {\n\tvar value = _ref.value,\n\t oldValue = _ref.oldValue,\n\t modifiers = _ref.modifiers;\n\n\tvar content = getContent(value);\n\tif (!content || !state.enabled) {\n\t\tdestroyTooltip(el);\n\t} else {\n\t\tvar tooltip = void 0;\n\t\tif (el._tooltip) {\n\t\t\ttooltip = el._tooltip;\n\t\t\t// Content\n\t\t\ttooltip.setContent(content);\n\t\t\t// Options\n\t\t\ttooltip.setOptions(_extends$1({}, value, {\n\t\t\t\tplacement: getPlacement(value, modifiers)\n\t\t\t}));\n\t\t} else {\n\t\t\ttooltip = createTooltip(el, value, modifiers);\n\t\t}\n\n\t\t// Manual show\n\t\tif (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n\t\t\tel._tooltipOldShow = value.show;\n\t\t\tvalue.show ? tooltip.show() : tooltip.hide();\n\t\t}\n\t}\n}\n\nvar directive = {\n\toptions: defaultOptions,\n\tbind: bind,\n\tupdate: bind,\n\tunbind: function unbind(el) {\n\t\tdestroyTooltip(el);\n\t}\n};\n\nfunction addListeners(el) {\n\tel.addEventListener('click', onClick);\n\tel.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n\t\tpassive: true\n\t} : false);\n}\n\nfunction removeListeners(el) {\n\tel.removeEventListener('click', onClick);\n\tel.removeEventListener('touchstart', onTouchStart);\n\tel.removeEventListener('touchend', onTouchEnd);\n\tel.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n\tvar el = event.currentTarget;\n\tevent.closePopover = !el.$_vclosepopover_touch;\n\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n\tif (event.changedTouches.length === 1) {\n\t\tvar el = event.currentTarget;\n\t\tel.$_vclosepopover_touch = true;\n\t\tvar touch = event.changedTouches[0];\n\t\tel.$_vclosepopover_touchPoint = touch;\n\t\tel.addEventListener('touchend', onTouchEnd);\n\t\tel.addEventListener('touchcancel', onTouchCancel);\n\t}\n}\n\nfunction onTouchEnd(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n\tif (event.changedTouches.length === 1) {\n\t\tvar touch = event.changedTouches[0];\n\t\tvar firstTouch = el.$_vclosepopover_touchPoint;\n\t\tevent.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n\t\tevent.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n\t}\n}\n\nfunction onTouchCancel(event) {\n\tvar el = event.currentTarget;\n\tel.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n\tbind: function bind(el, _ref) {\n\t\tvar value = _ref.value,\n\t\t modifiers = _ref.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (typeof value === 'undefined' || value) {\n\t\t\taddListeners(el);\n\t\t}\n\t},\n\tupdate: function update(el, _ref2) {\n\t\tvar value = _ref2.value,\n\t\t oldValue = _ref2.oldValue,\n\t\t modifiers = _ref2.modifiers;\n\n\t\tel.$_closePopoverModifiers = modifiers;\n\t\tif (value !== oldValue) {\n\t\t\tif (typeof value === 'undefined' || value) {\n\t\t\t\taddListeners(el);\n\t\t\t} else {\n\t\t\t\tremoveListeners(el);\n\t\t\t}\n\t\t}\n\t},\n\tunbind: function unbind(el) {\n\t\tremoveListeners(el);\n\t}\n};\n\nfunction getInternetExplorerVersion() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\n\tvar edge = ua.indexOf('Edge/');\n\tif (edge > 0) {\n\t\t// Edge (IE 12+) => return version number\n\t\treturn parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t}\n\n\t// other browser\n\treturn -1;\n}\n\nvar isIE = void 0;\n\nfunction initCompat() {\n\tif (!initCompat.init) {\n\t\tinitCompat.init = true;\n\t\tisIE = getInternetExplorerVersion() !== -1;\n\t}\n}\n\nvar ResizeObserver = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"resize-observer\", attrs: { \"tabindex\": \"-1\" } });\n\t}, staticRenderFns: [], _scopeId: 'data-v-b329ee4c',\n\tname: 'resize-observer',\n\n\tmethods: {\n\t\tnotify: function notify() {\n\t\t\tthis.$emit('notify');\n\t\t},\n\t\taddResizeHandlers: function addResizeHandlers() {\n\t\t\tthis._resizeObject.contentDocument.defaultView.addEventListener('resize', this.notify);\n\t\t\tif (this._w !== this.$el.offsetWidth || this._h !== this.$el.offsetHeight) {\n\t\t\t\tthis.notify();\n\t\t\t}\n\t\t},\n\t\tremoveResizeHandlers: function removeResizeHandlers() {\n\t\t\tif (this._resizeObject && this._resizeObject.onload) {\n\t\t\t\tif (!isIE && this._resizeObject.contentDocument) {\n\t\t\t\t\tthis._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.notify);\n\t\t\t\t}\n\t\t\t\tdelete this._resizeObject.onload;\n\t\t\t}\n\t\t}\n\t},\n\n\tmounted: function mounted() {\n\t\tvar _this = this;\n\n\t\tinitCompat();\n\t\tthis.$nextTick(function () {\n\t\t\t_this._w = _this.$el.offsetWidth;\n\t\t\t_this._h = _this.$el.offsetHeight;\n\t\t});\n\t\tvar object = document.createElement('object');\n\t\tthis._resizeObject = object;\n\t\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\t\tobject.setAttribute('aria-hidden', 'true');\n\t\tobject.onload = this.addResizeHandlers;\n\t\tobject.type = 'text/html';\n\t\tif (isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t\tobject.data = 'about:blank';\n\t\tif (!isIE) {\n\t\t\tthis.$el.appendChild(object);\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.removeResizeHandlers();\n\t}\n};\n\n// Install the components\nfunction install$1(Vue) {\n\tVue.component('resize-observer', ResizeObserver);\n\t/* -- Add more components here -- */\n}\n\n/* -- Plugin definition & Auto-install -- */\n/* You shouldn't have to modify the code below */\n\n// Plugin\nvar plugin$2 = {\n\t// eslint-disable-next-line no-undef\n\tversion: \"0.4.3\",\n\tinstall: install$1\n};\n\n// Auto-install\nvar GlobalVue$1 = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue$1 = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n\tGlobalVue$1.use(plugin$2);\n}\n\nfunction getDefault(key) {\n\tvar value = directive.options.popover[key];\n\tif (typeof value === 'undefined') {\n\t\treturn directive.options[key];\n\t}\n\treturn value;\n}\n\nvar isIOS = false;\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n\tisIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Popover = { render: function render() {\n\t\tvar _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"v-popover\", class: _vm.cssClass }, [_c('span', { ref: \"trigger\", staticClass: \"trigger\", staticStyle: { \"display\": \"inline-block\" }, attrs: { \"aria-describedby\": _vm.popoverId } }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c('div', { ref: \"popover\", class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass], style: {\n\t\t\t\tdisplay: _vm.isOpen ? '' : 'none'\n\t\t\t}, attrs: { \"id\": _vm.popoverId, \"aria-hidden\": _vm.isOpen ? 'false' : 'true' } }, [_c('div', { class: _vm.popoverWrapperClass }, [_c('div', { ref: \"arrow\", class: _vm.popoverArrowClass }), _vm._v(\" \"), _c('div', { ref: \"inner\", class: _vm.popoverInnerClass, staticStyle: { \"position\": \"relative\" } }, [_c('div', [_vm._t(\"popover\")], 2), _vm._v(\" \"), _vm.handleResize ? _c('ResizeObserver', { on: { \"notify\": _vm.$_handleResize } }) : _vm._e()], 1)])])]);\n\t}, staticRenderFns: [],\n\tname: 'VPopover',\n\n\tcomponents: {\n\t\tResizeObserver: ResizeObserver\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPlacement');\n\t\t\t}\n\t\t},\n\t\tdelay: {\n\t\t\ttype: [String, Number, Object],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultDelay');\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultOffset');\n\t\t\t}\n\t\t},\n\t\ttrigger: {\n\t\t\ttype: String,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultTrigger');\n\t\t\t}\n\t\t},\n\t\tcontainer: {\n\t\t\ttype: [String, Object, Element],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultContainer');\n\t\t\t}\n\t\t},\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultBoundariesElement');\n\t\t\t}\n\t\t},\n\t\tpopperOptions: {\n\t\t\ttype: Object,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultPopperOptions');\n\t\t\t}\n\t\t},\n\t\tpopoverClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn getDefault('defaultClass');\n\t\t\t}\n\t\t},\n\t\tpopoverBaseClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultBaseClass;\n\t\t\t}\n\t\t},\n\t\tpopoverInnerClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultInnerClass;\n\t\t\t}\n\t\t},\n\t\tpopoverWrapperClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultWrapperClass;\n\t\t\t}\n\t\t},\n\t\tpopoverArrowClass: {\n\t\t\ttype: [String, Array],\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultArrowClass;\n\t\t\t}\n\t\t},\n\t\tautoHide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultAutoHide;\n\t\t\t}\n\t\t},\n\t\thandleResize: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: function _default() {\n\t\t\t\treturn directive.options.popover.defaultHandleResize;\n\t\t\t}\n\t\t},\n\t\topenGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null\n\t\t}\n\t},\n\n\tdata: function data() {\n\t\treturn {\n\t\t\tisOpen: false,\n\t\t\tid: Math.random().toString(36).substr(2, 10)\n\t\t};\n\t},\n\n\n\tcomputed: {\n\t\tcssClass: function cssClass() {\n\t\t\treturn {\n\t\t\t\t'open': this.isOpen\n\t\t\t};\n\t\t},\n\t\tpopoverId: function popoverId() {\n\t\t\treturn 'popover_' + this.id;\n\t\t}\n\t},\n\n\twatch: {\n\t\topen: function open(val) {\n\t\t\tif (val) {\n\t\t\t\tthis.show();\n\t\t\t} else {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\t\tdisabled: function disabled(val, oldVal) {\n\t\t\tif (val !== oldVal) {\n\t\t\t\tif (val) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t} else if (this.open) {\n\t\t\t\t\tthis.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcontainer: function container(val) {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\tvar reference = this.$refs.trigger;\n\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\t\t},\n\t\ttrigger: function trigger(val) {\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.$_addEventListeners();\n\t\t},\n\t\toffset: function offset(val) {\n\t\t\tvar _this = this;\n\n\t\t\tthis.$_updatePopper(function () {\n\t\t\t\tif (val) {\n\t\t\t\t\tvar offset = _this.$_getOffset();\n\n\t\t\t\t\t_this.popperInstance.options.modifiers.offset = {\n\t\t\t\t\t\toffset: offset\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\t_this.popperInstance.options.modifiers.offset = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tplacement: function placement(val) {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis.$_updatePopper(function () {\n\t\t\t\t_this2.popperInstance.options.placement = val;\n\t\t\t});\n\t\t},\n\n\n\t\tboundariesElement: '$_restartPopper',\n\n\t\tpopperOptions: {\n\t\t\thandler: '$_restartPopper',\n\t\t\tdeep: true\n\t\t}\n\t},\n\n\tcreated: function created() {\n\t\tthis.$_isDisposed = false;\n\t\tthis.$_mounted = false;\n\t\tthis.$_events = [];\n\t\tthis.$_preventOpen = false;\n\t},\n\tmounted: function mounted() {\n\t\tvar popoverNode = this.$refs.popover;\n\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\n\t\tthis.$_init();\n\n\t\tif (this.open) {\n\t\t\tthis.show();\n\t\t}\n\t},\n\tbeforeDestroy: function beforeDestroy() {\n\t\tthis.dispose();\n\t},\n\n\n\tmethods: {\n\t\tshow: function show() {\n\t\t\tvar _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref.event,\n\t\t\t _ref$skipDelay = _ref.skipDelay,\n\t\t\t skipDelay = _ref$skipDelay === undefined ? false : _ref$skipDelay,\n\t\t\t _ref$force = _ref.force,\n\t\t\t force = _ref$force === undefined ? false : _ref$force;\n\n\t\t\tif (force || !this.disabled) {\n\t\t\t\tthis.$_scheduleShow(event);\n\t\t\t\tthis.$emit('show');\n\t\t\t}\n\t\t\tthis.$emit('update:open', true);\n\t\t},\n\t\thide: function hide() {\n\t\t\tvar _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t\t\t event = _ref2.event,\n\t\t\t _ref2$skipDelay = _ref2.skipDelay;\n\n\t\t\tthis.$_scheduleHide(event);\n\n\t\t\tthis.$emit('hide');\n\t\t\tthis.$emit('update:open', false);\n\t\t},\n\t\tdispose: function dispose() {\n\t\t\tthis.$_isDisposed = true;\n\t\t\tthis.$_removeEventListeners();\n\t\t\tthis.hide({ skipDelay: true });\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.destroy();\n\n\t\t\t\t// destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\t\t\t\tif (!this.popperInstance.options.removeOnDestroy) {\n\t\t\t\t\tvar popoverNode = this.$refs.popover;\n\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.$_mounted = false;\n\n\t\t\tthis.$emit('dispose');\n\t\t},\n\t\t$_init: function $_init() {\n\t\t\tif (this.trigger.indexOf('manual') === -1) {\n\t\t\t\tthis.$_addEventListeners();\n\t\t\t}\n\t\t},\n\t\t$_show: function $_show() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\n\t\t\t// Already open\n\t\t\tif (this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Popper is already initialized\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.isOpen = true;\n\t\t\t\tthis.popperInstance.enableEventListeners();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\n\t\t\tif (!this.$_mounted) {\n\t\t\t\tvar container = this.$_findContainer(this.container, reference);\n\t\t\t\tif (!container) {\n\t\t\t\t\tconsole.warn('No container for popover', this);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcontainer.appendChild(popoverNode);\n\t\t\t\tthis.$_mounted = true;\n\t\t\t}\n\n\t\t\tif (!this.popperInstance) {\n\t\t\t\tvar popperOptions = _extends$1({}, this.popperOptions, {\n\t\t\t\t\tplacement: this.placement\n\t\t\t\t});\n\n\t\t\t\tpopperOptions.modifiers = _extends$1({}, popperOptions.modifiers, {\n\t\t\t\t\tarrow: {\n\t\t\t\t\t\telement: this.$refs.arrow\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (this.offset) {\n\t\t\t\t\tvar offset = this.$_getOffset();\n\n\t\t\t\t\tpopperOptions.modifiers.offset = {\n\t\t\t\t\t\toffset: offset\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (this.boundariesElement) {\n\t\t\t\t\tpopperOptions.modifiers.preventOverflow = {\n\t\t\t\t\t\tboundariesElement: this.boundariesElement\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.popperInstance = new Popper(reference, popoverNode, popperOptions);\n\n\t\t\t\t// Fix position\n\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\tif (!_this3.$_isDisposed && _this3.popperInstance) {\n\t\t\t\t\t\t_this3.popperInstance.update();\n\n\t\t\t\t\t\t// Show the tooltip\n\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\tif (!_this3.$_isDisposed) {\n\t\t\t\t\t\t\t\t_this3.isOpen = true;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this3.dispose();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar openGroup = this.openGroup;\n\t\t\tif (openGroup) {\n\t\t\t\tvar popover = void 0;\n\t\t\t\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\t\t\t\tpopover = openPopovers[i];\n\t\t\t\t\tif (popover.openGroup !== openGroup) {\n\t\t\t\t\t\tpopover.hide();\n\t\t\t\t\t\tpopover.$emit('close-group');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\topenPopovers.push(this);\n\t\t},\n\t\t$_hide: function $_hide() {\n\t\t\tvar _this4 = this;\n\n\t\t\t// Already hidden\n\t\t\tif (!this.isOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar index = openPopovers.indexOf(this);\n\t\t\tif (index !== -1) {\n\t\t\t\topenPopovers.splice(index, 1);\n\t\t\t}\n\n\t\t\tthis.isOpen = false;\n\t\t\tif (this.popperInstance) {\n\t\t\t\tthis.popperInstance.disableEventListeners();\n\t\t\t}\n\n\t\t\tclearTimeout(this.$_disposeTimer);\n\t\t\tvar disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\t\t\tif (disposeTime !== null) {\n\t\t\t\tthis.$_disposeTimer = setTimeout(function () {\n\t\t\t\t\tvar popoverNode = _this4.$refs.popover;\n\t\t\t\t\tif (popoverNode) {\n\t\t\t\t\t\t// Don't remove popper instance, just the HTML element\n\t\t\t\t\t\tpopoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n\t\t\t\t\t\t_this4.$_mounted = false;\n\t\t\t\t\t}\n\t\t\t\t}, disposeTime);\n\t\t\t}\n\t\t},\n\t\t$_findContainer: function $_findContainer(container, reference) {\n\t\t\t// if container is a query, get the relative element\n\t\t\tif (typeof container === 'string') {\n\t\t\t\tcontainer = window.document.querySelector(container);\n\t\t\t} else if (container === false) {\n\t\t\t\t// if container is `false`, set it to reference parent\n\t\t\t\tcontainer = reference.parentNode;\n\t\t\t}\n\t\t\treturn container;\n\t\t},\n\t\t$_getOffset: function $_getOffset() {\n\t\t\tvar typeofOffset = _typeof(this.offset);\n\t\t\tvar offset = this.offset;\n\n\t\t\t// One value -> switch\n\t\t\tif (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n\t\t\t\toffset = '0, ' + offset;\n\t\t\t}\n\n\t\t\treturn offset;\n\t\t},\n\t\t$_addEventListeners: function $_addEventListeners() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar directEvents = [];\n\t\t\tvar oppositeEvents = [];\n\n\t\t\tvar events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n\t\t\t\treturn ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n\t\t\t}) : [];\n\n\t\t\tevents.forEach(function (event) {\n\t\t\t\tswitch (event) {\n\t\t\t\t\tcase 'hover':\n\t\t\t\t\t\tdirectEvents.push('mouseenter');\n\t\t\t\t\t\toppositeEvents.push('mouseleave');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'focus':\n\t\t\t\t\t\tdirectEvents.push('focus');\n\t\t\t\t\t\toppositeEvents.push('blur');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'click':\n\t\t\t\t\t\tdirectEvents.push('click');\n\t\t\t\t\t\toppositeEvents.push('click');\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// schedule show tooltip\n\t\t\tdirectEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (_this5.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.usedByTooltip = true;\n\t\t\t\t\t!_this5.$_preventOpen && _this5.show({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\n\t\t\t// schedule hide tooltip\n\t\t\toppositeEvents.forEach(function (event) {\n\t\t\t\tvar func = function func(event) {\n\t\t\t\t\tif (event.usedByTooltip) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t_this5.hide({ event: event });\n\t\t\t\t};\n\t\t\t\t_this5.$_events.push({ event: event, func: func });\n\t\t\t\treference.addEventListener(event, func);\n\t\t\t});\n\t\t},\n\t\t$_scheduleShow: function $_scheduleShow() {\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_show();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_scheduleHide: function $_scheduleHide() {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\t\tvar skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tclearTimeout(this.$_scheduleTimer);\n\t\t\tif (skipDelay) {\n\t\t\t\tthis.$_hide();\n\t\t\t} else {\n\t\t\t\t// defaults to 0\n\t\t\t\tvar computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n\t\t\t\tthis.$_scheduleTimer = setTimeout(function () {\n\t\t\t\t\tif (!_this6.isOpen) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// if we are hiding because of a mouseleave, we must check that the new\n\t\t\t\t\t// reference isn't the tooltip, because in this case we don't want to hide it\n\t\t\t\t\tif (event && event.type === 'mouseleave') {\n\t\t\t\t\t\tvar isSet = _this6.$_setTooltipNodeEvent(event);\n\n\t\t\t\t\t\t// if we set the new event, don't hide the tooltip yet\n\t\t\t\t\t\t// the new event will take care to hide it if necessary\n\t\t\t\t\t\tif (isSet) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t_this6.$_hide();\n\t\t\t\t}, computedDelay);\n\t\t\t}\n\t\t},\n\t\t$_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n\t\t\tvar _this7 = this;\n\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tvar popoverNode = this.$refs.popover;\n\n\t\t\tvar relatedreference = event.relatedreference || event.toElement;\n\n\t\t\tvar callback = function callback(event2) {\n\t\t\t\tvar relatedreference2 = event2.relatedreference || event2.toElement;\n\n\t\t\t\t// Remove event listener after call\n\t\t\t\tpopoverNode.removeEventListener(event.type, callback);\n\n\t\t\t\t// If the new reference is not the reference element\n\t\t\t\tif (!reference.contains(relatedreference2)) {\n\t\t\t\t\t// Schedule to hide tooltip\n\t\t\t\t\t_this7.hide({ event: event2 });\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (popoverNode.contains(relatedreference)) {\n\t\t\t\t// listen to mouseleave on the tooltip element to be able to hide the tooltip\n\t\t\t\tpopoverNode.addEventListener(event.type, callback);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\t$_removeEventListeners: function $_removeEventListeners() {\n\t\t\tvar reference = this.$refs.trigger;\n\t\t\tthis.$_events.forEach(function (_ref3) {\n\t\t\t\tvar func = _ref3.func,\n\t\t\t\t event = _ref3.event;\n\n\t\t\t\treference.removeEventListener(event, func);\n\t\t\t});\n\t\t\tthis.$_events = [];\n\t\t},\n\t\t$_updatePopper: function $_updatePopper(cb) {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tcb();\n\t\t\t\tthis.popperInstance.update();\n\t\t\t}\n\t\t},\n\t\t$_restartPopper: function $_restartPopper() {\n\t\t\tif (this.popperInstance) {\n\t\t\t\tvar isOpen = this.isOpen;\n\t\t\t\tthis.dispose();\n\t\t\t\tthis.$_init();\n\t\t\t\tif (isOpen) {\n\t\t\t\t\tthis.show();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t$_handleGlobalClose: function $_handleGlobalClose(event) {\n\t\t\tvar _this8 = this;\n\n\t\t\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\t\t\tthis.hide({ event: event });\n\n\t\t\tif (event.closePopover) {\n\t\t\t\tthis.$emit('close-directive');\n\t\t\t} else {\n\t\t\t\tthis.$emit('auto-hide');\n\t\t\t}\n\n\t\t\tif (touch) {\n\t\t\t\tthis.$_preventOpen = true;\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t_this8.$_preventOpen = false;\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t},\n\t\t$_handleResize: function $_handleResize() {\n\t\t\tif (this.isOpen && this.popperInstance) {\n\t\t\t\tthis.popperInstance.update();\n\t\t\t\tthis.$emit('resize');\n\t\t\t}\n\t\t}\n\t}\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n\tif (isIOS) {\n\t\tdocument.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n\t\t\tpassive: true\n\t\t} : false);\n\t} else {\n\t\twindow.addEventListener('click', handleGlobalClick);\n\t}\n}\n\nfunction handleGlobalClick(event) {\n\thandleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n\thandleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n\tvar touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n\tvar popover = void 0;\n\tfor (var i = 0; i < openPopovers.length; i++) {\n\t\tpopover = openPopovers[i];\n\t\tvar contains = popover.$refs.popover.contains(event.target);\n\t\tif (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n\t\t\tpopover.$_handleGlobalClose(event, touch);\n\t\t}\n\t}\n}\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar lodash_merge = createCommonjsModule(function (module, exports) {\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = 'object' == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (typeof key == 'number' && value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n if (!(isArray(source) || isTypedArray(source))) {\n var props = baseKeysIn(source);\n }\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(object[key], srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n });\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = object[key],\n srcValue = source[key],\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n newValue = srcValue;\n if (isArray(srcValue) || isTypedArray(srcValue)) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n else {\n newValue = objValue;\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n});\n\nfunction install(Vue) {\n\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\tif (install.installed) return;\n\tinstall.installed = true;\n\n\tvar finalOptions = {};\n\tlodash_merge(finalOptions, defaultOptions, options);\n\n\tplugin.options = finalOptions;\n\tdirective.options = finalOptions;\n\n\tVue.directive('tooltip', directive);\n\tVue.directive('close-popover', vclosepopover);\n\tVue.component('v-popover', Popover);\n}\n\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = Popover;\n\nvar plugin = {\n\tinstall: install,\n\n\tget enabled() {\n\t\treturn state.enabled;\n\t},\n\n\tset enabled(value) {\n\t\tstate.enabled = value;\n\t}\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n\tGlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n\tGlobalVue = global.Vue;\n}\nif (GlobalVue) {\n\tGlobalVue.use(plugin);\n}\n\nexport { install, VTooltip, VClosePopover, VPopover, createTooltip, destroyTooltip };\nexport default plugin;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/v-tooltip/dist/v-tooltip.esm.js\n// module id = 41\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\",class:{'disabled': _vm.loading.delete || _vm.loading.disable}},[_c('div',{staticClass:\"avatar\",class:{'icon-loading-small': _vm.loading.delete || _vm.loading.disable}},[(!_vm.loading.delete && !_vm.loading.disable)?_c('img',{attrs:{\"alt\":\"\",\"width\":\"32\",\"height\":\"32\",\"src\":_vm.generateAvatar(_vm.user.id, 32),\"srcset\":_vm.generateAvatar(_vm.user.id, 64)+' 2x, '+_vm.generateAvatar(_vm.user.id, 128)+' 4x'}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.user.id))]),_vm._v(\" \"),_c('form',{staticClass:\"displayName\",class:{'icon-loading-small': _vm.loading.displayName},on:{\"submit\":function($event){$event.preventDefault();return _vm.updateDisplayName($event)}}},[_c('input',{ref:\"displayName\",attrs:{\"id\":'displayName'+_vm.user.id+_vm.rand,\"type\":\"text\",\"disabled\":_vm.loading.displayName||_vm.loading.all,\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.user.displayname}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]),_vm._v(\" \"),(_vm.settings.canChangePassword)?_c('form',{staticClass:\"password\",class:{'icon-loading-small': _vm.loading.password},on:{\"submit\":function($event){$event.preventDefault();return _vm.updatePassword($event)}}},[_c('input',{ref:\"password\",attrs:{\"id\":'password'+_vm.user.id+_vm.rand,\"type\":\"password\",\"required\":\"\",\"disabled\":_vm.loading.password||_vm.loading.all,\"minlength\":_vm.minPasswordLength,\"value\":\"\",\"placeholder\":_vm.t('settings', 'New password'),\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):_c('div'),_vm._v(\" \"),_c('form',{staticClass:\"mailAddress\",class:{'icon-loading-small': _vm.loading.mailAddress},on:{\"submit\":function($event){$event.preventDefault();return _vm.updateEmail($event)}}},[_c('input',{ref:\"mailAddress\",attrs:{\"id\":'mailAddress'+_vm.user.id+_vm.rand,\"type\":\"email\",\"disabled\":_vm.loading.mailAddress||_vm.loading.all,\"autocomplete\":\"new-password\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":_vm.user.email}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"groups\",class:{'icon-loading-small': _vm.loading.groups}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userGroups,\"options\":_vm.groups,\"disabled\":_vm.loading.groups||_vm.loading.all,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Add user in group'),\"label\":\"name\",\"track-by\":\"id\",\"limit\":2,\"limitText\":_vm.limitGroups,\"multiple\":true,\"taggable\":true,\"closeOnSelect\":false},on:{\"tag\":_vm.createGroup,\"select\":_vm.addUserGroup,\"remove\":_vm.removeUserGroup}})],1),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\",class:{'icon-loading-small': _vm.loading.subadmins}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userSubAdminsGroups,\"options\":_vm.subAdminsGroups,\"disabled\":_vm.loading.subadmins||_vm.loading.all,\"placeholder\":_vm.t('settings', 'Set user as admin for'),\"label\":\"name\",\"track-by\":\"id\",\"limit\":2,\"limitText\":_vm.limitGroups,\"multiple\":true,\"closeOnSelect\":false},on:{\"select\":_vm.addUserSubAdmin,\"remove\":_vm.removeUserSubAdmin}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\",class:{'icon-loading-small': _vm.loading.quota}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userQuota,\"options\":_vm.quotaOptions,\"disabled\":_vm.loading.quota||_vm.loading.all,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Select user quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota,\"input\":_vm.setUserQuota}}),_vm._v(\" \"),_c('progress',{staticClass:\"quota-user-progress\",class:{'warn':_vm.usedQuota>80},attrs:{\"max\":\"100\"},domProps:{\"value\":_vm.usedQuota}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\",class:{'icon-loading-small': _vm.loading.languages}},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.userLanguage,\"options\":_vm.languages,\"disabled\":_vm.loading.languages||_vm.loading.all,\"placeholder\":_vm.t('settings', 'No language set'),\"label\":\"name\",\"track-by\":\"code\",\"allowEmpty\":false,\"group-values\":\"languages\",\"group-label\":\"label\"},on:{\"input\":_vm.setUserLanguage}})],1):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"storageLocation\"},[_vm._v(_vm._s(_vm.user.storageLocation))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"userBackend\"},[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.user.lastLogin>0 ? _vm.OC.Util.formatDate(_vm.user.lastLogin) : ''),expression:\"user.lastLogin>0 ? OC.Util.formatDate(user.lastLogin) : ''\",modifiers:{\"auto\":true}}],staticClass:\"lastLogin\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.user.lastLogin>0 ? _vm.OC.Util.relativeModifiedDate(_vm.user.lastLogin) : _vm.t('settings','Never'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"},[(_vm.OC.currentUser !== _vm.user.id && _vm.user.id !== 'admin' && !_vm.loading.all)?_c('div',{staticClass:\"toggleUserActions\"},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.hideMenu),expression:\"hideMenu\"}],staticClass:\"icon-more\",on:{\"click\":_vm.showMenu}}),_vm._v(\" \"),_c('div',{staticClass:\"popovermenu\",class:{ 'open': _vm.openedMenu }},[_c('popover-menu',{attrs:{\"menu\":_vm.userActions}})],1)]):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-94a7aec0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/userList/userRow.vue\n// module id = 42\n// module chunks = 0","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueInfiniteLoading=t():e.VueInfiniteLoading=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(n){if(i[n])return i[n].exports;var a=i[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,\"a\",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/\",t(t.s=3)}([function(e,t){function i(e,t){var i=e[1]||\"\",a=e[3];if(!a)return i;if(t&&\"function\"==typeof btoa){var r=n(a);return[i].concat(a.sources.map(function(e){return\"/*# sourceURL=\"+a.sourceRoot+e+\" */\"})).concat([r]).join(\"\\n\")}return[i].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=i(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,i){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},a=0;a<this.length;a++){var r=this[a][0];\"number\"==typeof r&&(n[r]=!0)}for(a=0;a<e.length;a++){var o=e[a];\"number\"==typeof o[0]&&n[o[0]]||(i&&!o[2]?o[2]=i:i&&(o[2]=\"(\"+o[2]+\") and (\"+i+\")\"),t.push(o))}},t}},function(e,t,i){function n(e){for(var t=0;t<e.length;t++){var i=e[t],n=f[i.id];if(n){n.refs++;for(var a=0;a<n.parts.length;a++)n.parts[a](i.parts[a]);for(;a<i.parts.length;a++)n.parts.push(r(i.parts[a]));n.parts.length>i.parts.length&&(n.parts.length=i.parts.length)}else{for(var o=[],a=0;a<i.parts.length;a++)o.push(r(i.parts[a]));f[i.id]={id:i.id,refs:1,parts:o}}}}function a(){var e=document.createElement(\"style\");return e.type=\"text/css\",c.appendChild(e),e}function r(e){var t,i,n=document.querySelector('style[data-vue-ssr-id~=\"'+e.id+'\"]');if(n){if(m)return h;n.parentNode.removeChild(n)}if(b){var r=p++;n=u||(u=a()),t=o.bind(null,n,r,!1),i=o.bind(null,n,r,!0)}else n=a(),t=s.bind(null,n),i=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}function o(e,t,i,n){var a=i?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=g(t,a);else{var r=document.createTextNode(a),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(r,o[t]):e.appendChild(r)}}function s(e,t){var i=t.css,n=t.media,a=t.sourceMap;if(n&&e.setAttribute(\"media\",n),a&&(i+=\"\\n/*# sourceURL=\"+a.sources[0]+\" */\",i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}var l=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!l)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.\");var d=i(7),f={},c=l&&(document.head||document.getElementsByTagName(\"head\")[0]),u=null,p=0,m=!1,h=function(){},b=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,i){m=i;var a=d(e,t);return n(a),function(t){for(var i=[],r=0;r<a.length;r++){var o=a[r],s=f[o.id];s.refs--,i.push(s)}t?(a=d(e,t),n(a)):a=[];for(var r=0;r<i.length;r++){var s=i[r];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete f[s.id]}}}};var g=function(){var e=[];return function(t,i){return e[t]=i,e.filter(Boolean).join(\"\\n\")}}()},function(e,t){e.exports=function(e,t,i,n,a,r){var o,s=e=e||{},l=typeof e.default;\"object\"!==l&&\"function\"!==l||(o=e,s=e.default);var d=\"function\"==typeof s?s.options:s;t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0),i&&(d.functional=!0),a&&(d._scopeId=a);var f;if(r?(f=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(r)},d._ssrRegister=f):n&&(f=n),f){var c=d.functional,u=c?d.render:d.beforeCreate;c?(d._injectStyles=f,d.render=function(e,t){return f.call(t),u(e,t)}):d.beforeCreate=u?[].concat(u,f):[f]}return{esModule:o,exports:s,options:d}}},function(e,t,i){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=i(4);t.default=n.a,\"undefined\"!=typeof window&&window.Vue&&window.Vue.component(\"infinite-loading\",n.a)},function(e,t,i){\"use strict\";function n(e){i(5)}var a=i(8),r=i(14),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-fb2c869e\",null);t.a=l.exports},function(e,t,i){var n=i(6);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"2249d7a7\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,\".infinite-loading-container[data-v-fb2c869e]{clear:both;text-align:center}.infinite-loading-container[data-v-fb2c869e] [class^=loading-]{display:inline-block;margin:15px 0;width:28px;height:28px;font-size:28px;line-height:28px;border-radius:50%}.infinite-status-prompt[data-v-fb2c869e]{color:#666;font-size:14px;text-align:center;padding:10px 0}\",\"\"])},function(e,t){e.exports=function(e,t){for(var i=[],n={},a=0;a<t.length;a++){var r=t[a],o=r[0],s=r[1],l=r[2],d=r[3],f={id:e+\":\"+a,css:s,media:l,sourceMap:d};n[o]?n[o].parts.push(f):i.push(n[o]={id:o,parts:[f]})}return i}},function(e,t,i){\"use strict\";var n=i(9),a={STATE_CHANGER:[\"[Vue-infinite-loading warn]: 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:\",'<infinite-loading @infinite=\"infiniteHandler\"></infinite-loading>',\"\\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\"),INFINITE_EVENT:\"[Vue-infinite-loading warn]: `:on-infinite` property will be deprecated soon, please use `@infinite` event instead.\"},r={INFINITE_LOOP:[\"[Vue-infinite-loading error]: executed the callback function more than 10 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<div infinite-wrapper>\\n ...\\n \\x3c!-- set force-use-infinite-wrapper to true --\\x3e\\n <infinite-loading force-use-infinite-wrapper=\"true\"></infinite-loading>\\n</div>\\n ',\"more details: https://github.com/PeachScript/vue-infinite-loading/issues/55#issuecomment-316934169\"].join(\"\\n\")};t.a={name:\"InfiniteLoading\",data:function(){return{scrollParent:null,scrollHandler:null,isLoading:!1,isComplete:!1,isFirstLoad:!0,debounceTimer:null,debounceDuration:50,infiniteLoopChecked:!1,infiniteLoopTimer:null,continuousCallTimes:0}},components:{Spinner:n.a},computed:{isNoResults:{cache:!1,get:function(){var e=this.$slots[\"no-results\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&this.isFirstLoad&&!t}},isNoMore:{cache:!1,get:function(){var e=this.$slots[\"no-more\"],t=e&&e[0].elm&&\"\"===e[0].elm.textContent;return!this.isLoading&&this.isComplete&&!this.isFirstLoad&&!t}}},props:{distance:{type:Number,default:100},onInfinite:Function,spinner:String,direction:{type:String,default:\"bottom\"},forceUseInfiniteWrapper:null},mounted:function(){var e=this;this.scrollParent=this.getScrollParent(),this.scrollHandler=function(e){this.isLoading||(clearTimeout(this.debounceTimer),e&&e.constructor===Event?this.debounceTimer=setTimeout(this.attemptLoad,this.debounceDuration):this.attemptLoad())}.bind(this),setTimeout(this.scrollHandler,1),this.scrollParent.addEventListener(\"scroll\",this.scrollHandler),this.$on(\"$InfiniteLoading:loaded\",function(t){e.isFirstLoad=!1,e.isLoading&&e.$nextTick(e.attemptLoad.bind(null,!0)),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:complete\",function(t){e.isLoading=!1,e.isComplete=!0,e.$nextTick(function(){e.$forceUpdate()}),e.scrollParent.removeEventListener(\"scroll\",e.scrollHandler),t&&t.target===e||console.warn(a.STATE_CHANGER)}),this.$on(\"$InfiniteLoading:reset\",function(){e.isLoading=!1,e.isComplete=!1,e.isFirstLoad=!0,e.scrollParent.addEventListener(\"scroll\",e.scrollHandler),setTimeout(e.scrollHandler,1)}),this.onInfinite&&console.warn(a.INFINITE_EVENT),this.stateChanger={loaded:function(){e.$emit(\"$InfiniteLoading:loaded\",{target:e})},complete:function(){e.$emit(\"$InfiniteLoading:complete\",{target:e})},reset:function(){e.$emit(\"$InfiniteLoading:reset\",{target:e})}},this.$watch(\"forceUseInfiniteWrapper\",function(){e.scrollParent=e.getScrollParent()})},deactivated:function(){this.isLoading=!1,this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)},activated:function(){this.scrollParent.addEventListener(\"scroll\",this.scrollHandler)},methods:{attemptLoad:function(e){var t=this,i=this.getCurrentDistance();!this.isComplete&&i<=this.distance&&this.$el.offsetWidth+this.$el.offsetHeight>0?(this.isLoading=!0,\"function\"==typeof this.onInfinite?this.onInfinite.call(null,this.stateChanger):this.$emit(\"infinite\",this.stateChanger),!e||this.forceUseInfiniteWrapper||this.infiniteLoopChecked||(this.continuousCallTimes+=1,clearTimeout(this.infiniteLoopTimer),this.infiniteLoopTimer=setTimeout(function(){t.infiniteLoopChecked=!0},1e3),this.continuousCallTimes>10&&(console.error(r.INFINITE_LOOP),this.infiniteLoopChecked=!0))):this.isLoading=!1},getCurrentDistance:function(){var e=void 0;if(\"top\"===this.direction)e=isNaN(this.scrollParent.scrollTop)?this.scrollParent.pageYOffset:this.scrollParent.scrollTop;else{e=this.$el.getBoundingClientRect().top-(this.scrollParent===window?window.innerHeight:this.scrollParent.getBoundingClientRect().bottom)}return e},getScrollParent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.$el,t=void 0;return\"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)}},destroyed:function(){this.isComplete||this.scrollParent.removeEventListener(\"scroll\",this.scrollHandler)}}},function(e,t,i){\"use strict\";function n(e){i(10)}var a=i(12),r=i(13),o=i(2),s=n,l=o(a.a,r.a,!1,s,\"data-v-6e1fd88f\",null);t.a=l.exports},function(e,t,i){var n=i(11);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);i(1)(\"29881045\",n,!0)},function(e,t,i){t=e.exports=i(0)(void 0),t.push([e.i,'.loading-wave-dots[data-v-6e1fd88f]{position:relative}.loading-wave-dots[data-v-6e1fd88f] .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-6e1fd88f linear 2.8s infinite;animation:loading-wave-dots-data-v-6e1fd88f linear 2.8s infinite}.loading-wave-dots[data-v-6e1fd88f] .wave-item:first-child{margin-left:-36px}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(2){margin-left:-20px;-webkit-animation-delay:.14s;animation-delay:.14s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(3){margin-left:-4px;-webkit-animation-delay:.28s;animation-delay:.28s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:nth-child(4){margin-left:12px;-webkit-animation-delay:.42s;animation-delay:.42s}.loading-wave-dots[data-v-6e1fd88f] .wave-item:last-child{margin-left:28px;-webkit-animation-delay:.56s;animation-delay:.56s}@-webkit-keyframes loading-wave-dots-data-v-6e1fd88f{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-6e1fd88f{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-6e1fd88f] .circle-item{width:5px;height:5px;-webkit-animation:loading-circles-data-v-6e1fd88f linear .75s infinite;animation:loading-circles-data-v-6e1fd88f linear .75s infinite}.loading-circles[data-v-6e1fd88f] .circle-item:first-child{margin-top:-14.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){margin-top:-11.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){margin-top:-2.5px;margin-left:9.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){margin-top:6.26px;margin-left:6.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){margin-top:9.5px;margin-left:-2.5px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){margin-top:6.26px;margin-left:-11.26px}.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){margin-top:-2.5px;margin-left:-14.5px}.loading-circles[data-v-6e1fd88f] .circle-item:last-child{margin-top:-11.26px;margin-left:-11.26px}@-webkit-keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}@keyframes loading-circles-data-v-6e1fd88f{0%{background:#dfdfdf}90%{background:#505050}to{background:#dfdfdf}}.loading-bubbles[data-v-6e1fd88f] .bubble-item{background:#666;-webkit-animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite;animation:loading-bubbles-data-v-6e1fd88f linear .75s infinite}.loading-bubbles[data-v-6e1fd88f] .bubble-item:first-child{margin-top:-12.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2){margin-top:-9.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3){margin-top:-.5px;margin-left:11.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4){margin-top:8.26px;margin-left:8.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5){margin-top:11.5px;margin-left:-.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6){margin-top:8.26px;margin-left:-9.26px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7){margin-top:-.5px;margin-left:-12.5px}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child{margin-top:-9.26px;margin-left:-9.26px}@-webkit-keyframes loading-bubbles-data-v-6e1fd88f{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-6e1fd88f{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-6e1fd88f]{position:relative;border:1px solid #999;-webkit-animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite;animation:loading-rotating-data-v-6e1fd88f ease 1.5s infinite}.loading-default[data-v-6e1fd88f]: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-6e1fd88f]{border:2px solid #777;border-right-color:transparent;-webkit-animation:loading-rotating-data-v-6e1fd88f linear .85s infinite;animation:loading-rotating-data-v-6e1fd88f linear .85s infinite}@-webkit-keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotating-data-v-6e1fd88f{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.loading-bubbles[data-v-6e1fd88f],.loading-circles[data-v-6e1fd88f]{position:relative}.loading-bubbles[data-v-6e1fd88f] .bubble-item,.loading-circles[data-v-6e1fd88f] .circle-item{position:absolute;top:50%;left:50%;display:inline-block;border-radius:50%}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(2),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(2){-webkit-animation-delay:93ms;animation-delay:93ms}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(3),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(3){-webkit-animation-delay:.186s;animation-delay:.186s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(4),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(4){-webkit-animation-delay:.279s;animation-delay:.279s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(5),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(5){-webkit-animation-delay:.372s;animation-delay:.372s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(6),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(6){-webkit-animation-delay:.465s;animation-delay:.465s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:nth-child(7),.loading-circles[data-v-6e1fd88f] .circle-item:nth-child(7){-webkit-animation-delay:.558s;animation-delay:.558s}.loading-bubbles[data-v-6e1fd88f] .bubble-item:last-child,.loading-circles[data-v-6e1fd88f] .circle-item:last-child{-webkit-animation-delay:.651s;animation-delay:.651s}',\"\"])},function(e,t,i){\"use strict\";var n={BUBBLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-bubbles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"bubble-item\"}})}))}},CIRCLES:{render:function(e){return e(\"span\",{attrs:{class:\"loading-circles\"}},Array.apply(Array,Array(8)).map(function(){return e(\"span\",{attrs:{class:\"circle-item\"}})}))}},DEFAULT:{render:function(e){return e(\"i\",{attrs:{class:\"loading-default\"}})}},SPIRAL:{render:function(e){return e(\"i\",{attrs:{class:\"loading-spiral\"}})}},WAVEDOTS:{render:function(e){return e(\"span\",{attrs:{class:\"loading-wave-dots\"}},Array.apply(Array,Array(5)).map(function(){return e(\"span\",{attrs:{class:\"wave-item\"}})}))}}};t.a={name:\"spinner\",computed:{spinnerView:function(){return n[(this.spinner||\"\").toUpperCase()]||n.DEFAULT}},props:{spinner:String}}},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement;return(e._self._c||t)(e.spinnerView,{tag:\"component\"})},a=[],r={render:n,staticRenderFns:a};t.a=r},function(e,t,i){\"use strict\";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i(\"div\",{staticClass:\"infinite-loading-container\"},[i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isLoading,expression:\"isLoading\"}]},[e._t(\"spinner\",[i(\"spinner\",{attrs:{spinner:e.spinner}})])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoResults,expression:\"isNoResults\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-results\",[e._v(\"No results :(\")])],2),e._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.isNoMore,expression:\"isNoMore\"}],staticClass:\"infinite-status-prompt\"},[e._t(\"no-more\",[e._v(\"No more data :)\")])],2)])},a=[],r={render:n,staticRenderFns:a};t.a=r}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-infinite-loading/dist/vue-infinite-loading.js\n// module id = 43\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-list-grid\",attrs:{\"id\":\"app-content\"},on:{\"&scroll\":function($event){return _vm.onScroll($event)}}},[_c('div',{staticClass:\"row\",class:{'sticky': _vm.scrolled && !_vm.showConfig.showNewUserForm},attrs:{\"id\":\"grid-header\"}},[_c('div',{staticClass:\"avatar\",attrs:{\"id\":\"headerAvatar\"}}),_vm._v(\" \"),_c('div',{staticClass:\"name\",attrs:{\"id\":\"headerName\"}},[_vm._v(_vm._s(_vm.t('settings', 'Username')))]),_vm._v(\" \"),_c('div',{staticClass:\"displayName\",attrs:{\"id\":\"headerDisplayName\"}},[_vm._v(_vm._s(_vm.t('settings', 'Full name')))]),_vm._v(\" \"),_c('div',{staticClass:\"password\",attrs:{\"id\":\"headerPassword\"}},[_vm._v(_vm._s(_vm.t('settings', 'Password')))]),_vm._v(\" \"),_c('div',{staticClass:\"mailAddress\",attrs:{\"id\":\"headerAddress\"}},[_vm._v(_vm._s(_vm.t('settings', 'Email')))]),_vm._v(\" \"),_c('div',{staticClass:\"groups\",attrs:{\"id\":\"headerGroups\"}},[_vm._v(_vm._s(_vm.t('settings', 'Groups')))]),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\",attrs:{\"id\":\"headerSubAdmins\"}},[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\",attrs:{\"id\":\"headerQuota\"}},[_vm._v(_vm._s(_vm.t('settings', 'Quota')))]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\",attrs:{\"id\":\"headerLanguages\"}},[_vm._v(_vm._s(_vm.t('settings', 'Languages')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"headerStorageLocation storageLocation\"},[_vm._v(_vm._s(_vm.t('settings', 'Storage location')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"headerUserBackend userBackend\"},[_vm._v(_vm._s(_vm.t('settings', 'User backend')))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{staticClass:\"headerLastLogin lastLogin\"},[_vm._v(_vm._s(_vm.t('settings', 'Last login')))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"})]),_vm._v(\" \"),_c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConfig.showNewUserForm),expression:\"showConfig.showNewUserForm\"}],staticClass:\"row\",class:{'sticky': _vm.scrolled && _vm.showConfig.showNewUserForm},attrs:{\"id\":\"new-user\",\"disabled\":_vm.loading},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_c('div',{class:_vm.loading?'icon-loading-small':'icon-add'}),_vm._v(\" \"),_c('div',{staticClass:\"name\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.id),expression:\"newUser.id\"}],attrs:{\"id\":\"newusername\",\"type\":\"text\",\"required\":\"\",\"placeholder\":_vm.t('settings', 'User name'),\"name\":\"username\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\"},domProps:{\"value\":(_vm.newUser.id)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"id\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"displayName\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.displayName),expression:\"newUser.displayName\"}],attrs:{\"id\":\"newdisplayname\",\"type\":\"text\",\"placeholder\":_vm.t('settings', 'Display name'),\"name\":\"displayname\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\"},domProps:{\"value\":(_vm.newUser.displayName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"displayName\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"password\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.password),expression:\"newUser.password\"}],attrs:{\"id\":\"newuserpassword\",\"type\":\"password\",\"required\":_vm.newUser.mailAddress==='',\"placeholder\":_vm.t('settings', 'Password'),\"name\":\"password\",\"autocomplete\":\"new-password\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\",\"minlength\":_vm.minPasswordLength},domProps:{\"value\":(_vm.newUser.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"mailAddress\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newUser.mailAddress),expression:\"newUser.mailAddress\"}],attrs:{\"id\":\"newemail\",\"type\":\"email\",\"required\":_vm.newUser.password==='',\"placeholder\":_vm.t('settings', 'Mail address'),\"name\":\"email\",\"autocomplete\":\"off\",\"autocapitalize\":\"none\",\"autocorrect\":\"off\"},domProps:{\"value\":(_vm.newUser.mailAddress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.newUser, \"mailAddress\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"groups\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.groups,\"placeholder\":_vm.t('settings', 'Add user in group'),\"label\":\"name\",\"track-by\":\"id\",\"multiple\":true,\"close-on-select\":false},model:{value:(_vm.newUser.groups),callback:function ($$v) {_vm.$set(_vm.newUser, \"groups\", $$v)},expression:\"newUser.groups\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1),_vm._v(\" \"),(_vm.subAdminsGroups.length>0)?_c('div',{staticClass:\"subadmins\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.subAdminsGroups,\"placeholder\":_vm.t('settings', 'Set user as admin for'),\"label\":\"name\",\"track-by\":\"id\",\"multiple\":true,\"close-on-select\":false},model:{value:(_vm.newUser.subAdminsGroups),callback:function ($$v) {_vm.$set(_vm.newUser, \"subAdminsGroups\", $$v)},expression:\"newUser.subAdminsGroups\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(_vm._s(_vm.t('settings','No result')))])])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"quota\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.quotaOptions,\"placeholder\":_vm.t('settings', 'Select user quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota},model:{value:(_vm.newUser.quota),callback:function ($$v) {_vm.$set(_vm.newUser, \"quota\", $$v)},expression:\"newUser.quota\"}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"languages\"},[_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"options\":_vm.languages,\"placeholder\":_vm.t('settings', 'Default language'),\"label\":\"name\",\"track-by\":\"code\",\"allowEmpty\":false,\"group-values\":\"languages\",\"group-label\":\"label\"},model:{value:(_vm.newUser.language),callback:function ($$v) {_vm.$set(_vm.newUser, \"language\", $$v)},expression:\"newUser.language\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('div',{staticClass:\"storageLocation\"}):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend)?_c('div',{staticClass:\"userBackend\"}):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('div',{staticClass:\"lastLogin\"}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"userActions\"},[_c('input',{staticClass:\"button primary icon-checkmark-white has-tooltip\",attrs:{\"type\":\"submit\",\"id\":\"newsubmit\",\"value\":\"\",\"title\":_vm.t('settings', 'Add a new user')}}),_vm._v(\" \"),_c('input',{staticClass:\"button icon-close has-tooltip\",attrs:{\"type\":\"reset\",\"id\":\"newreset\",\"value\":\"\",\"title\":_vm.t('settings', 'Cancel and reset the form')},on:{\"click\":_vm.resetForm}})])]),_vm._v(\" \"),_vm._l((_vm.filteredUsers),function(user,key){return _c('user-row',{key:key,attrs:{\"user\":user,\"settings\":_vm.settings,\"showConfig\":_vm.showConfig,\"groups\":_vm.groups,\"subAdminsGroups\":_vm.subAdminsGroups,\"quotaOptions\":_vm.quotaOptions,\"languages\":_vm.languages}})}),_vm._v(\" \"),_c('infinite-loading',{ref:\"infiniteLoading\",on:{\"infinite\":_vm.infiniteHandler}},[_c('div',{attrs:{\"slot\":\"spinner\"},slot:\"spinner\"},[_c('div',{staticClass:\"users-icon-loading icon-loading\"})]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"no-more\"},slot:\"no-more\"},[_c('div',{staticClass:\"users-list-end\"},[_vm._v(\"— \"+_vm._s(_vm.t('settings', 'no more results'))+\" —\")])]),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"no-results\"},slot:\"no-results\"},[_c('div',{attrs:{\"id\":\"emptycontent\"}},[_c('div',{staticClass:\"icon-contacts-dark\"}),_vm._v(\" \"),_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'No users in here')))])])])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-347382ba\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/userList.vue\n// module id = 44\n// module chunks = 0","/**\n * vue-local-storage v0.6.0\n * (c) 2017 Alexander Avakov\n * @license MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.VueLocalStorage = factory());\n}(this, (function () { 'use strict';\n\nvar VueLocalStorage = function VueLocalStorage () {\n this._properties = {};\n this._namespace = '';\n this._isSupported = true;\n};\n\nvar prototypeAccessors = { namespace: {} };\n\n/**\n * Namespace getter.\n *\n * @returns {string}\n */\nprototypeAccessors.namespace.get = function () {\n return this._namespace\n};\n\n/**\n * Namespace setter.\n *\n * @param {string} value\n */\nprototypeAccessors.namespace.set = function (value) {\n this._namespace = value ? (value + \".\") : '';\n};\n\n/**\n * Concatenates localStorage key with namespace prefix.\n *\n * @param {string} lsKey\n * @returns {string}\n * @private\n */\nVueLocalStorage.prototype._getLsKey = function _getLsKey (lsKey) {\n return (\"\" + (this._namespace) + lsKey)\n};\n\n/**\n * Set a value to localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @param {*} rawValue\n * @param {*} type\n * @private\n */\nVueLocalStorage.prototype._lsSet = function _lsSet (lsKey, rawValue, type) {\n var key = this._getLsKey(lsKey);\n var value = type && [Array, Object].includes(type)\n ? JSON.stringify(rawValue)\n : rawValue;\n\n window.localStorage.setItem(key, value);\n};\n\n/**\n * Get value from localStorage giving respect to the namespace.\n *\n * @param {string} lsKey\n * @returns {any}\n * @private\n */\nVueLocalStorage.prototype._lsGet = function _lsGet (lsKey) {\n var key = this._getLsKey(lsKey);\n\n return window.localStorage[key]\n};\n\n/**\n * Get value from localStorage\n *\n * @param {String} lsKey\n * @param {*} defaultValue\n * @param {*} defaultType\n * @returns {*}\n */\nVueLocalStorage.prototype.get = function get (lsKey, defaultValue, defaultType) {\n var this$1 = this;\n if ( defaultValue === void 0 ) defaultValue = null;\n if ( defaultType === void 0 ) defaultType = String;\n\n if (!this._isSupported) {\n return null\n }\n\n if (this._lsGet(lsKey)) {\n var type = defaultType;\n\n for (var key in this$1._properties) {\n if (key === lsKey) {\n type = this$1._properties[key].type;\n break\n }\n }\n\n return this._process(type, this._lsGet(lsKey))\n }\n\n return defaultValue !== null ? defaultValue : null\n};\n\n/**\n * Set localStorage value\n *\n * @param {String} lsKey\n * @param {*} value\n * @returns {*}\n */\nVueLocalStorage.prototype.set = function set (lsKey, value) {\n var this$1 = this;\n\n if (!this._isSupported) {\n return null\n }\n\n for (var key in this$1._properties) {\n var type = this$1._properties[key].type;\n\n if ((key === lsKey)) {\n this$1._lsSet(lsKey, value, type);\n\n return value\n }\n }\n\n this._lsSet(lsKey, value);\n\n return value\n};\n\n/**\n * Remove value from localStorage\n *\n * @param {String} lsKey\n */\nVueLocalStorage.prototype.remove = function remove (lsKey) {\n if (!this._isSupported) {\n return null\n }\n\n return window.localStorage.removeItem(lsKey)\n};\n\n/**\n * Add new property to localStorage\n *\n * @param {String} key\n * @param {function} type\n * @param {*} defaultValue\n */\nVueLocalStorage.prototype.addProperty = function addProperty (key, type, defaultValue) {\n if ( defaultValue === void 0 ) defaultValue = undefined;\n\n type = type || String;\n\n this._properties[key] = { type: type };\n\n if (!this._lsGet(key) && defaultValue !== null) {\n this._lsSet(key, defaultValue, type);\n }\n};\n\n/**\n * Process the value before return it from localStorage\n *\n * @param {String} type\n * @param {*} value\n * @returns {*}\n * @private\n */\nVueLocalStorage.prototype._process = function _process (type, value) {\n switch (type) {\n case Boolean:\n return value === 'true'\n case Number:\n return parseFloat(value)\n case Array:\n try {\n var array = JSON.parse(value);\n\n return Array.isArray(array) ? array : []\n } catch (e) {\n return []\n }\n case Object:\n try {\n return JSON.parse(value)\n } catch (e) {\n return {}\n }\n default:\n return value\n }\n};\n\nObject.defineProperties( VueLocalStorage.prototype, prototypeAccessors );\n\nvar vueLocalStorage = new VueLocalStorage();\n\nvar index = {\n /**\n * Install vue-local-storage plugin\n *\n * @param {Vue} Vue\n * @param {Object} options\n */\n install: function (Vue, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof process !== 'undefined' &&\n (\n process.server ||\n process.SERVER_BUILD ||\n (process.env && process.env.VUE_ENV === 'server')\n )\n ) {\n return\n }\n\n var isSupported = true;\n\n try {\n var test = '__vue-localstorage-test__';\n\n window.localStorage.setItem(test, test);\n window.localStorage.removeItem(test);\n } catch (e) {\n isSupported = false;\n vueLocalStorage._isSupported = false;\n\n console.error('Local storage is not supported');\n }\n\n var name = options.name || 'localStorage';\n var bind = options.bind;\n\n if (options.namespace) {\n vueLocalStorage.namespace = options.namespace;\n }\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n var this$1 = this;\n\n if (!isSupported) {\n return\n }\n\n if (this.$options[name]) {\n Object.keys(this.$options[name]).forEach(function (key) {\n var config = this$1.$options[name][key];\n var ref = [config.type, config.default];\n var type = ref[0];\n var defaultValue = ref[1];\n\n vueLocalStorage.addProperty(key, type, defaultValue);\n\n var existingProp = Object.getOwnPropertyDescriptor(vueLocalStorage, key);\n\n if (!existingProp) {\n var prop = {\n get: function () { return Vue.localStorage.get(key, defaultValue); },\n set: function (val) { return Vue.localStorage.set(key, val); },\n configurable: true\n };\n\n Object.defineProperty(vueLocalStorage, key, prop);\n Vue.util.defineReactive(vueLocalStorage, key, defaultValue);\n } else if (!Vue.config.silent) {\n console.log((key + \": is already defined and will be reused\"));\n }\n\n if ((bind || config.bind) && config.bind !== false) {\n this$1.$options.computed = this$1.$options.computed || {};\n\n if (!this$1.$options.computed[key]) {\n this$1.$options.computed[key] = {\n get: function () { return Vue.localStorage[key]; },\n set: function (val) { Vue.localStorage[key] = val; }\n };\n }\n }\n });\n }\n }\n });\n\n Vue[name] = vueLocalStorage;\n Vue.prototype[(\"$\" + name)] = vueLocalStorage;\n }\n};\n\nreturn index;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-localstorage/dist/vue-local-storage.js\n// module id = 45\n// module chunks = 0","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/index.js\n// module id = 46\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/axios.js\n// module id = 47\n// module chunks = 0","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-buffer/index.js\n// module id = 48\n// module chunks = 0","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/Axios.js\n// module id = 49\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/normalizeHeaderName.js\n// module id = 50\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/settle.js\n// module id = 51\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/enhanceError.js\n// module id = 52\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/buildURL.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/parseHeaders.js\n// module id = 54\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/isURLSameOrigin.js\n// module id = 55\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/btoa.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/cookies.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/InterceptorManager.js\n// module id = 58\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/dispatchRequest.js\n// module id = 59\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/core/transformData.js\n// module id = 60\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/isAbsoluteURL.js\n// module id = 61\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/combineURLs.js\n// module id = 62\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/cancel/CancelToken.js\n// module id = 63\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/axios/lib/helpers/spread.js\n// module id = 64\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('app-navigation',{attrs:{\"menu\":_vm.menu}},[_c('template',{slot:\"settings-content\"},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.t('settings', 'Default quota :')))]),_vm._v(\" \"),_c('multiselect',{staticClass:\"multiselect-vue\",attrs:{\"value\":_vm.defaultQuota,\"options\":_vm.quotaOptions,\"tag-placeholder\":\"create\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"label\":\"label\",\"track-by\":\"id\",\"allowEmpty\":false,\"taggable\":true},on:{\"tag\":_vm.validateQuota,\"input\":_vm.setDefaultQuota}})],1),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showLanguages),expression:\"showLanguages\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showLanguages\"},domProps:{\"checked\":_vm.showLanguages,\"checked\":Array.isArray(_vm.showLanguages)?_vm._i(_vm.showLanguages,null)>-1:(_vm.showLanguages)},on:{\"change\":function($event){var $$a=_vm.showLanguages,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showLanguages=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showLanguages=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showLanguages=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showLanguages\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show Languages')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showLastLogin),expression:\"showLastLogin\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showLastLogin\"},domProps:{\"checked\":_vm.showLastLogin,\"checked\":Array.isArray(_vm.showLastLogin)?_vm._i(_vm.showLastLogin,null)>-1:(_vm.showLastLogin)},on:{\"change\":function($event){var $$a=_vm.showLastLogin,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showLastLogin=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showLastLogin=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showLastLogin=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showLastLogin\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show last login')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showUserBackend),expression:\"showUserBackend\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showUserBackend\"},domProps:{\"checked\":_vm.showUserBackend,\"checked\":Array.isArray(_vm.showUserBackend)?_vm._i(_vm.showUserBackend,null)>-1:(_vm.showUserBackend)},on:{\"change\":function($event){var $$a=_vm.showUserBackend,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showUserBackend=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showUserBackend=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showUserBackend=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showUserBackend\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show user backend')))])]),_vm._v(\" \"),_c('div',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.showStoragePath),expression:\"showStoragePath\"}],staticClass:\"checkbox\",attrs:{\"type\":\"checkbox\",\"id\":\"showStoragePath\"},domProps:{\"checked\":_vm.showStoragePath,\"checked\":Array.isArray(_vm.showStoragePath)?_vm._i(_vm.showStoragePath,null)>-1:(_vm.showStoragePath)},on:{\"change\":function($event){var $$a=_vm.showStoragePath,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.showStoragePath=$$a.concat([$$v]))}else{$$i>-1&&(_vm.showStoragePath=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.showStoragePath=$$c}}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"showStoragePath\"}},[_vm._v(_vm._s(_vm.t('settings', 'Show storage path')))])])])],2),_vm._v(\" \"),_c('user-list',{attrs:{\"users\":_vm.users,\"showConfig\":_vm.showConfig,\"selectedGroup\":_vm.selectedGroup}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-70f1d23b\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/Users.vue\n// module id = 65\n// module chunks = 0","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport users from './users';\nimport settings from './settings';\nimport oc from './oc';\n\nVue.use(Vuex)\n\nconst debug = process.env.NODE_ENV !== 'production';\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\tconsole.log(state, error);\n\t\tOC.Notification.showTemporary(t('settings','An error occured during the request. Unable to proceed.'));\n\t}\n};\n\nexport default new Vuex.Store({\n\tmodules: {\n\t\tusers,\n\t\tsettings,\n\t\toc\n\t},\n\tstrict: debug,\n\n\tmutations\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","/**\n * vuex v3.0.1\n * (c) 2017 Evan You\n * @license MIT\n */\nvar applyMixin = function (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n};\n\nvar devtoolHook =\n typeof window !== 'undefined' &&\n window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\n\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n this._children = Object.create(null);\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors$1 = { namespaced: { configurable: true } };\n\nprototypeAccessors$1.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors$1 );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if (process.env.NODE_ENV !== 'production') {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n if (!parent.getChild(key).runtime) { return }\n\n parent.removeChild(key);\n};\n\nfunction update (path, targetModule, newModule) {\n if (process.env.NODE_ENV !== 'production') {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"Store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n var state = options.state; if ( state === void 0 ) state = {};\n if (typeof state === 'function') {\n state = state() || {};\n }\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n if (Vue.config.devtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors = { state: { configurable: true } };\n\nprototypeAccessors.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors.state.set = function (v) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, \"Use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n this._subscribers.forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n process.env.NODE_ENV !== 'production' &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n this._actionSubscribers.forEach(function (sub) { return sub(action, this$1.state); });\n\n return entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload)\n};\n\nStore.prototype.subscribe = function subscribe (fn) {\n return genericSubscribe(fn, this._subscribers)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn) {\n return genericSubscribe(fn, this._actionSubscribers)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors );\n\nfunction genericSubscribe (fn, subs) {\n if (subs.indexOf(fn) < 0) {\n subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n computed[key] = function () { return fn(store); };\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (process.env.NODE_ENV !== 'production' && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (process.env.NODE_ENV !== 'production' && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n var gettersProxy = {};\n\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n\n return gettersProxy\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload, cb) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload, cb);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if (process.env.NODE_ENV !== 'production') {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if (process.env.NODE_ENV !== 'production') {\n assert(store._committing, \"Do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.length\n ? path.reduce(function (state, key) { return state[key]; }, state)\n : state\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof type === 'string', (\"Expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (process.env.NODE_ENV !== 'production' && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\nfunction normalizeMap (map) {\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (process.env.NODE_ENV !== 'production' && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\nvar index_esm = {\n Store: Store,\n install: install,\n version: '3.0.1',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers\n};\n\nexport { Store, install, mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers };\nexport default index_esm;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vuex/dist/vuex.esm.js\n// module id = 67\n// module chunks = 0","import api from './api';\n\nconst orderGroups = function(groups, orderBy) {\n\t/* const SORT_USERCOUNT = 1;\n\t * const SORT_GROUPNAME = 2;\n\t * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n\t */\n\tif (orderBy === 1) {\n\t\treturn groups.sort((a, b) => a.usercount < b.usercount);\n\t} else {\n\t\treturn groups.sort((a, b) => a.name.localeCompare(b.name));\n\t}\n};\n\nconst state = {\n\tusers: [],\n\tgroups: [],\n\torderBy: 1,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tuserCount: 0\n};\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\t// convert obj to array\n\t\tlet users = state.users.concat(Object.keys(usersObj).map(userid => usersObj[userid]));\n\t\tstate.usersOffset += state.usersLimit;\n\t\tstate.users = users;\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length!=='' ? length : 0;\n\t},\n\tinitGroups(state, {groups, orderBy, userCount}) {\n\t\tstate.groups = groups;\n\t\tstate.orderBy = orderBy;\n\t\tstate.userCount = userCount;\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddGroup(state, gid) {\n\t\ttry {\n\t\t\tstate.groups.push({\n\t\t\t\tid: gid,\n\t\t\t\tname: gid,\n\t\t\t\tusercount: 0 // user will be added after the creation\n\t\t\t});\n\t\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t\t} catch (e) {\n\t\t\tconsole.log('Can\\'t create group', e);\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tlet groupIndex = state.groups.findIndex(groupSearch => groupSearch.id == gid);\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1);\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\t// this should not be needed as it would means the user contains a group\n\t\t// the server database doesn't have.\n\t\tlet group = state.groups.find(groupSearch => groupSearch.id == gid);\n\t\tif (group) {\n\t\t\tgroup.usercount++; // increase count\n\t\t}\n\t\tlet groups = state.users.find(user => user.id == userid).groups;\n\t\tgroups.push(gid);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\t// this should not be needed as it would means the user contains a group\n\t\t// the server database doesn't have.\n\t\tlet group = state.groups.find(groupSearch => groupSearch.id == gid);\n\t\tif (group) {\n\t\t\tgroup.usercount--; // lower count\n\t\t}\n\t\tlet groups = state.users.find(user => user.id == userid).groups;\n\t\tgroups.splice(groups.indexOf(gid),1);\n\t\tstate.groups = orderGroups(state.groups, state.orderBy);\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tlet groups = state.users.find(user => user.id == userid).subadmin;\n\t\tgroups.push(gid);\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tlet groups = state.users.find(user => user.id == userid).subadmin;\n\t\tgroups.splice(groups.indexOf(gid),1);\n\t},\n\tdeleteUser(state, userid) {\n\t\tlet userIndex = state.users.findIndex(user => user.id == userid);\n\t\tstate.users.splice(userIndex, 1);\n\t},\n\taddUserData(state, response) {\n\t\tstate.users.push(response.data.ocs.data);\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tstate.users.find(user => user.id == userid).enabled = enabled;\n\t\t// increment or not\n\t\tstate.groups.find(group => group.id == 'disabled').usercount += enabled ? -1 : 1;\n\t\tstate.userCount += enabled ? 1 : -1;\n\t\tconsole.log(enabled);\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tlet humanValue = OC.Util.computerFileSize(value);\n\t\t\tstate.users.find(user => user.id == userid)[key][key] = humanValue?humanValue:value;\n\t\t} else {\n\t\t\tstate.users.find(user => user.id == userid)[key] = value;\n\t\t}\n\t},\n\n\t/**\n\t * Reset users list\n\t */\n\tresetUsers(state) {\n\t\tstate.users = [];\n\t\tstate.usersOffset = 0;\n\t}\n};\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users;\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups;\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength;\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset;\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit;\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount;\n\t}\n};\n\nconst actions = {\n\n\t/**\n\t * Get all users with full details\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @returns {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\tgroup = typeof group === 'string' ? group : '';\n\t\tif (group !== '') {\n\t\t\treturn api.get(OC.linkToOCS(`cloud/groups/${group}/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t\t}\n\n\t\treturn api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\n\t/**\n\t * Get all users with full details\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @returns {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : '';\n\t\treturn api.get(OC.linkToOCS(`cloud/users/details?offset=${offset}&limit=${limit}&search=${search}`, 2))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {int} options.offset List offset to request\n\t * @param {int} options.limit List number to return from offset\n\t * @returns {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(OC.linkToOCS(`cloud/users/${groupid}/details?offset=${offset}&limit=${limit}`, 2))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\t\n\n\tgetPasswordPolicyMinLength(context) {\n\t\treturn api.get(OC.linkToOCS('apps/provisioning_api/api/v1/config/apps/password_policy/minLength', 2))\n\t\t\t.then((response) => context.commit('setPasswordPolicyMinLength', response.data.ocs.data.data))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error));\n\t},\n\n\t/**\n\t * Add group\n\t * \n\t * @param {Object} context\n\t * @param {string} gid Group id\n\t * @returns {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/groups`, 2), {groupid: gid})\n\t\t\t\t.then((response) => context.commit('addGroup', gid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove group\n\t * \n\t * @param {Object} context\n\t * @param {string} gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/groups/${gid}`, 2))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }));\n\t},\n\n\t/**\n\t * Add user to group\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove user from group\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}/groups`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Add user to group admin\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @returns {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}/subadmins`, 2), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Delete a user\n\t * \n\t * @param {Object} context\n\t * @param {string} userid User id \n\t * @returns {Promise}\n\t */\n\tdeleteUser(context, { userid }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.delete(OC.linkToOCS(`cloud/users/${userid}`, 2))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Add a user\n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password \n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @returns {Promise}\n\t */\n\taddUser({context, dispatch}, { userid, password, email, groups, subadmin, quota, language }) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`cloud/users`, 2), { userid, password, email, groups, subadmin, quota, language })\n\t\t\t\t.then((response) => dispatch('addUserData', userid))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t * \n\t * @param {Object} context\n\t * @param {string} userid User id \n\t * @returns {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.get(OC.linkToOCS(`cloud/users/${userid}`, 2))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/** Enable or disable user \n\t * \n\t * @param {Object} context\n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @returns {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tlet userStatus = enabled ? 'enable' : 'disable';\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.put(OC.linkToOCS(`cloud/users/${userid}/${userStatus}`, 2))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t},\n\n\t/**\n\t * Edit user data\n\t * \n\t * @param {Object} context \n\t * @param {Object} options\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @returns {Promise}\n\t */\n\tsetUserData(context, { userid, key, value }) {\n\t\tlet allowedEmpty = ['email', 'displayname'];\n\t\tif (['email', 'language', 'quota', 'displayname', 'password'].indexOf(key) !== -1) {\n\t\t\t// We allow empty email or displayname\n\t\t\tif (typeof value === 'string' &&\n\t\t\t\t(\n\t\t\t\t\t(allowedEmpty.indexOf(key) === -1 && value.length > 0) ||\n\t\t\t\t\tallowedEmpty.indexOf(key) !== -1\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn api.requireAdmin().then((response) => {\n\t\t\t\t\treturn api.put(OC.linkToOCS(`cloud/users/${userid}`, 2), { key: key, value: value })\n\t\t\t\t\t\t.then((response) => context.commit('setUserData', { userid, key, value }))\n\t\t\t\t\t\t.catch((error) => {throw error;});\n\t\t\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }));\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject(new Error('Invalid request data'));\n\t}\n};\n\nexport default { state, mutations, getters, actions };\n\n\n// WEBPACK FOOTER //\n// ./src/store/users.js","import api from './api';\n\nconst state = {\n\tserverData: {}\n};\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data;\n\t}\n};\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData;\n\t}\n};\nconst actions = {};\n\nexport default {state, mutations, getters, actions};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/settings.js","import api from './api';\n\nconst state = {};\nconst mutations = {};\nconst getters = {};\nconst actions = {\n\t/**\n * Set application config in database\n * \n\t * @param {Object} context\n * @param {Object} options\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @returns{Promise}\n\t */\n\tsetAppConfig(context, {app, key, value}) {\n\t\treturn api.requireAdmin().then((response) => {\n\t\t\treturn api.post(OC.linkToOCS(`apps/provisioning_api/api/v1/config/apps/${app}/${key}`, 2), {value: value})\n\t\t\t\t.catch((error) => {throw error;});\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }));;\n }\n};\n\nexport default {state, mutations, getters, actions};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/oc.js"],"sourceRoot":""}
\ No newline at end of file diff --git a/tests/acceptance/features/bootstrap/AppNavigationContext.php b/tests/acceptance/features/bootstrap/AppNavigationContext.php index a573c1fe222..e6e6bcc8479 100644 --- a/tests/acceptance/features/bootstrap/AppNavigationContext.php +++ b/tests/acceptance/features/bootstrap/AppNavigationContext.php @@ -1,6 +1,7 @@ <?php /** + * * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * @@ -25,92 +26,92 @@ use Behat\Behat\Context\Context; class AppNavigationContext implements Context, ActorAwareInterface { - use ActorAware; - - /** - * @return Locator - */ - public static function appNavigation() { - return Locator::forThe()->id("app-navigation")-> - describedAs("App navigation"); - } - - /** - * @return Locator - */ - public static function appNavigationSectionItemFor($sectionText) { - return Locator::forThe()->xpath("//li/a[normalize-space() = '$sectionText']/..")-> - descendantOf(self::appNavigation())-> - describedAs($sectionText . " section item in App Navigation"); - } - - /** - * @return Locator - */ - public static function appNavigationCurrentSectionItem() { - return Locator::forThe()->css(".active")-> - descendantOf(self::appNavigation())-> - describedAs("Current section item in App Navigation"); - } - - /** - * @return Locator - */ - public static function buttonForTheSection($class, $section) { - return Locator::forThe()->css("." . $class)-> - descendantOf(self::appNavigationSectionItemFor($section))-> - describedAs("The $class button on the $section section in App Navigation"); - } - - /** - * @return Locator - */ - public static function counterForTheSection($section) { - return Locator::forThe()->css(".app-navigation-entry-utils-counter")-> - descendantOf(self::appNavigationSectionItemFor($section))-> - describedAs("The counter for the $section section in App Navigation"); - } - - /** - * @Given I open the :section section - */ - public function iOpenTheSection($section) { - $this->actor->find(self::appNavigationSectionItemFor($section), 10)->click(); - } - - /** - * @Given I click the :class button on the :section section - */ - public function iClickTheButtonInTheSection($class, $section) { - $this->actor->find(self::buttonForTheSection($class, $section), 10)->click(); - } - - /** - * @Then I see that the current section is :section - */ - public function iSeeThatTheCurrentSectionIs($section) { - PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::appNavigationCurrentSectionItem(), 10)->getText(), $section); - } - - /** - * @Then I see that the section :section is shown - */ - public function iSeeThatTheSectionIsShown($section) { - WaitFor::elementToBeEventuallyShown($this->actor, self::appNavigationSectionItemFor($section)); - } - - /** - * @Then I see that the section :section is not shown - */ - public function iSeeThatTheSectionIsNotShown($section) { - WaitFor::elementToBeEventuallyNotShown($this->actor, self::appNavigationSectionItemFor($section)); + use ActorAware; + + /** + * @return Locator + */ + public static function appNavigation() { + return Locator::forThe()->id("app-navigation")-> + describedAs("App navigation"); + } + + /** + * @return Locator + */ + public static function appNavigationSectionItemFor($sectionText) { + return Locator::forThe()->xpath("//li/a[normalize-space() = '$sectionText']/..")-> + descendantOf(self::appNavigation())-> + describedAs($sectionText . " section item in App Navigation"); + } + + /** + * @return Locator + */ + public static function appNavigationCurrentSectionItem() { + return Locator::forThe()->css(".active")-> + descendantOf(self::appNavigation())-> + describedAs("Current section item in App Navigation"); + } + + /** + * @return Locator + */ + public static function buttonForTheSection($class, $section) { + return Locator::forThe()->css("." . $class)-> + descendantOf(self::appNavigationSectionItemFor($section))-> + describedAs("The $class button on the $section section in App Navigation"); + } + + /** + * @return Locator + */ + public static function counterForTheSection($section) { + return Locator::forThe()->css(".app-navigation-entry-utils-counter")-> + descendantOf(self::appNavigationSectionItemFor($section))-> + describedAs("The counter for the $section section in App Navigation"); + } + + /** + * @Given I open the :section section + */ + public function iOpenTheSection($section) { + $this->actor->find(self::appNavigationSectionItemFor($section), 10)->click(); + } + + /** + * @Given I click the :class button on the :section section + */ + public function iClickTheButtonInTheSection($class, $section) { + $this->actor->find(self::buttonForTheSection($class, $section), 10)->click(); + } + + /** + * @Then I see that the current section is :section + */ + public function iSeeThatTheCurrentSectionIs($section) { + PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::appNavigationCurrentSectionItem(), 10)->getText(), $section); + } + + /** + * @Then I see that the section :section is shown + */ + public function iSeeThatTheSectionIsShown($section) { + WaitFor::elementToBeEventuallyShown($this->actor, self::appNavigationSectionItemFor($section)); + } + + /** + * @Then I see that the section :section is not shown + */ + public function iSeeThatTheSectionIsNotShown($section) { + WaitFor::elementToBeEventuallyNotShown($this->actor, self::appNavigationSectionItemFor($section)); } - /** - * @Then I see that the section :section has a count of :count - */ - public function iSeeThatTheSectionHasACountOf($section, $count) { - PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::counterForTheSection($section), 10)->getText(), $count); + /** + * @Then I see that the section :section has a count of :count + */ + public function iSeeThatTheSectionHasACountOf($section, $count) { + PHPUnit_Framework_Assert::assertEquals($this->actor->find(self::counterForTheSection($section), 10)->getText(), $count); } } diff --git a/tests/acceptance/features/bootstrap/AppSettingsContext.php b/tests/acceptance/features/bootstrap/AppSettingsContext.php index eb499be93dd..5cf54cb5280 100644 --- a/tests/acceptance/features/bootstrap/AppSettingsContext.php +++ b/tests/acceptance/features/bootstrap/AppSettingsContext.php @@ -1,6 +1,7 @@ <?php /** + * * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * diff --git a/tests/acceptance/features/bootstrap/DialogContext.php b/tests/acceptance/features/bootstrap/DialogContext.php index 5fa2ad45f72..8f387992b5f 100644 --- a/tests/acceptance/features/bootstrap/DialogContext.php +++ b/tests/acceptance/features/bootstrap/DialogContext.php @@ -1,6 +1,7 @@ <?php /** + * * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * * @license GNU AGPL version 3 or any later version @@ -24,44 +25,44 @@ use Behat\Behat\Context\Context; class DialogContext implements Context, ActorAwareInterface { - use ActorAware; + use ActorAware; - /** - * @return Locator - */ - public static function theDialog() { - return Locator::forThe()->css(".oc-dialog")-> - describedAs("The dialog"); - } + /** + * @return Locator + */ + public static function theDialog() { + return Locator::forThe()->css(".oc-dialog")-> + describedAs("The dialog"); + } - /** - * @return Locator - */ - public static function theDialogButton($text) { - return Locator::forThe()->xpath("//button[normalize-space() = '$text']")-> - descendantOf(self::theDialog())-> - describedAs($text . " button of the dialog"); - } + /** + * @return Locator + */ + public static function theDialogButton($text) { + return Locator::forThe()->xpath("//button[normalize-space() = '$text']")-> + descendantOf(self::theDialog())-> + describedAs($text . " button of the dialog"); + } - /** - * @Given I click the :text button of the confirmation dialog - */ - public function iClickTheDialogButton($text) { - $this->actor->find(self::theDialogButton($text), 10)->click(); - } + /** + * @Given I click the :text button of the confirmation dialog + */ + public function iClickTheDialogButton($text) { + $this->actor->find(self::theDialogButton($text), 10)->click(); + } - /** - * @Then I see that the confirmation dialog is shown - */ - public function iSeeThatTheConfirmationDialogIsShown() { - WaitFor::elementToBeEventuallyShown($this->actor, self::theDialog()); - } + /** + * @Then I see that the confirmation dialog is shown + */ + public function iSeeThatTheConfirmationDialogIsShown() { + WaitFor::elementToBeEventuallyShown($this->actor, self::theDialog()); + } - /** - * @Then I see that the confirmation dialog is not shown - */ - public function iSeeThatTheConfirmationDialogIsNotShown() { - WaitFor::elementToBeEventuallyNotShown($this->actor, self::theDialog()); - } + /** + * @Then I see that the confirmation dialog is not shown + */ + public function iSeeThatTheConfirmationDialogIsNotShown() { + WaitFor::elementToBeEventuallyNotShown($this->actor, self::theDialog()); + } } diff --git a/tests/acceptance/features/bootstrap/UsersSettingsContext.php b/tests/acceptance/features/bootstrap/UsersSettingsContext.php index 0e26f3e9b21..cede55caacf 100644 --- a/tests/acceptance/features/bootstrap/UsersSettingsContext.php +++ b/tests/acceptance/features/bootstrap/UsersSettingsContext.php @@ -1,6 +1,7 @@ <?php /** + * * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com) * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * |