\n\n\t\t\n\t\t\n\n\t\t\n\n\t\t\n\t\t\t{{ t('settings', 'Either password or email is required') }}\n\t\t\n\n\t\t\n\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t
\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=0d9243e9&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d9243e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ saving ? t('settings', 'Saving\\u00A0…') : t('settings', 'Save') }}\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=2a263a52&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a263a52\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"outTransition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"fieldConfig\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quotaOptions\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Add new account') }}\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ff6ba29\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\t
\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=78b3749c&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78b3749c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\n\t\t\n\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=989d7232&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"989d7232\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c72a095\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"account-management__search\",attrs:{\"role\":\"search\",\"aria-label\":_setup.t('settings', 'Search accounts and groups')}},[_c(_setup.NcInputField,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…'),\"show-trailing-button\":_setup.searchInput !== '',\"trailingButtonLabel\":_setup.t('settings', 'Clear search')},on:{\"trailing-button-click\":_setup.clearSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true},{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}]),model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}})],1),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t\n\t\t\t\t
\n\n\t\t\n\t\t\n\n\t\t\n\n\t\t\n\t\t\t{{ t('settings', 'Either password or email is required') }}\n\t\t\n\n\t\t\n\n\t\t\n\n\t\t\n\t\t\n\t\t\n\t\t\n\n\t\t\n\t\t
\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=0d9243e9&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d9243e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ saving ? t('settings', 'Saving\\u00A0…') : t('settings', 'Save') }}\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=2a263a52&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a263a52\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"outTransition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"fieldConfig\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quotaOptions\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Add new account') }}\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ff6ba29\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\t
\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=78b3749c&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78b3749c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\n\t\t\n\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=989d7232&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"989d7232\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c72a095\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"account-management__search\",attrs:{\"role\":\"search\",\"aria-label\":_setup.t('settings', 'Search accounts and groups')}},[_c(_setup.NcInputField,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…'),\"show-trailing-button\":_setup.searchInput !== '',\"trailingButtonLabel\":_setup.t('settings', 'Clear search')},on:{\"trailing-button-click\":_setup.clearSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true},{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}]),model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}})],1),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon trash-can-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\t\n\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t\n\t\t\t\t
\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{ count }}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{{ t('settings', 'Delete group') }}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=00284738\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show language') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show account backend') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show storage path') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show first login') }}\n\t\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Show last login') }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.') }}\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('settings', 'Send welcome email to new accounts') }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"649c1de8\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=0567bb0c&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0567bb0c\",\n null\n \n)\n\nexport default component.exports"],"names":["formatGroup","group","id","name","displayname","usercount","disabled","canAdd","canRemove","searchGroups","search","offset","limit","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","data","axios","get","generateOcsUrl","signal","ocs","groups","map","error","unlimitedQuota","label","t","defaultQuota","isObfuscated","user","keys","Object","length","at","___CSS_LOADER_EXPORT___","push","module","components","NcSelect","inject","creatingGroup","promise","computed","settings","$store","getters","getServerData","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","availableSubAdminGroups","groupsLabel","methods","query","toggleLoading","cancel","commit","logger","createGroup","gid","dispatch","formData","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","value","isCreating","on","model","callback","$$v","$set","expression","_v","subadminGroups","_e","resolveLanguage","serverLanguages","language","code","commonLanguages","otherLanguages","find","lang","showConfig","getShowConfig","languages","languageFilterBy","option","some","toLocaleLowerCase","includes","showLanguages","NcSelectUsers","possibleManagers","loading","searchTimeout","managerModel","m","manager","displayName","_managerModelCache","managerOptions","u","subname","email","beforeUnmount","clearTimeout","onManagerChange","searchUserManager","setTimeout","fetchManagers","response","users","values","props","quotaOptions","type","Array","required","validateQuota","quota","fallback","parsed","parseFileSize","formatFileSize","NcPasswordField","NcTextField","UserFormGroups","UserFormLanguage","UserFormManager","UserFormQuota","fieldConfig","default","errors","minPasswordLength","getPasswordPolicyMinLength","unhandledErrors","handled","Set","fromEntries","entries","key","has","focusField","$refs","focus","username","show","_s","ref","showPasswordEmailHint","password","undefined","_l","message","field","NcButton","NcDialog","UserFormFields","provide","editedUser","emits","allGroups","getGroups","g","Boolean","subadmin","q","userToFormData","initialData","structuredClone","saving","fieldErrors","canChangePassword","backendCapabilities","setPassword","save","payload","initial","current","currentManagerId","currentGroupIds","sort","initialGroupIds","JSON","stringify","currentSubadminIds","initialSubadminIds","diffPayload","confirmPassword","userid","showSuccess","$emit","showError","$event","scopedSlots","_u","fn","proxy","preventDefault","apply","arguments","newUser","usernameLabel","newUserGenerateUserID","newUserRequireEmail","mounted","fields","createUser","all","meta","statuscode","_g","$listeners","Vue","extend","NcLoadingIcon","filteredUsers","userCount","n","_setupProxy","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","N","Symbol","toStringTag","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","setup","SvgPencil","enabledActions","action","enabled","isSvg","icon","text","index","event","productName","window","OC","theme","NcAvatar","NcProgressBar","UserRowActions","visible","externalActions","onEditUser","Function","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","rand","Math","random","toString","substring","delete","disable","wipe","usedQuota","min","round","used","pow","isNaN","userLanguage","userLang","concat","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","Util","formatDate","userLastLogin","relativeModifiedDate","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","join","userSubAdminGroupsLabels","usedSpace","size","canEdit","getCurrentUser","uid","userQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","toggleEdit","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","then","timeout","finally","class","backend","storageLocation","directive","vElementVisibility","dataComponent","dataKey","String","dataSources","itemHeight","Number","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","root","$el","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","scrollTop","_t","style","item","i","_b","tag","directives","rawName","freeze","EditUserDialog","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","selectedGroup","mdiAccountGroupOutline","rowHeight","UserRow","editingUser","isInitialLoad","searchQuery","getSearchQuery","getUsers","quotaPreset","reduce","acc","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","watch","loadUsers","val","redirectIfDisabled","setNewUserDefaultGroup","created","Notification","showTemporary","initForm","openEditDialog","handleScrollEnd","closeDialog","resetForm","assign","splice","defaultLanguage","currentGroup","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","$route","params","decodeURIComponent","beforeMount","OCA","Settings","registerAction","emit","title","fillColor","$attrs","AccountGroup","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","NcNoteCard","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","trim","displayNameInput","querySelector","groupid","removeGroup","formatGroupMenu","useFormatGroups","userGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","__name","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","toLowerCase","groupListItems","lastGroupListItem","findLast","component","$vnode","listItem","isLastGroupVisible","useElementVisibility","__sfc","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","GroupListItem","_setup","refInFor","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","open","_","useHotKey","nextTick","document","getElementById","inline","stop","prevent","selectedQuota","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","set","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","computerFileSize","newUserSendEmail","post","generateUrl","filterQuotas","searchValue","replaceAll","indexOf","validQuota","setDefaultQuota","app","searchField","searchInput","commitSearch","onBeforeUnmount","clear","ctrl","isDialogOpen","getUserCount","clearSearch","showNewUserMenu","mdiAccountOffOutline","mdiAccountOutline","mdiClose","mdiCogOutline","mdiHistory","mdiMagnify","mdiShieldAccountOutline","NcAppNavigation","NcAppNavigationNew","NcInputField","AppNavigationGroupList","UserSettingsDialog","_k","keyCode"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/settings-vue-settings-apps-users-management.js b/dist/settings-vue-settings-apps-users-management.js
index 299417f6d9d..e7bc19370bb 100644
--- a/dist/settings-vue-settings-apps-users-management.js
+++ b/dist/settings-vue-settings-apps-users-management.js
@@ -1,2 +1,2 @@
-(()=>{var e,o,i,n={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var i=o(19051),n=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,n.C5)(),get:(e,t)=>i.Ay.get(r(e),t),post:(e,t,o)=>i.Ay.post(r(e),t,o),patch:(e,t)=>i.Ay.patch(r(e),t),put:(e,t)=>i.Ay.put(r(e),t),delete:(e,t)=>i.Ay.delete(r(e),{params:t})}},36347(e,o,i){"use strict";i.d(o,{P:()=>j});var n=i(85168),r=i(95353),s=i(21106),a=i(19051),c=i(81222),u=i(77690),d=i(63814),p=i(85471),l=i(6028);const f={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},h={APPS_API_FAILURE(e,o){(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const i=e.apps.find(e=>e.id===t);i.active=!0,p.Ay.set(i,"groups",[...o]),"app_api"===i.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const i=e.apps.find(e=>e.id===t);i&&(i.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),i=o.update;o.update=null,o.version=i,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!0)}):p.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!1)}):p.Ay.set(e.loading,t,!1)}},m={enableApp(e,{appId:o,groups:i}){let r;r=Array.isArray(o)?o:[o],e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:i}))}),l.A.post((0,d.Jv)("settings/apps/enable"),{appIds:r,groups:i},{confirmPassword:u.mH.Strict}).then(i=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,d.Jv)("apps/files/")).then(()=>{i.data.update_required&&((0,n.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,n.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const i=t.response?.data?.data?.message;i&&(e.commit("setError",{appId:r,error:i}),e.commit("APPS_API_FAILURE",{appId:o,error:t}))})},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),l.A.post((0,d.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(i=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:i.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:i})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),l.A.post((0,d.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(i=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:i})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),l.A.get((0,d.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),l.A.get((0,d.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),l.A.get((0,d.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=l.A.get((0,d.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},v={state:f,mutations:h,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:m},g={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:i})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:i}).catch(e=>{throw e})).catch(n=>e.commit("API_FAILURE",{app:t,key:o,value:i,error:n}))}},b={serverData:(0,c.C)("settings","usersSettings",{})},y={setServerData(e,t){e.serverData=t}},_={state:b,mutations:y,getters:{getServerData:e=>e.serverData},actions:{}};var w=i(87485),A=i(35810),O=i(54162),E=i(53334);const C=Intl.Collator([(0,E.Z0)(),(0,E.lO)()],{numeric:!0,usage:"sort"}),L=(0,c.C)("settings","usersSettings",{}),T={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...L.getSubAdminGroups??[],...L.systemGroups??[]],orderBy:L.sortGroups??O.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:L.userCount??0,showConfig:{showStoragePath:L.showConfig?.user_list_show_storage_path,showUserBackend:L.showConfig?.user_list_show_user_backend,showFirstLogin:L.showConfig?.user_list_show_first_login,showLastLogin:L.showConfig?.user_list_show_last_login,showNewUserForm:L.showConfig?.user_list_show_new_user_form,showLanguages:L.showConfig?.user_list_show_languages}},P={appendUsers(e,t){const o=e.users.map(({id:e})=>e),i=Object.values(t).filter(({id:e})=>!o.includes(e)),n=e.users.concat(i);e.usersOffset+=e.usersLimit,e.users=n},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...T,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const i=e.groups.findIndex(e=>e.id===t);if(i>=0){const t=e.groups[i];t.name=o,e.groups.splice(i,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount++,n.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount--;const r=n.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const i=e.users.find(e=>e.id===t).subadmin;i.splice(i.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const i=e.users.find(e=>e.id===t);i.enabled=o,this.commit("updateUserCounts",{user:i,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const i=e.groups.find(e=>"__nc_internal_recent"===e.id),n=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":n.usercount+=t.enabled?-1:1,i.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const i=e.groups.find(e=>e.id===o);i&&(i.disabled+=t.enabled?-1:1)});break;case"create":i.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(i.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(n.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:i}){if("quota"===o){const n=(0,A.lT)(i,!0);e.users.find(e=>e.id===t)[o][o]=null!==n?n:i}else e.users.find(e=>e.id===t)[o]=i},editUserMultiField(e,{userid:t,data:o}){const i=e.users.findIndex(e=>e.id===t);if(-1!==i){if(Array.isArray(o.groups)){const n=e.users[i].groups??[];for(const e of o.groups.filter(e=>!n.includes(e)))this.commit("addUserGroup",{userid:t,gid:e});for(const e of n.filter(e=>!o.groups.includes(e)))this.commit("removeUserGroup",{userid:t,gid:e})}e.users.splice(i,1,{...e.users[i],...o})}},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...L.getSubAdminGroups??[],...L.systemGroups??[]]},setSearchQuery(e,t){e.searchQuery=t},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const i=e.orderBy;e.orderBy=o,a.Ay.post((0,d.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=i,(0,n.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},$={getUsers:e=>e.users,getGroups:e=>e.groups,getSearchQuery:e=>e.searchQuery,getSubAdminGroups:()=>L.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===O.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,i=t.usercount-t.disabled;return oC.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},S=a.Ay.CancelToken;let k=null;const U={state:I,mutations:P,getters:$,actions:{searchUsers:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>l.A.get((0,d.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:i,group:n})=>(k&&k.cancel("Operation canceled by another search request."),k=S.source(),i="string"==typeof i?i:"",""!==(n="string"==typeof n?n:"")?l.A.get((0,d.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(n),offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:i}){i="string"==typeof i?i:"";const n=-1===o?"":`&limit=${o}`;return l.A.get((0,d.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:i})+n).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:i})=>l.A.get((0,d.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:i})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,w.F)().password_policy||!(0,w.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,w.F)().password_policy.minLength),(0,w.F)().password_policy.minLength),addGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await l.A.requireAdmin(),await l.A.post((0,d.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users"),{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>l.A.requireAdmin().then(()=>l.A.get((0,d.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const i=o?"enable":"disable";return l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:i})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:i}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===i&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await l.A.requireAdmin(),await l.A.put((0,d.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:i}),e.commit("setUserData",{userid:t,key:o,value:i})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},async editUserMultiField(e,{userid:t,payload:o}){try{await l.A.requireAdmin();const i=await l.A.patch((0,d.KT)("cloud/users/{userid}",{userid:t}),o);e.commit("editUserMultiField",{userid:t,data:i.data.ocs.data})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,i]of Object.entries(t)){const t=`account_settings__${o}`,n=window.localStorage.getItem(t);if(null===n)continue;const r="true"===n;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,d.Jv)(`/settings/users/preferences/${i}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,d.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},x={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch{(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let N=null;function j(){return null===N&&(N=new r.il({modules:{users:U,apps:v,settings:_,oc:g},strict:!1,mutations:x})),N}},54162(e,t,o){"use strict";var i;o.d(t,{q:()=>i}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(i||(i={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>i});const i=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var i=o(21777),n=o(19051),r=o(53334),s=o(77690),a=o(10810);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}function d(e,t,o){return(t=u(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function p(e,t){for(var o=0;o=0)return 1;return 0}(),h=l&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},f))}};function m(e){return e&&"[object Function]"==={}.toString.call(e)}function v(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function g(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function b(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=v(e),o=t.overflow,i=t.overflowX,n=t.overflowY;return/(auto|scroll|overlay)/.test(o+n+i)?e:b(g(e))}function y(e){return e&&e.referenceNode?e.referenceNode:e}var _=l&&!(!window.MSInputMethodContext||!document.documentMode),w=l&&/MSIE 10/.test(navigator.userAgent);function A(e){return 11===e?_:10===e?w:_||w}function O(e){if(!e)return document.documentElement;for(var t=A(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var i=o&&o.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===v(o,"position")?O(o):o:e?e.ownerDocument.documentElement:document.documentElement}function E(e){return null!==e.parentNode?E(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||i.contains(n))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&O(s.firstElementChild)!==s?O(c):c;var u=E(e);return u.host?C(u.host,t):C(e,E(t).host)}function L(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function T(e,t){var o="x"===t?"Left":"Top",i="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+i+"Width"])}function I(e,t,o,i){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],A(10)?parseInt(o["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function P(e){var t=e.body,o=e.documentElement,i=A(10)&&getComputedStyle(o);return{height:I("Height",t,o,i),width:I("Width",t,o,i)}}var $=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],i=A(10),n="HTML"===t.nodeName,r=x(e),s=x(t),a=b(e),c=v(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&n&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=U({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!i&&n){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(i&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=L(t,"top"),n=L(t,"left"),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}(p,t)),p}function j(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===v(e,"position"))return!0;var o=g(e);return!!o&&j(o)}function F(e){if(!e||!e.parentElement||A())return document.documentElement;for(var t=e.parentElement;t&&"none"===v(t,"transform");)t=t.parentElement;return t||document.documentElement}function D(e,t,o,i){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=n?F(e):C(e,y(t));if("viewport"===i)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,i=N(e,o),n=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:L(o),a=t?0:L(o,"left");return U({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:n,height:r})}(s,n);else{var a=void 0;"scrollParent"===i?"BODY"===(a=b(g(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var c=N(a,s,n);if("HTML"!==a.nodeName||j(s))r=c;else{var u=P(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function M(e,t,o,i,n){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=D(o,i,r,n),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return k({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function R(e,t,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return N(o,i?F(t):C(t,y(o)),i)}function H(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),i=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+i,height:e.offsetHeight+o}}function G(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function B(e,t,o){o=o.split("-")[0];var i=H(e),n={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return n[s]=t[s]+t[c]/2-i[c]/2,n[a]=o===a?t[a]-i[u]:t[G(a)],n}function q(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=q(e,function(e){return e[t]===o});return e.indexOf(i)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&m(o)&&(t.offsets.popper=U(t.offsets.popper),t.offsets.reference=U(t.offsets.reference),t=o(t,e))}),t}function V(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=R(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=B(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],o=se.indexOf(e),i=se.slice(o+1).concat(se.slice(0,o));return t?i.reverse():i}var ce={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],i=t.split("-")[1];if(i){var n=e.offsets,r=n.reference,s=n.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:S({},c,r[c]),end:S({},c,r[c]+r[u]-s[u])};e.offsets.popper=k({},s,d[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=n.split("-")[0];return o=te(+i)?[+i,0]:function(e,t,o,i){var n=[0,0],r=-1!==["right","left"].indexOf(i),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(q(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,i){var n=(1===i?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],s=n[2];return r?0===s.indexOf("%")?U("%p"===s?o:i)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,n,t,o)})})).forEach(function(e,t){e.forEach(function(o,i){te(o)&&(n[t]+=o*("-"===e[i-1]?-1:1))})}),n}(i,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||O(e.instance.popper);e.instance.reference===o&&(o=O(o));var i=K("transform"),n=e.instance.popper.style,r=n.top,s=n.left,a=n[i];n.top="",n.left="",n[i]="";var c=D(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);n.top=r,n.left=s,n[i]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(i=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),S({},o,i)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=k({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(n),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(i[a])&&(e.offsets.popper[c]=r(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var n=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(n),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",h=H(i)[u];a[f]-hs[f]&&(e.offsets.popper[p]+=a[p]+h-s[f]),e.offsets.popper=U(e.offsets.popper);var m=a[p]+a[u]/2-h/2,g=v(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-h,_),0),e.arrowElement=i,e.offsets.arrow=(S(o={},p,Math.round(_)),S(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=G(i),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[i,n];break;case"clockwise":s=ae(i);break;case"counterclockwise":s=ae(i,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(i!==a||s.length===c+1)return e;i=e.placement.split("-")[0],n=G(i);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===i&&p(u.right)>p(d.left)||"right"===i&&p(u.left)
p(d.top)||"bottom"===i&&p(u.top)
p(o.right),m=p(u.top)
p(o.bottom),g="left"===i&&f||"right"===i&&h||"top"===i&&m||"bottom"===i&&v,b=-1!==["top","bottom"].indexOf(i),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(i=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=k({},e.offsets.popper,B(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],i=e.offsets,n=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return n[s?"left":"top"]=r[o]-(a?n[s?"width":"height"]:0),e.placement=G(t),e.offsets.popper=U(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=q(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=h(this.update.bind(this)),this.options=k({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys(k({},e.Defaults.modifiers,n.modifiers)).forEach(function(t){i.options.modifiers[t]=k({},e.Defaults.modifiers[t]||{},n.modifiers?n.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return k({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&m(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return $(e,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return Z.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();de.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,de.placements=re,de.Defaults=ue;const pe=de;var le,fe=o(2404),he=o.n(fe);function me(){me.init||(me.init=!0,le=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}())}function ve(e,t,o,i,n,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,n&&(p.functional=!0)),i&&(p._scopeId=i),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var ge={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;me(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",le&&this.$el.appendChild(t),t.data="about:blank",le||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},be=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};be._withStripped=!0;var ye=ve({render:be,staticRenderFns:[]},void 0,ge,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),_e={version:"1.0.1",install:function(e){e.component("resize-observer",ye),e.component("ResizeObserver",ye)}},we=null;"undefined"!=typeof window?we=window.Vue:"undefined"!=typeof globalThis&&(we=globalThis.Vue),we&&we.use(_e);var Ae=o(55364),Oe=o.n(Ae),Ee=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function Le(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Te(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ee=window.SVGAnimatedString);var Ie=!1;if("undefined"!=typeof window){Ie=!1;try{var Pe=Object.defineProperty({},"passive",{get:function(){Ie=!0}});window.addEventListener("test",null,Pe)}catch(e){}}function $e(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function Se(e){for(var t=1;t',trigger:"hover focus",offset:0},Ue=[],xe=function(){function e(t,o){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),d(this,"_events",[]),d(this,"_setTooltipNodeEvent",function(e,t,o,n){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!i._tooltipNode.contains(r)&&(i._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i._tooltipNode.removeEventListener(e.type,o),t.contains(s)||i._scheduleHide(t,n.delay,n,r)}),!0)}),o=Se(Se({},ke),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||ze.options.defaultClass;he()(this._classes,o)||(this.setClasses(o),t=!0),e=Re(e);var i=!1,n=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(i=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(n=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(n){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else i&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,i=window.document.createElement("div");i.innerHTML=t.trim();var n=i.childNodes[0];return n.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),n.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(n.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),n.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),n}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(i,n){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Le(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),o._applyContent(e,t)}).then(i).catch(n)):o._applyContent(c,t).then(i).catch(n))}r?a.innerHTML=e:a.innerText=e}i()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Le(this._tooltipNode,this._classes),o=!1);var i=this._ensureShown(e,t);return o&&this._tooltipNode&&Le(this._tooltipNode,this._classes),Le(e,["v-tooltip-open"]),i}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Ue.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var i=e.getAttribute("title")||t.title;if(!i)return this;var n=this._create(e,t.template);this._tooltipNode=n,e.setAttribute("aria-describedby",n.id);var r=this._findContainer(t.container,e);this._append(n,r);var s=Se(Se({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Se(Se({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,n,s),this._setContent(i,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&n.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Ue.indexOf(this);-1!==e&&Ue.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,i=t.event;e.reference.removeEventListener(i,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var i=this,n=[],r=[];t.forEach(function(e){switch(e){case"hover":n.push("mouseenter"),r.push("mouseleave"),i.options.hideOnTargetClick&&r.push("click");break;case"focus":n.push("focus"),r.push("blur"),i.options.hideOnTargetClick&&r.push("click");break;case"click":n.push("click"),r.push("click")}}),n.forEach(function(t){var n=function(t){!0!==i._isOpen&&(t.usedByTooltip=!0,i._scheduleShow(e,o.delay,o,t))};i._events.push({event:t,func:n}),e.addEventListener(t,n)}),r.forEach(function(t){var n=function(t){!0!==t.usedByTooltip&&i._scheduleHide(e,o.delay,o,t)};i._events.push({event:t,func:n}),e.addEventListener(t,n)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var i=this,n=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return i._show(e,o)},n)}},{key:"_scheduleHide",value:function(e,t,o,i){var n=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==n._isOpen&&n._tooltipNode.ownerDocument.body.contains(n._tooltipNode)){if("mouseleave"===i.type&&n._setTooltipNodeEvent(i,e,t,o))return;n._hide(e,o)}},r)}}])&&p(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ne(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function je(e){for(var t=1;t',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Re(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:je({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var o=c(t.offset),i=t.offset;("number"===o||"string"===o&&-1===i.indexOf(","))&&(i="0, ".concat(i)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:i}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function He(e,t){for(var o=e.placement,i=0;i2&&void 0!==arguments[2]?arguments[2]:{},i=Ge(t),n=void 0!==t.classes?t.classes:ze.options.defaultClass,r=je({title:i},Re(je(je({},"object"===c(t)?t:{}),{},{placement:He(t,o)}))),s=e._tooltip=new xe(e,r);s.setClasses(n),s._vueEl=e;var a=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=a,Le(e,a),s}(e,o,n),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?i.show():i.hide())):Be(e)}var ze={options:Me,bind:qe,update:qe,unbind:function(e){Be(e)}};function Ve(e){e.addEventListener("click",Ke),e.addEventListener("touchstart",Ye,!!Ie&&{passive:!0})}function We(e){e.removeEventListener("click",Ke),e.removeEventListener("touchstart",Ye),e.removeEventListener("touchend",Je),e.removeEventListener("touchcancel",Qe)}function Ke(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ye(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Je),t.addEventListener("touchcancel",Qe)}}function Je(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],i=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-i.screenY)<20&&Math.abs(o.screenX-i.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Qe(e){e.currentTarget.$_vclosepopover_touch=!1}var Xe={bind:function(e,t){var o=t.value,i=t.modifiers;e.$_closePopoverModifiers=i,(void 0===o||o)&&Ve(e)},update:function(e,t){var o=t.value,i=t.oldValue,n=t.modifiers;e.$_closePopoverModifiers=n,o!==i&&(void 0===o||o?Ve(e):We(e))},unbind:function(e){We(e)}};function Ze(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function et(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var i=t.force;!(void 0!==i&&i)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var i=this.$_findContainer(this.container,t);if(!i)return void console.warn("No container for popover",this);i.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var n=et(et({},this.popperOptions),{},{placement:this.placement});if(n.modifiers=et(et({},n.modifiers),{},{arrow:et(et({},n.modifiers&&n.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();n.modifiers.offset=et(et({},n.modifiers&&n.modifiers.offset),{},{offset:r})}this.boundariesElement&&(n.modifiers.preventOverflow=et(et({},n.modifiers&&n.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,o,n),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var i=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},i)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,i=this.$refs.popover,n=e.relatedreference||e.toElement||e.relatedTarget;return!!i.contains(n)&&(i.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i.removeEventListener(e.type,n),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,i=t.event;e.removeEventListener(i,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function st(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var i=it[o];if(i.$refs.popover){var n=i.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&n||i.autoHide&&!n)&&i.$_handleGlobalClose(e,t)})}},i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var i={};Oe()(i,Me,o),pt.options=i,ze.options=i,t.directive("tooltip",ze),t.directive("close-popover",Xe),t.component("VPopover",dt)}},get enabled(){return Fe.enabled},set enabled(e){Fe.enabled=e}},lt=null;"undefined"!=typeof window?lt=window.Vue:"undefined"!=typeof globalThis&&(lt=globalThis.Vue),lt&<.use(pt);const ft=pt;var ht=o(85471),mt=o(95353),vt=o(58723),gt=o(22378);const bt=(0,ht.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:gt.A})}),yt=(0,o(14486).A)(bt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var _t=o(63814),wt=o(40173);const At=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,80547)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,21299))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,69023)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];ht.Ay.use(wt.Ay);const Ot=new wt.Ay({mode:"history",base:(0,_t.Jv)(""),linkActiveClass:"active",routes:At});var Et=o(36347);(0,s.IF)(n.Ay),o.nc=(0,i.aV)(),ht.Ay.prototype.t=r.t,ht.Ay.prototype.n=r.n,ht.Ay.use(a.R2),ht.Ay.use(ft,{defaultHtml:!1}),ht.Ay.use(mt.Ay);const Ct=(0,Et.P)();(0,vt.O)(Ct,Ot);const Lt=(0,a.Ey)();Ct.dispatch("migrateLocalStorage"),new ht.Ay({router:Ot,store:Ct,pinia:Lt,render:e=>e(yt),el:"#content"})},87805(e,t,o){var i=o(43360),n=o(75288);e.exports=function(e,t,o){(void 0!==o&&!n(e[t],o)||void 0===o&&!(t in e))&&i(e,t,o)}},85250(e,t,o){var i=o(37217),n=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new i),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),n(t,c,f)}},c)}},42824(e,t,o){var i=o(87805),n=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)i(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=n(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),i(e,o,C)}}},20999(e,t,o){var i=o(69302),n=o(36800);e.exports=function(e){return i(function(t,o){var i=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&n(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++ik,il:()=>l});var i=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,i=(o=function(t){return t.original===e},t.filter(o)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=n(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var i in o.modules){if(!t.getChild(i))return;p(e.concat(i),t.getChild(i),o.modules[i])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var i=this;void 0===o&&(o=!0);var n=new a(t,o);0===e.length?this.root=n:this.get(e.slice(0,-1)).addChild(e[e.length-1],n),t.modules&&r(t.modules,function(t,n){i.register(e.concat(n),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],i=t.getChild(o);i&&i.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var n=e.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=n;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){i.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){i.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,s={};r(n,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),i&&(o&&e._withCommit(function(){i._data.$$state=null}),u.nextTick(function(){return i.$destroy()}))}function g(e,t,o,i,n){var r=!o.length,s=e._modules.getNamespace(o);if(i.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=i),!r&&!n){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,i.state)})}var d=i.context=function(e,t,o){var i=""===t,n={dispatch:i?e.dispatch:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:i?e.commit:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(n,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},i=t.length;Object.keys(e.getters).forEach(function(n){if(n.slice(0,i)===t){var r=n.slice(i);Object.defineProperty(o,r,{get:function(){return e.getters[n]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),n}(e,s,o);i.forEachMutation(function(t,o){!function(e,t,o,i){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,i.state,t)})}(e,s+o,t,d)}),i.forEachAction(function(t,o){var i=t.root?o:s+o,n=t.handler||t;!function(e,t,o,i){(e._actions[t]||(e._actions[t]=[])).push(function(t){var n,r=o.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,i,n,d)}),i.forEachGetter(function(t,o){!function(e,t,o,i){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(i.state,i.getters,e.state,e.getters)})}(e,s+o,t,d)}),i.forEachChild(function(i,r){g(e,t,o.concat(r),i,n)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var i=this,n=y(e,t,o),r=n.type,s=n.payload,a=(n.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,i.state)}))},l.prototype.dispatch=function(e,t){var o=this,i=y(e,t),n=i.type,r=i.payload,s={type:n,payload:r},a=this._actions[n];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var i=this;return this._watcherVM.$watch(function(){return e(i.state,i.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var i=T(this.$store,0,e);if(!i)return;t=i.context.state,o=i.context.getters}return"function"==typeof n?n.call(this,t,o):t[n]},o[i].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.commit}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;n=e+n,o[i]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[n]},o[i].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.dispatch}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var i=o?e.groupCollapsed:e.group;try{i.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=n(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=n(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",i(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var i=$(),n=a(e),r="action "+e.type+i;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",n),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=n,e=[],s.O=(t,o,i,n)=>{if(!o){var r=1/0;for(d=0;d=n)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[o,i,n]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"c05496fcc62954a24e83",4529:"6b2c82f6213868c3e02b",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="nextcloud-ui-legacy:",s.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(i)),t)return t(i)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var i=o.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=o[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((o,n)=>i=e[t]=[o,n]);o.push(i[2]=n);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,i[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(i in a)s.o(a,i)&&(s.m[i]=a[i]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})();
-//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=4525089fd49bd5e8fd65
\ No newline at end of file
+(()=>{var e,o,i,n={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var i=o(19051),n=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,n.C5)(),get:(e,t)=>i.Ay.get(r(e),t),post:(e,t,o)=>i.Ay.post(r(e),t,o),patch:(e,t)=>i.Ay.patch(r(e),t),put:(e,t)=>i.Ay.put(r(e),t),delete:(e,t)=>i.Ay.delete(r(e),{params:t})}},36347(e,o,i){"use strict";i.d(o,{P:()=>j});var n=i(85168),r=i(95353),s=i(21106),a=i(19051),c=i(81222),u=i(77690),d=i(63814),p=i(85471),l=i(6028);const f={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},h={APPS_API_FAILURE(e,o){(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const i=e.apps.find(e=>e.id===t);i.active=!0,p.Ay.set(i,"groups",[...o]),"app_api"===i.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const i=e.apps.find(e=>e.id===t);i&&(i.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),i=o.update;o.update=null,o.version=i,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!0)}):p.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!1)}):p.Ay.set(e.loading,t,!1)}},m={enableApp(e,{appId:o,groups:i}){let r;r=Array.isArray(o)?o:[o],e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:i}))}),l.A.post((0,d.Jv)("settings/apps/enable"),{appIds:r,groups:i},{confirmPassword:u.mH.Strict}).then(i=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,d.Jv)("apps/files/")).then(()=>{i.data.update_required&&((0,n.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,n.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const i=t.response?.data?.data?.message;i&&(e.commit("setError",{appId:r,error:i}),e.commit("APPS_API_FAILURE",{appId:o,error:t}))})},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),l.A.post((0,d.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(i=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:i.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:i})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),l.A.post((0,d.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(i=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:i})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),l.A.get((0,d.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),l.A.get((0,d.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),l.A.get((0,d.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=l.A.get((0,d.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},v={state:f,mutations:h,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:m},g={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:i})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:i}).catch(e=>{throw e})).catch(n=>e.commit("API_FAILURE",{app:t,key:o,value:i,error:n}))}},b={serverData:(0,c.C)("settings","usersSettings",{})},y={setServerData(e,t){e.serverData=t}},_={state:b,mutations:y,getters:{getServerData:e=>e.serverData},actions:{}};var w=i(87485),A=i(35810),O=i(54162),E=i(53334);const C=Intl.Collator([(0,E.Z0)(),(0,E.lO)()],{numeric:!0,usage:"sort"}),L=(0,c.C)("settings","usersSettings",{}),T={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...L.getSubAdminGroups??[],...L.systemGroups??[]],orderBy:L.sortGroups??O.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:L.userCount??0,showConfig:{showStoragePath:L.showConfig?.user_list_show_storage_path,showUserBackend:L.showConfig?.user_list_show_user_backend,showFirstLogin:L.showConfig?.user_list_show_first_login,showLastLogin:L.showConfig?.user_list_show_last_login,showNewUserForm:L.showConfig?.user_list_show_new_user_form,showLanguages:L.showConfig?.user_list_show_languages}},P={appendUsers(e,t){const o=e.users.map(({id:e})=>e),i=Object.values(t).filter(({id:e})=>!o.includes(e)),n=e.users.concat(i);e.usersOffset+=e.usersLimit,e.users=n},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...T,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const i=e.groups.findIndex(e=>e.id===t);if(i>=0){const t=e.groups[i];t.name=o,e.groups.splice(i,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount++,n.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount--;const r=n.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const i=e.users.find(e=>e.id===t).subadmin;i.splice(i.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const i=e.users.find(e=>e.id===t);i.enabled=o,this.commit("updateUserCounts",{user:i,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const i=e.groups.find(e=>"__nc_internal_recent"===e.id),n=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":n.usercount+=t.enabled?-1:1,i.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const i=e.groups.find(e=>e.id===o);i&&(i.disabled+=t.enabled?-1:1)});break;case"create":i.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(i.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(n.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:i}){if("quota"===o){const n=(0,A.lT)(i,!0);e.users.find(e=>e.id===t)[o][o]=null!==n?n:i}else e.users.find(e=>e.id===t)[o]=i},editUserMultiField(e,{userid:t,data:o}){const i=e.users.findIndex(e=>e.id===t);if(-1!==i){if(Array.isArray(o.groups)){const n=e.users[i].groups??[];for(const e of o.groups.filter(e=>!n.includes(e)))this.commit("addUserGroup",{userid:t,gid:e});for(const e of n.filter(e=>!o.groups.includes(e)))this.commit("removeUserGroup",{userid:t,gid:e})}e.users.splice(i,1,{...e.users[i],...o})}},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...L.getSubAdminGroups??[],...L.systemGroups??[]]},setSearchQuery(e,t){e.searchQuery=t},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const i=e.orderBy;e.orderBy=o,a.Ay.post((0,d.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=i,(0,n.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},$={getUsers:e=>e.users,getGroups:e=>e.groups,getSearchQuery:e=>e.searchQuery,getSubAdminGroups:()=>L.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===O.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,i=t.usercount-t.disabled;return oC.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},S=a.Ay.CancelToken;let k=null;const U={state:I,mutations:P,getters:$,actions:{searchUsers:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>l.A.get((0,d.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:i,group:n})=>(k&&k.cancel("Operation canceled by another search request."),k=S.source(),i="string"==typeof i?i:"",""!==(n="string"==typeof n?n:"")?l.A.get((0,d.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(n),offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:i}){i="string"==typeof i?i:"";const n=-1===o?"":`&limit=${o}`;return l.A.get((0,d.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:i})+n).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:i})=>l.A.get((0,d.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:i})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,w.F)().password_policy||!(0,w.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,w.F)().password_policy.minLength),(0,w.F)().password_policy.minLength),addGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await l.A.requireAdmin(),await l.A.post((0,d.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users"),{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>l.A.requireAdmin().then(()=>l.A.get((0,d.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const i=o?"enable":"disable";return l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:i})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:i}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===i&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await l.A.requireAdmin(),await l.A.put((0,d.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:i}),e.commit("setUserData",{userid:t,key:o,value:i})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},async editUserMultiField(e,{userid:t,payload:o}){try{await l.A.requireAdmin();const i=await l.A.patch((0,d.KT)("cloud/users/{userid}",{userid:t}),o);e.commit("editUserMultiField",{userid:t,data:i.data.ocs.data})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,i]of Object.entries(t)){const t=`account_settings__${o}`,n=window.localStorage.getItem(t);if(null===n)continue;const r="true"===n;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,d.Jv)(`/settings/users/preferences/${i}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,d.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},x={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch{(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let N=null;function j(){return null===N&&(N=new r.il({modules:{users:U,apps:v,settings:_,oc:g},strict:!1,mutations:x})),N}},54162(e,t,o){"use strict";var i;o.d(t,{q:()=>i}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(i||(i={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>i});const i=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var i=o(21777),n=o(19051),r=o(53334),s=o(77690),a=o(10810);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}function d(e,t,o){return(t=u(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function p(e,t){for(var o=0;o=0)return 1;return 0}(),h=l&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},f))}};function m(e){return e&&"[object Function]"==={}.toString.call(e)}function v(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function g(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function b(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=v(e),o=t.overflow,i=t.overflowX,n=t.overflowY;return/(auto|scroll|overlay)/.test(o+n+i)?e:b(g(e))}function y(e){return e&&e.referenceNode?e.referenceNode:e}var _=l&&!(!window.MSInputMethodContext||!document.documentMode),w=l&&/MSIE 10/.test(navigator.userAgent);function A(e){return 11===e?_:10===e?w:_||w}function O(e){if(!e)return document.documentElement;for(var t=A(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var i=o&&o.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===v(o,"position")?O(o):o:e?e.ownerDocument.documentElement:document.documentElement}function E(e){return null!==e.parentNode?E(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||i.contains(n))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&O(s.firstElementChild)!==s?O(c):c;var u=E(e);return u.host?C(u.host,t):C(e,E(t).host)}function L(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function T(e,t){var o="x"===t?"Left":"Top",i="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+i+"Width"])}function I(e,t,o,i){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],A(10)?parseInt(o["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function P(e){var t=e.body,o=e.documentElement,i=A(10)&&getComputedStyle(o);return{height:I("Height",t,o,i),width:I("Width",t,o,i)}}var $=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],i=A(10),n="HTML"===t.nodeName,r=x(e),s=x(t),a=b(e),c=v(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&n&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=U({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!i&&n){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(i&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=L(t,"top"),n=L(t,"left"),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}(p,t)),p}function j(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===v(e,"position"))return!0;var o=g(e);return!!o&&j(o)}function F(e){if(!e||!e.parentElement||A())return document.documentElement;for(var t=e.parentElement;t&&"none"===v(t,"transform");)t=t.parentElement;return t||document.documentElement}function D(e,t,o,i){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=n?F(e):C(e,y(t));if("viewport"===i)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,i=N(e,o),n=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:L(o),a=t?0:L(o,"left");return U({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:n,height:r})}(s,n);else{var a=void 0;"scrollParent"===i?"BODY"===(a=b(g(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var c=N(a,s,n);if("HTML"!==a.nodeName||j(s))r=c;else{var u=P(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function M(e,t,o,i,n){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=D(o,i,r,n),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return k({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function R(e,t,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return N(o,i?F(t):C(t,y(o)),i)}function H(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),i=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+i,height:e.offsetHeight+o}}function G(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function B(e,t,o){o=o.split("-")[0];var i=H(e),n={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return n[s]=t[s]+t[c]/2-i[c]/2,n[a]=o===a?t[a]-i[u]:t[G(a)],n}function q(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=q(e,function(e){return e[t]===o});return e.indexOf(i)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&m(o)&&(t.offsets.popper=U(t.offsets.popper),t.offsets.reference=U(t.offsets.reference),t=o(t,e))}),t}function V(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=R(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=B(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],o=se.indexOf(e),i=se.slice(o+1).concat(se.slice(0,o));return t?i.reverse():i}var ce={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],i=t.split("-")[1];if(i){var n=e.offsets,r=n.reference,s=n.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:S({},c,r[c]),end:S({},c,r[c]+r[u]-s[u])};e.offsets.popper=k({},s,d[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=n.split("-")[0];return o=te(+i)?[+i,0]:function(e,t,o,i){var n=[0,0],r=-1!==["right","left"].indexOf(i),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(q(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,i){var n=(1===i?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],s=n[2];return r?0===s.indexOf("%")?U("%p"===s?o:i)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,n,t,o)})})).forEach(function(e,t){e.forEach(function(o,i){te(o)&&(n[t]+=o*("-"===e[i-1]?-1:1))})}),n}(i,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||O(e.instance.popper);e.instance.reference===o&&(o=O(o));var i=K("transform"),n=e.instance.popper.style,r=n.top,s=n.left,a=n[i];n.top="",n.left="",n[i]="";var c=D(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);n.top=r,n.left=s,n[i]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(i=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),S({},o,i)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=k({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(n),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(i[a])&&(e.offsets.popper[c]=r(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var n=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(n),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",h=H(i)[u];a[f]-hs[f]&&(e.offsets.popper[p]+=a[p]+h-s[f]),e.offsets.popper=U(e.offsets.popper);var m=a[p]+a[u]/2-h/2,g=v(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-h,_),0),e.arrowElement=i,e.offsets.arrow=(S(o={},p,Math.round(_)),S(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=G(i),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[i,n];break;case"clockwise":s=ae(i);break;case"counterclockwise":s=ae(i,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(i!==a||s.length===c+1)return e;i=e.placement.split("-")[0],n=G(i);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===i&&p(u.right)>p(d.left)||"right"===i&&p(u.left)
p(d.top)||"bottom"===i&&p(u.top)
p(o.right),m=p(u.top)
p(o.bottom),g="left"===i&&f||"right"===i&&h||"top"===i&&m||"bottom"===i&&v,b=-1!==["top","bottom"].indexOf(i),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(i=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=k({},e.offsets.popper,B(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],i=e.offsets,n=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return n[s?"left":"top"]=r[o]-(a?n[s?"width":"height"]:0),e.placement=G(t),e.offsets.popper=U(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=q(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=h(this.update.bind(this)),this.options=k({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys(k({},e.Defaults.modifiers,n.modifiers)).forEach(function(t){i.options.modifiers[t]=k({},e.Defaults.modifiers[t]||{},n.modifiers?n.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return k({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&m(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return $(e,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return Z.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();de.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,de.placements=re,de.Defaults=ue;const pe=de;var le,fe=o(2404),he=o.n(fe);function me(){me.init||(me.init=!0,le=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}())}function ve(e,t,o,i,n,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,n&&(p.functional=!0)),i&&(p._scopeId=i),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var ge={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;me(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",le&&this.$el.appendChild(t),t.data="about:blank",le||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},be=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};be._withStripped=!0;var ye=ve({render:be,staticRenderFns:[]},void 0,ge,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),_e={version:"1.0.1",install:function(e){e.component("resize-observer",ye),e.component("ResizeObserver",ye)}},we=null;"undefined"!=typeof window?we=window.Vue:"undefined"!=typeof globalThis&&(we=globalThis.Vue),we&&we.use(_e);var Ae=o(55364),Oe=o.n(Ae),Ee=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function Le(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Te(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ee=window.SVGAnimatedString);var Ie=!1;if("undefined"!=typeof window){Ie=!1;try{var Pe=Object.defineProperty({},"passive",{get:function(){Ie=!0}});window.addEventListener("test",null,Pe)}catch(e){}}function $e(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function Se(e){for(var t=1;t',trigger:"hover focus",offset:0},Ue=[],xe=function(){function e(t,o){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),d(this,"_events",[]),d(this,"_setTooltipNodeEvent",function(e,t,o,n){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!i._tooltipNode.contains(r)&&(i._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i._tooltipNode.removeEventListener(e.type,o),t.contains(s)||i._scheduleHide(t,n.delay,n,r)}),!0)}),o=Se(Se({},ke),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||ze.options.defaultClass;he()(this._classes,o)||(this.setClasses(o),t=!0),e=Re(e);var i=!1,n=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(i=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(n=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(n){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else i&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,i=window.document.createElement("div");i.innerHTML=t.trim();var n=i.childNodes[0];return n.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),n.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(n.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),n.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),n}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(i,n){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Le(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),o._applyContent(e,t)}).then(i).catch(n)):o._applyContent(c,t).then(i).catch(n))}r?a.innerHTML=e:a.innerText=e}i()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Le(this._tooltipNode,this._classes),o=!1);var i=this._ensureShown(e,t);return o&&this._tooltipNode&&Le(this._tooltipNode,this._classes),Le(e,["v-tooltip-open"]),i}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Ue.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var i=e.getAttribute("title")||t.title;if(!i)return this;var n=this._create(e,t.template);this._tooltipNode=n,e.setAttribute("aria-describedby",n.id);var r=this._findContainer(t.container,e);this._append(n,r);var s=Se(Se({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Se(Se({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,n,s),this._setContent(i,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&n.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Ue.indexOf(this);-1!==e&&Ue.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,i=t.event;e.reference.removeEventListener(i,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var i=this,n=[],r=[];t.forEach(function(e){switch(e){case"hover":n.push("mouseenter"),r.push("mouseleave"),i.options.hideOnTargetClick&&r.push("click");break;case"focus":n.push("focus"),r.push("blur"),i.options.hideOnTargetClick&&r.push("click");break;case"click":n.push("click"),r.push("click")}}),n.forEach(function(t){var n=function(t){!0!==i._isOpen&&(t.usedByTooltip=!0,i._scheduleShow(e,o.delay,o,t))};i._events.push({event:t,func:n}),e.addEventListener(t,n)}),r.forEach(function(t){var n=function(t){!0!==t.usedByTooltip&&i._scheduleHide(e,o.delay,o,t)};i._events.push({event:t,func:n}),e.addEventListener(t,n)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var i=this,n=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return i._show(e,o)},n)}},{key:"_scheduleHide",value:function(e,t,o,i){var n=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==n._isOpen&&n._tooltipNode.ownerDocument.body.contains(n._tooltipNode)){if("mouseleave"===i.type&&n._setTooltipNodeEvent(i,e,t,o))return;n._hide(e,o)}},r)}}])&&p(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ne(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function je(e){for(var t=1;t',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Re(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:je({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var o=c(t.offset),i=t.offset;("number"===o||"string"===o&&-1===i.indexOf(","))&&(i="0, ".concat(i)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:i}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function He(e,t){for(var o=e.placement,i=0;i2&&void 0!==arguments[2]?arguments[2]:{},i=Ge(t),n=void 0!==t.classes?t.classes:ze.options.defaultClass,r=je({title:i},Re(je(je({},"object"===c(t)?t:{}),{},{placement:He(t,o)}))),s=e._tooltip=new xe(e,r);s.setClasses(n),s._vueEl=e;var a=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=a,Le(e,a),s}(e,o,n),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?i.show():i.hide())):Be(e)}var ze={options:Me,bind:qe,update:qe,unbind:function(e){Be(e)}};function Ve(e){e.addEventListener("click",Ke),e.addEventListener("touchstart",Ye,!!Ie&&{passive:!0})}function We(e){e.removeEventListener("click",Ke),e.removeEventListener("touchstart",Ye),e.removeEventListener("touchend",Je),e.removeEventListener("touchcancel",Qe)}function Ke(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ye(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Je),t.addEventListener("touchcancel",Qe)}}function Je(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],i=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-i.screenY)<20&&Math.abs(o.screenX-i.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Qe(e){e.currentTarget.$_vclosepopover_touch=!1}var Xe={bind:function(e,t){var o=t.value,i=t.modifiers;e.$_closePopoverModifiers=i,(void 0===o||o)&&Ve(e)},update:function(e,t){var o=t.value,i=t.oldValue,n=t.modifiers;e.$_closePopoverModifiers=n,o!==i&&(void 0===o||o?Ve(e):We(e))},unbind:function(e){We(e)}};function Ze(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function et(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var i=t.force;!(void 0!==i&&i)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var i=this.$_findContainer(this.container,t);if(!i)return void console.warn("No container for popover",this);i.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var n=et(et({},this.popperOptions),{},{placement:this.placement});if(n.modifiers=et(et({},n.modifiers),{},{arrow:et(et({},n.modifiers&&n.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();n.modifiers.offset=et(et({},n.modifiers&&n.modifiers.offset),{},{offset:r})}this.boundariesElement&&(n.modifiers.preventOverflow=et(et({},n.modifiers&&n.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,o,n),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var i=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},i)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,i=this.$refs.popover,n=e.relatedreference||e.toElement||e.relatedTarget;return!!i.contains(n)&&(i.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i.removeEventListener(e.type,n),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,i=t.event;e.removeEventListener(i,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function st(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var i=it[o];if(i.$refs.popover){var n=i.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&n||i.autoHide&&!n)&&i.$_handleGlobalClose(e,t)})}},i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var i={};Oe()(i,Me,o),pt.options=i,ze.options=i,t.directive("tooltip",ze),t.directive("close-popover",Xe),t.component("VPopover",dt)}},get enabled(){return Fe.enabled},set enabled(e){Fe.enabled=e}},lt=null;"undefined"!=typeof window?lt=window.Vue:"undefined"!=typeof globalThis&&(lt=globalThis.Vue),lt&<.use(pt);const ft=pt;var ht=o(85471),mt=o(95353),vt=o(58723),gt=o(22378);const bt=(0,ht.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:gt.A})}),yt=(0,o(14486).A)(bt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var _t=o(63814),wt=o(40173);const At=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,44637)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,21299))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,69023)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];ht.Ay.use(wt.Ay);const Ot=new wt.Ay({mode:"history",base:(0,_t.Jv)(""),linkActiveClass:"active",routes:At});var Et=o(36347);(0,s.IF)(n.Ay),o.nc=(0,i.aV)(),ht.Ay.prototype.t=r.t,ht.Ay.prototype.n=r.n,ht.Ay.use(a.R2),ht.Ay.use(ft,{defaultHtml:!1}),ht.Ay.use(mt.Ay);const Ct=(0,Et.P)();(0,vt.O)(Ct,Ot);const Lt=(0,a.Ey)();Ct.dispatch("migrateLocalStorage"),new ht.Ay({router:Ot,store:Ct,pinia:Lt,render:e=>e(yt),el:"#content"})},87805(e,t,o){var i=o(43360),n=o(75288);e.exports=function(e,t,o){(void 0!==o&&!n(e[t],o)||void 0===o&&!(t in e))&&i(e,t,o)}},85250(e,t,o){var i=o(37217),n=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new i),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),n(t,c,f)}},c)}},42824(e,t,o){var i=o(87805),n=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)i(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=n(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),i(e,o,C)}}},20999(e,t,o){var i=o(69302),n=o(36800);e.exports=function(e){return i(function(t,o){var i=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&n(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++ik,il:()=>l});var i=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,i=(o=function(t){return t.original===e},t.filter(o)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=n(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var i in o.modules){if(!t.getChild(i))return;p(e.concat(i),t.getChild(i),o.modules[i])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var i=this;void 0===o&&(o=!0);var n=new a(t,o);0===e.length?this.root=n:this.get(e.slice(0,-1)).addChild(e[e.length-1],n),t.modules&&r(t.modules,function(t,n){i.register(e.concat(n),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],i=t.getChild(o);i&&i.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var n=e.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=n;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){i.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){i.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,s={};r(n,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),i&&(o&&e._withCommit(function(){i._data.$$state=null}),u.nextTick(function(){return i.$destroy()}))}function g(e,t,o,i,n){var r=!o.length,s=e._modules.getNamespace(o);if(i.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=i),!r&&!n){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,i.state)})}var d=i.context=function(e,t,o){var i=""===t,n={dispatch:i?e.dispatch:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:i?e.commit:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(n,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},i=t.length;Object.keys(e.getters).forEach(function(n){if(n.slice(0,i)===t){var r=n.slice(i);Object.defineProperty(o,r,{get:function(){return e.getters[n]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),n}(e,s,o);i.forEachMutation(function(t,o){!function(e,t,o,i){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,i.state,t)})}(e,s+o,t,d)}),i.forEachAction(function(t,o){var i=t.root?o:s+o,n=t.handler||t;!function(e,t,o,i){(e._actions[t]||(e._actions[t]=[])).push(function(t){var n,r=o.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,i,n,d)}),i.forEachGetter(function(t,o){!function(e,t,o,i){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(i.state,i.getters,e.state,e.getters)})}(e,s+o,t,d)}),i.forEachChild(function(i,r){g(e,t,o.concat(r),i,n)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var i=this,n=y(e,t,o),r=n.type,s=n.payload,a=(n.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,i.state)}))},l.prototype.dispatch=function(e,t){var o=this,i=y(e,t),n=i.type,r=i.payload,s={type:n,payload:r},a=this._actions[n];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var i=this;return this._watcherVM.$watch(function(){return e(i.state,i.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var i=T(this.$store,0,e);if(!i)return;t=i.context.state,o=i.context.getters}return"function"==typeof n?n.call(this,t,o):t[n]},o[i].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.commit}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;n=e+n,o[i]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[n]},o[i].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.dispatch}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var i=o?e.groupCollapsed:e.group;try{i.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=n(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=n(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",i(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var i=$(),n=a(e),r="action "+e.type+i;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",n),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=n,e=[],s.O=(t,o,i,n)=>{if(!o){var r=1/0;for(d=0;d=n)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[o,i,n]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"815d3376dcadea678097",4529:"6b2c82f6213868c3e02b",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="nextcloud-ui-legacy:",s.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(i)),t)return t(i)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var i=o.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=o[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((o,n)=>i=e[t]=[o,n]);o.push(i[2]=n);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,i[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(i in a)s.o(a,i)&&(s.m[i]=a[i]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})();
+//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=fa3b250e36470647e7b5
\ No newline at end of file
diff --git a/dist/settings-vue-settings-apps-users-management.js.map b/dist/settings-vue-settings-apps-users-management.js.map
index 16a4c1bf0b3..2edf9a87890 100644
--- a/dist/settings-vue-settings-apps-users-management.js.map
+++ b/dist/settings-vue-settings-apps-users-management.js.map
@@ -1 +1 @@
-{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=4525089fd49bd5e8fd65","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/SettingsApp.vue?3a67","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/main-apps-users-management.ts","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(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 * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$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 * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('settings', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('settings', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('settings', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + ' ' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\tcontext.commit('startLoading', apps)\n\t\tcontext.commit('startLoading', 'install')\n\n\t\tconst previousState = {}\n\t\tapps.forEach((_appId) => {\n\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\tif (app) {\n\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\tactive: app.active,\n\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t}\n\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t}\n\t\t})\n\n\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t// check for server health\n\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t'settings',\n\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst message = error.response?.data?.data?.message\n\t\t\t\tif (message) {\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t}\n\t\t\t})\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\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 * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\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 * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tsearchQuery: '',\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === newGroup.id) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst 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\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst 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\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? 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 * Apply multiple updated fields to a user in the local store.\n\t *\n\t * @param {object} state Store state\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.data Updated user data from server\n\t */\n\teditUserMultiField(state, { userid, data }) {\n\t\tconst index = state.users.findIndex((user) => user.id === userid)\n\t\tif (index === -1) {\n\t\t\treturn\n\t\t}\n\n\t\t// Delegate group membership changes so sidebar usercount stays in sync.\n\t\tif (Array.isArray(data.groups)) {\n\t\t\tconst prevGids = state.users[index].groups ?? []\n\t\t\tfor (const gid of data.groups.filter((g) => !prevGids.includes(g))) {\n\t\t\t\tthis.commit('addUserGroup', { userid, gid })\n\t\t\t}\n\t\t\tfor (const gid of prevGids.filter((g) => !data.groups.includes(g))) {\n\t\t\t\tthis.commit('removeUserGroup', { userid, gid })\n\t\t\t}\n\t\t}\n\n\t\tstate.users.splice(index, 1, { ...state.users[index], ...data })\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetSearchQuery(state, query) {\n\t\tstate.searchQuery = query\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\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\tgetSearchQuery(state) {\n\t\treturn state.searchQuery\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\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\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} 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 * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\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 store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\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 store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\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\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => 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 store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => 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 store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => 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 store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => 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 * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => 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 store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\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 * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\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/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => 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 store context\n\t * @param {object} options destructuring object\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 * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Update multiple user fields atomically via the new bulk endpoint.\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.payload Changed fields to send\n\t * @return {Promise}\n\t */\n\tasync editUserMultiField(context, { userid, payload }) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tconst response = await api.patch(\n\t\t\t\tgenerateOcsUrl('cloud/users/{userid}', { userid }),\n\t\t\t\tpayload,\n\t\t\t)\n\t\t\tcontext.commit('editUserMultiField', { userid, data: response.data.ocs.data })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport apps from './apps.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + ' ' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tapps,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('settings')\n .detectUser()\n .build();\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\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 window = element.ownerDocument.defaultView;\n var css = window.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|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\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 if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', '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']) + parseFloat(styles['border' + sideB + 'Width']);\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], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && 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 try {\n if (isIE(10)) {\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 } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\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(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\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 fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\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);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\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);\n var marginLeft = parseFloat(styles.marginLeft);\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 && !fixedPosition ? 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 excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\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 = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\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 var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\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 * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\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, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\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 padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\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 * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\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 window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\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. \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, this.options.positionFixed);\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 data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : '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; 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 * Destroys 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.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly 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, options.positionFixed);\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: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\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 var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\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 // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\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. \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 conjunction\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]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\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. \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. \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-end` (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, data.positionFixed);\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\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\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 // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\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. \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. \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. \n * It will read the variation of the `placement` property. \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 unit-less, 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. \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. \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2. \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 * > You can read more on this at 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 * A scenario exists where the reference itself is not within the boundaries. \n * We can say it has \"escaped the boundaries\" — or just \"escaped\". \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 always has 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 each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points 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 conjunction 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 * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\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 your 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 information used by Popper.js.\n * This object is 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. \n * These can be overridden using the `options` argument of Popper.js. \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For 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 * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\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. \n * By default, it is set to no-op. \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. \n * By default, it is set to no-op. \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 * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the 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 * Schedules 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. \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\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = 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\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\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 */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\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 */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\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 * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-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 * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object 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='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The 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 * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [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 * [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 * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\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 _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\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 key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\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 key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\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 }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\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\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./SettingsApp.vue?vue&type=template&id=288003b1\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { n, t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\naddPasswordConfirmationInterceptors(axios);\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(SettingsApp),\n el: '#content',\n});\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\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 baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(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 }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\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 = safeGet(object, key),\n srcValue = safeGet(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 var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\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\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\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\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\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\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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\nmodule.exports = toPlainObject;\n","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 * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (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 target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__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 }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array