{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=dc725ecaff9f3b2e50e8","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-CQDyL7M_.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-CQDyL7M_.mjs\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport require$$1 from \"string_decoder\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { extname, basename } from \"path\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\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 hotkey() {\n return this._action.hotkey;\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 if (\"hotkey\" in action && action.hotkey !== void 0) {\n if (typeof action.hotkey !== \"object\") {\n throw new Error(\"Invalid hotkey configuration\");\n }\n if (typeof action.hotkey.key !== \"string\" || !action.hotkey.key) {\n throw new Error(\"Missing or invalid hotkey key\");\n }\n if (typeof action.hotkey.description !== \"string\" || !action.hotkey.description) {\n throw new Error(\"Missing or invalid hotkey description\");\n }\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};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar debug_1;\nvar hasRequiredDebug;\nfunction requireDebug() {\n if (hasRequiredDebug) return debug_1;\n hasRequiredDebug = 1;\n const debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n debug_1 = debug;\n return debug_1;\n}\nvar constants;\nvar hasRequiredConstants;\nfunction requireConstants() {\n if (hasRequiredConstants) return constants;\n hasRequiredConstants = 1;\n const SEMVER_SPEC_VERSION = \"2.0.0\";\n const MAX_LENGTH = 256;\n const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n const MAX_SAFE_COMPONENT_LENGTH = 16;\n const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n const RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n constants = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n return constants;\n}\nvar re = { exports: {} };\nvar hasRequiredRe;\nfunction requireRe() {\n if (hasRequiredRe) return re.exports;\n hasRequiredRe = 1;\n (function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = requireConstants();\n const debug = requireDebug();\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n })(re, re.exports);\n return re.exports;\n}\nvar parseOptions_1;\nvar hasRequiredParseOptions;\nfunction requireParseOptions() {\n if (hasRequiredParseOptions) return parseOptions_1;\n hasRequiredParseOptions = 1;\n const looseOption = Object.freeze({ loose: true });\n const emptyOpts = Object.freeze({});\n const parseOptions = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n };\n parseOptions_1 = parseOptions;\n return parseOptions_1;\n}\nvar identifiers;\nvar hasRequiredIdentifiers;\nfunction requireIdentifiers() {\n if (hasRequiredIdentifiers) return identifiers;\n hasRequiredIdentifiers = 1;\n const numeric = /^[0-9]+$/;\n const compareIdentifiers = (a2, b2) => {\n const anum = numeric.test(a2);\n const bnum = numeric.test(b2);\n if (anum && bnum) {\n a2 = +a2;\n b2 = +b2;\n }\n return a2 === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a2 < b2 ? -1 : 1;\n };\n const rcompareIdentifiers = (a2, b2) => compareIdentifiers(b2, a2);\n identifiers = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n return identifiers;\n}\nvar semver;\nvar hasRequiredSemver;\nfunction requireSemver() {\n if (hasRequiredSemver) return semver;\n hasRequiredSemver = 1;\n const debug = requireDebug();\n const { MAX_LENGTH, MAX_SAFE_INTEGER } = requireConstants();\n const { safeRe: re2, t: t2 } = requireRe();\n const parseOptions = requireParseOptions();\n const { compareIdentifiers } = requireIdentifiers();\n class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m2 = version.trim().match(options.loose ? re2[t2.LOOSE] : re2[t2.FULL]);\n if (!m2) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m2[1];\n this.minor = +m2[2];\n this.patch = +m2[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m2[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m2[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m2[5] ? m2[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i2 = 0;\n do {\n const a2 = this.prerelease[i2];\n const b2 = other.prerelease[i2];\n debug(\"prerelease compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i2 = 0;\n do {\n const a2 = this.build[i2];\n const b2 = other.build[i2];\n debug(\"build compare\", i2, a2, b2);\n if (a2 === void 0 && b2 === void 0) {\n return 0;\n } else if (b2 === void 0) {\n return 1;\n } else if (a2 === void 0) {\n return -1;\n } else if (a2 === b2) {\n continue;\n } else {\n return compareIdentifiers(a2, b2);\n }\n } while (++i2);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i2 = this.prerelease.length;\n while (--i2 >= 0) {\n if (typeof this.prerelease[i2] === \"number\") {\n this.prerelease[i2]++;\n i2 = -2;\n }\n }\n if (i2 === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n }\n semver = SemVer;\n return semver;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n const SemVer = requireSemver();\n const parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version;\n }\n try {\n return new SemVer(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n };\n parse_1 = parse;\n return parse_1;\n}\nvar valid_1;\nvar hasRequiredValid;\nfunction requireValid() {\n if (hasRequiredValid) return valid_1;\n hasRequiredValid = 1;\n const parse = requireParse();\n const valid2 = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n };\n valid_1 = valid2;\n return valid_1;\n}\nvar validExports = requireValid();\nconst valid = /* @__PURE__ */ getDefaultExportFromCjs(validExports);\nvar major_1;\nvar hasRequiredMajor;\nfunction requireMajor() {\n if (hasRequiredMajor) return major_1;\n hasRequiredMajor = 1;\n const SemVer = requireSemver();\n const major2 = (a2, loose) => new SemVer(a2, loose).major;\n major_1 = major2;\n return major_1;\n}\nvar majorExports = requireMajor();\nconst major = /* @__PURE__ */ getDefaultExportFromCjs(majorExports);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.2\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h2) => h2 !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h2) => {\n try {\n ;\n h2(event[0]);\n } catch (e2) {\n console.error(\"could not invoke event listener\", e2);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\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};\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};\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 //