\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=36d16e9d&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=36d16e9d&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=36d16e9d&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=36d16e9d&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 \"36d16e9d\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\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=89422c7c&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=89422c7c&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=89422c7c&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=89422c7c&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 \"89422c7c\",\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:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_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.mdiAccountGroup,\"size\":64}})]},proxy:true}],null,false,226056511)}):_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\thasObfuscated: _vm.hasObfuscated,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\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',{attrs:{\"has-obfuscated\":_vm.hasObfuscated}})]},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=4684ed00&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=4684ed00&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=4684ed00&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=4684ed00&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 \"4684ed00\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\nconst formatGroup = (group) => ({\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n});\n/**\n * Search groups\n *\n * @param {object} options Options\n * @param {string} options.search Search query\n * @param {number} options.offset Offset\n * @param {number} options.limit Limit\n */\nexport const searchGroups = ({ search, offset, limit }) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n};\n/**\n * Load user groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n/**\n * Load user subadmin groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserSubAdminGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n","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:{\"type\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCog}})]},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(_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.mdiAccount}})]},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.mdiShieldAccount}})]},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,2218088905)}):_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.mdiAccountOff}})]},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\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 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\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=6155f7ac&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=6155f7ac&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=6155f7ac&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=6155f7ac&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 \"6155f7ac\",\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\",\"checked\":_vm.showLanguages},on:{\"update:checked\":function($event){_vm.showLanguages=$event}}},[_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\",\"checked\":_vm.showUserBackend},on:{\"update:checked\":function($event){_vm.showUserBackend=$event}}},[_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\",\"checked\":_vm.showStoragePath},on:{\"update:checked\":function($event){_vm.showStoragePath=$event}}},[_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\":\"showLastLogin\",\"checked\":_vm.showLastLogin},on:{\"update:checked\":function($event){_vm.showLastLogin=$event}}},[_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\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_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\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_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\",\"checked\":_vm.sendWelcomeMail,\"disabled\":_vm.loadingSendMail},on:{\"update:checked\":function($event){_vm.sendWelcomeMail=$event}}},[_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)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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.mdiAccountGroup}})]},proxy:true}],null,false,3607647275)},[_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,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_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 }","\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","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 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=0540d351&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=0540d351&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=0540d351&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=0540d351&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 \"0540d351\",\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:{\"type\":\"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:{\"type\":\"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\",\"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}\nexport const 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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.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-4.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=49ad50e4\"\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.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-4.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=539a4ad0&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=539a4ad0&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=539a4ad0&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=539a4ad0&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 \"539a4ad0\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-539a4ad0] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-539a4ad0]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-539a4ad0]{height:100% !important}.account-management__settings-toggle[data-v-539a4ad0]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n * @param user\n * @param user.id\n */\nexport const isObfuscated = (user) => {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","Vue","directive","vElementVisibility","extend","name","props","dataComponent","type","Object","Function","required","dataKey","String","dataSources","Array","itemHeight","Number","extraProps","default","data","bufferItems","index","headerHeight","tableHeight","resizeObserver","computed","startIndex","Math","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","length","lastIndex","hiddenAfterItems","min","paddingTop","paddingBottom","mounted","root","$el","tfoot","$refs","thead","ResizeObserver","debounce","clientHeight","logger","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","methods","handleFooterVisibility","visible","$emit","round","scrollTop","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setupProxy","staticClass","_t","_v","ref","attrs","style","_l","item","i","_b","key","tag","directives","rawName","value","expression","components","NcButton","NcDialog","NcPasswordField","NcSelect","NcTextField","loading","newUser","quotaOptions","possibleManagers","managerInputLabel","t","managerLabel","promise","showConfig","$store","getters","getShowConfig","settings","getServerData","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","group","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","username","focus","createUser","all","dispatch","userid","password","displayName","email","mailAddress","groups","map","subadmin","subAdminsGroups","quota","language","code","manager","error","response","ocs","meta","statuscode","searchGroups","query","toggleLoading","cancel","search","offset","limit","commit","createGroup","gid","addGroup","isCreating","canAdd","validateQuota","validQuota","OC","Util","computerFileSize","humanFileSize","label","languageFilterBy","option","some","toLocaleLowerCase","includes","then","users","values","_g","scopedSlots","_u","fn","_s","proxy","$listeners","on","$event","preventDefault","apply","arguments","$set","newUserRequireEmail","_e","at","model","callback","$$v","showLanguages","class","NcLoadingIcon","Boolean","filteredUsers","userCount","n","hasObfuscated","passwordLabel","showUserBackend","showStoragePath","showLastLogin","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","disabled","edit","user","editSvg","SvgCheck","enabledActions","action","enabled","isSvg","string","TypeError","trim","XMLValidator","validate","jsonObject","parser","XMLParser","parse","keys","x","toLowerCase","toggleEdit","icon","text","event","externalActions","selectedGroups","selectedSubAdminGroups","userGroups","userSubAdminGroups","usedSpace","used","size","usedQuota","pow","isNaN","userQuota","humanQuota","find","userLanguage","userLang","concat","lang","userLastLoginTooltip","lastLogin","formatDate","userLastLogin","relativeModifiedDate","NcAvatar","NcProgressBar","UserRowActions","mixins","UserRowMixin","selectedQuota","rand","random","toString","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","delete","disable","wipe","editedDisplayName","displayname","editedPassword","editedMail","isObfuscated","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","availableSubAdminGroups","userGroupsLabels","availableGroup","g","join","userSubAdminGroupsLabels","formatFileSize","canEdit","getCurrentUser","uid","defaultQuota","parseFileSize","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","editedUserQuota","get","unlimitedQuota","set","availableLanguages","initManager","confirmPassword","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","showSuccess","timeout","finally","filterManagers","managers","userId","searchInitialUserManager","loadGroupsDetails","loadUserGroups","selectedGroup","loadSubAdminGroupsDetails","loadUserSubAdminGroups","updateUserManager","previousManager","showError","updateDisplayName","updatePassword","updateEmail","addUserGroup","console","removeUserGroup","canRemove","$route","params","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","$nextTick","displayNameField","inputField","input","backendCapabilities","setDisplayName","undefined","canChangePassword","setPassword","backend","storageLocation","freeze","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","setup","mdiAccountGroup","rowHeight","UserRow","isInitialLoad","searchQuery","getUsers","quotaPreset","reduce","acc","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","watch","val","redirectIfDisabled","loadUsers","setNewUserDefaultGroup","created","Notification","showTemporary","resetForm","subscribe","resetSearch","unsubscribe","handleScrollEnd","closeDialog","assign","defaultLanguage","currentGroup","allGroups","getGroups","findIndex","usercount","$router","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","decodeURIComponent","window","OCA","Settings","registerAction","emit","formatGroup","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","axios","generateOcsUrl","signal","url","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcNoteCard","open","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","newUserSendEmail","post","generateUrl","filterQuotas","searchValue","replaceAll","indexOf","setDefaultQuota","app","AccountGroup","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","displayNameInput","querySelector","groupid","removeGroup","formatGroupMenu","title","useFormatGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","__name","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","groupListItems","lastGroupListItem","findLast","component","$vnode","listItem","isLastGroupVisible","useElementVisibility","__sfc","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","NcAppNavigationSearch","GroupListItem","_setup","refInFor","isDialogOpen","getUserCount","showNewUserMenu","mdiAccount","mdiAccountOff","mdiCog","mdiShieldAccount","mdiHistory","NcAppNavigation","NcAppNavigationNew","UserSettingsDialog","AppNavigationGroupList","_k","keyCode"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"settings-users-3239.js?v=90785444c12773d06bc7","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=6155f7ac&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=f870145a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=36d16e9d&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=89422c7c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=4684ed00&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=685a7a6f&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=78acaa4e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=0540d351&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?a2a4","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?1540","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?0ca3","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?37ef","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?5a51","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?a778","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?c0b6","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/node_modules/is-svg/index.js","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/apps/settings/src/mixins/UserRowMixin.js","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?70f6","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?4c77","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4758","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=539a4ad0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=e523ebe8&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__note[data-v-6155f7ac]{font-weight:normal}fieldset[data-v-6155f7ac]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header[data-v-f870145a]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-f870145a]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-f870145a],.header__cell span[data-v-f870145a],.header__cell label[data-v-f870145a]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-f870145a],.header__cell--displayname[data-v-f870145a]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-f870145a]{left:0}.header__cell--displayname[data-v-f870145a]{left:var(--avatar-cell-width);border-right:1px solid var(--color-border)}}.header__cell--username[data-v-f870145a]{padding-left:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-f870145a]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-f870145a]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-f870145a]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-f870145a]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--obfuscated[data-v-f870145a]{min-width:400px;width:400px}.header__cell--fill[data-v-f870145a]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-f870145a]{position:sticky;right:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-left:1px solid var(--color-border)}.header__subtitle[data-v-f870145a]{color:var(--color-text-maxcontrast)}.header[data-v-f870145a]{border-bottom:1px solid var(--color-border)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,MAAA,CAGD,4CACC,6BAAA,CACA,0CAAA,CAAA,CAIF,yCACC,iDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,OAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,yCAAA,CAIF,mCACC,mCAAA,CDxGF,yBAIC,2CAAA\",\"sourcesContent\":[\"\\n@import './shared/styles.scss';\\n\\n.header {\\n\\t@include row;\\n\\t@include cell;\\n\\n\\tborder-bottom: 1px solid var(--color-border);\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tleft: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tleft: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-right: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-left: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list__row[data-v-36d16e9d]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-36d16e9d]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-36d16e9d]:not(.row__cell--actions){background-color:var(--color-background-hover)}.user-list__row .select--fill[data-v-36d16e9d]{max-width:calc(var(--cell-width-large) - 2*var(--cell-padding))}.row__cell[data-v-36d16e9d]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-36d16e9d],.row__cell span[data-v-36d16e9d],.row__cell label[data-v-36d16e9d]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-36d16e9d],.row__cell--displayname[data-v-36d16e9d]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-36d16e9d]{left:0}.row__cell--displayname[data-v-36d16e9d]{left:var(--avatar-cell-width);border-right:1px solid var(--color-border)}}.row__cell--username[data-v-36d16e9d]{padding-left:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-36d16e9d]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-36d16e9d]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-36d16e9d]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-36d16e9d]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--obfuscated[data-v-36d16e9d]{min-width:400px;width:400px}.row__cell--fill[data-v-36d16e9d]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-36d16e9d]{position:sticky;right:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-left:1px solid var(--color-border)}.row__subtitle[data-v-36d16e9d]{color:var(--color-text-maxcontrast)}.row__cell[data-v-36d16e9d]{border-bottom:1px solid var(--color-border)}.row__cell[data-v-36d16e9d] .v-select.select{min-width:var(--cell-min-width)}.row__progress[data-v-36d16e9d]{margin-top:4px}.row__progress--warn[data-v-36d16e9d]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-36d16e9d]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CAKF,+CACC,+DAAA,CCDD,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,MAAA,CAGD,yCACC,6BAAA,CACA,0CAAA,CAAA,CAIF,sCACC,iDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,OAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,yCAAA,CAIF,gCACC,mCAAA,CDpFD,4BACC,2CAAA,CAGC,6CACC,+BAAA,CAKH,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@import './shared/styles.scss';\\n\\n.user-list__row {\\n\\t@include row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Limit width of select in fill cell\\n\\t.select--fill {\\n\\t\\tmax-width: calc(var(--cell-width-large) - (2 * var(--cell-padding)));\\n\\t}\\n}\\n\\n.row {\\n\\t@include cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t:deep {\\n\\t\\t\\t.v-select.select {\\n\\t\\t\\t\\tmin-width: var(--cell-min-width);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tleft: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tleft: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-right: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-left: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-89422c7c] .icon-vue{width:64px;height:64px}.empty[data-v-89422c7c] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@import './Users/shared/styles.scss';\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-4684ed00]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.footer[data-v-685a7a6f]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-685a7a6f]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-685a7a6f],.footer__cell span[data-v-685a7a6f],.footer__cell label[data-v-685a7a6f]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-685a7a6f],.footer__cell--displayname[data-v-685a7a6f]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-685a7a6f]{left:0}.footer__cell--displayname[data-v-685a7a6f]{left:var(--avatar-cell-width);border-right:1px solid var(--color-border)}}.footer__cell--username[data-v-685a7a6f]{padding-left:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-685a7a6f]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-685a7a6f]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-685a7a6f]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-685a7a6f]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--obfuscated[data-v-685a7a6f]{min-width:400px;width:400px}.footer__cell--fill[data-v-685a7a6f]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-685a7a6f]{position:sticky;right:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-left:1px solid var(--color-border)}.footer__subtitle[data-v-685a7a6f]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-685a7a6f]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-685a7a6f]{left:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-685a7a6f]{left:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,MAAA,CAGD,4CACC,6BAAA,CACA,0CAAA,CAAA,CAIF,yCACC,iDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,OAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,yCAAA,CAIF,mCACC,mCAAA,CDpGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,MAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,6BAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@import './shared/styles.scss';\\n\\n.footer {\\n\\t@include row;\\n\\t@include cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tleft: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tleft: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tleft: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-right: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-left: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-left: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[data-v-78acaa4e]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-78acaa4e],.user-list__footer[data-v-78acaa4e]{position:sticky;display:block}.user-list__header[data-v-78acaa4e]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-78acaa4e]{left:0}.user-list__body[data-v-78acaa4e]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,MAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tleft: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-0540d351]{margin:0}.modal__content[data-v-0540d351]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-0540d351]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\nconst formatGroup = (group) => ({\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n});\n/**\n * Search groups\n *\n * @param {object} options Options\n * @param {string} options.search Search query\n * @param {number} options.offset Offset\n * @param {number} options.limit Limit\n */\nexport const searchGroups = ({ search, offset, limit }) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n};\n/**\n * Load user groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n/**\n * Load user subadmin groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserSubAdminGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n","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:{\"type\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCog}})]},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(_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.mdiAccount}})]},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.mdiShieldAccount}})]},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,2218088905)}):_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.mdiAccountOff}})]},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\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 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\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=6155f7ac&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=6155f7ac&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=6155f7ac&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=6155f7ac&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 \"6155f7ac\",\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\",\"checked\":_vm.showLanguages},on:{\"update:checked\":function($event){_vm.showLanguages=$event}}},[_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\",\"checked\":_vm.showUserBackend},on:{\"update:checked\":function($event){_vm.showUserBackend=$event}}},[_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\",\"checked\":_vm.showStoragePath},on:{\"update:checked\":function($event){_vm.showStoragePath=$event}}},[_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\":\"showLastLogin\",\"checked\":_vm.showLastLogin},on:{\"update:checked\":function($event){_vm.showLastLogin=$event}}},[_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\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_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\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_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\",\"checked\":_vm.sendWelcomeMail,\"disabled\":_vm.loadingSendMail},on:{\"update:checked\":function($event){_vm.sendWelcomeMail=$event}}},[_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)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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.mdiAccountGroup}})]},proxy:true}],null,false,3607647275)},[_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,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_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 }","\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\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=36d16e9d&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=36d16e9d&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=36d16e9d&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=36d16e9d&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 \"36d16e9d\",\n null\n \n)\n\nexport default component.exports","\n\n\n\t\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=89422c7c&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=89422c7c&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=89422c7c&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=89422c7c&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 \"89422c7c\",\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:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_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.mdiAccountGroup,\"size\":64}})]},proxy:true}],null,false,226056511)}):_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\thasObfuscated: _vm.hasObfuscated,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\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',{attrs:{\"has-obfuscated\":_vm.hasObfuscated}})]},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=4684ed00&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=4684ed00&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=4684ed00&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=4684ed00&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 \"4684ed00\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-539a4ad0] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-539a4ad0]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-539a4ad0]{height:100% !important}.account-management__settings-toggle[data-v-539a4ad0]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__form[data-v-e523ebe8]{display:flex;flex-direction:column;align-items:center;padding:0 8px;gap:4px 0}.dialog__item[data-v-e523ebe8]{width:100%}.dialog__item[data-v-e523ebe8]:not(:focus):not(:active){border-color:var(--color-border-dark)}.dialog__hint[data-v-e523ebe8]{color:var(--color-text-maxcontrast);margin-top:8px;align-self:flex-start}.dialog__label[data-v-e523ebe8]{display:block;padding:4px 0}.dialog__select[data-v-e523ebe8]{width:100%}.dialog__managers[data-v-e523ebe8]{margin-bottom:12px}.dialog__submit[data-v-e523ebe8]{margin-top:4px;margin-bottom:8px}.dialog[data-v-e523ebe8] .dialog__actions{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,aAAA,CACA,SAAA,CAGD,+BACC,UAAA,CAEA,wDACC,qCAAA,CAIF,+BACC,mCAAA,CACA,cAAA,CACA,qBAAA,CAGD,gCACC,aAAA,CACA,aAAA,CAGD,iCACC,UAAA,CAGD,mCACC,kBAAA,CAGD,iCACC,cAAA,CACA,iBAAA,CAIA,0CACC,WAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 0 8px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-top: 8px;\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: block;\\n\\t\\tpadding: 4px 0;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__managers {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tmargin-top: 4px;\\n\\t\\tmargin-bottom: 8px;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.dialog__actions {\\n\\t\\t\\tmargin: auto;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n * @param user\n * @param user.id\n */\nexport const isObfuscated = (user) => {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n};\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","formatGroup","group","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","loadUserGroups","userId","url","loadUserSubAdminGroups","components","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcNoteCard","NcSelect","props","open","type","Boolean","required","selectedQuota","loadingSendMail","computed","groupSorting","$store","getters","getGroupSorting","GroupSorting","GroupName","set","sorting","commit","UserCount","isGroupSortingEnforced","getServerData","forceSortGroupByName","isModalOpen","$emit","showConfig","getShowConfig","settings","showLanguages","status","setShowConfig","showLastLogin","showUserBackend","showStoragePath","quotaOptions","quotaPreset","reduce","acc","cur","concat","label","allowUnlimitedQuota","unshift","unlimitedQuota","defaultQuota","OC","Util","computerFileSize","quota","sendWelcomeMail","newUserSendEmail","value","post","generateUrl","logger","methods","filterQuotas","option","searchValue","toLocaleLowerCase","replaceAll","indexOf","key","validateQuota","validQuota","parseFileSize","formatFileSize","setDefaultQuota","dispatch","app","then","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","attrs","t","on","$event","_v","_s","_e","staticClass","model","callback","$$v","expression","AccountGroup","Delete","Fragment","NcActionButton","NcActionInput","NcAppNavigationItem","NcButton","NcCounterBubble","NcModal","Pencil","active","count","Number","default","String","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","gid","trim","displayName","$refs","displayNameInput","$el","querySelector","groupid","removeGroup","showError","ref","params","selectedGroup","encodeURIComponent","scopedSlots","_u","fn","proxy","undefined","isAdmin","isDelegatedAdmin","formatGroupMenu","title","Math","max","useFormatGroups","userGroups","filter","adminGroup","find","disabledGroup","recentGroup","_defineComponent","__name","setup","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","selectedGroupDecoded","decodeURIComponent","isAdminOrDelegatedAdmin","getSortedGroups","getSubAdminGroups","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","substring","toLowerCase","groupListItems","lastGroupListItem","findLast","component","$vnode","at","listItem","isLastGroupVisible","useElementVisibility","watch","promise","cancel","length","__sfc","createGroup","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiAccountGroup","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","NcAppNavigationSearch","NcIconSvgWrapper","NcLoadingIcon","GroupListItem","_setup","_setupProxy","_l","refInFor","isDialogOpen","userCount","getUserCount","showNewUserMenu","mdiAccount","mdiAccountOff","mdiCog","mdiShieldAccount","mdiHistory","NcAppNavigation","NcAppNavigationNew","UserSettingsDialog","AppNavigationGroupList","_k","keyCode","apply","arguments","Vue","directive","vElementVisibility","extend","dataComponent","Object","Function","dataKey","dataSources","Array","itemHeight","extraProps","bufferItems","index","headerHeight","tableHeight","resizeObserver","startIndex","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","min","paddingTop","paddingBottom","mounted","root","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","visible","round","scrollTop","_t","style","item","i","_b","tag","directives","rawName","NcDialog","NcPasswordField","NcTextField","loading","newUser","possibleManagers","managerInputLabel","managerLabel","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","availableGroups","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","username","focus","createUser","all","userid","password","email","mailAddress","subadmin","subAdminsGroups","language","code","manager","response","meta","statuscode","query","toggleLoading","addGroup","isCreating","g","humanFileSize","languageFilterBy","some","includes","users","values","_g","$listeners","preventDefault","$set","newUserRequireEmail","class","filteredUsers","n","hasObfuscated","passwordLabel","defineComponent","NcActions","actions","edit","user","editSvg","SvgCheck","enabledActions","action","enabled","isSvg","string","TypeError","XMLValidator","validate","jsonObject","parser","XMLParser","parse","keys","x","toggleEdit","icon","text","event","externalActions","selectedGroups","selectedSubAdminGroups","userSubAdminGroups","usedSpace","used","size","usedQuota","pow","isNaN","userQuota","humanQuota","userLanguage","userLang","lang","userLastLoginTooltip","lastLogin","formatDate","userLastLogin","relativeModifiedDate","NcAvatar","NcProgressBar","UserRowActions","mixins","UserRowMixin","rand","random","toString","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","delete","disable","wipe","editedDisplayName","editedPassword","editedMail","isObfuscated","isLoadingUser","isLoadingField","uniqueId","availableSubAdminGroups","userGroupsLabels","availableGroup","join","userSubAdminGroupsLabels","canEdit","getCurrentUser","uid","userActions","deleteUser","wipeUserDevices","enableDisableUser","editedUserQuota","availableLanguages","initManager","confirmPassword","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","showSuccess","timeout","finally","filterManagers","managers","searchInitialUserManager","loadGroupsDetails","loadSubAdminGroupsDetails","updateUserManager","previousManager","updateDisplayName","updatePassword","updateEmail","addUserGroup","console","removeUserGroup","$route","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","$nextTick","displayNameField","inputField","input","backendCapabilities","setDisplayName","canChangePassword","setPassword","backend","storageLocation","freeze","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","rowHeight","UserRow","isInitialLoad","searchQuery","getUsers","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","val","redirectIfDisabled","loadUsers","setNewUserDefaultGroup","created","Notification","showTemporary","resetForm","subscribe","resetSearch","unsubscribe","handleScrollEnd","closeDialog","assign","defaultLanguage","currentGroup","allGroups","getGroups","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","admin","window","OCA","Settings","registerAction","emit"],"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 4fa8eee2bc096..5bb13950b536e 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,s,r,a={6028:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var r=s(19051),a=s(56760);s(51257);const o=function(e){return e.replace(/\/$/,"")},i={requireAdmin:()=>(0,a.C5)(),get:(e,t)=>r.Ay.get(o(e),t),post:(e,t)=>r.Ay.post(o(e),t),patch:(e,t)=>r.Ay.patch(o(e),t),put:(e,t)=>r.Ay.put(o(e),t),delete:(e,t)=>r.Ay.delete(o(e),{params:t})}},14744:(e,s,r)=>{"use strict";r.d(s,{P:()=>K});var a=r(95353),o=r(59097),i=r(87485),n=r(35810),d=r(85168),c=r(63814),u=r(32981),p=r(19051),l=r(15916),m=r(53334);const g=Intl.Collator([(0,m.Z0)(),(0,m.lO)()],{numeric:!0,usage:"sort"});var h=r(6028),A=r(36620);const f=(0,u.C)("settings","usersSettings",{}),b=(0,o.c0)("settings").persist(!0).build(),y={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...f.getSubAdminGroups??[],...f.systemGroups??[]],orderBy:f.sortGroups??l.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,userCount:f.userCount??0,showConfig:{showStoragePath:"true"===b.getItem("account_settings__showStoragePath"),showUserBackend:"true"===b.getItem("account_settings__showUserBackend"),showLastLogin:"true"===b.getItem("account_settings__showLastLogin"),showNewUserForm:"true"===b.getItem("account_settings__showNewUserForm"),showLanguages:"true"===b.getItem("account_settings__showLanguages")}},U={appendUsers(e,t){const s=e.users.map((({id:e})=>e)),r=Object.values(t).filter((({id:e})=>!s.includes(e))),a=e.users.concat(r);e.usersOffset+=e.usersLimit,e.users=a},updateDisabledUsers(e,t){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 s=Object.assign({},y,t);e.groups.unshift(s)}catch(e){console.error("Can't create group",e)}},renameGroup(e,{gid:t,displayName:s}){const r=e.groups.findIndex((e=>e.id===t));if(r>=0){const t=e.groups[r];t.name=s,e.groups.splice(r,1,t)}},removeGroup(e,t){const s=e.groups.findIndex((e=>e.id===t));s>=0&&e.groups.splice(s,1)},addUserGroup(e,{userid:t,gid:s}){const r=e.groups.find((e=>e.id===s)),a=e.users.find((e=>e.id===t));r&&a.enabled&&e.userCount>0&&r.usercount++,a.groups.push(s)},removeUserGroup(e,{userid:t,gid:s}){const r=e.groups.find((e=>e.id===s)),a=e.users.find((e=>e.id===t));r&&a.enabled&&e.userCount>0&&r.usercount--;const o=a.groups;o.splice(o.indexOf(s),1)},addUserSubAdmin(e,{userid:t,gid:s}){e.users.find((e=>e.id===t)).subadmin.push(s)},removeUserSubAdmin(e,{userid:t,gid:s}){const r=e.users.find((e=>e.id===t)).subadmin;r.splice(r.indexOf(s),1)},deleteUser(e,t){const s=e.users.findIndex((e=>e.id===t));this.commit("updateUserCounts",{user:e.users[s],actionType:"remove"}),e.users.splice(s,1)},addUserData(e,t){const s=t.data.ocs.data;e.users.unshift(s),this.commit("updateUserCounts",{user:s,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:s}){const r=e.users.find((e=>e.id===t));r.enabled=s,this.commit("updateUserCounts",{user:r,actionType:s?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:s}){if(0===e.userCount)return;const r=e.groups.find((e=>"__nc_internal_recent"===e.id)),a=e.groups.find((e=>"disabled"===e.id));switch(s){case"enable":case"disable":a.usercount+=t.enabled?-1:1,r.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach((s=>{const r=e.groups.find((e=>e.id===s));r&&(r.disabled+=t.enabled?-1:1)}));break;case"create":r.usercount++,e.userCount++,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s&&s.usercount++}));break;case"remove":t.enabled?(r.usercount--,e.userCount--,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s?s.usercount--:console.warn("User group "+t+" does not exist during user removal")}))):(a.usercount--,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s&&s.disabled--})));break;default:A.A.error(`Unknown action type in updateUserCounts: '${s}'`)}},setUserData(e,{userid:t,key:s,value:r}){if("quota"===s){const a=(0,n.lT)(r,!0);e.users.find((e=>e.id===t))[s][s]=null!==a?a:r}else e.users.find((e=>e.id===t))[s]=r},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...f.getSubAdminGroups??[],...f.systemGroups??[]]},setShowConfig(e,{key:t,value:s}){b.setItem(`account_settings__${t}`,JSON.stringify(s)),e.showConfig[t]=s},setGroupSorting(e,s){const r=e.orderBy;e.orderBy=s,p.Ay.post((0,c.Jv)("/settings/users/preferences/group.sortBy"),{value:String(s)}).catch((s=>{e.orderBy=r,(0,d.Qg)(t("settings","Could not set group sorting")),A.A.error(s)}))}},v={getUsers:e=>e.users,getGroups:e=>e.groups,getSubAdminGroups:()=>f.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===l.q.UserCount?t.sort(((e,t)=>{const s=e.usercount-e.disabled,r=t.usercount-t.disabled;return sg.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},L=p.Ay.CancelToken;let w=null;const _={state:I,mutations:U,getters:v,actions:{searchUsers:(e,{offset:t,limit:s,search:r})=>(r="string"==typeof r?r:"",h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))),getUser:(e,t)=>h.A.get((0,c.KT)(`cloud/users/${t}`)).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUsers:(e,{offset:t,limit:s,search:r,group:a})=>(w&&w.cancel("Operation canceled by another search request."),w=L.source(),r=(r="string"==typeof r?r:"").replace(/in:[^\s]+/g,"").trim(),""!==(a="string"==typeof a?a:"")?h.A.get((0,c.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(a),offset:t,limit:s,search:r}),{cancelToken:w.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)})):h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r}),{cancelToken:w.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))),async getRecentUsers(e,{offset:t,limit:s,search:r}){const a=(0,c.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r});try{const t=await h.A.get(a),s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:s,search:r}){const a=(0,c.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r});try{const t=await h.A.get(a),s=Object.keys(t.data.ocs.data.users).length;return s>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),s}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:s,search:r}){r="string"==typeof r?r:"";const a=-1===s?"":`&limit=${s}`;return h.A.get((0,c.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:r})+a).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:s,search:r})=>(r="string"==typeof r?r:"",h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r})).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:s,limit:r})=>h.A.get((0,c.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:s,limit:r})).then((t=>e.commit("getUsersFromList",t.data.ocs.data.users))).catch((t=>e.commit("API_FAILURE",t))),getPasswordPolicyMinLength:e=>!(!(0,i.F)().password_policy||!(0,i.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,i.F)().password_policy.minLength),(0,i.F)().password_policy.minLength),addGroup:(e,t)=>h.A.requireAdmin().then((s=>h.A.post((0,c.KT)("cloud/groups"),{groupid:t}).then((s=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{gid:t,error:s}),s})),renameGroup:(e,{groupid:t,displayName:s})=>h.A.requireAdmin().then((r=>h.A.put((0,c.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:s}).then((r=>(e.commit("renameGroup",{gid:t,displayName:s}),{groupid:t,displayName:s}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{groupid:t,error:s}),s})),removeGroup:(e,t)=>h.A.requireAdmin().then((s=>h.A.delete((0,c.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then((s=>e.commit("removeGroup",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{gid:t,error:s}))),addUserGroup:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.post((0,c.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:s}).then((r=>e.commit("addUserGroup",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),removeUserGroup:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.delete((0,c.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:s}).then((r=>e.commit("removeUserGroup",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{userid:t,error:s}),s})),addUserSubAdmin:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.post((0,c.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:s}).then((r=>e.commit("addUserSubAdmin",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),removeUserSubAdmin:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.delete((0,c.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:s}).then((r=>e.commit("removeUserSubAdmin",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),async wipeUserDevices(e,t){try{return await h.A.requireAdmin(),await h.A.post((0,c.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(s){return e.commit("API_FAILURE",{userid:t,error:s}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>h.A.requireAdmin().then((s=>h.A.delete((0,c.KT)("cloud/users/{userid}",{userid:t})).then((s=>e.commit("deleteUser",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),addUser:({commit:e,dispatch:t},{userid:s,password:r,displayName:a,email:o,groups:i,subadmin:n,quota:d,language:u,manager:p})=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("cloud/users"),{userid:s,password:r,displayName:a,email:o,groups:i,subadmin:n,quota:d,language:u,manager:p}).then((e=>t("addUserData",s||e.data.ocs.data.id))).catch((e=>{throw e})))).catch((t=>{throw e("API_FAILURE",{userid:s,error:t}),t})),addUserData:(e,t)=>h.A.requireAdmin().then((s=>h.A.get((0,c.KT)("cloud/users/{userid}",{userid:t})).then((t=>e.commit("addUserData",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),enableDisableUser(e,{userid:t,enabled:s=!0}){const r=s?"enable":"disable";return h.A.requireAdmin().then((a=>h.A.put((0,c.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:r})).then((r=>e.commit("enableDisableUser",{userid:t,enabled:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))},async setUserData(e,{userid:t,key:s,value:r}){if(!["email","language","quota","displayname","password","manager"].includes(s))throw new Error("Invalid request data");if(""===r&&!["email","displayname","manager"].includes(s))throw new Error("Value cannot be empty for this field");try{return await h.A.requireAdmin(),await h.A.put((0,c.KT)("cloud/users/{userid}",{userid:t}),{key:s,value:r}),e.commit("setUserData",{userid:t,key:s,value:r})}catch(s){throw e.commit("API_FAILURE",{userid:t,error:s}),s}},sendWelcomeMail:(e,t)=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("cloud/users/{userid}/welcome",{userid:t})).then((e=>!0)).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))}};var P=r(85471);const C={apps:[],bundles:(0,u.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,u.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,u.C)("settings","appApiEnabled",!1)},E={APPS_API_FAILURE(e,s){(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+s.error.response.data.data.message,{isHTML:!0}),console.error(e,s)},initCategories(e,{categories:t,updateCount:s}){e.categories=t,e.updateCount=s},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:s}){Array.isArray(t)||(t=[t]),t.forEach((t=>{e.apps.find((e=>e.id===t)).error=s}))},clearError(e,{appId:t,error:s}){e.apps.find((e=>e.id===t)).error=null},enableApp(e,{appId:t,groups:s}){const r=e.apps.find((e=>e.id===t));r.active=!0,r.groups=s,"app_api"===r.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:s}){const r=e.apps.find((e=>e.id===t));r&&(r.canInstall=!0===s)},disableApp(e,t){const s=e.apps.find((e=>e.id===t));s.active=!1,s.groups=[],s.removable&&(s.canUnInstall=!0),"app_api"===s.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 s=e.apps.find((e=>e.id===t)),r=s.update;s.update=null,s.version=r,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)}},R={enableApp(e,{appId:s,groups:r}){let a;return a=Array.isArray(s)?s:[s],h.A.requireAdmin().then((o=>(e.commit("startLoading",a),e.commit("startLoading","install"),h.A.post((0,c.Jv)("settings/apps/enable"),{appIds:a,groups:r}).then((o=>(e.commit("stopLoading",a),e.commit("stopLoading","install"),a.forEach((t=>{e.commit("enableApp",{appId:t,groups:r})})),p.Ay.get((0,c.Jv)("apps/files/")).then((()=>{o.data.update_required&&((0,d.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(s)||((0,d.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:a,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:s}))}))))).catch((t=>{e.commit("stopLoading",a),e.commit("stopLoading","install"),e.commit("setError",{appId:a,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},forceEnableApp(e,{appId:t,groups:s}){let r;return r=Array.isArray(t)?t:[t],h.A.requireAdmin().then((()=>(e.commit("startLoading",r),e.commit("startLoading","install"),h.A.post((0,c.Jv)("settings/apps/force"),{appId:t}).then((s=>{e.commit("setInstallState",{appId:t,canInstall:!0})})).catch((s=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),e.commit("setError",{appId:r,error:s.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:s})})).finally((()=>{e.commit("stopLoading",r),e.commit("stopLoading","install")}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s})))},disableApp(e,{appId:t}){let s;return s=Array.isArray(t)?t:[t],h.A.requireAdmin().then((r=>(e.commit("startLoading",s),h.A.post((0,c.Jv)("settings/apps/disable"),{appIds:s}).then((t=>(e.commit("stopLoading",s),s.forEach((t=>{e.commit("disableApp",t)})),!0))).catch((r=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:t,error:r})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s})))},uninstallApp:(e,{appId:t})=>h.A.requireAdmin().then((s=>(e.commit("startLoading",t),h.A.get((0,c.Jv)(`settings/apps/uninstall/${t}`)).then((s=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0))).catch((s=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:s})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s}))),updateApp:(e,{appId:t})=>h.A.requireAdmin().then((s=>(e.commit("startLoading",t),e.commit("startLoading","install"),h.A.get((0,c.Jv)(`settings/apps/update/${t}`)).then((s=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0))).catch((s=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:s})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s}))),getAllApps:e=>(e.commit("startLoading","list"),h.A.get((0,c.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=h.A.get((0,c.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const s=await t;return s.data.length>0?(e.commit("appendCategories",s.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},F={state:C,mutations:E,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:R},T={serverData:(0,u.C)("settings","usersSettings",{})},k={setServerData(e,t){e.serverData=t}},S={state:T,mutations:k,getters:{getServerData:e=>e.serverData},actions:{}},O={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:s,value:r})=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:s}),{value:r}).catch((e=>{throw e})))).catch((a=>e.commit("API_FAILURE",{app:t,key:s,value:r,error:a})))}},q={API_FAILURE(e,s){try{const e=s.error.response.data.ocs.meta.message;(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch(e){(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}console.error(e,s)}};let G=null;const K=()=>(null===G&&(G=new a.il({modules:{users:_,apps:F,settings:S,oc:O},strict:!1,mutations:q})),G)},15916:(e,t,s)=>{"use strict";var r;s.d(t,{q:()=>r}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(r||(r={}))},18539:(e,t,s)=>{"use strict";var r=s(85471),a=s(95353),o=s(80284),i=s(58723),n=s(53334),d=s(22378);const c=(0,r.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:d.A})}),u=(0,s(14486).A)(c,(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 p=s(40173),l=s(63814);const m=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([s.e(4208),s.e(7265),s.e(3239)]).then(s.bind(s,38907)),navigation:()=>Promise.all([s.e(4208),s.e(7265),s.e(3239)]).then(s.bind(s,52890))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,s(32981).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,70072)),navigation:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,28372)),sidebar:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,62437))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];r.Ay.use(p.Ay);const g=new p.Ay({mode:"history",base:(0,l.Jv)(""),linkActiveClass:"active",routes:m});var h=s(14744),A=s(61884),f=s(65899);s.nc=(0,A.aV)(),r.Ay.prototype.t=n.t,r.Ay.prototype.n=n.n,r.Ay.use(f.R2),r.Ay.use(o.Ay,{defaultHtml:!1}),r.Ay.use(a.Ay);const b=(0,f.Ey)(),y=(0,h.P)();(0,i.O)(y,g),new r.Ay({router:g,store:y,pinia:b,render:e=>e(u),el:"#content"})},36620:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r=(0,s(35947).YK)().setApp("settings").detectUser().build()},58723:(e,t)=>{function s(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=s(t)),Object.freeze(r)}t.O=function(e,t,r){var a=(r||{}).moduleName||"route";e.registerModule(a,{namespaced:!0,state:s(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[a]=s(r.to,r.from)}}});var o,i=!1,n=e.watch((function(e){return e[a]}),(function(e){var s=e.fullPath;s!==o&&(null!=o&&(i=!0,t.push(e)),o=s)}),{sync:!0}),d=t.afterEach((function(t,s){i?i=!1:(o=t.fullPath,e.commit(a+"/ROUTE_CHANGED",{to:t,from:s}))}));return function(){null!=d&&d(),null!=n&&n(),e.unregisterModule(a)}}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=a,e=[],i.O=(t,s,r,a)=>{if(!s){var o=1/0;for(u=0;u=a)&&Object.keys(i.O).every((e=>i.O[e](s[d])))?s.splice(d--,1):(n=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[s,r,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1521:"ab0390e846bde8507d0e",3239:"5bab8505d1770af7fb74",3278:"5c7fc5cf23f9812be330",4529:"89b727eb1b25e2e804ac",4612:"aebb24cec040bc57223b",5085:"2d72e34edeb343344f2f",5947:"790b0dacc188105af231",7265:"7afd63ac40ec27acf4f0",7471:"6423b9b898ffefeb7d1d",8737:"ea8a994e6cc11d4777a2"}[e]),i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},r="nextcloud:",i.l=(e,t,a,o)=>{if(s[e])s[e].push(t);else{var n,d;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{n.onerror=n.onload=null,clearTimeout(m);var a=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach((e=>e(r))),t)return t(r)},m=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=2689,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var r=s.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=s[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};i.f.j=(t,s)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)s.push(r[2]);else{var a=new Promise(((s,a)=>r=e[t]=[s,a]));s.push(r[2]=a);var o=i.p+i.u(t),n=new Error;i.l(o,(s=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=s&&("load"===s.type?"missing":s.type),o=s&&s.target&&s.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,r[1](n)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var r,a,[o,n,d]=s,c=0;if(o.some((t=>0!==e[t]))){for(r in n)i.o(n,r)&&(i.m[r]=n[r]);if(d)var u=d(i)}for(t&&t(s);ci(18539)));n=i.O(n)})();
-//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=537476af78a9f007a4b1
\ No newline at end of file
+(()=>{var e,s,r,a={6028:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var r=s(19051),a=s(56760);s(51257);const o=function(e){return e.replace(/\/$/,"")},i={requireAdmin:()=>(0,a.C5)(),get:(e,t)=>r.Ay.get(o(e),t),post:(e,t)=>r.Ay.post(o(e),t),patch:(e,t)=>r.Ay.patch(o(e),t),put:(e,t)=>r.Ay.put(o(e),t),delete:(e,t)=>r.Ay.delete(o(e),{params:t})}},14744:(e,s,r)=>{"use strict";r.d(s,{P:()=>K});var a=r(95353),o=r(59097),i=r(87485),n=r(35810),d=r(85168),c=r(63814),u=r(32981),p=r(19051),l=r(15916),m=r(53334);const g=Intl.Collator([(0,m.Z0)(),(0,m.lO)()],{numeric:!0,usage:"sort"});var h=r(6028),A=r(36620);const f=(0,u.C)("settings","usersSettings",{}),b=(0,o.c0)("settings").persist(!0).build(),y={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...f.getSubAdminGroups??[],...f.systemGroups??[]],orderBy:f.sortGroups??l.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,userCount:f.userCount??0,showConfig:{showStoragePath:"true"===b.getItem("account_settings__showStoragePath"),showUserBackend:"true"===b.getItem("account_settings__showUserBackend"),showLastLogin:"true"===b.getItem("account_settings__showLastLogin"),showNewUserForm:"true"===b.getItem("account_settings__showNewUserForm"),showLanguages:"true"===b.getItem("account_settings__showLanguages")}},U={appendUsers(e,t){const s=e.users.map((({id:e})=>e)),r=Object.values(t).filter((({id:e})=>!s.includes(e))),a=e.users.concat(r);e.usersOffset+=e.usersLimit,e.users=a},updateDisabledUsers(e,t){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 s=Object.assign({},y,t);e.groups.unshift(s)}catch(e){console.error("Can't create group",e)}},renameGroup(e,{gid:t,displayName:s}){const r=e.groups.findIndex((e=>e.id===t));if(r>=0){const t=e.groups[r];t.name=s,e.groups.splice(r,1,t)}},removeGroup(e,t){const s=e.groups.findIndex((e=>e.id===t));s>=0&&e.groups.splice(s,1)},addUserGroup(e,{userid:t,gid:s}){const r=e.groups.find((e=>e.id===s)),a=e.users.find((e=>e.id===t));r&&a.enabled&&e.userCount>0&&r.usercount++,a.groups.push(s)},removeUserGroup(e,{userid:t,gid:s}){const r=e.groups.find((e=>e.id===s)),a=e.users.find((e=>e.id===t));r&&a.enabled&&e.userCount>0&&r.usercount--;const o=a.groups;o.splice(o.indexOf(s),1)},addUserSubAdmin(e,{userid:t,gid:s}){e.users.find((e=>e.id===t)).subadmin.push(s)},removeUserSubAdmin(e,{userid:t,gid:s}){const r=e.users.find((e=>e.id===t)).subadmin;r.splice(r.indexOf(s),1)},deleteUser(e,t){const s=e.users.findIndex((e=>e.id===t));this.commit("updateUserCounts",{user:e.users[s],actionType:"remove"}),e.users.splice(s,1)},addUserData(e,t){const s=t.data.ocs.data;e.users.unshift(s),this.commit("updateUserCounts",{user:s,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:s}){const r=e.users.find((e=>e.id===t));r.enabled=s,this.commit("updateUserCounts",{user:r,actionType:s?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:s}){if(0===e.userCount)return;const r=e.groups.find((e=>"__nc_internal_recent"===e.id)),a=e.groups.find((e=>"disabled"===e.id));switch(s){case"enable":case"disable":a.usercount+=t.enabled?-1:1,r.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach((s=>{const r=e.groups.find((e=>e.id===s));r&&(r.disabled+=t.enabled?-1:1)}));break;case"create":r.usercount++,e.userCount++,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s&&s.usercount++}));break;case"remove":t.enabled?(r.usercount--,e.userCount--,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s?s.usercount--:console.warn("User group "+t+" does not exist during user removal")}))):(a.usercount--,t.groups.forEach((t=>{const s=e.groups.find((e=>e.id===t));s&&s.disabled--})));break;default:A.A.error(`Unknown action type in updateUserCounts: '${s}'`)}},setUserData(e,{userid:t,key:s,value:r}){if("quota"===s){const a=(0,n.lT)(r,!0);e.users.find((e=>e.id===t))[s][s]=null!==a?a:r}else e.users.find((e=>e.id===t))[s]=r},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...f.getSubAdminGroups??[],...f.systemGroups??[]]},setShowConfig(e,{key:t,value:s}){b.setItem(`account_settings__${t}`,JSON.stringify(s)),e.showConfig[t]=s},setGroupSorting(e,s){const r=e.orderBy;e.orderBy=s,p.Ay.post((0,c.Jv)("/settings/users/preferences/group.sortBy"),{value:String(s)}).catch((s=>{e.orderBy=r,(0,d.Qg)(t("settings","Could not set group sorting")),A.A.error(s)}))}},v={getUsers:e=>e.users,getGroups:e=>e.groups,getSubAdminGroups:()=>f.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===l.q.UserCount?t.sort(((e,t)=>{const s=e.usercount-e.disabled,r=t.usercount-t.disabled;return sg.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},L=p.Ay.CancelToken;let w=null;const _={state:I,mutations:U,getters:v,actions:{searchUsers:(e,{offset:t,limit:s,search:r})=>(r="string"==typeof r?r:"",h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))),getUser:(e,t)=>h.A.get((0,c.KT)(`cloud/users/${t}`)).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUsers:(e,{offset:t,limit:s,search:r,group:a})=>(w&&w.cancel("Operation canceled by another search request."),w=L.source(),r=(r="string"==typeof r?r:"").replace(/in:[^\s]+/g,"").trim(),""!==(a="string"==typeof a?a:"")?h.A.get((0,c.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(a),offset:t,limit:s,search:r}),{cancelToken:w.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)})):h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r}),{cancelToken:w.token}).then((t=>{const s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s})).catch((t=>{p.Ay.isCancel(t)||e.commit("API_FAILURE",t)}))),async getRecentUsers(e,{offset:t,limit:s,search:r}){const a=(0,c.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r});try{const t=await h.A.get(a),s=Object.keys(t.data.ocs.data.users).length;return s>0&&e.commit("appendUsers",t.data.ocs.data.users),s}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:s,search:r}){const a=(0,c.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r});try{const t=await h.A.get(a),s=Object.keys(t.data.ocs.data.users).length;return s>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),s}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:s,search:r}){r="string"==typeof r?r:"";const a=-1===s?"":`&limit=${s}`;return h.A.get((0,c.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:r})+a).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:s,search:r})=>(r="string"==typeof r?r:"",h.A.get((0,c.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:s,search:r})).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:s,limit:r})=>h.A.get((0,c.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:s,limit:r})).then((t=>e.commit("getUsersFromList",t.data.ocs.data.users))).catch((t=>e.commit("API_FAILURE",t))),getPasswordPolicyMinLength:e=>!(!(0,i.F)().password_policy||!(0,i.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,i.F)().password_policy.minLength),(0,i.F)().password_policy.minLength),addGroup:(e,t)=>h.A.requireAdmin().then((s=>h.A.post((0,c.KT)("cloud/groups"),{groupid:t}).then((s=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{gid:t,error:s}),s})),renameGroup:(e,{groupid:t,displayName:s})=>h.A.requireAdmin().then((r=>h.A.put((0,c.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:s}).then((r=>(e.commit("renameGroup",{gid:t,displayName:s}),{groupid:t,displayName:s}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{groupid:t,error:s}),s})),removeGroup:(e,t)=>h.A.requireAdmin().then((s=>h.A.delete((0,c.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then((s=>e.commit("removeGroup",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{gid:t,error:s}))),addUserGroup:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.post((0,c.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:s}).then((r=>e.commit("addUserGroup",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),removeUserGroup:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.delete((0,c.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:s}).then((r=>e.commit("removeUserGroup",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>{throw e.commit("API_FAILURE",{userid:t,error:s}),s})),addUserSubAdmin:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.post((0,c.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:s}).then((r=>e.commit("addUserSubAdmin",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),removeUserSubAdmin:(e,{userid:t,gid:s})=>h.A.requireAdmin().then((r=>h.A.delete((0,c.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:s}).then((r=>e.commit("removeUserSubAdmin",{userid:t,gid:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),async wipeUserDevices(e,t){try{return await h.A.requireAdmin(),await h.A.post((0,c.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(s){return e.commit("API_FAILURE",{userid:t,error:s}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>h.A.requireAdmin().then((s=>h.A.delete((0,c.KT)("cloud/users/{userid}",{userid:t})).then((s=>e.commit("deleteUser",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),addUser:({commit:e,dispatch:t},{userid:s,password:r,displayName:a,email:o,groups:i,subadmin:n,quota:d,language:u,manager:p})=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("cloud/users"),{userid:s,password:r,displayName:a,email:o,groups:i,subadmin:n,quota:d,language:u,manager:p}).then((e=>t("addUserData",s||e.data.ocs.data.id))).catch((e=>{throw e})))).catch((t=>{throw e("API_FAILURE",{userid:s,error:t}),t})),addUserData:(e,t)=>h.A.requireAdmin().then((s=>h.A.get((0,c.KT)("cloud/users/{userid}",{userid:t})).then((t=>e.commit("addUserData",t))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s}))),enableDisableUser(e,{userid:t,enabled:s=!0}){const r=s?"enable":"disable";return h.A.requireAdmin().then((a=>h.A.put((0,c.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:r})).then((r=>e.commit("enableDisableUser",{userid:t,enabled:s}))).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))},async setUserData(e,{userid:t,key:s,value:r}){if(!["email","language","quota","displayname","password","manager"].includes(s))throw new Error("Invalid request data");if(""===r&&!["email","displayname","manager"].includes(s))throw new Error("Value cannot be empty for this field");try{return await h.A.requireAdmin(),await h.A.put((0,c.KT)("cloud/users/{userid}",{userid:t}),{key:s,value:r}),e.commit("setUserData",{userid:t,key:s,value:r})}catch(s){throw e.commit("API_FAILURE",{userid:t,error:s}),s}},sendWelcomeMail:(e,t)=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("cloud/users/{userid}/welcome",{userid:t})).then((e=>!0)).catch((e=>{throw e})))).catch((s=>e.commit("API_FAILURE",{userid:t,error:s})))}};var P=r(85471);const C={apps:[],bundles:(0,u.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,u.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,u.C)("settings","appApiEnabled",!1)},E={APPS_API_FAILURE(e,s){(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+s.error.response.data.data.message,{isHTML:!0}),console.error(e,s)},initCategories(e,{categories:t,updateCount:s}){e.categories=t,e.updateCount=s},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:s}){Array.isArray(t)||(t=[t]),t.forEach((t=>{e.apps.find((e=>e.id===t)).error=s}))},clearError(e,{appId:t,error:s}){e.apps.find((e=>e.id===t)).error=null},enableApp(e,{appId:t,groups:s}){const r=e.apps.find((e=>e.id===t));r.active=!0,r.groups=s,"app_api"===r.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:s}){const r=e.apps.find((e=>e.id===t));r&&(r.canInstall=!0===s)},disableApp(e,t){const s=e.apps.find((e=>e.id===t));s.active=!1,s.groups=[],s.removable&&(s.canUnInstall=!0),"app_api"===s.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 s=e.apps.find((e=>e.id===t)),r=s.update;s.update=null,s.version=r,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)}},R={enableApp(e,{appId:s,groups:r}){let a;return a=Array.isArray(s)?s:[s],h.A.requireAdmin().then((o=>(e.commit("startLoading",a),e.commit("startLoading","install"),h.A.post((0,c.Jv)("settings/apps/enable"),{appIds:a,groups:r}).then((o=>(e.commit("stopLoading",a),e.commit("stopLoading","install"),a.forEach((t=>{e.commit("enableApp",{appId:t,groups:r})})),p.Ay.get((0,c.Jv)("apps/files/")).then((()=>{o.data.update_required&&((0,d.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(s)||((0,d.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:a,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:s}))}))))).catch((t=>{e.commit("stopLoading",a),e.commit("stopLoading","install"),e.commit("setError",{appId:a,error:t.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:s,error:t})}))))).catch((t=>e.commit("API_FAILURE",{appId:s,error:t})))},forceEnableApp(e,{appId:t,groups:s}){let r;return r=Array.isArray(t)?t:[t],h.A.requireAdmin().then((()=>(e.commit("startLoading",r),e.commit("startLoading","install"),h.A.post((0,c.Jv)("settings/apps/force"),{appId:t}).then((s=>{e.commit("setInstallState",{appId:t,canInstall:!0})})).catch((s=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),e.commit("setError",{appId:r,error:s.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:s})})).finally((()=>{e.commit("stopLoading",r),e.commit("stopLoading","install")}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s})))},disableApp(e,{appId:t}){let s;return s=Array.isArray(t)?t:[t],h.A.requireAdmin().then((r=>(e.commit("startLoading",s),h.A.post((0,c.Jv)("settings/apps/disable"),{appIds:s}).then((t=>(e.commit("stopLoading",s),s.forEach((t=>{e.commit("disableApp",t)})),!0))).catch((r=>{e.commit("stopLoading",s),e.commit("APPS_API_FAILURE",{appId:t,error:r})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s})))},uninstallApp:(e,{appId:t})=>h.A.requireAdmin().then((s=>(e.commit("startLoading",t),h.A.get((0,c.Jv)(`settings/apps/uninstall/${t}`)).then((s=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0))).catch((s=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:s})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s}))),updateApp:(e,{appId:t})=>h.A.requireAdmin().then((s=>(e.commit("startLoading",t),e.commit("startLoading","install"),h.A.get((0,c.Jv)(`settings/apps/update/${t}`)).then((s=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0))).catch((s=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:s})}))))).catch((s=>e.commit("API_FAILURE",{appId:t,error:s}))),getAllApps:e=>(e.commit("startLoading","list"),h.A.get((0,c.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=h.A.get((0,c.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const s=await t;return s.data.length>0?(e.commit("appendCategories",s.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},F={state:C,mutations:E,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:R},T={serverData:(0,u.C)("settings","usersSettings",{})},k={setServerData(e,t){e.serverData=t}},S={state:T,mutations:k,getters:{getServerData:e=>e.serverData},actions:{}},O={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:s,value:r})=>h.A.requireAdmin().then((e=>h.A.post((0,c.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:s}),{value:r}).catch((e=>{throw e})))).catch((a=>e.commit("API_FAILURE",{app:t,key:s,value:r,error:a})))}},q={API_FAILURE(e,s){try{const e=s.error.response.data.ocs.meta.message;(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+" "+e,{isHTML:!0})}catch(e){(0,d.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}console.error(e,s)}};let G=null;const K=()=>(null===G&&(G=new a.il({modules:{users:_,apps:F,settings:S,oc:O},strict:!1,mutations:q})),G)},15916:(e,t,s)=>{"use strict";var r;s.d(t,{q:()=>r}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(r||(r={}))},18539:(e,t,s)=>{"use strict";var r=s(85471),a=s(95353),o=s(80284),i=s(58723),n=s(53334),d=s(22378);const c=(0,r.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:d.A})}),u=(0,s(14486).A)(c,(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 p=s(40173),l=s(63814);const m=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([s.e(4208),s.e(7265),s.e(3239)]).then(s.bind(s,55458)),navigation:()=>Promise.all([s.e(4208),s.e(7265),s.e(3239)]).then(s.bind(s,52890))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,s(32981).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,70072)),navigation:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,28372)),sidebar:()=>Promise.all([s.e(4208),s.e(7265),s.e(4529)]).then(s.bind(s,62437))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];r.Ay.use(p.Ay);const g=new p.Ay({mode:"history",base:(0,l.Jv)(""),linkActiveClass:"active",routes:m});var h=s(14744),A=s(61884),f=s(65899);s.nc=(0,A.aV)(),r.Ay.prototype.t=n.t,r.Ay.prototype.n=n.n,r.Ay.use(f.R2),r.Ay.use(o.Ay,{defaultHtml:!1}),r.Ay.use(a.Ay);const b=(0,f.Ey)(),y=(0,h.P)();(0,i.O)(y,g),new r.Ay({router:g,store:y,pinia:b,render:e=>e(u),el:"#content"})},36620:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});const r=(0,s(35947).YK)().setApp("settings").detectUser().build()},58723:(e,t)=>{function s(e,t){var r={name:e.name,path:e.path,hash:e.hash,query:e.query,params:e.params,fullPath:e.fullPath,meta:e.meta};return t&&(r.from=s(t)),Object.freeze(r)}t.O=function(e,t,r){var a=(r||{}).moduleName||"route";e.registerModule(a,{namespaced:!0,state:s(t.currentRoute),mutations:{ROUTE_CHANGED:function(t,r){e.state[a]=s(r.to,r.from)}}});var o,i=!1,n=e.watch((function(e){return e[a]}),(function(e){var s=e.fullPath;s!==o&&(null!=o&&(i=!0,t.push(e)),o=s)}),{sync:!0}),d=t.afterEach((function(t,s){i?i=!1:(o=t.fullPath,e.commit(a+"/ROUTE_CHANGED",{to:t,from:s}))}));return function(){null!=d&&d(),null!=n&&n(),e.unregisterModule(a)}}}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.m=a,e=[],i.O=(t,s,r,a)=>{if(!s){var o=1/0;for(u=0;u=a)&&Object.keys(i.O).every((e=>i.O[e](s[d])))?s.splice(d--,1):(n=!1,a0&&e[u-1][2]>a;u--)e[u]=e[u-1];e[u]=[s,r,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var s in t)i.o(t,s)&&!i.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,s)=>(i.f[s](e,t),t)),[])),i.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1521:"ab0390e846bde8507d0e",3239:"90785444c12773d06bc7",3278:"5c7fc5cf23f9812be330",4529:"89b727eb1b25e2e804ac",4612:"aebb24cec040bc57223b",5085:"2d72e34edeb343344f2f",5947:"790b0dacc188105af231",7265:"7afd63ac40ec27acf4f0",7471:"6423b9b898ffefeb7d1d",8737:"ea8a994e6cc11d4777a2"}[e]),i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},r="nextcloud:",i.l=(e,t,a,o)=>{if(s[e])s[e].push(t);else{var n,d;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u{n.onerror=n.onload=null,clearTimeout(m);var a=s[e];if(delete s[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach((e=>e(r))),t)return t(r)},m=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),d&&document.head.appendChild(n)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=2689,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var s=t.getElementsByTagName("script");if(s.length)for(var r=s.length-1;r>-1&&(!e||!/^http(s?):/.test(e));)e=s[r--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};i.f.j=(t,s)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)s.push(r[2]);else{var a=new Promise(((s,a)=>r=e[t]=[s,a]));s.push(r[2]=a);var o=i.p+i.u(t),n=new Error;i.l(o,(s=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=s&&("load"===s.type?"missing":s.type),o=s&&s.target&&s.target.src;n.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",n.name="ChunkLoadError",n.type=a,n.request=o,r[1](n)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,s)=>{var r,a,[o,n,d]=s,c=0;if(o.some((t=>0!==e[t]))){for(r in n)i.o(n,r)&&(i.m[r]=n[r]);if(d)var u=d(i)}for(t&&t(s);ci(18539)));n=i.O(n)})();
+//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=87517107cbd01df1cbf1
\ 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 ba43fc8335845..198fb9b21b8f7 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=537476af78a9f007a4b1","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/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","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/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/vuex-router-sync/index.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/global","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:\";\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'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nconst sanitize = function(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * 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) {\n\t\treturn axios.post(sanitize(url), data)\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: 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 { getBuilder } from '@nextcloud/browser-storage'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { parseFileSize } from '@nextcloud/files'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\n\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\nimport logger from '../logger.ts'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst localStorage = getBuilder('settings').persist(true).build()\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\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: localStorage.getItem('account_settings__showStoragePath') === 'true',\n\t\tshowUserBackend: localStorage.getItem('account_settings__showUserBackend') === 'true',\n\t\tshowLastLogin: localStorage.getItem('account_settings__showLastLogin') === 'true',\n\t\tshowNewUserForm: localStorage.getItem('account_settings__showNewUserForm') === 'true',\n\t\tshowLanguages: localStorage.getItem('account_settings__showLanguages') === 'true',\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, _usersObj) {\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 = Object.assign({}, defaults.group, newGroup)\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (e) {\n\t\t\tconsole.error('Can\\'t create group', e)\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\tcase 'enable':\n\t\tcase 'disable':\n\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tif (!group) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\trecentGroup.usercount++\n\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tif (!group) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'remove':\n\t\t\tif (user.enabled) {\n\t\t\t\trecentGroup.usercount--\n\t\t\t\tstate.userCount-- // decrement 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\tconsole.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tdisabledGroup.usercount-- // decrement Disabled 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-- // decrement group disabled count\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\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 * 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\tsetShowConfig(state, { key, value }) {\n\t\tlocalStorage.setItem(`account_settings__${key}`, JSON.stringify(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\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\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context 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((response) => {\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((response) => {\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((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context 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 * 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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(response => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, 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 api from './api.js'\nimport Vue from 'vue'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\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\tconsole.error(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, error }) {\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\tapp.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\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\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t\t})\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\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\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\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\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\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\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\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\t})\n\t\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\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}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(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\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((response) => {\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((response) => {\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((response) => {\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((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then((response) => {\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((response) => {\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((response) => {\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 { 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: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport api from './api.js'\nimport { generateOcsUrl } from '@nextcloud/router'\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((response) => {\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 { Store } from 'vuex'\nimport users from './users.js'\nimport apps from './apps.js'\nimport settings from './users-settings.js'\nimport oc from './oc.js'\nimport { showError } from '@nextcloud/dialogs'\n\nconst debug = process.env.NODE_ENV !== 'production'\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 (e) {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tconsole.error(state, error)\n\t},\n}\n\nlet store = null\n\nexport const 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: debug,\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","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-4.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-4.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=02c6e0e9\"\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 Vue from 'vue';\nimport Router from 'vue-router';\nimport { generateUrl } from '@nextcloud/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 Vue from 'vue';\nimport Vuex from 'vuex';\nimport VTooltipPlugin from 'v-tooltip';\nimport { sync } from 'vuex-router-sync';\nimport { t, n } from '@nextcloud/l10n';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin, createPinia } from 'pinia';\n// CSP config for webpack dynamic chunk loading\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\n// Setup Vue plugins\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\n// Setup stores\nconst pinia = createPinia();\nconst store = useStore();\nsync(store, router);\nexport default new Vue({\n router,\n store,\n pinia,\n render: h => h(SettingsApp),\n el: '#content',\n});\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","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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1521\":\"ab0390e846bde8507d0e\",\"3239\":\"5bab8505d1770af7fb74\",\"3278\":\"5c7fc5cf23f9812be330\",\"4529\":\"89b727eb1b25e2e804ac\",\"4612\":\"aebb24cec040bc57223b\",\"5085\":\"2d72e34edeb343344f2f\",\"5947\":\"790b0dacc188105af231\",\"7265\":\"7afd63ac40ec27acf4f0\",\"7471\":\"6423b9b898ffefeb7d1d\",\"8737\":\"ea8a994e6cc11d4777a2\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2689;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2689: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(18539)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","patch","put","delete","params","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","loadState","localStorage","getBuilder","persist","build","defaults","id","name","usercount","disabled","canAdd","canRemove","state","users","groups","getSubAdminGroups","systemGroups","orderBy","sortGroups","GroupSorting","UserCount","minPasswordLength","usersOffset","usersLimit","disabledUsersOffset","disabledUsersLimit","userCount","showConfig","showStoragePath","getItem","showUserBackend","showLastLogin","showNewUserForm","showLanguages","mutations","appendUsers","usersObj","existingUsers","map","newUsers","Object","values","filter","includes","concat","updateDisabledUsers","_usersObj","setPasswordPolicyMinLength","length","addGroup","newGroup","find","group","assign","unshift","e","console","error","renameGroup","gid","displayName","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","userid","user","enabled","push","removeUserGroup","indexOf","addUserSubAdmin","subadmin","removeUserSubAdmin","deleteUser","userIndex","this","commit","actionType","addUserData","response","ocs","enableDisableUser","updateUserCounts","recentGroup","disabledGroup","forEach","userGroup","warn","logger","setUserData","key","value","humanValue","parseFileSize","resetUsers","resetGroups","setShowConfig","setItem","JSON","stringify","setGroupSorting","sorting","oldValue","generateUrl","String","catch","showError","t","getters","getUsers","getGroups","subAdminGroups","getSortedGroups","sort","a","b","numA","numB","compare","getGroupSorting","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","CancelToken","searchRequestCancelSource","actions","searchUsers","context","offset","limit","search","api","generateOcsUrl","getUser","userId","cancel","source","trim","encodeURIComponent","cancelToken","token","then","usersCount","keys","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupid","groupId","getCapabilities","password_policy","minLength","wipeUserDevices","Promise","reject","Error","addUser","dispatch","password","email","quota","language","manager","userStatus","sendWelcomeMail","apps","bundles","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","APPS_API_FAILURE","message","isHTML","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","_id","app","clearError","enableApp","active","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","Vue","stopLoading","appIds","_appId","update_required","showInfo","onClick","window","location","reload","close","setTimeout","forceEnableApp","finally","getAllApps","getCategories","shouldRefetchCategories","categoriesPromiseResponse","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","serverData","setServerData","getServerData","setAppConfig","API_FAILURE","meta","store","useStore","Store","modules","settings","oc","strict","process","_defineComponent","__name","setup","__props","__sfc","NcContent","_vm","_c","_self","_setupProxy","attrs","_v","path","components","default","UserManagement","navigation","UserManagementNavigation","props","children","redirect","AppStore","AppStoreNavigation","sidebar","AppStoreSidebar","use","Router","mode","base","linkActiveClass","routes","__webpack_nonce__","getCSPNonce","prototype","n","PiniaVuePlugin","VTooltipPlugin","defaultHtml","Vuex","pinia","createPinia","sync","router","render","h","SettingsApp","el","getLoggerBuilder","setApp","detectUser","cloneRoute","to","from","clone","hash","query","fullPath","freeze","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","afterEach","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=87517107cbd01df1cbf1","mappings":"UAAIA,ECAAC,EACAC,E,mFCQJ,MAAMC,EAAW,SAASC,GACzB,OAAOA,EAAIC,QAAQ,MAAO,GAC3B,EAEA,GAiCCC,aAAYA,KACJC,EAAAA,EAAAA,MAERC,IAAGA,CAACJ,EAAKK,IACDC,EAAAA,GAAMF,IAAIL,EAASC,GAAMK,GAEjCE,KAAIA,CAACP,EAAKQ,IACFF,EAAAA,GAAMC,KAAKR,EAASC,GAAMQ,GAElCC,MAAKA,CAACT,EAAKQ,IACHF,EAAAA,GAAMG,MAAMV,EAASC,GAAMQ,GAEnCE,IAAGA,CAACV,EAAKQ,IACDF,EAAAA,GAAMI,IAAIX,EAASC,GAAMQ,GAEjCG,OAAMA,CAACX,EAAKQ,IACJF,EAAAA,GAAMK,OAAOZ,EAASC,GAAM,CAAEY,OAAQJ,I,kKCzDxC,MAAMK,EAAkBC,KAAKC,SAAS,EAACC,EAAAA,EAAAA,OAAeC,EAAAA,EAAAA,OAAuB,CAChFC,SAAS,EACTC,MAAO,S,yBCWX,MAAMC,GAAgBC,EAAAA,EAAAA,GAAU,WAAY,gBAAiB,CAAC,GAExDC,GAAeC,EAAAA,EAAAA,IAAW,YAAYC,SAAQ,GAAMC,QAEpDC,EAIE,CACNC,GAAI,GACJC,KAAM,GACNC,UAAW,EACXC,SAAU,EACVC,QAAQ,EACRC,WAAW,GAIPC,EAAQ,CACbC,MAAO,GACPC,OAAQ,IACHf,EAAcgB,mBAAqB,MACnChB,EAAciB,cAAgB,IAEnCC,QAASlB,EAAcmB,YAAcC,EAAAA,EAAaC,UAClDC,kBAAmB,EACnBC,YAAa,EACbC,WAAY,GACZC,oBAAqB,EACrBC,mBAAoB,GACpBC,UAAW3B,EAAc2B,WAAa,EACtCC,WAAY,CACXC,gBAA+E,SAA9D3B,EAAa4B,QAAQ,qCACtCC,gBAA+E,SAA9D7B,EAAa4B,QAAQ,qCACtCE,cAA2E,SAA5D9B,EAAa4B,QAAQ,mCACpCG,gBAA+E,SAA9D/B,EAAa4B,QAAQ,qCACtCI,cAA2E,SAA5DhC,EAAa4B,QAAQ,qCAIhCK,EAAY,CACjBC,WAAAA,CAAYvB,EAAOwB,GAClB,MAAMC,EAAgBzB,EAAMC,MAAMyB,KAAI,EAAGhC,QAASA,IAC5CiC,EAAWC,OAAOC,OAAOL,GAC7BM,QAAO,EAAGpC,SAAU+B,EAAcM,SAASrC,KAEvCO,EAAQD,EAAMC,MAAM+B,OAAOL,GACjC3B,EAAMU,aAAeV,EAAMW,WAC3BX,EAAMC,MAAQA,CACf,EACAgC,mBAAAA,CAAoBjC,EAAOkC,GAC1BlC,EAAMY,qBAAuBZ,EAAMa,kBACpC,EACAsB,0BAAAA,CAA2BnC,EAAOoC,GACjCpC,EAAMS,kBAA+B,KAAX2B,EAAgBA,EAAS,CACpD,EAKAC,QAAAA,CAASrC,EAAOsC,GACf,IACC,QAAsE,IAA3DtC,EAAME,OAAOqC,MAAMC,GAAUA,EAAM9C,KAAO4C,EAAS5C,KAC7D,OAGD,MAAM8C,EAAQZ,OAAOa,OAAO,CAAC,EAAGhD,EAAgB6C,GAChDtC,EAAME,OAAOwC,QAAQF,EACtB,CAAE,MAAOG,GACRC,QAAQC,MAAM,qBAAuBF,EACtC,CACD,EACAG,WAAAA,CAAY9C,GAAO,IAAE+C,EAAG,YAAEC,IACzB,MAAMC,EAAajD,EAAME,OAAOgD,WAAUC,GAAeA,EAAYzD,KAAOqD,IAC5E,GAAIE,GAAc,EAAG,CACpB,MAAMG,EAAepD,EAAME,OAAO+C,GAClCG,EAAazD,KAAOqD,EACpBhD,EAAME,OAAOmD,OAAOJ,EAAY,EAAGG,EACpC,CACD,EACAE,WAAAA,CAAYtD,EAAO+C,GAClB,MAAME,EAAajD,EAAME,OAAOgD,WAAUC,GAAeA,EAAYzD,KAAOqD,IACxEE,GAAc,GACjBjD,EAAME,OAAOmD,OAAOJ,EAAY,EAElC,EACAM,YAAAA,CAAavD,GAAO,OAAEwD,EAAM,IAAET,IAC7B,MAAMP,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOqD,IAC5DU,EAAOzD,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAE9ChB,GAASiB,EAAKC,SAAW1D,EAAMc,UAAY,GAC9C0B,EAAM5C,YAEQ6D,EAAKvD,OACbyD,KAAKZ,EACb,EACAa,eAAAA,CAAgB5D,GAAO,OAAEwD,EAAM,IAAET,IAChC,MAAMP,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOqD,IAC5DU,EAAOzD,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAE9ChB,GAASiB,EAAKC,SAAW1D,EAAMc,UAAY,GAC9C0B,EAAM5C,YAEP,MAAMM,EAASuD,EAAKvD,OACpBA,EAAOmD,OAAOnD,EAAO2D,QAAQd,GAAM,EACpC,EACAe,eAAAA,CAAgB9D,GAAO,OAAEwD,EAAM,IAAET,IACjB/C,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAAQO,SACrDJ,KAAKZ,EACb,EACAiB,kBAAAA,CAAmBhE,GAAO,OAAEwD,EAAM,IAAET,IACnC,MAAM7C,EAASF,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAAQO,SAC5D7D,EAAOmD,OAAOnD,EAAO2D,QAAQd,GAAM,EACpC,EACAkB,UAAAA,CAAWjE,EAAOwD,GACjB,MAAMU,EAAYlE,EAAMC,MAAMiD,WAAUO,GAAQA,EAAK/D,KAAO8D,IAC5DW,KAAKC,OAAO,mBAAoB,CAAEX,KAAMzD,EAAMC,MAAMiE,GAAYG,WAAY,WAC5ErE,EAAMC,MAAMoD,OAAOa,EAAW,EAC/B,EACAI,WAAAA,CAAYtE,EAAOuE,GAClB,MAAMd,EAAOc,EAAShG,KAAKiG,IAAIjG,KAC/ByB,EAAMC,MAAMyC,QAAQe,GACpBU,KAAKC,OAAO,mBAAoB,CAAEX,OAAMY,WAAY,UACrD,EACAI,iBAAAA,CAAkBzE,GAAO,OAAEwD,EAAM,QAAEE,IAClC,MAAMD,EAAOzD,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAClDC,EAAKC,QAAUA,EACfS,KAAKC,OAAO,mBAAoB,CAAEX,OAAMY,WAAYX,EAAU,SAAW,WAC1E,EAEAgB,gBAAAA,CAAiB1E,GAAO,KAAEyD,EAAI,WAAEY,IAE/B,GAAwB,IAApBrE,EAAMc,UACT,OAGD,MAAM6D,EAAc3E,EAAME,OAAOqC,MAAKC,GAAsB,yBAAbA,EAAM9C,KAC/CkF,EAAgB5E,EAAME,OAAOqC,MAAKC,GAAsB,aAAbA,EAAM9C,KACvD,OAAQ2E,GACR,IAAK,SACL,IAAK,UACJO,EAAchF,WAAa6D,EAAKC,SAAW,EAAI,EAC/CiB,EAAY/E,WAAa6D,EAAKC,QAAU,GAAK,EAC7C1D,EAAMc,WAAa2C,EAAKC,QAAU,GAAK,EACvCD,EAAKvD,OAAO2E,SAAQC,IACnB,MAAMtC,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOoF,IAC7DtC,IAGLA,EAAM3C,UAAY4D,EAAKC,SAAW,EAAI,EAAC,IAExC,MACD,IAAK,SACJiB,EAAY/E,YACZI,EAAMc,YAEN2C,EAAKvD,OAAO2E,SAAQC,IACnB,MAAMtC,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOoF,IAC7DtC,GAGLA,EAAM5C,WAAW,IAElB,MACD,IAAK,SACA6D,EAAKC,SACRiB,EAAY/E,YACZI,EAAMc,YACN2C,EAAKvD,OAAO2E,SAAQC,IACnB,MAAMtC,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOoF,IAC7DtC,EAILA,EAAM5C,YAHLgD,QAAQmC,KAAK,cAAgBD,EAAY,sCAGzB,MAGlBF,EAAchF,YACd6D,EAAKvD,OAAO2E,SAAQC,IACnB,MAAMtC,EAAQxC,EAAME,OAAOqC,MAAKY,GAAeA,EAAYzD,KAAOoF,IAC7DtC,GAGLA,EAAM3C,UAAU,KAGlB,MACD,QACCmF,EAAAA,EAAOnC,MAAM,6CAA6CwB,MAG5D,EACAY,WAAAA,CAAYjF,GAAO,OAAEwD,EAAM,IAAE0B,EAAG,MAAEC,IACjC,GAAY,UAARD,EAAiB,CACpB,MAAME,GAAaC,EAAAA,EAAAA,IAAcF,GAAO,GACxCnF,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAAQ0B,GAAKA,GAAsB,OAAfE,EAAsBA,EAAaD,CAC7F,MACCnF,EAAMC,MAAMsC,MAAKkB,GAAQA,EAAK/D,KAAO8D,IAAQ0B,GAAOC,CAEtD,EAOAG,UAAAA,CAAWtF,GACVA,EAAMC,MAAQ,GACdD,EAAMU,YAAc,EACpBV,EAAMY,oBAAsB,CAC7B,EAOA2E,WAAAA,CAAYvF,GACXA,EAAME,OAAS,IACVf,EAAcgB,mBAAqB,MACnChB,EAAciB,cAAgB,GAEpC,EAEAoF,aAAAA,CAAcxF,GAAO,IAAEkF,EAAG,MAAEC,IAC3B9F,EAAaoG,QAAQ,qBAAqBP,IAAOQ,KAAKC,UAAUR,IAChEnF,EAAMe,WAAWmE,GAAOC,CACzB,EAEAS,eAAAA,CAAgB5F,EAAO6F,GACtB,MAAMC,EAAW9F,EAAMK,QACvBL,EAAMK,QAAUwF,EAGhBxH,EAAAA,GAAMC,MACLyH,EAAAA,EAAAA,IAAY,4CACZ,CACCZ,MAAOa,OAAOH,KAEdI,OAAOpD,IACR7C,EAAMK,QAAUyF,GAChBI,EAAAA,EAAAA,IAAUC,EAAE,WAAY,gCACxBnB,EAAAA,EAAOnC,MAAMA,EAAM,GAErB,GAGKuD,EAAU,CACfC,SAASrG,GACDA,EAAMC,MAEdqG,UAAUtG,GACFA,EAAME,OAEdC,kBAAiBA,IACThB,EAAcoH,gBAAkB,GAGxCC,eAAAA,CAAgBxG,GACf,MAAME,EAAS,IAAIF,EAAME,QACzB,OAAIF,EAAMK,UAAYE,EAAAA,EAAaC,UAC3BN,EAAOuG,MAAK,CAACC,EAAGC,KACtB,MAAMC,EAAOF,EAAE9G,UAAY8G,EAAE7G,SACvBgH,EAAOF,EAAE/G,UAAY+G,EAAE9G,SAC7B,OAAQ+G,EAAOC,EAAQ,EAAKA,EAAOD,GAAQ,EAAIhI,EAAgBkI,QAAQJ,EAAE/G,KAAMgH,EAAEhH,KAAM,IAGjFO,EAAOuG,MAAK,CAACC,EAAGC,IAAM/H,EAAgBkI,QAAQJ,EAAE/G,KAAMgH,EAAEhH,OAEjE,EACAoH,gBAAgB/G,GACRA,EAAMK,QAEd2G,2BAA2BhH,GACnBA,EAAMS,kBAEdwG,eAAejH,GACPA,EAAMU,YAEdwG,cAAclH,GACNA,EAAMW,WAEdwG,uBAAuBnH,GACfA,EAAMY,oBAEdwG,sBAAsBpH,GACdA,EAAMa,mBAEdwG,aAAarH,GACLA,EAAMc,UAEdwG,cAActH,GACNA,EAAMe,YAITwG,EAAclJ,EAAAA,GAAMkJ,YAC1B,IAAIC,EAA4B,KAEhC,MAweA,GAAiBxH,QAAOsB,YAAW8E,UAASqB,QAxe5B,CAYfC,YAAWA,CAACC,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,MACrCA,EAA2B,iBAAXA,EAAsBA,EAAS,GAExCC,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,YAAW7B,OAAOpD,IAChIxE,EAAAA,GAAAA,SAAewE,IACnB8E,EAAQvD,OAAO,cAAevB,EAC/B,KAWFoF,QAAOA,CAACN,EAASO,IACTH,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,eAAeE,MAAWjC,OAAOpD,IACzDxE,EAAAA,GAAAA,SAAewE,IACnB8E,EAAQvD,OAAO,cAAevB,EAC/B,IAeFwD,SAAQA,CAACsB,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,EAAM,MAAEtF,MACtCgF,GACHA,EAA0BW,OAAO,iDAElCX,EAA4BD,EAAYa,SAQxCN,GAPAA,EAA2B,iBAAXA,EAAsBA,EAAS,IAO/B9J,QAAQ,aAAc,IAAIqK,OAG5B,MADd7F,EAAyB,iBAAVA,EAAqBA,EAAQ,IAEpCuF,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,mFAAoF,CAAExF,MAAO8F,mBAAmB9F,GAAQoF,SAAQC,QAAOC,WAAW,CAC/KS,YAAaf,EAA0BgB,QAEtCC,MAAMlE,IACN,MAAMmE,EAAa9G,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAAOmC,OAI7D,OAHIsG,EAAa,GAChBf,EAAQvD,OAAO,cAAeG,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAE/CyI,CAAU,IAEjBzC,OAAOpD,IACFxE,EAAAA,GAAAA,SAAewE,IACnB8E,EAAQvD,OAAO,cAAevB,EAC/B,IAIIkF,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,WAAW,CAC9HS,YAAaf,EAA0BgB,QAEtCC,MAAMlE,IACN,MAAMmE,EAAa9G,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAAOmC,OAI7D,OAHIsG,EAAa,GAChBf,EAAQvD,OAAO,cAAeG,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAE/CyI,CAAU,IAEjBzC,OAAOpD,IACFxE,EAAAA,GAAAA,SAAewE,IACnB8E,EAAQvD,OAAO,cAAevB,EAC/B,KAcH,oBAAM+F,CAAejB,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,IAC9C,MAAM/J,GAAMiK,EAAAA,EAAAA,IAAe,mEAAoE,CAAEJ,SAAQC,QAAOC,WAChH,IACC,MAAMvD,QAAiBwD,EAAAA,EAAI5J,IAAIJ,GACzB2K,EAAa9G,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAAOmC,OAI7D,OAHIsG,EAAa,GAChBf,EAAQvD,OAAO,cAAeG,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAE/CyI,CACR,CAAE,MAAO7F,GACR8E,EAAQvD,OAAO,cAAevB,EAC/B,CACD,EAYA,sBAAMgG,CAAiBlB,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,IAChD,MAAM/J,GAAMiK,EAAAA,EAAAA,IAAe,qEAAsE,CAAEJ,SAAQC,QAAOC,WAClH,IACC,MAAMvD,QAAiBwD,EAAAA,EAAI5J,IAAIJ,GACzB2K,EAAa9G,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAAOmC,OAK7D,OAJIsG,EAAa,IAChBf,EAAQvD,OAAO,cAAeG,EAAShG,KAAKiG,IAAIjG,KAAK0B,OACrD0H,EAAQvD,OAAO,sBAAuBG,EAAShG,KAAKiG,IAAIjG,KAAK0B,QAEvDyI,CACR,CAAE,MAAO7F,GACR8E,EAAQvD,OAAO,cAAevB,EAC/B,CACD,EAEAyD,SAAAA,CAAUqB,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,IACnCA,EAA2B,iBAAXA,EAAsBA,EAAS,GAC/C,MAAMgB,GAAwB,IAAXjB,EAAe,GAAK,UAAUA,IACjD,OAAOE,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,+CAAgD,CAAEJ,SAAQE,WAAYgB,GAClGL,MAAMlE,GACF3C,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK2B,QAAQkC,OAAS,IACvDmC,EAAShG,KAAKiG,IAAIjG,KAAK2B,OAAO2E,SAAQ,SAASrC,GAC9CmF,EAAQvD,OAAO,WAAY,CAAE1E,GAAI8C,EAAO7C,KAAM6C,GAC/C,KACO,KAIRyD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAevB,IAClD,EAYAkG,iBAAgBA,CAACpB,GAAS,OAAEC,EAAM,MAAEC,EAAK,OAAEC,MAC1CA,EAA2B,iBAAXA,EAAsBA,EAAS,GACxCC,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,oEAAqE,CAAEJ,SAAQC,QAAOC,YAClHW,MAAMlE,GACF3C,OAAO+G,KAAKpE,EAAShG,KAAKiG,IAAIjG,KAAK0B,OAAOmC,OAAS,IACtDuF,EAAQvD,OAAO,cAAeG,EAAShG,KAAKiG,IAAIjG,KAAK0B,QAC9C,KAIRgG,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAevB,MAalDmG,kBAAiBA,CAACrB,GAAS,QAAEsB,EAAO,OAAErB,EAAM,MAAEC,KACtCE,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,8DAA+D,CAAEkB,QAASZ,mBAAmBW,GAAUrB,SAAQC,WAC3IY,MAAMlE,GAAaoD,EAAQvD,OAAO,mBAAoBG,EAAShG,KAAKiG,IAAIjG,KAAK0B,SAC7EgG,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAevB,KAGlDmE,2BAA2BW,OACtBwB,EAAAA,EAAAA,KAAkBC,mBAAmBD,EAAAA,EAAAA,KAAkBC,gBAAgBC,aAC1E1B,EAAQvD,OAAO,8BAA8B+E,EAAAA,EAAAA,KAAkBC,gBAAgBC,YACxEF,EAAAA,EAAAA,KAAkBC,gBAAgBC,WAY3ChH,SAAQA,CAACsF,EAAS5E,IACVgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,gBAAiB,CAAEiB,QAASlG,IACzD0F,MAAMlE,IACNoD,EAAQvD,OAAO,WAAY,CAAE1E,GAAIqD,EAAKpD,KAAMoD,IACrC,CAAEA,MAAKC,YAAaD,MAE3BkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,IAIT,MAHA8E,EAAQvD,OAAO,cAAe,CAAErB,MAAKF,UAG/BA,CAAK,IAYbC,YAAWA,CAAC6E,GAAS,QAAEsB,EAAO,YAAEjG,KACxB+E,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAItJ,KAAIuJ,EAAAA,EAAAA,IAAe,yBAA0B,CAAEkB,QAASZ,mBAAmBW,KAAa,CAAE/D,IAAK,cAAeC,MAAOnC,IAC9HyF,MAAMlE,IACNoD,EAAQvD,OAAO,cAAe,CAAErB,IAAKkG,EAASjG,gBACvC,CAAEiG,UAASjG,kBAElBiD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,IAIT,MAHA8E,EAAQvD,OAAO,cAAe,CAAE6E,UAASpG,UAGnCA,CAAK,IAWbS,YAAWA,CAACqE,EAAS5E,IACbgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIrJ,QAAOsJ,EAAAA,EAAAA,IAAe,yBAA0B,CAAEkB,QAASZ,mBAAmBvF,MACvF0F,MAAMlE,GAAaoD,EAAQvD,OAAO,cAAerB,KACjDkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAErB,MAAKF,YAY1DU,aAAYA,CAACoE,GAAS,OAAEnE,EAAM,IAAET,KACxBgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,8BAA+B,CAAExE,WAAW,CAAEyF,QAASlG,IACpF0F,MAAMlE,GAAaoD,EAAQvD,OAAO,eAAgB,CAAEZ,SAAQT,UAC5DkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,YAY7De,gBAAeA,CAAC+D,GAAS,OAAEnE,EAAM,IAAET,KAC3BgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIrJ,QAAOsJ,EAAAA,EAAAA,IAAe,8BAA+B,CAAExE,WAAW,CAAEyF,QAASlG,IACtF0F,MAAMlE,GAAaoD,EAAQvD,OAAO,kBAAmB,CAAEZ,SAAQT,UAC/DkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,IAIT,MAHA8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,UAGlCA,CAAK,IAabiB,gBAAeA,CAAC6D,GAAS,OAAEnE,EAAM,IAAET,KAC3BgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,iCAAkC,CAAExE,WAAW,CAAEyF,QAASlG,IACvF0F,MAAMlE,GAAaoD,EAAQvD,OAAO,kBAAmB,CAAEZ,SAAQT,UAC/DkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,YAY7DmB,mBAAkBA,CAAC2D,GAAS,OAAEnE,EAAM,IAAET,KAC9BgF,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIrJ,QAAOsJ,EAAAA,EAAAA,IAAe,iCAAkC,CAAExE,WAAW,CAAEyF,QAASlG,IACzF0F,MAAMlE,GAAaoD,EAAQvD,OAAO,qBAAsB,CAAEZ,SAAQT,UAClEkD,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,YAU7D,qBAAMyG,CAAgB3B,EAASnE,GAC9B,IAEC,aADMuE,EAAAA,EAAI9J,qBACG8J,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,4BAA6B,CAAExE,WACrE,CAAE,MAAOX,GAER,OADA8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,UACjC0G,QAAQC,OAAO,IAAIC,MAAM,+BACjC,CACD,EASAxF,WAAUA,CAAC0D,EAASnE,IACZuE,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIrJ,QAAOsJ,EAAAA,EAAAA,IAAe,uBAAwB,CAAExE,YACzDiF,MAAMlE,GAAaoD,EAAQvD,OAAO,aAAcZ,KAChDyC,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,YAqB7D6G,QAAOA,EAAC,OAAEtF,EAAM,SAAEuF,IAAY,OAAEnG,EAAM,SAAEoG,EAAQ,YAAE5G,EAAW,MAAE6G,EAAK,OAAE3J,EAAM,SAAE6D,EAAQ,MAAE+F,EAAK,SAAEC,EAAQ,QAAEC,KACjGjC,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,eAAgB,CAAExE,SAAQoG,WAAU5G,cAAa6G,QAAO3J,SAAQ6D,WAAU+F,QAAOC,WAAUC,YACxHvB,MAAMlE,GAAaoF,EAAS,cAAenG,GAAUe,EAAShG,KAAKiG,IAAIjG,KAAKmB,MAC5EuG,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,IAET,MADAuB,EAAO,cAAe,CAAEZ,SAAQX,UAC1BA,CAAK,IAWbyB,YAAWA,CAACqD,EAASnE,IACbuE,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAI5J,KAAI6J,EAAAA,EAAAA,IAAe,uBAAwB,CAAExE,YACtDiF,MAAMlE,GAAaoD,EAAQvD,OAAO,cAAeG,KACjD0B,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,YAY7D4B,iBAAAA,CAAkBkD,GAAS,OAAEnE,EAAM,QAAEE,GAAU,IAC9C,MAAMuG,EAAavG,EAAU,SAAW,UACxC,OAAOqE,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAItJ,KAAIuJ,EAAAA,EAAAA,IAAe,oCAAqC,CAAExE,SAAQyG,gBAC3ExB,MAAMlE,GAAaoD,EAAQvD,OAAO,oBAAqB,CAAEZ,SAAQE,cACjEuC,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,WAC7D,EAYA,iBAAMoC,CAAY0C,GAAS,OAAEnE,EAAM,IAAE0B,EAAG,MAAEC,IAIzC,IAFkB,CAAC,QAAS,WAAY,QAAS,cAAe,WAAY,WAE7DpD,SAASmD,GACvB,MAAM,IAAIuE,MAAM,wBAIjB,GAAc,KAAVtE,IARiB,CAAC,QAAS,cAAe,WAQZpD,SAASmD,GAC1C,MAAM,IAAIuE,MAAM,wCAGjB,IAGC,aAFM1B,EAAAA,EAAI9J,qBACJ8J,EAAAA,EAAItJ,KAAIuJ,EAAAA,EAAAA,IAAe,uBAAwB,CAAExE,WAAW,CAAE0B,MAAKC,UAClEwC,EAAQvD,OAAO,cAAe,CAAEZ,SAAQ0B,MAAKC,SACrD,CAAE,MAAOtC,GAER,MADA8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,UAClCA,CACP,CACD,EASAqH,gBAAeA,CAACvC,EAASnE,IACjBuE,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,+BAAgC,CAAExE,YAC/DiF,MAAKlE,IAAY,IACjB0B,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEZ,SAAQX,c,eCrxB9D,MAAM7C,EAAQ,CACbmK,KAAM,GACNC,SAAShL,EAAAA,EAAAA,GAAU,WAAY,kBAAmB,IAClDiL,WAAY,GACZC,aAAalL,EAAAA,EAAAA,GAAU,WAAY,sBAAuB,GAC1DmL,QAAS,CAAC,EACVC,yBAA0B,KAC1BC,eAAerL,EAAAA,EAAAA,GAAU,WAAY,iBAAiB,IAGjDkC,EAAY,CAEjBoJ,gBAAAA,CAAiB1K,EAAO6C,IACvBqD,EAAAA,EAAAA,IAAUC,EAAE,WAAY,4DAA8D,OAAStD,EAAMA,MAAM0B,SAAShG,KAAKA,KAAKoM,QAAS,CAAEC,QAAQ,IACjJhI,QAAQC,MAAM7C,EAAO6C,EACtB,EAEAgI,cAAAA,CAAe7K,GAAO,WAAEqK,EAAU,YAAEC,IACnCtK,EAAMqK,WAAaA,EACnBrK,EAAMsK,YAAcA,CACrB,EAEAQ,gBAAAA,CAAiB9K,EAAO+K,GACvB/K,EAAMwK,yBAA2BO,CAClC,EAEAC,cAAAA,CAAehL,EAAOsK,GACrBtK,EAAMsK,YAAcA,CACrB,EAEAW,WAAAA,CAAYjL,EAAOkL,GAClBlL,EAAMqK,WAAW1G,KAAKuH,EACvB,EAEAC,gBAAAA,CAAiBnL,EAAOoL,GAEvBpL,EAAMqK,WAAae,CACpB,EAEAC,UAAAA,CAAWrL,EAAOmK,GACjBnK,EAAMmK,KAAOA,CACd,EAEAmB,QAAAA,CAAStL,GAAO,MAAEuL,EAAK,MAAE1I,IACnB2I,MAAMC,QAAQF,KAClBA,EAAQ,CAACA,IAEVA,EAAM1G,SAAS6G,IACF1L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAOgM,IAC1C7I,MAAQA,CAAK,GAEnB,EAEA+I,UAAAA,CAAW5L,GAAO,MAAEuL,EAAK,MAAE1I,IACd7C,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAC1C1I,MAAQ,IACb,EAEAgJ,SAAAA,CAAU7L,GAAO,MAAEuL,EAAK,OAAErL,IACzB,MAAMyL,EAAM3L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAC9CI,EAAIG,QAAS,EACbH,EAAIzL,OAASA,EACE,YAAXyL,EAAIjM,KACPM,EAAMyK,eAAgB,EAExB,EAEAsB,eAAAA,CAAgB/L,GAAO,MAAEuL,EAAK,WAAES,IAC/B,MAAML,EAAM3L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAC1CI,IACHA,EAAIK,YAA4B,IAAfA,EAEnB,EAEAC,UAAAA,CAAWjM,EAAOuL,GACjB,MAAMI,EAAM3L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAC9CI,EAAIG,QAAS,EACbH,EAAIzL,OAAS,GACTyL,EAAIO,YACPP,EAAIQ,cAAe,GAEL,YAAXR,EAAIjM,KACPM,EAAMyK,eAAgB,EAExB,EAEA2B,YAAAA,CAAapM,EAAOuL,GACnBvL,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOO,QAAS,EAClD9L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOrL,OAAS,GAClDF,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOc,eAAgB,EACzDrM,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOe,WAAY,EACrDtM,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOY,cAAe,EACxDnM,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IAAOS,YAAa,EACxC,YAAVT,IACHvL,EAAMyK,eAAgB,EAExB,EAEA8B,SAAAA,CAAUvM,EAAOuL,GAChB,MAAMI,EAAM3L,EAAMmK,KAAK5H,MAAKoJ,GAAOA,EAAIjM,KAAO6L,IACxCiB,EAAUb,EAAIc,OACpBd,EAAIc,OAAS,KACbd,EAAIa,QAAUA,EACdxM,EAAMsK,aAEP,EAEAoC,SAAAA,CAAU1M,GACTA,EAAMmK,KAAO,EACd,EACAwC,KAAAA,CAAM3M,GACLA,EAAMmK,KAAO,GACbnK,EAAMqK,WAAa,GACnBrK,EAAMsK,YAAc,CACrB,EACAsC,YAAAA,CAAa5M,EAAON,GACf8L,MAAMC,QAAQ/L,GACjBA,EAAGmF,SAAS6G,IACXmB,EAAAA,GAAAA,IAAQ7M,EAAMuK,QAASmB,GAAK,EAAK,IAGlCmB,EAAAA,GAAAA,IAAQ7M,EAAMuK,QAAS7K,GAAI,EAE7B,EACAoN,WAAAA,CAAY9M,EAAON,GACd8L,MAAMC,QAAQ/L,GACjBA,EAAGmF,SAAS6G,IACXmB,EAAAA,GAAAA,IAAQ7M,EAAMuK,QAASmB,GAAK,EAAM,IAGnCmB,EAAAA,GAAAA,IAAQ7M,EAAMuK,QAAS7K,GAAI,EAE7B,GA6BK+H,EAAU,CAEfoE,SAAAA,CAAUlE,GAAS,MAAE4D,EAAK,OAAErL,IAC3B,IAAIiK,EAMJ,OAJCA,EADGqB,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFxD,EAAAA,EAAI9J,eAAewK,MAAMlE,IAC/BoD,EAAQvD,OAAO,eAAgB+F,GAC/BxC,EAAQvD,OAAO,eAAgB,WACxB2D,EAAAA,EAAIzJ,MAAKyH,EAAAA,EAAAA,IAAY,wBAAyB,CAAEgH,OAAQ5C,EAAMjK,WACnEuI,MAAMlE,IACNoD,EAAQvD,OAAO,cAAe+F,GAC9BxC,EAAQvD,OAAO,cAAe,WAC9B+F,EAAKtF,SAAQmI,IACZrF,EAAQvD,OAAO,YAAa,CAAEmH,MAAOyB,EAAQ9M,UAAS,IAIhD7B,EAAAA,GAAMF,KAAI4H,EAAAA,EAAAA,IAAY,gBAC3B0C,MAAK,KACDlE,EAAShG,KAAK0O,mBACjBC,EAAAA,EAAAA,IACC/G,EACC,WACA,6GAED,CACCgH,QAASA,IAAMC,OAAOC,SAASC,SAC/BC,OAAO,IAITC,YAAW,WACVH,SAASC,QACV,GAAG,KACJ,IAEArH,OAAM,KACDuF,MAAMC,QAAQF,MAClBrF,EAAAA,EAAAA,IAAUC,EAAE,WAAY,2EACxBwB,EAAQvD,OAAO,WAAY,CAC1BmH,MAAOpB,EACPtH,MAAOsD,EAAE,WAAY,4EAEtBwB,EAAQgC,SAAS,aAAc,CAAE4B,UAClC,OAGFtF,OAAOpD,IACP8E,EAAQvD,OAAO,cAAe+F,GAC9BxC,EAAQvD,OAAO,cAAe,WAC9BuD,EAAQvD,OAAO,WAAY,CAC1BmH,MAAOpB,EACPtH,MAAOA,EAAM0B,SAAShG,KAAKA,KAAKoM,UAEjChD,EAAQvD,OAAO,mBAAoB,CAAEmH,QAAO1I,SAAQ,OAEpDoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEmH,QAAO1I,WAC5D,EACA4K,cAAAA,CAAe9F,GAAS,MAAE4D,EAAK,OAAErL,IAChC,IAAIiK,EAMJ,OAJCA,EADGqB,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFxD,EAAAA,EAAI9J,eAAewK,MAAK,KAC9Bd,EAAQvD,OAAO,eAAgB+F,GAC/BxC,EAAQvD,OAAO,eAAgB,WACxB2D,EAAAA,EAAIzJ,MAAKyH,EAAAA,EAAAA,IAAY,uBAAwB,CAAEwF,UACpD9C,MAAMlE,IACNoD,EAAQvD,OAAO,kBAAmB,CAAEmH,QAAOS,YAAY,GAAO,IAE9D/F,OAAOpD,IACP8E,EAAQvD,OAAO,cAAe+F,GAC9BxC,EAAQvD,OAAO,cAAe,WAC9BuD,EAAQvD,OAAO,WAAY,CAC1BmH,MAAOpB,EACPtH,MAAOA,EAAM0B,SAAShG,KAAKA,KAAKoM,UAEjChD,EAAQvD,OAAO,mBAAoB,CAAEmH,QAAO1I,SAAQ,IAEpD6K,SAAQ,KACR/F,EAAQvD,OAAO,cAAe+F,GAC9BxC,EAAQvD,OAAO,cAAe,UAAU,OAExC6B,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEmH,QAAO1I,WAC5D,EACAoJ,UAAAA,CAAWtE,GAAS,MAAE4D,IACrB,IAAIpB,EAMJ,OAJCA,EADGqB,MAAMC,QAAQF,GACVA,EAEA,CAACA,GAEFxD,EAAAA,EAAI9J,eAAewK,MAAMlE,IAC/BoD,EAAQvD,OAAO,eAAgB+F,GACxBpC,EAAAA,EAAIzJ,MAAKyH,EAAAA,EAAAA,IAAY,yBAA0B,CAAEgH,OAAQ5C,IAC9D1B,MAAMlE,IACNoD,EAAQvD,OAAO,cAAe+F,GAC9BA,EAAKtF,SAAQmI,IACZrF,EAAQvD,OAAO,aAAc4I,EAAO,KAE9B,KAEP/G,OAAOpD,IACP8E,EAAQvD,OAAO,cAAe+F,GAC9BxC,EAAQvD,OAAO,mBAAoB,CAAEmH,QAAO1I,SAAQ,OAEpDoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEmH,QAAO1I,WAC5D,EACAuJ,aAAYA,CAACzE,GAAS,MAAE4D,KAChBxD,EAAAA,EAAI9J,eAAewK,MAAMlE,IAC/BoD,EAAQvD,OAAO,eAAgBmH,GACxBxD,EAAAA,EAAI5J,KAAI4H,EAAAA,EAAAA,IAAY,2BAA2BwF,MACpD9C,MAAMlE,IACNoD,EAAQvD,OAAO,cAAemH,GAC9B5D,EAAQvD,OAAO,eAAgBmH,IACxB,KAEPtF,OAAOpD,IACP8E,EAAQvD,OAAO,cAAemH,GAC9B5D,EAAQvD,OAAO,mBAAoB,CAAEmH,QAAO1I,SAAQ,OAEpDoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEmH,QAAO1I,YAG5D0J,UAASA,CAAC5E,GAAS,MAAE4D,KACbxD,EAAAA,EAAI9J,eAAewK,MAAMlE,IAC/BoD,EAAQvD,OAAO,eAAgBmH,GAC/B5D,EAAQvD,OAAO,eAAgB,WACxB2D,EAAAA,EAAI5J,KAAI4H,EAAAA,EAAAA,IAAY,wBAAwBwF,MACjD9C,MAAMlE,IACNoD,EAAQvD,OAAO,cAAe,WAC9BuD,EAAQvD,OAAO,cAAemH,GAC9B5D,EAAQvD,OAAO,YAAamH,IACrB,KAEPtF,OAAOpD,IACP8E,EAAQvD,OAAO,cAAemH,GAC9B5D,EAAQvD,OAAO,cAAe,WAC9BuD,EAAQvD,OAAO,mBAAoB,CAAEmH,QAAO1I,SAAQ,OAEpDoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEmH,QAAO1I,YAG5D8K,WAAWhG,IACVA,EAAQvD,OAAO,eAAgB,QACxB2D,EAAAA,EAAI5J,KAAI4H,EAAAA,EAAAA,IAAY,uBACzB0C,MAAMlE,IACNoD,EAAQvD,OAAO,aAAcG,EAAShG,KAAK4L,MAC3CxC,EAAQvD,OAAO,cAAe,SACvB,KAEP6B,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAevB,MAGlD,mBAAM+K,CAAcjG,GAAS,wBAAEkG,GAA0B,GAAU,CAAC,GACnE,GAAIA,IAA4BlG,EAAQ3H,MAAMwK,yBAA0B,CACvE7C,EAAQvD,OAAO,eAAgB,cAC/B,IACC,MAAM2G,EAAoBhD,EAAAA,EAAI5J,KAAI4H,EAAAA,EAAAA,IAAY,6BAC9C4B,EAAQvD,OAAO,mBAAoB2G,GACnC,MAAM+C,QAAkC/C,EACxC,OAAI+C,EAA0BvP,KAAK6D,OAAS,GAC3CuF,EAAQvD,OAAO,mBAAoB0J,EAA0BvP,MAC7DoJ,EAAQvD,OAAO,cAAe,eACvB,IAERuD,EAAQvD,OAAO,cAAe,eACvB,EACR,CAAE,MAAOvB,GACR8E,EAAQvD,OAAO,cAAevB,EAC/B,CACD,CACA,OAAO8E,EAAQ3H,MAAMwK,wBACtB,GAID,GAAiBxK,MAAK,EAAEsB,UAAS,EAAE8E,QAjNnB,CACf2H,gBAAgB/N,GACRA,EAAMyK,cAEdF,QAAQvK,GACA,SAASN,GACf,OAAOM,EAAMuK,QAAQ7K,EACtB,EAEDkO,cAAc5N,GACNA,EAAMqK,WAEdsD,WAAW3N,GACHA,EAAMmK,KAEd6D,cAAchO,GACNA,EAAMoK,QAEd6D,eAAejO,GACPA,EAAMsK,YAEd4D,gBAAkBlO,GAAWmO,GACrBnO,EAAMqK,WAAW9H,MAAM2I,GAAaA,EAASxL,KAAOyO,KA2LjB1G,QAAOA,GC7V7CzH,EAAQ,CACboO,YAAYhP,EAAAA,EAAAA,GAAU,WAAY,gBAAiB,CAAC,IAE/CkC,EAAY,CACjB+M,aAAAA,CAAcrO,EAAOzB,GACpByB,EAAMoO,WAAa7P,CACpB,GASD,GAAiByB,MAAK,EAAEsB,UAAS,EAAE8E,QAPnB,CACfkI,cAActO,GACNA,EAAMoO,YAK6B3G,QAF5B,CAAC,GCUjB,GAAiBzH,MAtBH,CAAC,EAsBSsB,UArBN,CAAC,EAqBgB8E,QApBnB,CAAC,EAoB2BqB,QAnB5B,CAWf8G,aAAYA,CAAC5G,GAAS,IAAEgE,EAAG,IAAEzG,EAAG,MAAEC,KAC1B4C,EAAAA,EAAI9J,eAAewK,MAAMlE,GACxBwD,EAAAA,EAAIzJ,MAAK0J,EAAAA,EAAAA,IAAe,uDAAwD,CAAE2D,MAAKzG,QAAQ,CAAEC,UACtGc,OAAOpD,IAAY,MAAMA,CAAK,MAC9BoD,OAAOpD,GAAU8E,EAAQvD,OAAO,cAAe,CAAEuH,MAAKzG,MAAKC,QAAOtC,cCZjEvB,EAAY,CACjBkN,WAAAA,CAAYxO,EAAO6C,GAClB,IACC,MAAM8H,EAAU9H,EAAMA,MAAM0B,SAAShG,KAAKiG,IAAIiK,KAAK9D,SACnDzE,EAAAA,EAAAA,IAAUC,EAAE,WAAY,4DAA8D,OAASwE,EAAS,CAAEC,QAAQ,GACnH,CAAE,MAAOjI,IACRuD,EAAAA,EAAAA,IAAUC,EAAE,WAAY,4DACzB,CACAvD,QAAQC,MAAM7C,EAAO6C,EACtB,GAGD,IAAI6L,EAAQ,KAEL,MAAMC,EAAWA,KACT,OAAVD,IACHA,EAAQ,IAAIE,EAAAA,GAAM,CACjBC,QAAS,CACR5O,MAAK,EACLkK,KAAI,EACJ2E,SAAQ,EACRC,GAAEA,GAEHC,QAzBWC,EA0BX3N,UAASA,KAGJoN,E,+BClCD,IAAInO,E,iBACX,SAAWA,GACPA,EAAaA,EAAwB,UAAI,GAAK,YAC9CA,EAAaA,EAAwB,UAAI,GAAK,WACjD,CAHD,CAGGA,IAAiBA,EAAe,CAAC,G,qGCTpC,MCFsQ,GDEzO2O,EAAAA,EAAAA,IAAiB,CAC1CC,OAAQ,cACRC,MAAMC,IACK,CAAEC,OAAO,EAAMC,UAASA,EAAAA,MEavC,GAXgB,E,SAAA,GACd,GFRW,WAAkB,IAAIC,EAAIrL,KAAKsL,EAAGD,EAAIE,MAAMD,GAAgC,OAAOA,EAA7BD,EAAIE,MAAMC,YAA6BJ,UAAU,CAACK,MAAM,CAAC,WAAW,aAAa,CAACH,EAAG,cAAc,CAACG,MAAM,CAAC,KAAO,gBAAgBJ,EAAIK,GAAG,KAAKJ,EAAG,eAAeD,EAAIK,GAAG,KAAKJ,EAAG,cAAc,CAACG,MAAM,CAAC,KAAO,cAAc,EAC7R,GACsB,IESpB,EACA,KACA,KACA,M,kCCbF,MAmDA,EA5Ce,CACX,CACIjQ,KAAM,QACNmQ,KAAM,qCACNC,WAAY,CACRC,QAPWC,IAAM,mEAQjBC,WAPqBC,IAAM,oEAS/BC,OAAO,EACPC,SAAU,CACN,CACIP,KAAM,iBACNnQ,KAAM,WAIlB,CACImQ,KAAM,oCACNnQ,KAAM,OACN2Q,SAAU,CACN3Q,KAAM,gBACNhB,OAAQ,CACJuM,UA7BQ9L,E,SAAAA,GAAU,WAAY,mBAAmB,GA6BrB,WAAa,cAGjD2Q,WAAY,CACRC,QA/BKO,IAAM,mEAgCXL,WA/BeM,IAAM,mEAgCrBC,QA/BYC,IAAM,oEAiCtBL,SAAU,CACN,CACIP,KAAM,YACNnQ,KAAM,gBACN0Q,SAAU,CACN,CACIP,KAAM,MACNnQ,KAAM,qBCrC9BkN,EAAAA,GAAI8D,IAAIC,EAAAA,IACR,MAQA,EARe,IAAIA,EAAAA,GAAO,CACtBC,KAAM,UAGNC,MAAM/K,EAAAA,EAAAA,IAAY,IAClBgL,gBAAiB,SACjBC,OAAMA,I,qCCCVC,EAAAA,IAAoBC,EAAAA,EAAAA,MAEpBrE,EAAAA,GAAIsE,UAAUhL,EAAIA,EAAAA,EAClB0G,EAAAA,GAAIsE,UAAUC,EAAIA,EAAAA,EAElBvE,EAAAA,GAAI8D,IAAIU,EAAAA,IACRxE,EAAAA,GAAI8D,IAAIW,EAAAA,GAAgB,CAAEC,aAAa,IACvC1E,EAAAA,GAAI8D,IAAIa,EAAAA,IAER,MAAMC,GAAQC,EAAAA,EAAAA,MACRhD,GAAQC,EAAAA,EAAAA,MACdgD,EAAAA,EAAAA,GAAKjD,EAAOkD,GACZ,IAAmB/E,EAAAA,GAAI,CACnB+E,OAAM,EACNlD,MAAK,EACL+C,MAAK,EACLI,OAAQC,GAAKA,EAAEC,GACfC,GAAI,Y,gDC5BR,SAAeC,E,SAAAA,MACVC,OAAO,YACPC,aACA3S,O,gBCmDL,SAAS4S,EAAYC,EAAIC,GACvB,IAAIC,EAAQ,CACV5S,KAAM0S,EAAG1S,KACTmQ,KAAMuC,EAAGvC,KACT0C,KAAMH,EAAGG,KACTC,MAAOJ,EAAGI,MACV9T,OAAQ0T,EAAG1T,OACX+T,SAAUL,EAAGK,SACbjE,KAAM4D,EAAG5D,MAKX,OAHI6D,IACFC,EAAMD,KAAOF,EAAWE,IAEnB1Q,OAAO+Q,OAAOJ,EACvB,CAzEAK,EAAQ,EAAO,SAAUlE,EAAOkD,EAAQxT,GACtC,IAAIyU,GAAczU,GAAW,CAAC,GAAGyU,YAAc,QAE/CnE,EAAMoE,eAAeD,EAAY,CAC/BE,YAAY,EACZ/S,MAAOoS,EAAWR,EAAOoB,cACzB1R,UAAW,CACT,cAAiB,SAAwBtB,EAAOiT,GAC9CvE,EAAM1O,MAAM6S,GAAcT,EAAWa,EAAWZ,GAAIY,EAAWX,KACjE,KAIJ,IACIY,EADAC,GAAkB,EAIlBC,EAAe1E,EAAM2E,OACvB,SAAUrT,GAAS,OAAOA,EAAM6S,EAAa,IAC7C,SAAUS,GACR,IAAIZ,EAAWY,EAAMZ,SACjBA,IAAaQ,IAGE,MAAfA,IACFC,GAAkB,EAClBvB,EAAOjO,KAAK2P,IAEdJ,EAAcR,EAChB,GACA,CAAEf,MAAM,IAIN4B,EAAkB3B,EAAO4B,WAAU,SAAUnB,EAAIC,GAC/Ca,EACFA,GAAkB,GAGpBD,EAAcb,EAAGK,SACjBhE,EAAMtK,OAAOyO,EAAa,iBAAkB,CAAER,GAAIA,EAAIC,KAAMA,IAC9D,IAEA,OAAO,WAEkB,MAAnBiB,GACFA,IAIkB,MAAhBH,GACFA,IAIF1E,EAAM+E,iBAAiBZ,EACzB,CACF,C,GCxDIa,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAajB,QAGrB,IAAImB,EAASL,EAAyBE,GAAY,CACjDlU,GAAIkU,EACJI,QAAQ,EACRpB,QAAS,CAAC,GAUX,OANAqB,EAAoBL,GAAUM,KAAKH,EAAOnB,QAASmB,EAAQA,EAAOnB,QAASe,GAG3EI,EAAOC,QAAS,EAGTD,EAAOnB,OACf,CAGAe,EAAoBQ,EAAIF,ElB5BpBtW,EAAW,GACfgW,EAAoBS,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAIhX,EAASyE,OAAQuS,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAY7W,EAASgX,GACpCC,GAAY,EACPC,EAAI,EAAGA,EAAIP,EAASlS,OAAQyS,MACpB,EAAXL,GAAsBC,GAAgBD,IAAa5S,OAAO+G,KAAKgL,EAAoBS,GAAGU,OAAO5P,GAASyO,EAAoBS,EAAElP,GAAKoP,EAASO,MAC9IP,EAASjR,OAAOwR,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbjX,EAAS0F,OAAOsR,IAAK,GACrB,IAAII,EAAIR,SACET,IAANiB,IAAiBV,EAASU,EAC/B,CACD,CACA,OAAOV,CAnBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAIhX,EAASyE,OAAQuS,EAAI,GAAKhX,EAASgX,EAAI,GAAG,GAAKH,EAAUG,IAAKhX,EAASgX,GAAKhX,EAASgX,EAAI,GACrGhX,EAASgX,GAAK,CAACL,EAAUC,EAAIC,EAqBjB,EmBzBdb,EAAoBvC,EAAK2C,IACxB,IAAIiB,EAASjB,GAAUA,EAAOkB,WAC7B,IAAOlB,EAAiB,QACxB,IAAM,EAEP,OADAJ,EAAoBuB,EAAEF,EAAQ,CAAEtO,EAAGsO,IAC5BA,CAAM,ECLdrB,EAAoBuB,EAAI,CAACtC,EAASuC,KACjC,IAAI,IAAIjQ,KAAOiQ,EACXxB,EAAoByB,EAAED,EAAYjQ,KAASyO,EAAoByB,EAAExC,EAAS1N,IAC5EtD,OAAOyT,eAAezC,EAAS1N,EAAK,CAAEoQ,YAAY,EAAMnX,IAAKgX,EAAWjQ,IAE1E,ECNDyO,EAAoB4B,EAAI,CAAC,EAGzB5B,EAAoBhR,EAAK6S,GACjBjM,QAAQkM,IAAI7T,OAAO+G,KAAKgL,EAAoB4B,GAAGG,QAAO,CAACC,EAAUzQ,KACvEyO,EAAoB4B,EAAErQ,GAAKsQ,EAASG,GAC7BA,IACL,KCNJhC,EAAoBiC,EAAKJ,KAEX,CAAC,KAAO,iBAAiB,KAAO,sBAAsBA,IAAYA,GAAW,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,ICHpa7B,EAAoBkC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAO3R,MAAQ,IAAI4R,SAAS,cAAb,EAChB,CAAE,MAAOpT,GACR,GAAsB,iBAAXyK,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoByB,EAAI,CAACY,EAAKC,IAAUrU,OAAOuP,UAAU+E,eAAehC,KAAK8B,EAAKC,GvBA9ErY,EAAa,CAAC,EACdC,EAAoB,aAExB8V,EAAoBwC,EAAI,CAACpY,EAAKqY,EAAMlR,EAAKsQ,KACxC,GAAG5X,EAAWG,GAAQH,EAAWG,GAAK4F,KAAKyS,OAA3C,CACA,IAAIC,EAAQC,EACZ,QAAWxC,IAAR5O,EAEF,IADA,IAAIqR,EAAUC,SAASC,qBAAqB,UACpC9B,EAAI,EAAGA,EAAI4B,EAAQnU,OAAQuS,IAAK,CACvC,IAAI+B,EAAIH,EAAQ5B,GAChB,GAAG+B,EAAEC,aAAa,QAAU5Y,GAAO2Y,EAAEC,aAAa,iBAAmB9Y,EAAoBqH,EAAK,CAAEmR,EAASK,EAAG,KAAO,CACpH,CAEGL,IACHC,GAAa,GACbD,EAASG,SAASI,cAAc,WAEzBC,QAAU,QACblD,EAAoBmD,IACvBT,EAAOU,aAAa,QAASpD,EAAoBmD,IAElDT,EAAOU,aAAa,eAAgBlZ,EAAoBqH,GAExDmR,EAAOW,IAAMjZ,GAEdH,EAAWG,GAAO,CAACqY,GACnB,IAAIa,EAAmB,CAACC,EAAMC,KAE7Bd,EAAOe,QAAUf,EAAOgB,OAAS,KACjCC,aAAaC,GACb,IAAIC,EAAU5Z,EAAWG,GAIzB,UAHOH,EAAWG,GAClBsY,EAAOoB,YAAcpB,EAAOoB,WAAWC,YAAYrB,GACnDmB,GAAWA,EAAQ3S,SAAS0P,GAAQA,EAAG4C,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBI,EAAU/J,WAAWyJ,EAAiBU,KAAK,UAAM7D,EAAW,CAAE8D,KAAM,UAAWC,OAAQxB,IAAW,MACtGA,EAAOe,QAAUH,EAAiBU,KAAK,KAAMtB,EAAOe,SACpDf,EAAOgB,OAASJ,EAAiBU,KAAK,KAAMtB,EAAOgB,QACnDf,GAAcE,SAASsB,KAAKC,YAAY1B,EAnCkB,CAmCX,EwBtChD1C,EAAoBoB,EAAKnC,IACH,oBAAXoF,QAA0BA,OAAOC,aAC1CrW,OAAOyT,eAAezC,EAASoF,OAAOC,YAAa,CAAE9S,MAAO,WAE7DvD,OAAOyT,eAAezC,EAAS,aAAc,CAAEzN,OAAO,GAAO,ECL9DwO,EAAoBuE,IAAOnE,IAC1BA,EAAOoE,MAAQ,GACVpE,EAAO1D,WAAU0D,EAAO1D,SAAW,IACjC0D,GCHRJ,EAAoBkB,EAAI,K,MCAxB,IAAIuD,EACAzE,EAAoBkC,EAAEwC,gBAAeD,EAAYzE,EAAoBkC,EAAExI,SAAW,IACtF,IAAImJ,EAAW7C,EAAoBkC,EAAEW,SACrC,IAAK4B,GAAa5B,IACbA,EAAS8B,eAAkE,WAAjD9B,EAAS8B,cAAcC,QAAQC,gBAC5DJ,EAAY5B,EAAS8B,cAActB,MAC/BoB,GAAW,CACf,IAAI7B,EAAUC,EAASC,qBAAqB,UAC5C,GAAGF,EAAQnU,OAEV,IADA,IAAIuS,EAAI4B,EAAQnU,OAAS,EAClBuS,GAAK,KAAOyD,IAAc,aAAaK,KAAKL,KAAaA,EAAY7B,EAAQ5B,KAAKqC,GAE3F,CAID,IAAKoB,EAAW,MAAM,IAAI3O,MAAM,yDAChC2O,EAAYA,EAAUpa,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1G2V,EAAoB+E,EAAIN,C,WClBxBzE,EAAoBhN,EAAyB,oBAAb6P,UAA4BA,SAASmC,SAAYC,KAAKvL,SAASwL,KAK/F,IAAIC,EAAkB,CACrB,KAAM,GAGPnF,EAAoB4B,EAAEV,EAAI,CAACW,EAASG,KAElC,IAAIoD,EAAqBpF,EAAoByB,EAAE0D,EAAiBtD,GAAWsD,EAAgBtD,QAAW1B,EACtG,GAA0B,IAAvBiF,EAGF,GAAGA,EACFpD,EAAShS,KAAKoV,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIzP,SAAQ,CAAC0P,EAASzP,IAAYuP,EAAqBD,EAAgBtD,GAAW,CAACyD,EAASzP,KAC1GmM,EAAShS,KAAKoV,EAAmB,GAAKC,GAGtC,IAAIjb,EAAM4V,EAAoB+E,EAAI/E,EAAoBiC,EAAEJ,GAEpD3S,EAAQ,IAAI4G,MAgBhBkK,EAAoBwC,EAAEpY,GAfFoZ,IACnB,GAAGxD,EAAoByB,EAAE0D,EAAiBtD,KAEf,KAD1BuD,EAAqBD,EAAgBtD,MACRsD,EAAgBtD,QAAW1B,GACrDiF,GAAoB,CACtB,IAAIG,EAAY/B,IAAyB,SAAfA,EAAMS,KAAkB,UAAYT,EAAMS,MAChEuB,EAAUhC,GAASA,EAAMU,QAAUV,EAAMU,OAAOb,IACpDnU,EAAM8H,QAAU,iBAAmB6K,EAAU,cAAgB0D,EAAY,KAAOC,EAAU,IAC1FtW,EAAMlD,KAAO,iBACbkD,EAAM+U,KAAOsB,EACbrW,EAAMuW,QAAUD,EAChBJ,EAAmB,GAAGlW,EACvB,CACD,GAEwC,SAAW2S,EAASA,EAE/D,CACD,EAWF7B,EAAoBS,EAAES,EAAKW,GAA0C,IAA7BsD,EAAgBtD,GAGxD,IAAI6D,EAAuB,CAACC,EAA4B/a,KACvD,IAGIqV,EAAU4B,GAHTlB,EAAUiF,EAAaC,GAAWjb,EAGhBoW,EAAI,EAC3B,GAAGL,EAASmF,MAAM/Z,GAAgC,IAAxBoZ,EAAgBpZ,KAAa,CACtD,IAAIkU,KAAY2F,EACZ5F,EAAoByB,EAAEmE,EAAa3F,KACrCD,EAAoBQ,EAAEP,GAAY2F,EAAY3F,IAGhD,GAAG4F,EAAS,IAAInF,EAASmF,EAAQ7F,EAClC,CAEA,IADG2F,GAA4BA,EAA2B/a,GACrDoW,EAAIL,EAASlS,OAAQuS,IACzBa,EAAUlB,EAASK,GAChBhB,EAAoByB,EAAE0D,EAAiBtD,IAAYsD,EAAgBtD,IACrEsD,EAAgBtD,GAAS,KAE1BsD,EAAgBtD,GAAW,EAE5B,OAAO7B,EAAoBS,EAAEC,EAAO,EAGjCqF,EAAqBd,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fc,EAAmB7U,QAAQwU,EAAqB1B,KAAK,KAAM,IAC3D+B,EAAmB/V,KAAO0V,EAAqB1B,KAAK,KAAM+B,EAAmB/V,KAAKgU,KAAK+B,G,KCrFvF/F,EAAoBmD,QAAKhD,ECGzB,IAAI6F,EAAsBhG,EAAoBS,OAAEN,EAAW,CAAC,OAAO,IAAOH,EAAoB,SAC9FgG,EAAsBhG,EAAoBS,EAAEuF,E","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/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","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/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/vuex-router-sync/index.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/global","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:\";\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'\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nconst sanitize = function(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * 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) {\n\t\treturn axios.post(sanitize(url), data)\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: 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 { getBuilder } from '@nextcloud/browser-storage'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { parseFileSize } from '@nextcloud/files'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport axios from '@nextcloud/axios'\n\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\nimport logger from '../logger.ts'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst localStorage = getBuilder('settings').persist(true).build()\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\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: localStorage.getItem('account_settings__showStoragePath') === 'true',\n\t\tshowUserBackend: localStorage.getItem('account_settings__showUserBackend') === 'true',\n\t\tshowLastLogin: localStorage.getItem('account_settings__showLastLogin') === 'true',\n\t\tshowNewUserForm: localStorage.getItem('account_settings__showNewUserForm') === 'true',\n\t\tshowLanguages: localStorage.getItem('account_settings__showLanguages') === 'true',\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, _usersObj) {\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 = Object.assign({}, defaults.group, newGroup)\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (e) {\n\t\t\tconsole.error('Can\\'t create group', e)\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\tcase 'enable':\n\t\tcase 'disable':\n\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tif (!group) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\trecentGroup.usercount++\n\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\tuser.groups.forEach(userGroup => {\n\t\t\t\tconst group = state.groups.find(groupSearch => groupSearch.id === userGroup)\n\t\t\t\tif (!group) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t})\n\t\t\tbreak\n\t\tcase 'remove':\n\t\t\tif (user.enabled) {\n\t\t\t\trecentGroup.usercount--\n\t\t\t\tstate.userCount-- // decrement 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\tconsole.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tdisabledGroup.usercount-- // decrement Disabled 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-- // decrement group disabled count\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\tdefault:\n\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 * 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\tsetShowConfig(state, { key, value }) {\n\t\tlocalStorage.setItem(`account_settings__${key}`, JSON.stringify(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\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\n\t\t/**\n\t\t * Adding filters in the search bar such as in:files, in:users, etc.\n\t\t * collides with this particular search, so we need to remove them\n\t\t * here and leave only the original search query\n\t\t */\n\t\tsearch = search.replace(/in:[^\\s]+/g, '').trim()\n\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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then((response) => {\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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then((response) => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then((response) => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * 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((response) => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context 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((response) => {\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((response) => {\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((response) => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then((response) => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context 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 * 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((response) => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(response => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, 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 api from './api.js'\nimport Vue from 'vue'\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\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\tconsole.error(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, error }) {\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\tapp.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\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\treturn api.requireAdmin().then((response) => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups })\n\t\t\t\t.then((response) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tapps.forEach(_appId => {\n\t\t\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t\t\t})\n\n\t\t\t\t\t// check for server health\n\t\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t\t'settings',\n\t\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\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\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\tsetTimeout(function() {\n\t\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\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\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\t\tappId: apps,\n\t\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\t})\n\t\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\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}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tforceEnableApp(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\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((response) => {\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((response) => {\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((response) => {\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((response) => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then((response) => {\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((response) => {\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((response) => {\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 { 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: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport api from './api.js'\nimport { generateOcsUrl } from '@nextcloud/router'\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((response) => {\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 { Store } from 'vuex'\nimport users from './users.js'\nimport apps from './apps.js'\nimport settings from './users-settings.js'\nimport oc from './oc.js'\nimport { showError } from '@nextcloud/dialogs'\n\nconst debug = process.env.NODE_ENV !== 'production'\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 (e) {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tconsole.error(state, error)\n\t},\n}\n\nlet store = null\n\nexport const 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: debug,\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","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-4.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-4.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=02c6e0e9\"\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 Vue from 'vue';\nimport Router from 'vue-router';\nimport { generateUrl } from '@nextcloud/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 Vue from 'vue';\nimport Vuex from 'vuex';\nimport VTooltipPlugin from 'v-tooltip';\nimport { sync } from 'vuex-router-sync';\nimport { t, n } from '@nextcloud/l10n';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { PiniaVuePlugin, createPinia } from 'pinia';\n// CSP config for webpack dynamic chunk loading\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\n// Setup Vue plugins\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\n// Setup stores\nconst pinia = createPinia();\nconst store = useStore();\nsync(store, router);\nexport default new Vue({\n router,\n store,\n pinia,\n render: h => h(SettingsApp),\n el: '#content',\n});\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","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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1521\":\"ab0390e846bde8507d0e\",\"3239\":\"90785444c12773d06bc7\",\"3278\":\"5c7fc5cf23f9812be330\",\"4529\":\"89b727eb1b25e2e804ac\",\"4612\":\"aebb24cec040bc57223b\",\"5085\":\"2d72e34edeb343344f2f\",\"5947\":\"790b0dacc188105af231\",\"7265\":\"7afd63ac40ec27acf4f0\",\"7471\":\"6423b9b898ffefeb7d1d\",\"8737\":\"ea8a994e6cc11d4777a2\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2689;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2689: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(18539)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","patch","put","delete","params","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","loadState","localStorage","getBuilder","persist","build","defaults","id","name","usercount","disabled","canAdd","canRemove","state","users","groups","getSubAdminGroups","systemGroups","orderBy","sortGroups","GroupSorting","UserCount","minPasswordLength","usersOffset","usersLimit","disabledUsersOffset","disabledUsersLimit","userCount","showConfig","showStoragePath","getItem","showUserBackend","showLastLogin","showNewUserForm","showLanguages","mutations","appendUsers","usersObj","existingUsers","map","newUsers","Object","values","filter","includes","concat","updateDisabledUsers","_usersObj","setPasswordPolicyMinLength","length","addGroup","newGroup","find","group","assign","unshift","e","console","error","renameGroup","gid","displayName","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","userid","user","enabled","push","removeUserGroup","indexOf","addUserSubAdmin","subadmin","removeUserSubAdmin","deleteUser","userIndex","this","commit","actionType","addUserData","response","ocs","enableDisableUser","updateUserCounts","recentGroup","disabledGroup","forEach","userGroup","warn","logger","setUserData","key","value","humanValue","parseFileSize","resetUsers","resetGroups","setShowConfig","setItem","JSON","stringify","setGroupSorting","sorting","oldValue","generateUrl","String","catch","showError","t","getters","getUsers","getGroups","subAdminGroups","getSortedGroups","sort","a","b","numA","numB","compare","getGroupSorting","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","CancelToken","searchRequestCancelSource","actions","searchUsers","context","offset","limit","search","api","generateOcsUrl","getUser","userId","cancel","source","trim","encodeURIComponent","cancelToken","token","then","usersCount","keys","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupid","groupId","getCapabilities","password_policy","minLength","wipeUserDevices","Promise","reject","Error","addUser","dispatch","password","email","quota","language","manager","userStatus","sendWelcomeMail","apps","bundles","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","APPS_API_FAILURE","message","isHTML","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","_id","app","clearError","enableApp","active","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","Vue","stopLoading","appIds","_appId","update_required","showInfo","onClick","window","location","reload","close","setTimeout","forceEnableApp","finally","getAllApps","getCategories","shouldRefetchCategories","categoriesPromiseResponse","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","serverData","setServerData","getServerData","setAppConfig","API_FAILURE","meta","store","useStore","Store","modules","settings","oc","strict","process","_defineComponent","__name","setup","__props","__sfc","NcContent","_vm","_c","_self","_setupProxy","attrs","_v","path","components","default","UserManagement","navigation","UserManagementNavigation","props","children","redirect","AppStore","AppStoreNavigation","sidebar","AppStoreSidebar","use","Router","mode","base","linkActiveClass","routes","__webpack_nonce__","getCSPNonce","prototype","n","PiniaVuePlugin","VTooltipPlugin","defaultHtml","Vuex","pinia","createPinia","sync","router","render","h","SettingsApp","el","getLoggerBuilder","setApp","detectUser","cloneRoute","to","from","clone","hash","query","fullPath","freeze","exports","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","watch","route","afterEachUnHook","afterEach","unregisterModule","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","scriptUrl","importScripts","currentScript","tagName","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file