{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=b4a5769d989b1928aa20","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/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/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/node_modules/@nextcloud/files/dist/index.mjs","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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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\tscript.timeout = 120;\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","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=288003b1\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport 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;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\nexport default new Vue({\n router,\n store,\n pinia,\n render: h => h(SettingsApp),\n el: '#content',\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\tshowFirstLogin: localStorage.getItem('account_settings__showFirstLogin') === '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","import { o as logger } from \"./chunks/dav-DY_3WIBa.mjs\";\nimport { q, F, s, N, t, P, c, l, m, n, a, g, p, b, r, d, h, f, k, j, e, i } from \"./chunks/dav-DY_3WIBa.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get destructive() {\n return this._action.destructive;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (action.destructive !== void 0 && typeof action.destructive !== \"boolean\") {\n throw new Error(\"Invalid destructive flag\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\nclass FileListAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get order() {\n return this._action.order;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"iconSvgInline\" in action && typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n }\n}\nconst registerFileListAction = (action) => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n if (window._nc_filelistactions.find((listAction) => listAction.id === action.id)) {\n logger.error(`FileListAction with id \"${action.id}\" is already registered`, { action });\n return;\n }\n window._nc_filelistactions.push(action);\n};\nconst getFileListActions = () => {\n if (typeof window._nc_filelistactions === \"undefined\") {\n window._nc_filelistactions = [];\n }\n return window._nc_filelistactions;\n};\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction getUniqueName(name, otherNames, options) {\n const opts = {\n suffix: (n2) => `(${n2})`,\n ignoreFileExtension: false,\n ...options\n };\n let newName = name;\n let i2 = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? \"\" : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i2++)}${ext}`;\n }\n return newName;\n}\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e2) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a2, b2) => {\n for (const [index, identifier] of identifiers2.entries()) {\n const value = collator.compare(stringify(identifier(a2)), stringify(identifier(b2)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(v.displayname || v.attributes?.displayname || v.basename || \"\"),\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\n */\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar sax$1 = {};\nvar hasRequiredSax;\nfunction requireSax() {\n if (hasRequiredSax) return sax$1;\n hasRequiredSax = 1;\n (function(exports) {\n (function(sax2) {\n sax2.parser = function(strict, opt) {\n return new SAXParser(strict, opt);\n };\n sax2.SAXParser = SAXParser;\n sax2.SAXStream = SAXStream;\n sax2.createStream = createStream;\n sax2.MAX_BUFFER_LENGTH = 64 * 1024;\n var buffers = [\n \"comment\",\n \"sgmlDecl\",\n \"textNode\",\n \"tagName\",\n \"doctype\",\n \"procInstName\",\n \"procInstBody\",\n \"entity\",\n \"attribName\",\n \"attribValue\",\n \"cdata\",\n \"script\"\n ];\n sax2.EVENTS = [\n \"text\",\n \"processinginstruction\",\n \"sgmldeclaration\",\n \"doctype\",\n \"comment\",\n \"opentagstart\",\n \"attribute\",\n \"opentag\",\n \"closetag\",\n \"opencdata\",\n \"cdata\",\n \"closecdata\",\n \"error\",\n \"end\",\n \"ready\",\n \"script\",\n \"opennamespace\",\n \"closenamespace\"\n ];\n function SAXParser(strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt);\n }\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = \"\";\n parser.bufferCheckPosition = sax2.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? \"toLowerCase\" : \"toUpperCase\";\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax2.XML_ENTITIES) : Object.create(sax2.ENTITIES);\n parser.attribList = [];\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n if (parser.opt.unquotedAttributeValues === void 0) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit2(parser, \"onready\");\n }\n if (!Object.create) {\n Object.create = function(o) {\n function F2() {\n }\n F2.prototype = o;\n var newf = new F2();\n return newf;\n };\n }\n if (!Object.keys) {\n Object.keys = function(o) {\n var a2 = [];\n for (var i2 in o) if (o.hasOwnProperty(i2)) a2.push(i2);\n return a2;\n };\n }\n function checkBufferLength(parser) {\n var maxAllowed = Math.max(sax2.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n var len = parser[buffers[i2]].length;\n if (len > maxAllowed) {\n switch (buffers[i2]) {\n case \"textNode\":\n closeText(parser);\n break;\n case \"cdata\":\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n break;\n case \"script\":\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n break;\n default:\n error(parser, \"Max buffer length exceeded: \" + buffers[i2]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n var m2 = sax2.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m2 + parser.position;\n }\n function clearBuffers(parser) {\n for (var i2 = 0, l2 = buffers.length; i2 < l2; i2++) {\n parser[buffers[i2]] = \"\";\n }\n }\n function flushBuffers(parser) {\n closeText(parser);\n if (parser.cdata !== \"\") {\n emitNode(parser, \"oncdata\", parser.cdata);\n parser.cdata = \"\";\n }\n if (parser.script !== \"\") {\n emitNode(parser, \"onscript\", parser.script);\n parser.script = \"\";\n }\n }\n SAXParser.prototype = {\n end: function() {\n end(this);\n },\n write,\n resume: function() {\n this.error = null;\n return this;\n },\n close: function() {\n return this.write(null);\n },\n flush: function() {\n flushBuffers(this);\n }\n };\n var Stream;\n try {\n Stream = require(\"stream\").Stream;\n } catch (ex) {\n Stream = function() {\n };\n }\n if (!Stream) Stream = function() {\n };\n var streamWraps = sax2.EVENTS.filter(function(ev) {\n return ev !== \"error\" && ev !== \"end\";\n });\n function createStream(strict, opt) {\n return new SAXStream(strict, opt);\n }\n function SAXStream(strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt);\n }\n Stream.apply(this);\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n var me = this;\n this._parser.onend = function() {\n me.emit(\"end\");\n };\n this._parser.onerror = function(er) {\n me.emit(\"error\", er);\n me._parser.error = null;\n };\n this._decoder = null;\n streamWraps.forEach(function(ev) {\n Object.defineProperty(me, \"on\" + ev, {\n get: function() {\n return me._parser[\"on\" + ev];\n },\n set: function(h2) {\n if (!h2) {\n me.removeAllListeners(ev);\n me._parser[\"on\" + ev] = h2;\n return h2;\n }\n me.on(ev, h2);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n SAXStream.prototype.write = function(data) {\n if (typeof Buffer === \"function\" && typeof Buffer.isBuffer === \"function\" && Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD(\"utf8\");\n }\n data = this._decoder.write(data);\n }\n this._parser.write(data.toString());\n this.emit(\"data\", data);\n return true;\n };\n SAXStream.prototype.end = function(chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true;\n };\n SAXStream.prototype.on = function(ev, handler) {\n var me = this;\n if (!me._parser[\"on\" + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser[\"on\" + ev] = function() {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n return Stream.prototype.on.call(me, ev, handler);\n };\n var CDATA = \"[CDATA[\";\n var DOCTYPE = \"DOCTYPE\";\n var XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\n var XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n function isWhitespace(c2) {\n return c2 === \" \" || c2 === \"\\n\" || c2 === \"\\r\" || c2 === \"\t\";\n }\n function isQuote(c2) {\n return c2 === '\"' || c2 === \"'\";\n }\n function isAttribEnd(c2) {\n return c2 === \">\" || isWhitespace(c2);\n }\n function isMatch(regex, c2) {\n return regex.test(c2);\n }\n function notMatch(regex, c2) {\n return !isMatch(regex, c2);\n }\n var S = 0;\n sax2.STATE = {\n BEGIN: S++,\n // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++,\n // leading whitespace\n TEXT: S++,\n // general stuff\n TEXT_ENTITY: S++,\n // & and such.\n OPEN_WAKA: S++,\n // <\n SGML_DECL: S++,\n // \n SCRIPT: S++,\n //