diff options
Diffstat (limited to 'dist/settings-users-3239.js.map')
-rw-r--r-- | dist/settings-users-3239.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/settings-users-3239.js.map b/dist/settings-users-3239.js.map index 116555f72c0..d9170c96a7a 100644 --- a/dist/settings-users-3239.js.map +++ b/dist/settings-users-3239.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-users-3239.js?v=0828a85406800581fcfe","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?da91","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?2db5","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?3dcd","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=161509be&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?7ade","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?9f19","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b1db","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?e7ff","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack:///nextcloud/node_modules/is-svg/index.js","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/apps/settings/src/mixins/UserRowMixin.js","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?d087","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?750d","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?c771","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__note[data-v-9f7a355c]{font-weight:normal}fieldset[data-v-9f7a355c]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list__row[data-v-7faa9864]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-7faa9864]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-7faa9864]:not(.row__cell--actions){background-color:var(--color-background-hover)}.user-list__row .select--fill[data-v-7faa9864]{max-width:calc(var(--cell-width-large) - 2*var(--cell-padding))}.row__cell[data-v-7faa9864]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-7faa9864],.row__cell span[data-v-7faa9864],.row__cell label[data-v-7faa9864]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-7faa9864],.row__cell--displayname[data-v-7faa9864]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-7faa9864]{inset-inline-start:0}.row__cell--displayname[data-v-7faa9864]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-7faa9864]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-7faa9864]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-7faa9864]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-7faa9864]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-7faa9864]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--obfuscated[data-v-7faa9864]{min-width:400px;width:400px}.row__cell--fill[data-v-7faa9864]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-7faa9864]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-7faa9864]{color:var(--color-text-maxcontrast)}.row__cell[data-v-7faa9864]{border-bottom:1px solid var(--color-border)}.row__cell[data-v-7faa9864] .v-select.select{min-width:var(--cell-min-width)}.row__progress[data-v-7faa9864]{margin-top:4px}.row__progress--warn[data-v-7faa9864]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-7faa9864]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CAKF,+CACC,+DAAA,CCDD,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CDpFD,4BACC,2CAAA,CAGC,6CACC,+BAAA,CAKH,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Limit width of select in fill cell\\n\\t.select--fill {\\n\\t\\tmax-width: calc(var(--cell-width-large) - (2 * var(--cell-padding)));\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t:deep {\\n\\t\\t\\t.v-select.select {\\n\\t\\t\\t\\tmin-width: var(--cell-min-width);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[data-v-21942da5]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-21942da5],.user-list__footer[data-v-21942da5]{position:sticky;display:block}.user-list__header[data-v-21942da5]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-21942da5]{inset-inline-start:0}.user-list__body[data-v-21942da5]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header[data-v-5c0f8828]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-5c0f8828]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-5c0f8828],.header__cell span[data-v-5c0f8828],.header__cell label[data-v-5c0f8828]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-5c0f8828],.header__cell--displayname[data-v-5c0f8828]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-5c0f8828]{inset-inline-start:0}.header__cell--displayname[data-v-5c0f8828]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-5c0f8828]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-5c0f8828]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-5c0f8828]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-5c0f8828]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-5c0f8828]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--obfuscated[data-v-5c0f8828]{min-width:400px;width:400px}.header__cell--fill[data-v-5c0f8828]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-5c0f8828]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-5c0f8828]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\nconst formatGroup = (group) => ({\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n});\n/**\n * Search groups\n *\n * @param {object} options Options\n * @param {string} options.search Search query\n * @param {number} options.offset Offset\n * @param {number} options.limit Limit\n */\nexport const searchGroups = ({ search, offset, limit }) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n};\n/**\n * Load user groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n/**\n * Load user subadmin groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserSubAdminGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-edf83404] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-edf83404]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-edf83404]{height:100% !important}.account-management__settings-toggle[data-v-edf83404]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__form[data-v-70bbf4c9]{display:flex;flex-direction:column;align-items:center;padding:0 8px;gap:4px 0}.dialog__item[data-v-70bbf4c9]{width:100%}.dialog__item[data-v-70bbf4c9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.dialog__hint[data-v-70bbf4c9]{color:var(--color-text-maxcontrast);margin-top:8px;align-self:flex-start}.dialog__label[data-v-70bbf4c9]{display:block;padding:4px 0}.dialog__select[data-v-70bbf4c9]{width:100%}.dialog__managers[data-v-70bbf4c9]{margin-bottom:12px}.dialog__submit[data-v-70bbf4c9]{margin-top:4px;margin-bottom:8px}.dialog[data-v-70bbf4c9] .dialog__actions{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,aAAA,CACA,SAAA,CAGD,+BACC,UAAA,CAEA,wDACC,qCAAA,CAIF,+BACC,mCAAA,CACA,cAAA,CACA,qBAAA,CAGD,gCACC,aAAA,CACA,aAAA,CAGD,iCACC,UAAA,CAGD,mCACC,kBAAA,CAGD,iCACC,cAAA,CACA,iBAAA,CAIA,0CACC,WAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 0 8px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-top: 8px;\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: block;\\n\\t\\tpadding: 4px 0;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__managers {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tmargin-top: 4px;\\n\\t\\tmargin-bottom: 8px;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.dialog__actions {\\n\\t\\t\\tmargin: auto;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"type\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCog}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings','New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2218088905)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOff}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppSettingsDialog :open.sync=\"isModalOpen\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('settings', 'Account management settings')\">\n\t\t<NcAppSettingsSection id=\"visibility-settings\"\n\t\t\t:name=\"t('settings', 'Visibility')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLanguages\"\n\t\t\t\t:checked.sync=\"showLanguages\">\n\t\t\t\t{{ t('settings', 'Show language') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showUserBackend\"\n\t\t\t\t:checked.sync=\"showUserBackend\">\n\t\t\t\t{{ t('settings', 'Show account backend') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showStoragePath\"\n\t\t\t\t:checked.sync=\"showStoragePath\">\n\t\t\t\t{{ t('settings', 'Show storage path') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showFirstLogin\"\n\t\t\t\t:checked.sync=\"showFirstLogin\">\n\t\t\t\t{{ t('settings', 'Show first login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLastLogin\"\n\t\t\t\t:checked.sync=\"showLastLogin\">\n\t\t\t\t{{ t('settings', 'Show last login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"groups-sorting\"\n\t\t\t:name=\"t('settings', 'Sorting')\">\n\t\t\t<NcNoteCard v-if=\"isGroupSortingEnforced\" type=\"warning\">\n\t\t\t\t{{ t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.') }}\n\t\t\t</NcNoteCard>\n\t\t\t<fieldset>\n\t\t\t\t<legend>{{ t('settings', 'Group list sorting') }}</legend>\n\t\t\t\t<NcNoteCard class=\"dialog__note\"\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t:text=\"t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')\" />\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByMemberCount\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"member-count\">\n\t\t\t\t\t{{ t('settings', 'By member count') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByName\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"name\">\n\t\t\t\t\t{{ t('settings', 'By name') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t</fieldset>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"email-settings\"\n\t\t\t:name=\"t('settings', 'Send email')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"sendWelcomeMail\"\n\t\t\t\t:checked.sync=\"sendWelcomeMail\"\n\t\t\t\t:disabled=\"loadingSendMail\">\n\t\t\t\t{{ t('settings', 'Send welcome email to new accounts') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"default-settings\"\n\t\t\t:name=\"t('settings', 'Defaults')\">\n\t\t\t<NcSelect v-model=\"defaultQuota\"\n\t\t\t\t:clearable=\"false\"\n\t\t\t\t:create-option=\"validateQuota\"\n\t\t\t\t:filter-by=\"filterQuotas\"\n\t\t\t\t:input-label=\"t('settings', 'Default quota')\"\n\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\tplacement=\"top\"\n\t\t\t\t:placeholder=\"t('settings', 'Select default quota')\"\n\t\t\t\ttaggable\n\t\t\t\t@option:selected=\"setDefaultQuota\" />\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\n\nimport axios from '@nextcloud/axios'\nimport NcAppSettingsDialog from '@nextcloud/vue/components/NcAppSettingsDialog'\nimport NcAppSettingsSection from '@nextcloud/vue/components/NcAppSettingsSection'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\n\nimport { GroupSorting } from '../../constants/GroupManagement.ts'\nimport { unlimitedQuota } from '../../utils/userUtils.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'UserSettingsDialog',\n\n\tcomponents: {\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcNoteCard,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedQuota: false,\n\t\t\tloadingSendMail: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgroupSorting: {\n\t\t\tget() {\n\t\t\t\treturn this.$store.getters.getGroupSorting === GroupSorting.GroupName ? 'name' : 'member-count'\n\t\t\t},\n\t\t\tset(sorting) {\n\t\t\t\tthis.$store.commit('setGroupSorting', sorting === 'name' ? GroupSorting.GroupName : GroupSorting.UserCount)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Admin has configured `sort_groups_by_name` in the system config\n\t\t */\n\t\tisGroupSortingEnforced() {\n\t\t\treturn this.$store.getters.getServerData.forceSortGroupByName\n\t\t},\n\n\t\tisModalOpen: {\n\t\t\tget() {\n\t\t\t\treturn this.open\n\t\t\t},\n\t\t\tset(open) {\n\t\t\t\tthis.$emit('update:open', open)\n\t\t\t},\n\t\t},\n\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tshowLanguages: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLanguages\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLanguages', status)\n\t\t\t},\n\t\t},\n\n\t\tshowFirstLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showFirstLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showFirstLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowLastLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLastLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLastLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowUserBackend: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showUserBackend\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showUserBackend', status)\n\t\t\t},\n\t\t},\n\n\t\tshowStoragePath: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showStoragePath\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showStoragePath', status)\n\t\t\t},\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({ id: cur, label: cur }), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tdefaultQuota: {\n\t\t\tget() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota\n\t\t\t\t}\n\t\t\t\tif (this.settings.defaultQuota !== unlimitedQuota.id && OC.Util.computerFileSize(this.settings.defaultQuota) >= 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota }\n\t\t\t\t}\n\t\t\t\treturn unlimitedQuota // unlimited\n\t\t\t},\n\t\t\tset(quota) {\n\t\t\t\tthis.selectedQuota = quota\n\t\t\t},\n\t\t},\n\n\t\tsendWelcomeMail: {\n\t\t\tget() {\n\t\t\t\treturn this.settings.newUserSendEmail\n\t\t\t},\n\t\t\tasync set(value) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.loadingSendMail = true\n\t\t\t\t\tthis.$store.commit('setServerData', {\n\t\t\t\t\t\t...this.settings,\n\t\t\t\t\t\tnewUserSendEmail: value,\n\t\t\t\t\t})\n\t\t\t\t\tawait axios.post(generateUrl('/settings/users/preferences/newUser.sendEmail'), { value: value ? 'yes' : 'no' })\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Could not update newUser.sendEmail preference', { error })\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loadingSendMail = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if a quota matches the current search.\n\t\t * This is a custom filter function to allow to map \"1GB\" to the label \"1 GB\" (ignoring whitespaces).\n\t\t *\n\t\t * @param option The quota to check\n\t\t * @param label The label of the quota\n\t\t * @param search The search string\n\t\t */\n\t\tfilterQuotas(option, label, search) {\n\t\t\tconst searchValue = search.toLocaleLowerCase().replaceAll(/\\s/g, '')\n\t\t\treturn (label || '')\n\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t.replaceAll(/\\s/g, '')\n\t\t\t\t.indexOf(searchValue) > -1\n\t\t},\n\n\t\tsetShowConfig(key, status) {\n\t\t\tthis.$store.commit('setShowConfig', { key, value: status })\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {object} The validated quota object or unlimited quota if input is invalid\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\tif (typeof quota === 'object') {\n\t\t\t\tquota = quota?.id || quota.label\n\t\t\t}\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = parseFileSize(quota, true)\n\t\t\tif (validQuota === null) {\n\t\t\t\treturn unlimitedQuota\n\t\t\t}\n\t\t\t// unify format output\n\t\t\tquota = formatFileSize(validQuota)\n\t\t\treturn { id: quota, label: quota }\n\t\t},\n\n\t\t/**\n\t\t * Dispatch default quota set request\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t */\n\t\tsetDefaultQuota(quota = 'none') {\n\t\t\t// Make sure correct label is set for unlimited quota\n\t\t\tif (quota === 'none') {\n\t\t\t\tquota = unlimitedQuota\n\t\t\t}\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota,\n\t\t\t}).then(() => {\n\t\t\t\tif (typeof quota !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota }\n\t\t\t\t}\n\t\t\t\tthis.defaultQuota = quota\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=9f7a355c&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f7a355c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\",\"checked\":_vm.showLanguages},on:{\"update:checked\":function($event){_vm.showLanguages=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\",\"checked\":_vm.showUserBackend},on:{\"update:checked\":function($event){_vm.showUserBackend=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\",\"checked\":_vm.showStoragePath},on:{\"update:checked\":function($event){_vm.showStoragePath=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\",\"checked\":_vm.showFirstLogin},on:{\"update:checked\":function($event){_vm.showFirstLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\",\"checked\":_vm.showLastLogin},on:{\"update:checked\":function($event){_vm.showLastLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"checked\":_vm.sendWelcomeMail,\"disabled\":_vm.loadingSendMail},on:{\"update:checked\":function($event){_vm.sendWelcomeMail=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroup}})]},proxy:true}],null,false,3607647275)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.userGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Fragment>\n\t\t<NcModal v-if=\"showRemoveGroupModal\"\n\t\t\t@close=\"showRemoveGroupModal = false\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h2 class=\"modal__header\">\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t</h2>\n\t\t\t\t<NcNoteCard type=\"warning\"\n\t\t\t\t\tshow-alert>\n\t\t\t\t\t{{ t('settings', 'You are about to remove the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t</NcNoteCard>\n\t\t\t\t<div class=\"modal__button-row\">\n\t\t\t\t\t<NcButton type=\"secondary\"\n\t\t\t\t\t\t@click=\"showRemoveGroupModal = false\">\n\t\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t\t@click=\"removeGroup\">\n\t\t\t\t\t\t{{ t('settings', 'Confirm') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\n\t\t<NcAppNavigationItem :key=\"id\"\n\t\t\tref=\"listItem\"\n\t\t\t:exact=\"true\"\n\t\t\t:name=\"name\"\n\t\t\t:to=\"{ name: 'group', params: { selectedGroup: encodeURIComponent(id) } }\"\n\t\t\t:loading=\"loadingRenameGroup\"\n\t\t\t:menu-open=\"openGroupMenu\"\n\t\t\t@update:menuOpen=\"handleGroupMenuOpen\">\n\t\t\t<template #icon>\n\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #counter>\n\t\t\t\t<NcCounterBubble v-if=\"count\"\n\t\t\t\t\t:type=\"active ? 'highlighted' : undefined\">\n\t\t\t\t\t{{ count }}\n\t\t\t\t</NcCounterBubble>\n\t\t\t</template>\n\t\t\t<template #actions>\n\t\t\t\t<NcActionInput v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\tref=\"displayNameInput\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t:label=\" t('settings', 'Rename group')\"\n\t\t\t\t\t@submit=\"renameGroup(id)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionInput>\n\t\t\t\t<NcActionButton v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\t@click=\"showRemoveGroupModal = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('settings', 'Remove group') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcAppNavigationItem>\n\t</Fragment>\n</template>\n\n<script>\nimport { Fragment } from 'vue-frag'\n\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionInput from '@nextcloud/vue/components/NcActionInput'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCounterBubble from '@nextcloud/vue/components/NcCounterBubble'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\n\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\n\nimport { showError } from '@nextcloud/dialogs'\n\nexport default {\n\tname: 'GroupListItem',\n\tcomponents: {\n\t\tAccountGroup,\n\t\tDelete,\n\t\tFragment,\n\t\tNcActionButton,\n\t\tNcActionInput,\n\t\tNcAppNavigationItem,\n\t\tNcButton,\n\t\tNcCounterBubble,\n\t\tNcModal,\n\t\tNcNoteCard,\n\t\tPencil,\n\t},\n\tprops: {\n\t\t/**\n\t\t * If this group is currently selected\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Number of members within this group\n\t\t */\n\t\tcount: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Identifier of this group\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Name of this group\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloadingRenameGroup: false,\n\t\t\topenGroupMenu: false,\n\t\t\tshowRemoveGroupModal: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\t},\n\tmethods: {\n\t\thandleGroupMenuOpen() {\n\t\t\tthis.openGroupMenu = true\n\t\t},\n\t\tasync renameGroup(gid) {\n\t\t\t// check if group id is valid\n\t\t\tif (gid.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst displayName = this.$refs.displayNameInput.$el.querySelector('input[type=\"text\"]').value\n\n\t\t\t// check if group name is valid\n\t\t\tif (displayName.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.openGroupMenu = false\n\t\t\t\tthis.loadingRenameGroup = true\n\t\t\t\tawait this.$store.dispatch('renameGroup', {\n\t\t\t\t\tgroupid: gid.trim(),\n\t\t\t\t\tdisplayName: displayName.trim(),\n\t\t\t\t})\n\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t} catch {\n\t\t\t\tthis.openGroupMenu = true\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t}\n\t\t},\n\t\tasync removeGroup() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeGroup', this.id)\n\t\t\t\tthis.showRemoveGroupModal = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('settings', 'Failed to remove group \"{group}\"', { group: this.name }))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=161509be&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=161509be&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=161509be&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=161509be&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"161509be\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to remove the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Remove group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n const item = {\n id: group.id,\n title: group.name,\n usercount: group.usercount,\n count: Math.max(0, group.usercount - group.disabled),\n };\n return item;\n}\nexport const useFormatGroups = (groups) => {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter(group => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map(group => formatGroupMenu(group))\n // remove invalid\n .filter(group => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=2057c7ae\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=edf83404&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"edf83404\",\n null\n \n)\n\nexport default component.exports","import { N as NcActionButton } from \"./chunks/NcActionButton-Gpv56vuS.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-BteTNhIn.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-DSMKeccY.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-QO_UKY2v.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-yAm71xxU.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-CucWK-m-.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-BYqqHPj2.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-_x1Bvwg-.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-H8Gvbq5E.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-C0Fkd9G7.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-CDut0DWY.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport NcAppNavigationNew from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-DGjgp78o.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-DTW6CtnU.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-C0QuEMmn.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-Dl-kMSpe.mjs\";\nimport NcAppSettingsSection from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-C5fqF8Ll.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-Db8tkJt9.mjs\";\nimport { u } from \"./chunks/NcAvatar-Db8tkJt9.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-do2wxY-0.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-CuKf9Utm.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-DR2_1tNR.mjs\";\nimport NcButton from \"./Components/NcButton.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-Di9rSADK.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-N169E0Rf.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BzSsZRm3.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-BHl5YDYI.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-CDfRYl8B.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-DwWee7mc.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-Csgi1gF2.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-BR6BBvML.mjs\";\nimport { u as u2 } from \"./chunks/NcDateTime-BR6BBvML.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-D2lwwZL-.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-BB56HcBl.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-DyBFXXm7.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport NcHeaderButton from \"./Components/NcHeaderButton.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-Bc1ucNsv.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-Bz6q9mZw.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-RKuZn260.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-DTtUueUZ.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-BGoyHTZy.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-BG5v_qys.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-CTKHRVC4.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-m0hDmALa.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-DegJ2JjE.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-CmiW_ds0.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-G8WQDZ8G.mjs\";\nimport { r } from \"./chunks/index-G8WQDZ8G.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-CE1hvtcT.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-D6qJ5S5v.mjs\";\nimport { N, h, d, i, b, r as r2, c, a } from \"./chunks/index-56SXuvlv.mjs\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a as a2, g, b as b2, c as c2, d as d2, s } from \"./chunks/referencePickerModal-CMKHbYwz.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/sharing/public\";\nimport \"@nextcloud/auth\";\nimport { N as NcSelect } from \"./chunks/NcSelect-TmGBPLzc.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DRANdaIf.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-nv1147dk.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-li-HYR2n.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-BQO_sQJ8.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-t1FMnLKA.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-EC3SmiDX.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-dzvfki-M.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-BHERsE_g.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-C17Rji1h.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-cO5krePG.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-WEKmuaoU.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e, g as g2, s as s2 } from \"./chunks/emoji-BY_D0V5K.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { u as u3 } from \"./chunks/usernameToColor-DJfepfog.mjs\";\nimport { directive } from \"./Directives/Focus.mjs\";\nimport { directive as directive$1 } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a2 as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b2 as getProvider,\n c2 as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n d as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n b as registerCustomPickerElement,\n r2 as registerWidget,\n c as renderCustomPickerElement,\n a as renderWidget,\n r as richEditor,\n d2 as searchProvider,\n s2 as setCurrentSkinTone,\n s as sortProviders,\n spawnDialog,\n u2 as useFormatDateTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n u3 as usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-161509be]{margin:0}.modal__content[data-v-161509be]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-161509be]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-1e8fee5a] .icon-vue{width:64px;height:64px}.empty[data-v-1e8fee5a] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-253f9eec]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.footer[data-v-db2a7c4e]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-db2a7c4e]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-db2a7c4e],.footer__cell span[data-v-db2a7c4e],.footer__cell label[data-v-db2a7c4e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-db2a7c4e],.footer__cell--displayname[data-v-db2a7c4e]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-db2a7c4e]{inset-inline-start:0}.footer__cell--displayname[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-db2a7c4e]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-db2a7c4e]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-db2a7c4e]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-db2a7c4e]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--obfuscated[data-v-db2a7c4e]{min-width:400px;width:400px}.footer__cell--fill[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-db2a7c4e]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-db2a7c4e]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-db2a7c4e]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-db2a7c4e]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDpGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport const isObfuscated = (user) => {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=21942da5&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21942da5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"type\":\"primary\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('NcTextField',{ref:\"username\",staticClass:\"dialog__item\",attrs:{\"data-test\":\"username\",\"value\":_vm.newUser.id,\"disabled\":_vm.settings.newUserGenerateUserID,\"label\":_vm.usernameLabel,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":\"\"},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"id\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"dialog__item\",attrs:{\"data-test\":\"displayName\",\"value\":_vm.newUser.displayName,\"label\":_vm.t('settings', 'Display name'),\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"displayName\", $event)}}}),_vm._v(\" \"),(!_vm.settings.newUserRequireEmail)?_c('span',{staticClass:\"dialog__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",staticClass:\"dialog__item\",attrs:{\"data-test\":\"password\",\"value\":_vm.newUser.password,\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":\"password-email-hint\",\"label\":_vm.newUser.mailAddress === '' ? _vm.t('settings', 'Password (required)') : _vm.t('settings', 'Password'),\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.newUser.mailAddress === ''},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"password\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"dialog__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"value\":_vm.newUser.mailAddress,\"aria-describedby\":\"password-email-hint\",\"label\":_vm.newUser.password === '' || _vm.settings.newUserRequireEmail ? _vm.t('settings', 'Email (required)') : _vm.t('settings', 'Email'),\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.newUser.password === '' || _vm.settings.newUserRequireEmail},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"mailAddress\", $event)}}}),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"data-test\":\"groups\",\"input-label\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin ? _vm.t('settings', 'Member of the following groups (required)') : _vm.t('settings', 'Member of the following groups'),\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.loading.groups || _vm.loading.all,\"options\":_vm.availableGroups,\"value\":_vm.newUser.groups,\"label\":\"name\",\"close-on-select\":false,\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup,\"option:selected\":options => _vm.addGroup(options.at(-1))}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.loading.groups || _vm.loading.all,\"options\":_vm.subAdminsGroups,\"close-on-select\":false,\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.newUser.subAdminsGroups),callback:function ($$v) {_vm.$set(_vm.newUser, \"subAdminsGroups\", $$v)},expression:\"newUser.subAdminsGroups\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.newUser.quota),callback:function ($$v) {_vm.$set(_vm.newUser, \"quota\", $$v)},expression:\"newUser.quota\"}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.newUser.language),callback:function ($$v) {_vm.$set(_vm.newUser, \"language\", $$v)},expression:\"newUser.language\"}})],1):_vm._e(),_vm._v(\" \"),_c('div',{class:['dialog__item dialog__managers', { 'icon-loading-small': _vm.loading.manager }]},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.managerInputLabel,\"placeholder\":_vm.managerLabel,\"options\":_vm.possibleManagers,\"user-select\":true,\"label\":\"displayname\"},on:{\"search\":_vm.searchUserManager},model:{value:(_vm.newUser.manager),callback:function ($$v) {_vm.$set(_vm.newUser, \"manager\", $$v)},expression:\"newUser.manager\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcDialog class=\"dialog\"\n\t\tsize=\"small\"\n\t\t:name=\"t('settings', 'New account')\"\n\t\tout-transition\n\t\tv-on=\"$listeners\">\n\t\t<form id=\"new-user-form\"\n\t\t\tclass=\"dialog__form\"\n\t\t\tdata-test=\"form\"\n\t\t\t:disabled=\"loading.all\"\n\t\t\t@submit.prevent=\"createUser\">\n\t\t\t<NcTextField ref=\"username\"\n\t\t\t\tclass=\"dialog__item\"\n\t\t\t\tdata-test=\"username\"\n\t\t\t\t:value.sync=\"newUser.id\"\n\t\t\t\t:disabled=\"settings.newUserGenerateUserID\"\n\t\t\t\t:label=\"usernameLabel\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\tpattern=\"[a-zA-Z0-9 _\\.@\\-']+\"\n\t\t\t\trequired />\n\t\t\t<NcTextField class=\"dialog__item\"\n\t\t\t\tdata-test=\"displayName\"\n\t\t\t\t:value.sync=\"newUser.displayName\"\n\t\t\t\t:label=\"t('settings', 'Display name')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\" />\n\t\t\t<span v-if=\"!settings.newUserRequireEmail\"\n\t\t\t\tid=\"password-email-hint\"\n\t\t\t\tclass=\"dialog__hint\">\n\t\t\t\t{{ t('settings', 'Either password or email is required') }}\n\t\t\t</span>\n\t\t\t<NcPasswordField ref=\"password\"\n\t\t\t\tclass=\"dialog__item\"\n\t\t\t\tdata-test=\"password\"\n\t\t\t\t:value.sync=\"newUser.password\"\n\t\t\t\t:minlength=\"minPasswordLength\"\n\t\t\t\t:maxlength=\"469\"\n\t\t\t\taria-describedby=\"password-email-hint\"\n\t\t\t\t:label=\"newUser.mailAddress === '' ? t('settings', 'Password (required)') : t('settings', 'Password')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t:required=\"newUser.mailAddress === ''\" />\n\t\t\t<NcTextField class=\"dialog__item\"\n\t\t\t\tdata-test=\"email\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t:value.sync=\"newUser.mailAddress\"\n\t\t\t\taria-describedby=\"password-email-hint\"\n\t\t\t\t:label=\"newUser.password === '' || settings.newUserRequireEmail ? t('settings', 'Email (required)') : t('settings', 'Email')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t:required=\"newUser.password === '' || settings.newUserRequireEmail\" />\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect class=\"dialog__select\"\n\t\t\t\t\tdata-test=\"groups\"\n\t\t\t\t\t:input-label=\"!settings.isAdmin && !settings.isDelegatedAdmin ? t('settings', 'Member of the following groups (required)') : t('settings', 'Member of the following groups')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account groups')\"\n\t\t\t\t\t:disabled=\"loading.groups || loading.all\"\n\t\t\t\t\t:options=\"availableGroups\"\n\t\t\t\t\t:value=\"newUser.groups\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:taggable=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\t\t\t:required=\"!settings.isAdmin && !settings.isDelegatedAdmin\"\n\t\t\t\t\t:create-option=\"(value) => ({ id: value, name: value, isCreating: true })\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:created=\"createGroup\"\n\t\t\t\t\t@option:selected=\"options => addGroup(options.at(-1))\" />\n\t\t\t\t\t<!-- If user is not admin, they are a subadmin.\n\t\t\t\t\t\tSubadmins can't create users outside their groups\n\t\t\t\t\t\tTherefore, empty select is forbidden -->\n\t\t\t</div>\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.subAdminsGroups\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Admin of the following groups')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account as admin for …')\"\n\t\t\t\t\t:disabled=\"loading.groups || loading.all\"\n\t\t\t\t\t:options=\"subAdminsGroups\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t@search=\"searchGroups\" />\n\t\t\t</div>\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.quota\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Quota')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account quota')\"\n\t\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:taggable=\"true\"\n\t\t\t\t\t:create-option=\"validateQuota\" />\n\t\t\t</div>\n\t\t\t<div v-if=\"showConfig.showLanguages\"\n\t\t\t\tclass=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.language\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Language')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set default language')\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:selectable=\"option => !option.languages\"\n\t\t\t\t\t:filter-by=\"languageFilterBy\"\n\t\t\t\t\t:options=\"languages\"\n\t\t\t\t\tlabel=\"name\" />\n\t\t\t</div>\n\t\t\t<div :class=\"['dialog__item dialog__managers', { 'icon-loading-small': loading.manager }]\">\n\t\t\t\t<NcSelect v-model=\"newUser.manager\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"managerInputLabel\"\n\t\t\t\t\t:placeholder=\"managerLabel\"\n\t\t\t\t\t:options=\"possibleManagers\"\n\t\t\t\t\t:user-select=\"true\"\n\t\t\t\t\tlabel=\"displayname\"\n\t\t\t\t\t@search=\"searchUserManager\" />\n\t\t\t</div>\n\t\t</form>\n\n\t\t<template #actions>\n\t\t\t<NcButton class=\"dialog__submit\"\n\t\t\t\tdata-test=\"submit\"\n\t\t\t\tform=\"new-user-form\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\tnative-type=\"submit\">\n\t\t\t\t{{ t('settings', 'Add new account') }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcDialog>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\nimport NcPasswordField from '@nextcloud/vue/components/NcPasswordField'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\n\nimport { searchGroups } from '../../service/groups.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'NewUserDialog',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcDialog,\n\t\tNcPasswordField,\n\t\tNcSelect,\n\t\tNcTextField,\n\t},\n\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\tnewUser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavailableGroups: [],\n\t\t\tpossibleManagers: [],\n\t\t\t// TRANSLATORS This string describes a manager in the context of an organization\n\t\t\tmanagerInputLabel: t('settings', 'Manager'),\n\t\t\t// TRANSLATORS This string describes a manager in the context of an organization\n\t\t\tmanagerLabel: t('settings', 'Set line manager'),\n\t\t\t// Cancelable promise for search groups request\n\t\t\tpromise: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tusernameLabel() {\n\t\t\tif (this.settings.newUserGenerateUserID) {\n\t\t\t\treturn t('settings', 'Account name will be autogenerated')\n\t\t\t}\n\t\t\treturn t('settings', 'Account name (required)')\n\t\t},\n\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength\n\t\t},\n\n\t\tsubAdminsGroups() {\n\t\t\t// data provided php side\n\t\t\treturn this.availableGroups.filter(group => group.id !== 'admin' && group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tlanguages() {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tname: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonLanguages,\n\t\t\t\t},\n\t\t\t\t...this.settings.languages.commonLanguages,\n\t\t\t\t{\n\t\t\t\t\tname: t('settings', 'Other languages'),\n\t\t\t\t\tlanguages: this.settings.languages.otherLanguages,\n\t\t\t\t},\n\t\t\t\t...this.settings.languages.otherLanguages,\n\t\t\t]\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tawait this.searchUserManager()\n\t},\n\n\tmounted() {\n\t\t// admins also can assign the system groups\n\t\tif (this.isAdmin || this.isDelegatedAdmin) {\n\t\t\tthis.availableGroups = this.$store.getters.getSortedGroups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t} else {\n\t\t\tthis.availableGroups = [...this.$store.getters.getSubAdminGroups]\n\t\t}\n\n\t\tthis.$refs.username?.focus?.()\n\t},\n\n\tmethods: {\n\t\tasync createUser() {\n\t\t\tthis.loading.all = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUser', {\n\t\t\t\t\tuserid: this.newUser.id,\n\t\t\t\t\tpassword: this.newUser.password,\n\t\t\t\t\tdisplayName: this.newUser.displayName,\n\t\t\t\t\temail: this.newUser.mailAddress,\n\t\t\t\t\tgroups: this.newUser.groups.map(group => group.id),\n\t\t\t\t\tsubadmin: this.newUser.subAdminsGroups.map(group => group.id),\n\t\t\t\t\tquota: this.newUser.quota.id,\n\t\t\t\t\tlanguage: this.newUser.language.code,\n\t\t\t\t\tmanager: this.newUser.manager.id,\n\t\t\t\t})\n\n\t\t\t\tthis.$emit('reset')\n\t\t\t\tthis.$refs.username?.focus?.()\n\t\t\t\tthis.$emit('closing')\n\t\t\t} catch (error) {\n\t\t\t\tthis.loading.all = false\n\t\t\t\tif (error.response && error.response.data && error.response.data.ocs && error.response.data.ocs.meta) {\n\t\t\t\t\tconst statuscode = error.response.data.ocs.meta.statuscode\n\t\t\t\t\tif (statuscode === 102) {\n\t\t\t\t\t\t// wrong username\n\t\t\t\t\t\tthis.$refs.username?.focus?.()\n\t\t\t\t\t} else if (statuscode === 107) {\n\t\t\t\t\t\t// wrong password\n\t\t\t\t\t\tthis.$refs.password?.focus?.()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync searchGroups(query, toggleLoading) {\n\t\t\tif (!this.isAdmin && !this.isDelegatedAdmin) {\n\t\t\t\t// managers cannot search for groups\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.promise) {\n\t\t\t\tthis.promise.cancel()\n\t\t\t}\n\t\t\ttoggleLoading(true)\n\t\t\ttry {\n\t\t\t\tthis.promise = searchGroups({\n\t\t\t\t\tsearch: query,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 25,\n\t\t\t\t})\n\t\t\t\tconst groups = await this.promise\n\t\t\t\tthis.availableGroups = groups\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to search groups'), { error })\n\t\t\t}\n\t\t\tthis.promise = null\n\t\t\ttoggleLoading(false)\n\t\t},\n\n\t\t/**\n\t\t * Create a new group\n\t\t *\n\t\t * @param {any} group Group\n\t\t * @param {string} group.name Group id\n\t\t */\n\t\tasync createGroup({ name: gid }) {\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addGroup', gid)\n\t\t\t\tthis.availableGroups.push({ id: gid, name: gid })\n\t\t\t\tthis.newUser.groups.push({ id: gid, name: gid })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to create group'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addGroup(group) {\n\t\t\tif (group.isCreating) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (group.canAdd === false) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.newUser.groups.push(group)\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @return {object}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = OC.Util.computerFileSize(quota)\n\t\t\tif (validQuota !== null && validQuota >= 0) {\n\t\t\t\t// unify format output\n\t\t\t\tquota = formatFileSize(parseFileSize(quota))\n\t\t\t\tthis.newUser.quota = { id: quota, label: quota }\n\t\t\t\treturn this.newUser.quota\n\t\t\t}\n\t\t\t// Default is unlimited\n\t\t\tthis.newUser.quota = this.quotaOptions[0]\n\t\t\treturn this.quotaOptions[0]\n\t\t},\n\n\t\tlanguageFilterBy(option, label, search) {\n\t\t\t// Show group header of the language\n\t\t\tif (option.languages) {\n\t\t\t\treturn option.languages.some(\n\t\t\t\t\t({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase())\n\t\t},\n\n\t\tasync searchUserManager(query) {\n\t\t\tawait this.$store.dispatch(\n\t\t\t\t'searchUsers',\n\t\t\t\t{\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 10,\n\t\t\t\t\tsearch: query,\n\t\t\t\t},\n\t\t\t).then(response => {\n\t\t\t\tconst users = response?.data ? Object.values(response?.data.ocs.data.users) : []\n\t\t\t\tif (users.length > 0) {\n\t\t\t\t\tthis.possibleManagers = users\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.dialog {\n\t&__form {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 0 8px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-top: 8px;\n\t\talign-self: flex-start;\n\t}\n\n\t&__label {\n\t\tdisplay: block;\n\t\tpadding: 4px 0;\n\t}\n\n\t&__select {\n\t\twidth: 100%;\n\t}\n\n\t&__managers {\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__submit {\n\t\tmargin-top: 4px;\n\t\tmargin-bottom: 8px;\n\t}\n\n\t:deep {\n\t\t.dialog__actions {\n\t\t\tmargin: auto;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=70bbf4c9&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70bbf4c9\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=db2a7c4e&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db2a7c4e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",class:{ 'header__cell--obfuscated': _vm.hasObfuscated },attrs:{\"data-cy-user-list-header-password\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.passwordLabel))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=5c0f8828&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c0f8828\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(_vm.editing && _vm.user.backendCapabilities.setDisplayName)?[_c('NcTextField',{ref:\"displayNameField\",staticClass:\"user-row-text-field\",class:{ 'icon-loading-small': _vm.loading.displayName },attrs:{\"data-cy-user-list-input-displayname\":\"\",\"data-loading\":_vm.loading.displayName || undefined,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"show-trailing-button\":true,\"disabled\":_vm.loading.displayName || _vm.isLoadingField,\"label\":_vm.t('settings', 'Change display name'),\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedDisplayName,\"autocapitalize\":\"off\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},on:{\"update:value\":function($event){_vm.editedDisplayName=$event},\"trailing-button-click\":_vm.updateDisplayName}})]:(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",class:{ 'row__cell--obfuscated': _vm.hasObfuscated },attrs:{\"data-cy-user-list-cell-password\":\"\"}},[(_vm.editing && _vm.settings.canChangePassword && _vm.user.backendCapabilities.setPassword)?[_c('NcTextField',{staticClass:\"user-row-text-field\",class:{'icon-loading-small': _vm.loading.password},attrs:{\"data-cy-user-list-input-password\":\"\",\"data-loading\":_vm.loading.password || undefined,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"show-trailing-button\":true,\"disabled\":_vm.loading.password || _vm.isLoadingField,\"minlength\":_vm.minPasswordLength,\"maxlength\":\"469\",\"label\":_vm.t('settings', 'Set new password'),\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedPassword,\"autocapitalize\":\"off\",\"autocomplete\":\"new-password\",\"required\":\"\",\"spellcheck\":\"false\",\"type\":\"password\"},on:{\"update:value\":function($event){_vm.editedPassword=$event},\"trailing-button-click\":_vm.updatePassword}})]:(_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You do not have permissions to see the details of this account'))+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(_vm.editing)?[_c('NcTextField',{staticClass:\"user-row-text-field\",class:{'icon-loading-small': _vm.loading.mailAddress},attrs:{\"data-cy-user-list-input-email\":\"\",\"data-loading\":_vm.loading.mailAddress || undefined,\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"label\":_vm.t('settings', 'Set new email address'),\"disabled\":_vm.loading.mailAddress || _vm.isLoadingField,\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedMail,\"autocapitalize\":\"off\",\"autocomplete\":\"email\",\"spellcheck\":\"false\",\"type\":\"email\"},on:{\"update:value\":function($event){_vm.editedMail=$event},\"trailing-button-click\":_vm.updateEmail}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'groups' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add account to group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"data-cy-user-list-input-groups\":\"\",\"data-loading\":_vm.loading.groups || undefined,\"input-id\":'groups' + _vm.uniqueId,\"close-on-select\":false,\"disabled\":_vm.isLoadingField || _vm.loading.groupsDetails,\"loading\":_vm.loading.groups,\"multiple\":true,\"append-to-body\":false,\"options\":_vm.availableGroups,\"placeholder\":_vm.t('settings', 'Add account to group'),\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"value\":_vm.userGroups,\"label\":\"name\",\"no-wrap\":true,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup,\"option:selected\":options => _vm.addUserGroup(options.at(-1)),\"option:deselected\":_vm.removeUserGroup}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(_vm.editing && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'subadmins' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set account as admin for'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"data-cy-user-list-input-subadmins\":\"\",\"data-loading\":_vm.loading.subadmins || undefined,\"input-id\":'subadmins' + _vm.uniqueId,\"close-on-select\":false,\"disabled\":_vm.isLoadingField || _vm.loading.subAdminGroupsDetails,\"loading\":_vm.loading.subadmins,\"label\":\"name\",\"append-to-body\":false,\"multiple\":true,\"no-wrap\":true,\"options\":_vm.availableSubAdminGroups,\"placeholder\":_vm.t('settings', 'Set account as admin for'),\"value\":_vm.userSubAdminGroups},on:{\"search\":_vm.searchGroups,\"option:deselected\":_vm.removeUserSubAdmin,\"option:selected\":options => _vm.addUserSubAdmin(options.at(-1))}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()],2):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'quota' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Select account quota'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"close-on-select\":true,\"create-option\":_vm.validateQuota,\"data-cy-user-list-input-quota\":\"\",\"data-loading\":_vm.loading.quota || undefined,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loading.quota,\"append-to-body\":false,\"clearable\":false,\"input-id\":'quota' + _vm.uniqueId,\"options\":_vm.quotaOptions,\"placeholder\":_vm.t('settings', 'Select account quota'),\"taggable\":true},on:{\"option:selected\":_vm.setUserQuota},model:{value:(_vm.editedUserQuota),callback:function ($$v) {_vm.editedUserQuota=$$v},expression:\"editedUserQuota\"}})]:(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'language' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set the language'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"id\":'language' + _vm.uniqueId,\"data-cy-user-list-input-language\":\"\",\"data-loading\":_vm.loading.languages || undefined,\"allow-empty\":false,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loading.languages,\"clearable\":false,\"append-to-body\":false,\"options\":_vm.availableLanguages,\"placeholder\":_vm.t('settings', 'No language set'),\"value\":_vm.userLanguage,\"label\":\"name\"},on:{\"input\":_vm.setUserLanguage}})]:(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'manager' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.managerLabel)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"select--fill\",attrs:{\"data-cy-user-list-input-manager\":\"\",\"data-loading\":_vm.loading.manager || undefined,\"input-id\":'manager' + _vm.uniqueId,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loadingPossibleManagers || _vm.loading.manager,\"options\":_vm.possibleManagers,\"placeholder\":_vm.managerLabel,\"label\":\"displayname\",\"filterable\":false,\"internal-search\":false,\"clearable\":true},on:{\"open\":_vm.searchInitialUserManager,\"search\":_vm.searchUserManager,\"update:model-value\":_vm.updateUserManager},model:{value:(_vm.currentManager),callback:function ($$v) {_vm.currentManager=$$v},expression:\"currentManager\"}})]:(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"edit\":_vm.editing,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-toggle-edit\":`${_vm.edit}`,\"disabled\":_vm.disabled},on:{\"click\":_vm.toggleEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{key:_vm.editSvg,attrs:{\"svg\":_vm.editSvg,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.edit ? _vm.t('settings', 'Done') : _vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import {XMLParser, XMLValidator} from 'fast-xml-parser';\n\nexport default function isSvg(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\tstring = string.trim();\n\n\tif (string.length === 0) {\n\t\treturn false;\n\t}\n\n\t// Has to be `!==` as it can also return an object with error info.\n\tif (XMLValidator.validate(string) !== true) {\n\t\treturn false;\n\t}\n\n\tlet jsonObject;\n\tconst parser = new XMLParser();\n\n\ttry {\n\t\tjsonObject = parser.parse(string);\n\t} catch {\n\t\treturn false;\n\t}\n\n\tif (!jsonObject) {\n\t\treturn false;\n\t}\n\n\tif (!Object.keys(jsonObject).some(x => x.toLowerCase() === 'svg')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=61782548\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize } from '@nextcloud/files'\nimport { useFormatDateTime } from '@nextcloud/vue'\n\nexport default {\n\tprops: {\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tsettings: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tlanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tsetup(props) {\n\t\tconst { formattedFullTime } = useFormatDateTime(props.user.firstLoginTimestamp * 1000, {\n\t\t\trelativeTime: false,\n\t\t\tformat: {\n\t\t\t\ttimeStyle: 'short',\n\t\t\t\tdateStyle: 'short',\n\t\t\t},\n\t\t})\n\t\treturn {\n\t\t\tformattedFullTime,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavailableGroups: this.user.groups.map(id => ({ id, name: id })),\n\t\t\tavailableSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),\n\t\t\tuserGroups: this.user.groups.map(id => ({ id, name: id })),\n\t\t\tuserSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\t/* QUOTA MANAGEMENT */\n\t\tusedSpace() {\n\t\t\tconst quotaUsed = this.user.quota.used > 0 ? this.user.quota.used : 0\n\t\t\treturn t('settings', '{size} used', { size: formatFileSize(quotaUsed, true) })\n\t\t},\n\n\t\tusedQuota() {\n\t\t\tlet quota = this.user.quota.quota\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100))\n\t\t\t} else {\n\t\t\t\tconst usedInGB = this.user.quota.used / (10 * Math.pow(2, 30))\n\t\t\t\t// asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota\n\t\t\t\tquota = 95 * (1 - (1 / (usedInGB + 1)))\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota\n\t\t},\n\n\t\t// Mapping saved values to objects\n\t\tuserQuota() {\n\t\t\tif (this.user.quota.quota >= 0) {\n\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\tconst humanQuota = formatFileSize(this.user.quota.quota)\n\t\t\t\tconst userQuota = this.quotaOptions.find(quota => quota.id === humanQuota)\n\t\t\t\treturn userQuota || { id: humanQuota, label: humanQuota }\n\t\t\t} else if (this.user.quota.quota === 'default') {\n\t\t\t\t// default quota is replaced by the proper value on load\n\t\t\t\treturn this.quotaOptions[0]\n\t\t\t}\n\t\t\treturn this.quotaOptions[1] // unlimited\n\t\t},\n\n\t\t/* PASSWORD POLICY? */\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength\n\t\t},\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage() {\n\t\t\tconst availableLanguages = this.languages[0].languages.concat(this.languages[1].languages)\n\t\t\tconst userLang = availableLanguages.find(lang => lang.code === this.user.language)\n\t\t\tif (typeof userLang !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language,\n\t\t\t\t}\n\t\t\t} else if (this.user.language === '') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn userLang\n\t\t},\n\n\t\tuserFirstLogin() {\n\t\t\tif (this.user.firstLoginTimestamp > 0) {\n\t\t\t\treturn this.formattedFullTime\n\t\t\t}\n\t\t\tif (this.user.firstLoginTimestamp < 0) {\n\t\t\t\treturn t('settings', 'Unknown')\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\n\t\t/* LAST LOGIN */\n\t\tuserLastLoginTooltip() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.formatDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tuserLastLogin() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.relativeModifiedDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\t},\n}\n","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<tr class=\"user-list__row\"\n\t\t:data-cy-user-row=\"user.id\">\n\t\t<td class=\"row__cell row__cell--avatar\" data-cy-user-list-cell-avatar>\n\t\t\t<NcLoadingIcon v-if=\"isLoadingUser\"\n\t\t\t\t:name=\"t('settings', 'Loading account …')\"\n\t\t\t\t:size=\"32\" />\n\t\t\t<NcAvatar v-else-if=\"visible\"\n\t\t\t\tdisable-menu\n\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t:user=\"user.id\" />\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--displayname\" data-cy-user-list-cell-displayname>\n\t\t\t<template v-if=\"editing && user.backendCapabilities.setDisplayName\">\n\t\t\t\t<NcTextField ref=\"displayNameField\"\n\t\t\t\t\tclass=\"user-row-text-field\"\n\t\t\t\t\tdata-cy-user-list-input-displayname\n\t\t\t\t\t:data-loading=\"loading.displayName || undefined\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:class=\"{ 'icon-loading-small': loading.displayName }\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:disabled=\"loading.displayName || isLoadingField\"\n\t\t\t\t\t:label=\"t('settings', 'Change display name')\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedDisplayName\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\t@trailing-button-click=\"updateDisplayName\" />\n\t\t\t</template>\n\t\t\t<strong v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"user.displayname?.length > 20 ? user.displayname : null\">\n\t\t\t\t{{ user.displayname }}\n\t\t\t</strong>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--username\" data-cy-user-list-cell-username>\n\t\t\t<span class=\"row__subtitle\">{{ user.id }}</span>\n\t\t</td>\n\n\t\t<td data-cy-user-list-cell-password\n\t\t\tclass=\"row__cell\"\n\t\t\t:class=\"{ 'row__cell--obfuscated': hasObfuscated }\">\n\t\t\t<template v-if=\"editing && settings.canChangePassword && user.backendCapabilities.setPassword\">\n\t\t\t\t<NcTextField class=\"user-row-text-field\"\n\t\t\t\t\tdata-cy-user-list-input-password\n\t\t\t\t\t:data-loading=\"loading.password || undefined\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:class=\"{'icon-loading-small': loading.password}\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:disabled=\"loading.password || isLoadingField\"\n\t\t\t\t\t:minlength=\"minPasswordLength\"\n\t\t\t\t\tmaxlength=\"469\"\n\t\t\t\t\t:label=\"t('settings', 'Set new password')\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedPassword\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\trequired\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t@trailing-button-click=\"updatePassword\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"isObfuscated\">\n\t\t\t\t{{ t('settings', 'You do not have permissions to see the details of this account') }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell\" data-cy-user-list-cell-email>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<NcTextField class=\"user-row-text-field\"\n\t\t\t\t\t:class=\"{'icon-loading-small': loading.mailAddress}\"\n\t\t\t\t\tdata-cy-user-list-input-email\n\t\t\t\t\t:data-loading=\"loading.mailAddress || undefined\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:label=\"t('settings', 'Set new email address')\"\n\t\t\t\t\t:disabled=\"loading.mailAddress || isLoadingField\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedMail\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"email\"\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t@trailing-button-click=\"updateEmail\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"user.email?.length > 20 ? user.email : null\">\n\t\t\t\t{{ user.email }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--large row__cell--multiline\" data-cy-user-list-cell-groups>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'groups' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Add account to group') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect data-cy-user-list-input-groups\n\t\t\t\t\t:data-loading=\"loading.groups || undefined\"\n\t\t\t\t\t:input-id=\"'groups' + uniqueId\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField || loading.groupsDetails\"\n\t\t\t\t\t:loading=\"loading.groups\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:options=\"availableGroups\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Add account to group')\"\n\t\t\t\t\t:taggable=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\t\t\t:value=\"userGroups\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:no-wrap=\"true\"\n\t\t\t\t\t:create-option=\"(value) => ({ id: value, name: value, isCreating: true })\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:created=\"createGroup\"\n\t\t\t\t\t@option:selected=\"options => addUserGroup(options.at(-1))\"\n\t\t\t\t\t@option:deselected=\"removeUserGroup\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"userGroupsLabels?.length > 40 ? userGroupsLabels : null\">\n\t\t\t\t{{ userGroupsLabels }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td v-if=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\tdata-cy-user-list-cell-subadmins\n\t\t\tclass=\"row__cell row__cell--large row__cell--multiline\">\n\t\t\t<template v-if=\"editing && (settings.isAdmin || settings.isDelegatedAdmin)\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'subadmins' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Set account as admin for') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect data-cy-user-list-input-subadmins\n\t\t\t\t\t:data-loading=\"loading.subadmins || undefined\"\n\t\t\t\t\t:input-id=\"'subadmins' + uniqueId\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField || loading.subAdminGroupsDetails\"\n\t\t\t\t\t:loading=\"loading.subadmins\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:no-wrap=\"true\"\n\t\t\t\t\t:options=\"availableSubAdminGroups\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account as admin for')\"\n\t\t\t\t\t:value=\"userSubAdminGroups\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:deselected=\"removeUserSubAdmin\"\n\t\t\t\t\t@option:selected=\"options => addUserSubAdmin(options.at(-1))\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"userSubAdminGroupsLabels?.length > 40 ? userSubAdminGroupsLabels : null\">\n\t\t\t\t{{ userSubAdminGroupsLabels }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell\" data-cy-user-list-cell-quota>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'quota' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Select account quota') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect v-model=\"editedUserQuota\"\n\t\t\t\t\t:close-on-select=\"true\"\n\t\t\t\t\t:create-option=\"validateQuota\"\n\t\t\t\t\tdata-cy-user-list-input-quota\n\t\t\t\t\t:data-loading=\"loading.quota || undefined\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loading.quota\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:input-id=\"'quota' + uniqueId\"\n\t\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Select account quota')\"\n\t\t\t\t\t:taggable=\"true\"\n\t\t\t\t\t@option:selected=\"setUserQuota\" />\n\t\t\t</template>\n\t\t\t<template v-else-if=\"!isObfuscated\">\n\t\t\t\t<span :id=\"'quota-progress' + uniqueId\">{{ userQuota }} ({{ usedSpace }})</span>\n\t\t\t\t<NcProgressBar :aria-labelledby=\"'quota-progress' + uniqueId\"\n\t\t\t\t\tclass=\"row__progress\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'row__progress--warn': usedQuota > 80,\n\t\t\t\t\t}\"\n\t\t\t\t\t:value=\"usedQuota\" />\n\t\t\t</template>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showLanguages\"\n\t\t\tclass=\"row__cell row__cell--large\"\n\t\t\tdata-cy-user-list-cell-language>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'language' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Set the language') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect :id=\"'language' + uniqueId\"\n\t\t\t\t\tdata-cy-user-list-input-language\n\t\t\t\t\t:data-loading=\"loading.languages || undefined\"\n\t\t\t\t\t:allow-empty=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loading.languages\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:options=\"availableLanguages\"\n\t\t\t\t\t:placeholder=\"t('settings', 'No language set')\"\n\t\t\t\t\t:value=\"userLanguage\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t@input=\"setUserLanguage\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\">\n\t\t\t\t{{ userLanguage.name }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showUserBackend || showConfig.showStoragePath\"\n\t\t\tdata-cy-user-list-cell-storage-location\n\t\t\tclass=\"row__cell row__cell--large\">\n\t\t\t<template v-if=\"!isObfuscated\">\n\t\t\t\t<span v-if=\"showConfig.showUserBackend\">{{ user.backend }}</span>\n\t\t\t\t<span v-if=\"showConfig.showStoragePath\"\n\t\t\t\t\t:title=\"user.storageLocation\"\n\t\t\t\t\tclass=\"row__subtitle\">\n\t\t\t\t\t{{ user.storageLocation }}\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showFirstLogin\"\n\t\t\tclass=\"row__cell\"\n\t\t\tdata-cy-user-list-cell-first-login>\n\t\t\t<span v-if=\"!isObfuscated\">{{ userFirstLogin }}</span>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showLastLogin\"\n\t\t\t:title=\"userLastLoginTooltip\"\n\t\t\tclass=\"row__cell\"\n\t\t\tdata-cy-user-list-cell-last-login>\n\t\t\t<span v-if=\"!isObfuscated\">{{ userLastLogin }}</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--large row__cell--fill\" data-cy-user-list-cell-manager>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'manager' + uniqueId\">\n\t\t\t\t\t{{ managerLabel }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect v-model=\"currentManager\"\n\t\t\t\t\tclass=\"select--fill\"\n\t\t\t\t\tdata-cy-user-list-input-manager\n\t\t\t\t\t:data-loading=\"loading.manager || undefined\"\n\t\t\t\t\t:input-id=\"'manager' + uniqueId\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loadingPossibleManagers || loading.manager\"\n\t\t\t\t\t:options=\"possibleManagers\"\n\t\t\t\t\t:placeholder=\"managerLabel\"\n\t\t\t\t\tlabel=\"displayname\"\n\t\t\t\t\t:filterable=\"false\"\n\t\t\t\t\t:internal-search=\"false\"\n\t\t\t\t\t:clearable=\"true\"\n\t\t\t\t\t@open=\"searchInitialUserManager\"\n\t\t\t\t\t@search=\"searchUserManager\"\n\t\t\t\t\t@update:model-value=\"updateUserManager\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\">\n\t\t\t\t{{ user.manager }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--actions\" data-cy-user-list-cell-actions>\n\t\t\t<UserRowActions v-if=\"visible && !isObfuscated && canEdit && !loading.all\"\n\t\t\t\t:actions=\"userActions\"\n\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t:edit=\"editing\"\n\t\t\t\t:user=\"user\"\n\t\t\t\t@update:edit=\"toggleEdit\" />\n\t\t</td>\n\t</tr>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showSuccess, showError } from '@nextcloud/dialogs'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcProgressBar from '@nextcloud/vue/components/NcProgressBar'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\n\nimport UserRowActions from './UserRowActions.vue'\n\nimport UserRowMixin from '../../mixins/UserRowMixin.js'\nimport { isObfuscated, unlimitedQuota } from '../../utils/userUtils.ts'\nimport { searchGroups, loadUserGroups, loadUserSubAdminGroups } from '../../service/groups.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'UserRow',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcLoadingIcon,\n\t\tNcProgressBar,\n\t\tNcSelect,\n\t\tNcTextField,\n\t\tUserRowActions,\n\t},\n\n\tmixins: [\n\t\tUserRowMixin,\n\t],\n\n\tprops: {\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tvisible: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tusers: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\thasObfuscated: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tlanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tsettings: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedQuota: false,\n\t\t\trand: Math.random().toString(36).substring(2),\n\t\t\tloadingPossibleManagers: false,\n\t\t\tpossibleManagers: [],\n\t\t\tcurrentManager: '',\n\t\t\tediting: false,\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tdisplayName: false,\n\t\t\t\tpassword: false,\n\t\t\t\tmailAddress: false,\n\t\t\t\tgroups: false,\n\t\t\t\tgroupsDetails: false,\n\t\t\t\tsubAdminGroupsDetails: false,\n\t\t\t\tsubadmins: false,\n\t\t\t\tquota: false,\n\t\t\t\tdelete: false,\n\t\t\t\tdisable: false,\n\t\t\t\tlanguages: false,\n\t\t\t\twipe: false,\n\t\t\t\tmanager: false,\n\t\t\t},\n\t\t\teditedDisplayName: this.user.displayname,\n\t\t\teditedPassword: '',\n\t\t\teditedMail: this.user.email ?? '',\n\t\t\t// Cancelable promise for search groups request\n\t\t\tpromise: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmanagerLabel() {\n\t\t\t// TRANSLATORS This string describes a person's manager in the context of an organization\n\t\t\treturn t('settings', 'Set line manager')\n\t\t},\n\n\t\tisObfuscated() {\n\t\t\treturn isObfuscated(this.user)\n\t\t},\n\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tisLoadingUser() {\n\t\t\treturn this.loading.delete || this.loading.disable || this.loading.wipe\n\t\t},\n\n\t\tisLoadingField() {\n\t\t\treturn this.loading.delete || this.loading.disable || this.loading.all\n\t\t},\n\n\t\tuniqueId() {\n\t\t\treturn encodeURIComponent(this.user.id + this.rand)\n\t\t},\n\n\t\tuserGroupsLabels() {\n\t\t\treturn this.userGroups\n\t\t\t\t.map(group => group.name ?? group.id)\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\tuserSubAdminGroupsLabels() {\n\t\t\treturn this.userSubAdminGroups\n\t\t\t\t.map(group => group.name ?? group.id)\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\tusedSpace() {\n\t\t\tif (this.user.quota?.used) {\n\t\t\t\treturn t('settings', '{size} used', { size: formatFileSize(this.user.quota?.used) })\n\t\t\t}\n\t\t\treturn t('settings', '{size} used', { size: formatFileSize(0) })\n\t\t},\n\n\t\tcanEdit() {\n\t\t\treturn getCurrentUser().uid !== this.user.id || this.settings.isAdmin || this.settings.isDelegatedAdmin\n\t\t},\n\n\t\tuserQuota() {\n\t\t\tlet quota = this.user.quota?.quota\n\n\t\t\tif (quota === 'default') {\n\t\t\t\tquota = this.settings.defaultQuota\n\t\t\t\tif (quota !== 'none') {\n\t\t\t\t\t// convert to numeric value to match what the server would usually return\n\t\t\t\t\tquota = parseFileSize(quota, true)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// when the default quota is unlimited, the server returns -3 here, map it to \"none\"\n\t\t\tif (quota === 'none' || quota === -3) {\n\t\t\t\treturn t('settings', 'Unlimited')\n\t\t\t} else if (quota >= 0) {\n\t\t\t\treturn formatFileSize(quota)\n\t\t\t}\n\t\t\treturn formatFileSize(0)\n\t\t},\n\n\t\tuserActions() {\n\t\t\tconst actions = [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\ttext: t('settings', 'Delete account'),\n\t\t\t\t\taction: this.deleteUser,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\ttext: t('settings', 'Disconnect all devices and delete local data'),\n\t\t\t\t\taction: this.wipeUserDevices,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: this.user.enabled ? 'icon-close' : 'icon-add',\n\t\t\t\t\ttext: this.user.enabled ? t('settings', 'Disable account') : t('settings', 'Enable account'),\n\t\t\t\t\taction: this.enableDisableUser,\n\t\t\t\t},\n\t\t\t]\n\t\t\tif (this.user.email !== null && this.user.email !== '') {\n\t\t\t\tactions.push({\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ttext: t('settings', 'Resend welcome email'),\n\t\t\t\t\taction: this.sendWelcomeMail,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn actions.concat(this.externalActions)\n\t\t},\n\n\t\t// mapping saved values to objects\n\t\teditedUserQuota: {\n\t\t\tget() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota\n\t\t\t\t}\n\t\t\t\tif (this.settings.defaultQuota !== unlimitedQuota.id && parseFileSize(this.settings.defaultQuota, true) >= 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota }\n\t\t\t\t}\n\t\t\t\treturn unlimitedQuota // unlimited\n\t\t\t},\n\t\t\tset(quota) {\n\t\t\t\tthis.selectedQuota = quota\n\t\t\t},\n\t\t},\n\n\t\tavailableLanguages() {\n\t\t\treturn this.languages[0].languages.concat(this.languages[1].languages)\n\t\t},\n\t},\n\tasync beforeMount() {\n\t\tif (this.user.manager) {\n\t\t\tawait this.initManager(this.user.manager)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync wipeUserDevices() {\n\t\t\tconst userid = this.user.id\n\t\t\tawait confirmPassword()\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tt('settings', 'In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.', { userid }),\n\t\t\t\tt('settings', 'Remote wipe of devices'),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('settings', 'Wipe {userid}\\'s devices', { userid }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('settings', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tthis.loading.wipe = true\n\t\t\t\t\t\tthis.loading.all = true\n\t\t\t\t\t\tthis.$store.dispatch('wipeUserDevices', userid)\n\t\t\t\t\t\t\t.then(() => showSuccess(t('settings', 'Wiped {userid}\\'s devices', { userid })), { timeout: 2000 })\n\t\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t\tthis.loading.wipe = false\n\t\t\t\t\t\t\t\tthis.loading.all = false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\n\t\tfilterManagers(managers) {\n\t\t\treturn managers.filter((manager) => manager.id !== this.user.id)\n\t\t},\n\n\t\tasync initManager(userId) {\n\t\t\tawait this.$store.dispatch('getUser', userId).then(response => {\n\t\t\t\tthis.currentManager = response?.data.ocs.data\n\t\t\t})\n\t\t},\n\n\t\tasync searchInitialUserManager() {\n\t\t\tthis.loadingPossibleManagers = true\n\t\t\tawait this.searchUserManager()\n\t\t\tthis.loadingPossibleManagers = false\n\t\t},\n\n\t\tasync loadGroupsDetails() {\n\t\t\tthis.loading.groups = true\n\t\t\tthis.loading.groupsDetails = true\n\t\t\ttry {\n\t\t\t\tconst groups = await loadUserGroups({ userId: this.user.id })\n\t\t\t\tthis.availableGroups = this.availableGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to load groups with details'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t\tthis.loading.groupsDetails = false\n\t\t},\n\n\t\tasync loadSubAdminGroupsDetails() {\n\t\t\tthis.loading.subadmins = true\n\t\t\tthis.loading.subAdminGroupsDetails = true\n\t\t\ttry {\n\t\t\t\tconst groups = await loadUserSubAdminGroups({ userId: this.user.id })\n\t\t\t\tthis.availableSubAdminGroups = this.availableSubAdminGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to load sub admin groups with details'), { error })\n\t\t\t}\n\t\t\tthis.loading.subadmins = false\n\t\t\tthis.loading.subAdminGroupsDetails = false\n\t\t},\n\n\t\tasync searchGroups(query, toggleLoading) {\n\t\t\tif (query === '') {\n\t\t\t\treturn // Prevent unexpected search behaviour e.g. on option:created\n\t\t\t}\n\t\t\tif (this.promise) {\n\t\t\t\tthis.promise.cancel()\n\t\t\t}\n\t\t\ttoggleLoading(true)\n\t\t\ttry {\n\t\t\t\tthis.promise = await searchGroups({\n\t\t\t\t\tsearch: query,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 25,\n\t\t\t\t})\n\t\t\t\tconst groups = await this.promise\n\t\t\t\tthis.availableGroups = groups\n\t\t\t\tthis.availableSubAdminGroups = groups.filter(group => group.id !== 'admin')\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to search groups'), { error })\n\t\t\t}\n\t\t\tthis.promise = null\n\t\t\ttoggleLoading(false)\n\t\t},\n\n\t\tasync searchUserManager(query) {\n\t\t\tawait this.$store.dispatch('searchUsers', { offset: 0, limit: 10, search: query }).then(response => {\n\t\t\t\tconst users = response?.data ? this.filterManagers(Object.values(response?.data.ocs.data.users)) : []\n\t\t\t\tif (users.length > 0) {\n\t\t\t\t\tthis.possibleManagers = users\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tasync updateUserManager() {\n\t\t\tthis.loading.manager = true\n\n\t\t\t// Store the current manager before making changes\n\t\t\tconst previousManager = this.user.manager\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'manager',\n\t\t\t\t\tvalue: this.currentManager ? this.currentManager.id : '',\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\t// TRANSLATORS This string describes a line manager in the context of an organization\n\t\t\t\tshowError(t('settings', 'Failed to update line manager'))\n\t\t\t\tlogger.error('Failed to update manager:', { error })\n\n\t\t\t\t// Revert to the previous manager in the UI on error\n\t\t\t\tthis.currentManager = previousManager\n\t\t\t} finally {\n\t\t\t\tthis.loading.manager = false\n\t\t\t}\n\t\t},\n\n\t\tasync deleteUser() {\n\t\t\tconst userid = this.user.id\n\t\t\tawait confirmPassword()\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tt('settings', 'Fully delete {userid}\\'s account including all their personal files, app data, etc.', { userid }),\n\t\t\t\tt('settings', 'Account deletion'),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('settings', 'Delete {userid}\\'s account', { userid }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('settings', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tthis.loading.delete = true\n\t\t\t\t\t\tthis.loading.all = true\n\t\t\t\t\t\treturn this.$store.dispatch('deleteUser', userid)\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\t\t\t\tthis.loading.all = false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\n\t\tenableDisableUser() {\n\t\t\tthis.loading.delete = true\n\t\t\tthis.loading.all = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst enabled = !this.user.enabled\n\t\t\treturn this.$store.dispatch('enableDisableUser', {\n\t\t\t\tuserid,\n\t\t\t\tenabled,\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Set user displayName\n\t\t */\n\t\tasync updateDisplayName() {\n\t\t\tthis.loading.displayName = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'displayname',\n\t\t\t\t\tvalue: this.editedDisplayName,\n\t\t\t\t})\n\n\t\t\t\tif (this.editedDisplayName === this.user.displayname) {\n\t\t\t\t\tshowSuccess(t('settings', 'Display name was successfully changed'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loading.displayName = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set user password\n\t\t */\n\t\tasync updatePassword() {\n\t\t\tthis.loading.password = true\n\t\t\tif (this.editedPassword.length === 0) {\n\t\t\t\tshowError(t('settings', \"Password can't be empty\"))\n\t\t\t\tthis.loading.password = false\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\t\tkey: 'password',\n\t\t\t\t\t\tvalue: this.editedPassword,\n\t\t\t\t\t})\n\t\t\t\t\tthis.editedPassword = ''\n\t\t\t\t\tshowSuccess(t('settings', 'Password was successfully changed'))\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading.password = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set user mailAddress\n\t\t */\n\t\tasync updateEmail() {\n\t\t\tthis.loading.mailAddress = true\n\t\t\tif (this.editedMail === '') {\n\t\t\t\tshowError(t('settings', \"Email can't be empty\"))\n\t\t\t\tthis.loading.mailAddress = false\n\t\t\t\tthis.editedMail = this.user.email\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\t\tkey: 'email',\n\t\t\t\t\t\tvalue: this.editedMail,\n\t\t\t\t\t})\n\n\t\t\t\t\tif (this.editedMail === this.user.email) {\n\t\t\t\t\t\tshowSuccess(t('settings', 'Email was successfully changed'))\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading.mailAddress = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Create a new group and add user to it\n\t\t *\n\t\t * @param {string} gid Group id\n\t\t */\n\t\tasync createGroup({ name: gid }) {\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addGroup', gid)\n\t\t\t\tthis.availableGroups.push({ id: gid, name: gid })\n\t\t\t\tthis.availableSubAdminGroups.push({ id: gid, name: gid })\n\t\t\t\tconst userid = this.user.id\n\t\t\t\tawait this.$store.dispatch('addUserGroup', { userid, gid })\n\t\t\t\tthis.userGroups.push({ id: gid, name: gid })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to create group'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addUserGroup(group) {\n\t\t\tif (group.isCreating) {\n\t\t\t\t// This is NcSelect's internal value for a new inputted group name\n\t\t\t\t// Ignore\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\tif (group.canAdd === false) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUserGroup', { userid, gid })\n\t\t\t\tthis.userGroups.push(group)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync removeUserGroup(group) {\n\t\t\tif (group.canRemove === false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tthis.loading.groups = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeUserGroup', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userGroups = this.userGroups.filter(group => group.id !== gid)\n\t\t\t\tthis.loading.groups = false\n\t\t\t\t// remove user from current list if current list is the removed group\n\t\t\t\tif (this.$route.params.selectedGroup === gid) {\n\t\t\t\t\tthis.$store.commit('deleteUser', userid)\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tthis.loading.groups = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUserSubAdmin', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userSubAdminGroups.push(group)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\tthis.loading.subadmins = false\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync removeUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeUserSubAdmin', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userSubAdminGroups = this.userSubAdminGroups.filter(group => group.id !== gid)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading.subadmins = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Dispatch quota set request\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {string}\n\t\t */\n\t\tasync setUserQuota(quota = 'none') {\n\t\t\t// Make sure correct label is set for unlimited quota\n\t\t\tif (quota === 'none') {\n\t\t\t\tquota = unlimitedQuota\n\t\t\t}\n\t\t\tthis.loading.quota = true\n\n\t\t\t// ensure we only send the preset id\n\t\t\tquota = quota.id ? quota.id : quota\n\n\t\t\ttry {\n\t\t\t\t// If human readable format, convert to raw float format\n\t\t\t\t// Else just send the raw string\n\t\t\t\tconst value = (parseFileSize(quota, true) || quota).toString()\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'quota',\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading.quota = false\n\t\t\t}\n\t\t\treturn quota\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {object} The validated quota object or unlimited quota if input is invalid\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\tif (typeof quota === 'object') {\n\t\t\t\tquota = quota?.id || quota.label\n\t\t\t}\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = parseFileSize(quota, true)\n\t\t\tif (validQuota === null) {\n\t\t\t\treturn unlimitedQuota\n\t\t\t} else {\n\t\t\t\t// unify format output\n\t\t\t\tquota = formatFileSize(parseFileSize(quota, true))\n\t\t\t\treturn { id: quota, label: quota }\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Dispatch language set request\n\t\t *\n\t\t * @param {object} lang language object {code:'en', name:'English'}\n\t\t * @return {object}\n\t\t */\n\t\tasync setUserLanguage(lang) {\n\t\t\tthis.loading.languages = true\n\t\t\t// ensure we only send the preset id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'language',\n\t\t\t\t\tvalue: lang.code,\n\t\t\t\t})\n\t\t\t\tthis.loading.languages = false\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\treturn lang\n\t\t},\n\n\t\t/**\n\t\t * Dispatch new welcome mail request\n\t\t */\n\t\tsendWelcomeMail() {\n\t\t\tthis.loading.all = true\n\t\t\tthis.$store.dispatch('sendWelcomeMail', this.user.id)\n\t\t\t\t.then(() => showSuccess(t('settings', 'Welcome mail sent!'), { timeout: 2000 }))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t})\n\t\t},\n\n\t\tasync toggleEdit() {\n\t\t\tthis.editing = !this.editing\n\t\t\tif (this.editing) {\n\t\t\t\tawait this.$nextTick()\n\t\t\t\tthis.$refs.displayNameField?.$refs?.inputField?.$refs?.input?.focus()\n\t\t\t\tthis.loadGroupsDetails()\n\t\t\t\tthis.loadSubAdminGroupsDetails()\n\t\t\t}\n\t\t\tif (this.editedDisplayName !== this.user.displayname) {\n\t\t\t\tthis.editedDisplayName = this.user.displayname\n\t\t\t} else if (this.editedMail !== this.user.email) {\n\t\t\t\tthis.editedMail = this.user.email ?? ''\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use './shared/styles';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Limit width of select in fill cell\n\t.select--fill {\n\t\tmax-width: calc(var(--cell-width-large) - (2 * var(--cell-padding)));\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\n\t\t:deep {\n\t\t\t.v-select.select {\n\t\t\t\tmin-width: var(--cell-min-width);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=7faa9864&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7faa9864\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Fragment>\n\t\t<NewUserDialog v-if=\"showConfig.showNewUserForm\"\n\t\t\t:loading=\"loading\"\n\t\t\t:new-user=\"newUser\"\n\t\t\t:quota-options=\"quotaOptions\"\n\t\t\t@reset=\"resetForm\"\n\t\t\t@closing=\"closeDialog\" />\n\n\t\t<NcEmptyContent v-if=\"filteredUsers.length === 0\"\n\t\t\tclass=\"empty\"\n\t\t\t:name=\"isInitialLoad && loading.users ? null : t('settings', 'No accounts')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"isInitialLoad && loading.users\"\n\t\t\t\t\t:name=\"t('settings', 'Loading accounts …')\"\n\t\t\t\t\t:size=\"64\" />\n\t\t\t\t<NcIconSvgWrapper v-else :path=\"mdiAccountGroup\" :size=\"64\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\n\t\t<VirtualList v-else\n\t\t\t:data-component=\"UserRow\"\n\t\t\t:data-sources=\"filteredUsers\"\n\t\t\tdata-key=\"id\"\n\t\t\tdata-cy-user-list\n\t\t\t:item-height=\"rowHeight\"\n\t\t\t:style=\"style\"\n\t\t\t:extra-props=\"{\n\t\t\t\tusers,\n\t\t\t\tsettings,\n\t\t\t\thasObfuscated,\n\t\t\t\tquotaOptions,\n\t\t\t\tlanguages,\n\t\t\t\texternalActions,\n\t\t\t}\"\n\t\t\t@scroll-end=\"handleScrollEnd\">\n\t\t\t<template #before>\n\t\t\t\t<caption class=\"hidden-visually\">\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t</caption>\n\t\t\t</template>\n\n\t\t\t<template #header>\n\t\t\t\t<UserListHeader :has-obfuscated=\"hasObfuscated\" />\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<UserListFooter :loading=\"loading.users\"\n\t\t\t\t\t:filtered-users=\"filteredUsers\" />\n\t\t\t</template>\n\t\t</VirtualList>\n\t</Fragment>\n</template>\n\n<script>\nimport { mdiAccountGroup } from '@mdi/js'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { Fragment } from 'vue-frag'\n\nimport Vue from 'vue'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\n\nimport VirtualList from './Users/VirtualList.vue'\nimport NewUserDialog from './Users/NewUserDialog.vue'\nimport UserListFooter from './Users/UserListFooter.vue'\nimport UserListHeader from './Users/UserListHeader.vue'\nimport UserRow from './Users/UserRow.vue'\n\nimport { defaultQuota, isObfuscated, unlimitedQuota } from '../utils/userUtils.ts'\nimport logger from '../logger.ts'\n\nconst newUser = Object.freeze({\n\tid: '',\n\tdisplayName: '',\n\tpassword: '',\n\tmailAddress: '',\n\tgroups: [],\n\tmanager: '',\n\tsubAdminsGroups: [],\n\tquota: defaultQuota,\n\tlanguage: {\n\t\tcode: 'en',\n\t\tname: t('settings', 'Default language'),\n\t},\n})\n\nexport default {\n\tname: 'UserList',\n\n\tcomponents: {\n\t\tFragment,\n\t\tNcEmptyContent,\n\t\tNcIconSvgWrapper,\n\t\tNcLoadingIcon,\n\t\tNewUserDialog,\n\t\tUserListFooter,\n\t\tUserListHeader,\n\t\tVirtualList,\n\t},\n\n\tprops: {\n\t\tselectedGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\n\tsetup() {\n\t\t// non reactive properties\n\t\treturn {\n\t\t\tmdiAccountGroup,\n\t\t\trowHeight: 55,\n\n\t\t\tUserRow,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tgroups: false,\n\t\t\t\tusers: false,\n\t\t\t},\n\t\t\tnewUser: { ...newUser },\n\t\t\tisInitialLoad: true,\n\t\t\tsearchQuery: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tstyle() {\n\t\t\treturn {\n\t\t\t\t'--row-height': `${this.rowHeight}px`,\n\t\t\t}\n\t\t},\n\n\t\thasObfuscated() {\n\t\t\treturn this.filteredUsers.some(user => isObfuscated(user))\n\t\t},\n\n\t\tusers() {\n\t\t\treturn this.$store.getters.getUsers\n\t\t},\n\n\t\tfilteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\treturn this.users.filter(user => user.enabled === false)\n\t\t\t}\n\t\t\treturn this.users.filter(user => user.enabled !== false)\n\t\t},\n\n\t\tgroups() {\n\t\t\treturn this.$store.getters.getSortedGroups\n\t\t\t\t.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({\n\t\t\t\tid: cur,\n\t\t\t\tlabel: cur,\n\t\t\t}), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\tquotaPreset.unshift(defaultQuota)\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset\n\t\t},\n\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit\n\t\t},\n\n\t\tdisabledUsersOffset() {\n\t\t\treturn this.$store.getters.getDisabledUsersOffset\n\t\t},\n\n\t\tdisabledUsersLimit() {\n\t\t\treturn this.$store.getters.getDisabledUsersLimit\n\t\t},\n\n\t\tusersCount() {\n\t\t\treturn this.users.length\n\t\t},\n\n\t\t/* LANGUAGES */\n\t\tlanguages() {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonLanguages,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Other languages'),\n\t\t\t\t\tlanguages: this.settings.languages.otherLanguages,\n\t\t\t\t},\n\t\t\t]\n\t\t},\n\t},\n\n\twatch: {\n\t\t// watch url change and group select\n\t\tasync selectedGroup(val) {\n\t\t\tthis.isInitialLoad = true\n\t\t\t// if selected is the disabled group but it's empty\n\t\t\tawait this.redirectIfDisabled()\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t\tthis.setNewUserDefaultGroup(val)\n\t\t},\n\n\t\tfilteredUsers(filteredUsers) {\n\t\t\tlogger.debug(`${filteredUsers.length} filtered user(s)`)\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.loadUsers()\n\t},\n\n\tasync mounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'))\n\t\t}\n\n\t\t/**\n\t\t * Reset and init new user form\n\t\t */\n\t\tthis.resetForm()\n\n\t\t/**\n\t\t * Register search\n\t\t */\n\t\tsubscribe('nextcloud:unified-search.search', this.search)\n\t\tsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\n\t\t/**\n\t\t * If disabled group but empty, redirect\n\t\t */\n\t\tawait this.redirectIfDisabled()\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('nextcloud:unified-search.search', this.search)\n\t\tunsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\t},\n\n\tmethods: {\n\t\tasync handleScrollEnd() {\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tasync loadUsers() {\n\t\t\tthis.loading.users = true\n\t\t\ttry {\n\t\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\t\tawait this.$store.dispatch('getDisabledUsers', {\n\t\t\t\t\t\toffset: this.disabledUsersOffset,\n\t\t\t\t\t\tlimit: this.disabledUsersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else if (this.selectedGroup === '__nc_internal_recent') {\n\t\t\t\t\tawait this.$store.dispatch('getRecentUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('getUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tgroup: this.selectedGroup,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tlogger.debug(`${this.users.length} total user(s) loaded`)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Failed to load accounts', { error })\n\t\t\t\tshowError('Failed to load accounts')\n\t\t\t}\n\t\t\tthis.loading.users = false\n\t\t\tthis.isInitialLoad = false\n\t\t},\n\n\t\tcloseDialog() {\n\t\t\tthis.$store.commit('setShowConfig', {\n\t\t\t\tkey: 'showNewUserForm',\n\t\t\t\tvalue: false,\n\t\t\t})\n\t\t},\n\n\t\tasync search({ query }) {\n\t\t\tthis.searchQuery = query\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tresetSearch() {\n\t\t\tthis.search({ query: '' })\n\t\t},\n\n\t\tresetForm() {\n\t\t\t// revert form to original state\n\t\t\tthis.newUser = Object.assign({}, newUser)\n\n\t\t\t/**\n\t\t\t * Init default language from server data. The use of this.settings\n\t\t\t * requires a computed variable, which break the v-model binding of the form,\n\t\t\t * this is a much easier solution than getter and setter on a computed var\n\t\t\t */\n\t\t\tif (this.settings.defaultLanguage) {\n\t\t\t\tVue.set(this.newUser.language, 'code', this.settings.defaultLanguage)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * In case the user directly loaded the user list within a group\n\t\t\t * the watch won't be triggered. We need to initialize it.\n\t\t\t */\n\t\t\tthis.setNewUserDefaultGroup(this.selectedGroup)\n\n\t\t\tthis.loading.all = false\n\t\t},\n\n\t\tsetNewUserDefaultGroup(value) {\n\t\t\t// Is no value set, but user is a line manager we set their group as this is a requirement for line manager\n\t\t\tif (!value && !this.settings.isAdmin && !this.settings.isDelegatedAdmin) {\n\t\t\t\tconst groups = this.$store.getters.getSubAdminGroups\n\t\t\t\t// if there are multiple groups we do not know which to add,\n\t\t\t\t// so we cannot make the managers life easier by preselecting it.\n\t\t\t\tif (groups.length === 1) {\n\t\t\t\t\tthis.newUser.groups = [...groups]\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\t// setting new account default group to the current selected one\n\t\t\t\tconst currentGroup = this.groups.find(group => group.id === value)\n\t\t\t\tif (currentGroup) {\n\t\t\t\t\tthis.newUser.groups = [currentGroup]\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\t// fallback, empty selected group\n\t\t\tthis.newUser.groups = []\n\t\t},\n\n\t\t/**\n\t\t * If the selected group is the disabled group but the count is 0\n\t\t * redirect to the all users page.\n\t\t * we only check for 0 because we don't have the count on ldap\n\t\t * and we therefore set the usercount to -1 in this specific case\n\t\t */\n\t\tasync redirectIfDisabled() {\n\t\t\tconst allGroups = this.$store.getters.getGroups\n\t\t\tif (this.selectedGroup === 'disabled'\n\t\t\t\t\t\t&& allGroups.findIndex(group => group.id === 'disabled' && group.usercount === 0) > -1) {\n\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\tthis.$router.push({ name: 'users' })\n\t\t\t\tawait this.loadUsers()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use './Users/shared/styles' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=1e8fee5a&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e8fee5a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroup,\"size\":64}})]},proxy:true}],null,false,226056511)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\thasObfuscated: _vm.hasObfuscated,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader',{attrs:{\"has-obfuscated\":_vm.hasObfuscated}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppContent :page-heading=\"pageHeading\">\n\t\t<UserList :selected-group=\"selectedGroupDecoded\"\n\t\t\t:external-actions=\"externalActions\" />\n\t</NcAppContent>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { emit } from '@nextcloud/event-bus'\nimport { defineComponent } from 'vue'\n\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport UserList from '../components/UserList.vue'\n\nexport default defineComponent({\n\tname: 'UserManagement',\n\n\tcomponents: {\n\t\tNcAppContent,\n\t\tUserList,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// temporary value used for multiselect change\n\t\t\texternalActions: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpageHeading() {\n\t\t\tif (this.selectedGroupDecoded === null) {\n\t\t\t\treturn t('settings', 'All accounts')\n\t\t\t}\n\t\t\tconst matchHeading = {\n\t\t\t\tadmin: t('settings', 'Admins'),\n\t\t\t\tdisabled: t('settings', 'Disabled accounts'),\n\t\t\t}\n\t\t\treturn matchHeading[this.selectedGroupDecoded] ?? t('settings', 'Account group: {group}', { group: this.selectedGroupDecoded })\n\t\t},\n\n\t\tselectedGroup() {\n\t\t\treturn this.$route.params.selectedGroup\n\t\t},\n\n\t\tselectedGroupDecoded() {\n\t\t\treturn this.selectedGroup ? decodeURIComponent(this.selectedGroup) : null\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength')\n\t},\n\n\tcreated() {\n\t\t// init the OCA.Settings.UserList object\n\t\twindow.OCA = window.OCA ?? {}\n\t\twindow.OCA.Settings = window.OCA.Settings ?? {}\n\t\twindow.OCA.Settings.UserList = window.OCA.Settings.UserList ?? {}\n\t\t// and add the registerAction method\n\t\twindow.OCA.Settings.UserList.registerAction = this.registerAction\n\t\temit('settings:user-management:loaded')\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Register a new action for the user menu\n\t\t *\n\t\t * @param {string} icon the icon class\n\t\t * @param {string} text the text to display\n\t\t * @param {Function} action the function to run\n\t\t * @param {(user: Record<string, unknown>) => boolean} enabled return true if the action is enabled for the user\n\t\t * @return {Array}\n\t\t */\n\t\tregisterAction(icon, text, action, enabled) {\n\t\t\tthis.externalActions.push({\n\t\t\t\ticon,\n\t\t\t\ttext,\n\t\t\t\taction,\n\t\t\t\tenabled,\n\t\t\t})\n\t\t\treturn this.externalActions\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=253f9eec&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"253f9eec\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","formatGroup","group","name","displayname","usercount","disabled","canAdd","canRemove","searchGroups","_ref","search","offset","limit","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","data","axios","get","generateOcsUrl","signal","ocs","groups","map","error","loadUserGroups","userId","_ref2","url","loadUserSubAdminGroups","_ref3","components","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcNoteCard","NcSelect","props","open","type","Boolean","required","selectedQuota","loadingSendMail","computed","groupSorting","$store","getters","getGroupSorting","GroupSorting","GroupName","set","sorting","commit","UserCount","isGroupSortingEnforced","getServerData","forceSortGroupByName","isModalOpen","$emit","showConfig","getShowConfig","settings","showLanguages","status","setShowConfig","showFirstLogin","showLastLogin","showUserBackend","showStoragePath","quotaOptions","quotaPreset","reduce","acc","cur","concat","label","allowUnlimitedQuota","unshift","unlimitedQuota","defaultQuota","OC","Util","computerFileSize","quota","sendWelcomeMail","newUserSendEmail","value","post","generateUrl","logger","methods","filterQuotas","option","searchValue","toLocaleLowerCase","replaceAll","indexOf","key","validateQuota","validQuota","parseFileSize","formatFileSize","setDefaultQuota","arguments","length","undefined","dispatch","app","then","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","attrs","t","on","$event","_v","_s","_e","staticClass","model","callback","$$v","expression","AccountGroup","Delete","Fragment","NcActionButton","NcActionInput","NcAppNavigationItem","NcButton","NcCounterBubble","NcModal","Pencil","active","count","Number","default","String","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","gid","trim","displayName","$refs","displayNameInput","$el","querySelector","groupid","removeGroup","showError","ref","params","selectedGroup","encodeURIComponent","scopedSlots","_u","fn","proxy","isAdmin","isDelegatedAdmin","formatGroupMenu","title","Math","max","useFormatGroups","userGroups","filter","adminGroup","find","disabledGroup","recentGroup","_defineComponent","__name","setup","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","selectedGroupDecoded","decodeURIComponent","getSortedGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","groupListItems","lastGroupListItem","findLast","component","$vnode","at","listItem","isLastGroupVisible","useElementVisibility","watch","promise","cancel","__sfc","createGroup","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiAccountGroup","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","NcAppNavigationSearch","NcIconSvgWrapper","NcLoadingIcon","GroupListItem","_setup","_setupProxy","_l","refInFor","isDialogOpen","userCount","getUserCount","showNewUserMenu","mdiAccount","mdiAccountOff","mdiCog","mdiShieldAccount","mdiHistory","NcAppNavigation","NcAppNavigationNew","UserSettingsDialog","AppNavigationGroupList","_k","keyCode","apply","Symbol","toStringTag","isObfuscated","user","keys","Object","Vue","directive","vElementVisibility","extend","dataComponent","Function","dataKey","dataSources","Array","itemHeight","extraProps","bufferItems","index","headerHeight","tableHeight","resizeObserver","startIndex","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","min","paddingTop","paddingBottom","mounted","root","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","visible","round","scrollTop","_t","style","item","i","_b","tag","directives","rawName","NcDialog","NcPasswordField","NcTextField","loading","newUser","availableGroups","possibleManagers","managerInputLabel","managerLabel","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","subAdminsGroups","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","getSubAdminGroups","username","focus","createUser","all","userid","password","email","mailAddress","subadmin","language","code","manager","response","meta","statuscode","query","toggleLoading","addGroup","isCreating","languageFilterBy","some","includes","users","values","_g","$listeners","preventDefault","$set","newUserRequireEmail","class","filteredUsers","n","hasObfuscated","passwordLabel","defineComponent","NcActions","actions","edit","editSvg","SvgCheck","SvgPencil","enabledActions","action","enabled","isSvg","string","TypeError","XMLValidator","validate","jsonObject","parser","XMLParser","parse","x","toLowerCase","toggleEdit","icon","text","event","externalActions","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","availableSubAdminGroups","userSubAdminGroups","usedSpace","quotaUsed","used","size","usedQuota","pow","isNaN","userQuota","humanQuota","userLanguage","userLang","lang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","formatDate","userLastLogin","relativeModifiedDate","NcAvatar","NcProgressBar","UserRowActions","mixins","UserRowMixin","rand","random","toString","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","delete","disable","wipe","editedDisplayName","editedPassword","editedMail","isLoadingUser","isLoadingField","uniqueId","userGroupsLabels","join","userSubAdminGroupsLabels","canEdit","getCurrentUser","uid","userActions","deleteUser","wipeUserDevices","enableDisableUser","editedUserQuota","availableLanguages","initManager","confirmPassword","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","showSuccess","timeout","finally","filterManagers","managers","searchInitialUserManager","loadGroupsDetails","availableGroup","loadSubAdminGroupsDetails","updateUserManager","previousManager","updateDisplayName","updatePassword","updateEmail","addUserGroup","console","removeUserGroup","$route","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","$nextTick","displayNameField","inputField","input","backendCapabilities","setDisplayName","canChangePassword","setPassword","backend","storageLocation","freeze","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","rowHeight","UserRow","isInitialLoad","searchQuery","getUsers","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","val","redirectIfDisabled","loadUsers","setNewUserDefaultGroup","created","Notification","showTemporary","resetForm","subscribe","resetSearch","unsubscribe","handleScrollEnd","closeDialog","assign","defaultLanguage","currentGroup","allGroups","getGroups","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","admin","window","OCA","Settings","registerAction","emit"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"settings-users-3239.js?v=a05a25193f33088a0ada","mappings":"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","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcActionButtonGroup-BND4GQdv.css","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?7ade","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?9f19","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b1db","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?e7ff","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/node_modules/@file-type/xml/lib/index.js","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack:///nextcloud/node_modules/is-svg/index.js","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcActionButtonGroup-BND4GQdv.css?8d5f","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcActionButtonGroup-BteTNhIn.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcActionRadio-CodyhP86.css?a1e2","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcActionRadio-yAm71xxU.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-CasTVqIo.css?2383","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcActionTextEditable-BYqqHPj2.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentDetails.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppContentList.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationIconBullet-CeBYVy6t.css?51a1","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationIconBullet.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNewItem-D7wroqrc.css?e4cc","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNewItem-DGjgp78o.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css?c692","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-t9JntjoG.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcBlurHash-7aGtE-_T.css?9538","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Functions/preloadImage.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcBlurHash-do2wxY-0.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcCollectionList-yjTCAR46.css?52df","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-e-iLLNzl.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcGuestContent-B0ivUQHg.css?0e9c","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcGuestContent.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css?0c75","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcHeaderButton.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-DhStLIO2.css?1484","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-BtfnMS2U.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSavingIndicatorIcon-nv1147dk.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-CRH00RA2.css?50f4","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-BQGjCB8x.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css?387e","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSettingsInputText-t1FMnLKA.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Functions/isDarkTheme.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Composables/useIsDarkTheme.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/mixins/UserRowMixin.js","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?d087","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?750d","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?c771","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcCollectionList-yjTCAR46.css","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-DhStLIO2.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNew-Dbo2rvXH.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationIconBullet-CeBYVy6t.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcActionRadio-CodyhP86.css","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationCaption-DU9PxTvu.css?cd91","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-CkIBHQGQ.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationNew.mjs","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/sax/lib/sax.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-CasTVqIo.css","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?da91","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?e356","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?3dcd","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcBlurHash-7aGtE-_T.css","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNew-Dbo2rvXH.css?7340","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-Br5t5ga_.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-CRH00RA2.css","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-DN7C4An4.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationCaption-DU9PxTvu.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNewItem-D7wroqrc.css","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcGuestContent-B0ivUQHg.css"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-button-group-base > div {\n text-align: center;\n color: var(--color-text-maxcontrast);\n}\n.nc-button-group-base ul.nc-button-group-content {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n}\n.nc-button-group-base ul.nc-button-group-content li {\n flex: 1 1;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button {\n padding: 0 !important;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active {\n background-color: var(--color-primary-element);\n border-radius: var(--border-radius-large);\n color: var(--color-primary-element-text);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:hover, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus-within {\n background-color: var(--color-primary-element-hover);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button .action-button__pressed-icon {\n display: none;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionButtonGroup-BND4GQdv.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,QAAQ;EACR,8BAA8B;AAChC;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,8CAA8C;EAC9C,yCAAyC;EACzC,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,aAAa;AACf\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.nc-button-group-base > div {\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n}\\n.nc-button-group-base ul.nc-button-group-content {\\n display: flex;\\n gap: 4px;\\n justify-content: space-between;\\n}\\n.nc-button-group-base ul.nc-button-group-content li {\\n flex: 1 1;\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button {\\n padding: 0 !important;\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active {\\n background-color: var(--color-primary-element);\\n border-radius: var(--border-radius-large);\\n color: var(--color-primary-element-text);\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:hover, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus-within {\\n background-color: var(--color-primary-element-hover);\\n}\\n.nc-button-group-base ul.nc-button-group-content .action-button .action-button__pressed-icon {\\n display: none;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=21942da5&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21942da5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"type\":\"primary\",\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('NcTextField',{ref:\"username\",staticClass:\"dialog__item\",attrs:{\"data-test\":\"username\",\"value\":_vm.newUser.id,\"disabled\":_vm.settings.newUserGenerateUserID,\"label\":_vm.usernameLabel,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":\"\"},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"id\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"dialog__item\",attrs:{\"data-test\":\"displayName\",\"value\":_vm.newUser.displayName,\"label\":_vm.t('settings', 'Display name'),\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"displayName\", $event)}}}),_vm._v(\" \"),(!_vm.settings.newUserRequireEmail)?_c('span',{staticClass:\"dialog__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",staticClass:\"dialog__item\",attrs:{\"data-test\":\"password\",\"value\":_vm.newUser.password,\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":\"password-email-hint\",\"label\":_vm.newUser.mailAddress === '' ? _vm.t('settings', 'Password (required)') : _vm.t('settings', 'Password'),\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.newUser.mailAddress === ''},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"password\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"dialog__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"value\":_vm.newUser.mailAddress,\"aria-describedby\":\"password-email-hint\",\"label\":_vm.newUser.password === '' || _vm.settings.newUserRequireEmail ? _vm.t('settings', 'Email (required)') : _vm.t('settings', 'Email'),\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.newUser.password === '' || _vm.settings.newUserRequireEmail},on:{\"update:value\":function($event){return _vm.$set(_vm.newUser, \"mailAddress\", $event)}}}),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"data-test\":\"groups\",\"input-label\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin ? _vm.t('settings', 'Member of the following groups (required)') : _vm.t('settings', 'Member of the following groups'),\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.loading.groups || _vm.loading.all,\"options\":_vm.availableGroups,\"value\":_vm.newUser.groups,\"label\":\"name\",\"close-on-select\":false,\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup,\"option:selected\":options => _vm.addGroup(options.at(-1))}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.loading.groups || _vm.loading.all,\"options\":_vm.subAdminsGroups,\"close-on-select\":false,\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.newUser.subAdminsGroups),callback:function ($$v) {_vm.$set(_vm.newUser, \"subAdminsGroups\", $$v)},expression:\"newUser.subAdminsGroups\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.newUser.quota),callback:function ($$v) {_vm.$set(_vm.newUser, \"quota\", $$v)},expression:\"newUser.quota\"}})],1),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('div',{staticClass:\"dialog__item\"},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.newUser.language),callback:function ($$v) {_vm.$set(_vm.newUser, \"language\", $$v)},expression:\"newUser.language\"}})],1):_vm._e(),_vm._v(\" \"),_c('div',{class:['dialog__item dialog__managers', { 'icon-loading-small': _vm.loading.manager }]},[_c('NcSelect',{staticClass:\"dialog__select\",attrs:{\"input-label\":_vm.managerInputLabel,\"placeholder\":_vm.managerLabel,\"options\":_vm.possibleManagers,\"user-select\":true,\"label\":\"displayname\"},on:{\"search\":_vm.searchUserManager},model:{value:(_vm.newUser.manager),callback:function ($$v) {_vm.$set(_vm.newUser, \"manager\", $$v)},expression:\"newUser.manager\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcDialog class=\"dialog\"\n\t\tsize=\"small\"\n\t\t:name=\"t('settings', 'New account')\"\n\t\tout-transition\n\t\tv-on=\"$listeners\">\n\t\t<form id=\"new-user-form\"\n\t\t\tclass=\"dialog__form\"\n\t\t\tdata-test=\"form\"\n\t\t\t:disabled=\"loading.all\"\n\t\t\t@submit.prevent=\"createUser\">\n\t\t\t<NcTextField ref=\"username\"\n\t\t\t\tclass=\"dialog__item\"\n\t\t\t\tdata-test=\"username\"\n\t\t\t\t:value.sync=\"newUser.id\"\n\t\t\t\t:disabled=\"settings.newUserGenerateUserID\"\n\t\t\t\t:label=\"usernameLabel\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\tpattern=\"[a-zA-Z0-9 _\\.@\\-']+\"\n\t\t\t\trequired />\n\t\t\t<NcTextField class=\"dialog__item\"\n\t\t\t\tdata-test=\"displayName\"\n\t\t\t\t:value.sync=\"newUser.displayName\"\n\t\t\t\t:label=\"t('settings', 'Display name')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\" />\n\t\t\t<span v-if=\"!settings.newUserRequireEmail\"\n\t\t\t\tid=\"password-email-hint\"\n\t\t\t\tclass=\"dialog__hint\">\n\t\t\t\t{{ t('settings', 'Either password or email is required') }}\n\t\t\t</span>\n\t\t\t<NcPasswordField ref=\"password\"\n\t\t\t\tclass=\"dialog__item\"\n\t\t\t\tdata-test=\"password\"\n\t\t\t\t:value.sync=\"newUser.password\"\n\t\t\t\t:minlength=\"minPasswordLength\"\n\t\t\t\t:maxlength=\"469\"\n\t\t\t\taria-describedby=\"password-email-hint\"\n\t\t\t\t:label=\"newUser.mailAddress === '' ? t('settings', 'Password (required)') : t('settings', 'Password')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t:required=\"newUser.mailAddress === ''\" />\n\t\t\t<NcTextField class=\"dialog__item\"\n\t\t\t\tdata-test=\"email\"\n\t\t\t\ttype=\"email\"\n\t\t\t\t:value.sync=\"newUser.mailAddress\"\n\t\t\t\taria-describedby=\"password-email-hint\"\n\t\t\t\t:label=\"newUser.password === '' || settings.newUserRequireEmail ? t('settings', 'Email (required)') : t('settings', 'Email')\"\n\t\t\t\tautocapitalize=\"none\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tspellcheck=\"false\"\n\t\t\t\t:required=\"newUser.password === '' || settings.newUserRequireEmail\" />\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect class=\"dialog__select\"\n\t\t\t\t\tdata-test=\"groups\"\n\t\t\t\t\t:input-label=\"!settings.isAdmin && !settings.isDelegatedAdmin ? t('settings', 'Member of the following groups (required)') : t('settings', 'Member of the following groups')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account groups')\"\n\t\t\t\t\t:disabled=\"loading.groups || loading.all\"\n\t\t\t\t\t:options=\"availableGroups\"\n\t\t\t\t\t:value=\"newUser.groups\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:taggable=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\t\t\t:required=\"!settings.isAdmin && !settings.isDelegatedAdmin\"\n\t\t\t\t\t:create-option=\"(value) => ({ id: value, name: value, isCreating: true })\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:created=\"createGroup\"\n\t\t\t\t\t@option:selected=\"options => addGroup(options.at(-1))\" />\n\t\t\t\t\t<!-- If user is not admin, they are a subadmin.\n\t\t\t\t\t\tSubadmins can't create users outside their groups\n\t\t\t\t\t\tTherefore, empty select is forbidden -->\n\t\t\t</div>\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.subAdminsGroups\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Admin of the following groups')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account as admin for …')\"\n\t\t\t\t\t:disabled=\"loading.groups || loading.all\"\n\t\t\t\t\t:options=\"subAdminsGroups\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t@search=\"searchGroups\" />\n\t\t\t</div>\n\t\t\t<div class=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.quota\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Quota')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account quota')\"\n\t\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:taggable=\"true\"\n\t\t\t\t\t:create-option=\"validateQuota\" />\n\t\t\t</div>\n\t\t\t<div v-if=\"showConfig.showLanguages\"\n\t\t\t\tclass=\"dialog__item\">\n\t\t\t\t<NcSelect v-model=\"newUser.language\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"t('settings', 'Language')\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set default language')\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:selectable=\"option => !option.languages\"\n\t\t\t\t\t:filter-by=\"languageFilterBy\"\n\t\t\t\t\t:options=\"languages\"\n\t\t\t\t\tlabel=\"name\" />\n\t\t\t</div>\n\t\t\t<div :class=\"['dialog__item dialog__managers', { 'icon-loading-small': loading.manager }]\">\n\t\t\t\t<NcSelect v-model=\"newUser.manager\"\n\t\t\t\t\tclass=\"dialog__select\"\n\t\t\t\t\t:input-label=\"managerInputLabel\"\n\t\t\t\t\t:placeholder=\"managerLabel\"\n\t\t\t\t\t:options=\"possibleManagers\"\n\t\t\t\t\t:user-select=\"true\"\n\t\t\t\t\tlabel=\"displayname\"\n\t\t\t\t\t@search=\"searchUserManager\" />\n\t\t\t</div>\n\t\t</form>\n\n\t\t<template #actions>\n\t\t\t<NcButton class=\"dialog__submit\"\n\t\t\t\tdata-test=\"submit\"\n\t\t\t\tform=\"new-user-form\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\tnative-type=\"submit\">\n\t\t\t\t{{ t('settings', 'Add new account') }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcDialog>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcDialog from '@nextcloud/vue/components/NcDialog'\nimport NcPasswordField from '@nextcloud/vue/components/NcPasswordField'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\n\nimport { searchGroups } from '../../service/groups.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'NewUserDialog',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tNcDialog,\n\t\tNcPasswordField,\n\t\tNcSelect,\n\t\tNcTextField,\n\t},\n\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\tnewUser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tavailableGroups: [],\n\t\t\tpossibleManagers: [],\n\t\t\t// TRANSLATORS This string describes a manager in the context of an organization\n\t\t\tmanagerInputLabel: t('settings', 'Manager'),\n\t\t\t// TRANSLATORS This string describes a manager in the context of an organization\n\t\t\tmanagerLabel: t('settings', 'Set line manager'),\n\t\t\t// Cancelable promise for search groups request\n\t\t\tpromise: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tusernameLabel() {\n\t\t\tif (this.settings.newUserGenerateUserID) {\n\t\t\t\treturn t('settings', 'Account name will be autogenerated')\n\t\t\t}\n\t\t\treturn t('settings', 'Account name (required)')\n\t\t},\n\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength\n\t\t},\n\n\t\tsubAdminsGroups() {\n\t\t\t// data provided php side\n\t\t\treturn this.availableGroups.filter(group => group.id !== 'admin' && group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tlanguages() {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tname: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonLanguages,\n\t\t\t\t},\n\t\t\t\t...this.settings.languages.commonLanguages,\n\t\t\t\t{\n\t\t\t\t\tname: t('settings', 'Other languages'),\n\t\t\t\t\tlanguages: this.settings.languages.otherLanguages,\n\t\t\t\t},\n\t\t\t\t...this.settings.languages.otherLanguages,\n\t\t\t]\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tawait this.searchUserManager()\n\t},\n\n\tmounted() {\n\t\t// admins also can assign the system groups\n\t\tif (this.isAdmin || this.isDelegatedAdmin) {\n\t\t\tthis.availableGroups = this.$store.getters.getSortedGroups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t} else {\n\t\t\tthis.availableGroups = [...this.$store.getters.getSubAdminGroups]\n\t\t}\n\n\t\tthis.$refs.username?.focus?.()\n\t},\n\n\tmethods: {\n\t\tasync createUser() {\n\t\t\tthis.loading.all = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUser', {\n\t\t\t\t\tuserid: this.newUser.id,\n\t\t\t\t\tpassword: this.newUser.password,\n\t\t\t\t\tdisplayName: this.newUser.displayName,\n\t\t\t\t\temail: this.newUser.mailAddress,\n\t\t\t\t\tgroups: this.newUser.groups.map(group => group.id),\n\t\t\t\t\tsubadmin: this.newUser.subAdminsGroups.map(group => group.id),\n\t\t\t\t\tquota: this.newUser.quota.id,\n\t\t\t\t\tlanguage: this.newUser.language.code,\n\t\t\t\t\tmanager: this.newUser.manager.id,\n\t\t\t\t})\n\n\t\t\t\tthis.$emit('reset')\n\t\t\t\tthis.$refs.username?.focus?.()\n\t\t\t\tthis.$emit('closing')\n\t\t\t} catch (error) {\n\t\t\t\tthis.loading.all = false\n\t\t\t\tif (error.response && error.response.data && error.response.data.ocs && error.response.data.ocs.meta) {\n\t\t\t\t\tconst statuscode = error.response.data.ocs.meta.statuscode\n\t\t\t\t\tif (statuscode === 102) {\n\t\t\t\t\t\t// wrong username\n\t\t\t\t\t\tthis.$refs.username?.focus?.()\n\t\t\t\t\t} else if (statuscode === 107) {\n\t\t\t\t\t\t// wrong password\n\t\t\t\t\t\tthis.$refs.password?.focus?.()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tasync searchGroups(query, toggleLoading) {\n\t\t\tif (!this.isAdmin && !this.isDelegatedAdmin) {\n\t\t\t\t// managers cannot search for groups\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (this.promise) {\n\t\t\t\tthis.promise.cancel()\n\t\t\t}\n\t\t\ttoggleLoading(true)\n\t\t\ttry {\n\t\t\t\tthis.promise = searchGroups({\n\t\t\t\t\tsearch: query,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 25,\n\t\t\t\t})\n\t\t\t\tconst groups = await this.promise\n\t\t\t\tthis.availableGroups = groups\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to search groups'), { error })\n\t\t\t}\n\t\t\tthis.promise = null\n\t\t\ttoggleLoading(false)\n\t\t},\n\n\t\t/**\n\t\t * Create a new group\n\t\t *\n\t\t * @param {any} group Group\n\t\t * @param {string} group.name Group id\n\t\t */\n\t\tasync createGroup({ name: gid }) {\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addGroup', gid)\n\t\t\t\tthis.availableGroups.push({ id: gid, name: gid })\n\t\t\t\tthis.newUser.groups.push({ id: gid, name: gid })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to create group'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addGroup(group) {\n\t\t\tif (group.isCreating) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (group.canAdd === false) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.newUser.groups.push(group)\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string} quota Quota in readable format '5 GB'\n\t\t * @return {object}\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = OC.Util.computerFileSize(quota)\n\t\t\tif (validQuota !== null && validQuota >= 0) {\n\t\t\t\t// unify format output\n\t\t\t\tquota = formatFileSize(parseFileSize(quota))\n\t\t\t\tthis.newUser.quota = { id: quota, label: quota }\n\t\t\t\treturn this.newUser.quota\n\t\t\t}\n\t\t\t// Default is unlimited\n\t\t\tthis.newUser.quota = this.quotaOptions[0]\n\t\t\treturn this.quotaOptions[0]\n\t\t},\n\n\t\tlanguageFilterBy(option, label, search) {\n\t\t\t// Show group header of the language\n\t\t\tif (option.languages) {\n\t\t\t\treturn option.languages.some(\n\t\t\t\t\t({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase())\n\t\t},\n\n\t\tasync searchUserManager(query) {\n\t\t\tawait this.$store.dispatch(\n\t\t\t\t'searchUsers',\n\t\t\t\t{\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 10,\n\t\t\t\t\tsearch: query,\n\t\t\t\t},\n\t\t\t).then(response => {\n\t\t\t\tconst users = response?.data ? Object.values(response?.data.ocs.data.users) : []\n\t\t\t\tif (users.length > 0) {\n\t\t\t\t\tthis.possibleManagers = users\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.dialog {\n\t&__form {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 0 8px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-top: 8px;\n\t\talign-self: flex-start;\n\t}\n\n\t&__label {\n\t\tdisplay: block;\n\t\tpadding: 4px 0;\n\t}\n\n\t&__select {\n\t\twidth: 100%;\n\t}\n\n\t&__managers {\n\t\tmargin-bottom: 12px;\n\t}\n\n\t&__submit {\n\t\tmargin-top: 4px;\n\t\tmargin-bottom: 8px;\n\t}\n\n\t:deep {\n\t\t.dialog__actions {\n\t\t\tmargin: auto;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=70bbf4c9&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=70bbf4c9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70bbf4c9\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=db2a7c4e&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=db2a7c4e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db2a7c4e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",class:{ 'header__cell--obfuscated': _vm.hasObfuscated },attrs:{\"data-cy-user-list-header-password\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.passwordLabel))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=5c0f8828&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=5c0f8828&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c0f8828\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(_vm.editing && _vm.user.backendCapabilities.setDisplayName)?[_c('NcTextField',{ref:\"displayNameField\",staticClass:\"user-row-text-field\",class:{ 'icon-loading-small': _vm.loading.displayName },attrs:{\"data-cy-user-list-input-displayname\":\"\",\"data-loading\":_vm.loading.displayName || undefined,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"show-trailing-button\":true,\"disabled\":_vm.loading.displayName || _vm.isLoadingField,\"label\":_vm.t('settings', 'Change display name'),\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedDisplayName,\"autocapitalize\":\"off\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},on:{\"update:value\":function($event){_vm.editedDisplayName=$event},\"trailing-button-click\":_vm.updateDisplayName}})]:(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",class:{ 'row__cell--obfuscated': _vm.hasObfuscated },attrs:{\"data-cy-user-list-cell-password\":\"\"}},[(_vm.editing && _vm.settings.canChangePassword && _vm.user.backendCapabilities.setPassword)?[_c('NcTextField',{staticClass:\"user-row-text-field\",class:{'icon-loading-small': _vm.loading.password},attrs:{\"data-cy-user-list-input-password\":\"\",\"data-loading\":_vm.loading.password || undefined,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"show-trailing-button\":true,\"disabled\":_vm.loading.password || _vm.isLoadingField,\"minlength\":_vm.minPasswordLength,\"maxlength\":\"469\",\"label\":_vm.t('settings', 'Set new password'),\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedPassword,\"autocapitalize\":\"off\",\"autocomplete\":\"new-password\",\"required\":\"\",\"spellcheck\":\"false\",\"type\":\"password\"},on:{\"update:value\":function($event){_vm.editedPassword=$event},\"trailing-button-click\":_vm.updatePassword}})]:(_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You do not have permissions to see the details of this account'))+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(_vm.editing)?[_c('NcTextField',{staticClass:\"user-row-text-field\",class:{'icon-loading-small': _vm.loading.mailAddress},attrs:{\"data-cy-user-list-input-email\":\"\",\"data-loading\":_vm.loading.mailAddress || undefined,\"show-trailing-button\":true,\"trailing-button-label\":_vm.t('settings', 'Submit'),\"label\":_vm.t('settings', 'Set new email address'),\"disabled\":_vm.loading.mailAddress || _vm.isLoadingField,\"trailing-button-icon\":\"arrowRight\",\"value\":_vm.editedMail,\"autocapitalize\":\"off\",\"autocomplete\":\"email\",\"spellcheck\":\"false\",\"type\":\"email\"},on:{\"update:value\":function($event){_vm.editedMail=$event},\"trailing-button-click\":_vm.updateEmail}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'groups' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add account to group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"data-cy-user-list-input-groups\":\"\",\"data-loading\":_vm.loading.groups || undefined,\"input-id\":'groups' + _vm.uniqueId,\"close-on-select\":false,\"disabled\":_vm.isLoadingField || _vm.loading.groupsDetails,\"loading\":_vm.loading.groups,\"multiple\":true,\"append-to-body\":false,\"options\":_vm.availableGroups,\"placeholder\":_vm.t('settings', 'Add account to group'),\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"value\":_vm.userGroups,\"label\":\"name\",\"no-wrap\":true,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup,\"option:selected\":options => _vm.addUserGroup(options.at(-1)),\"option:deselected\":_vm.removeUserGroup}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(_vm.editing && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'subadmins' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set account as admin for'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"data-cy-user-list-input-subadmins\":\"\",\"data-loading\":_vm.loading.subadmins || undefined,\"input-id\":'subadmins' + _vm.uniqueId,\"close-on-select\":false,\"disabled\":_vm.isLoadingField || _vm.loading.subAdminGroupsDetails,\"loading\":_vm.loading.subadmins,\"label\":\"name\",\"append-to-body\":false,\"multiple\":true,\"no-wrap\":true,\"options\":_vm.availableSubAdminGroups,\"placeholder\":_vm.t('settings', 'Set account as admin for'),\"value\":_vm.userSubAdminGroups},on:{\"search\":_vm.searchGroups,\"option:deselected\":_vm.removeUserSubAdmin,\"option:selected\":options => _vm.addUserSubAdmin(options.at(-1))}})]:(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()],2):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'quota' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Select account quota'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"close-on-select\":true,\"create-option\":_vm.validateQuota,\"data-cy-user-list-input-quota\":\"\",\"data-loading\":_vm.loading.quota || undefined,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loading.quota,\"append-to-body\":false,\"clearable\":false,\"input-id\":'quota' + _vm.uniqueId,\"options\":_vm.quotaOptions,\"placeholder\":_vm.t('settings', 'Select account quota'),\"taggable\":true},on:{\"option:selected\":_vm.setUserQuota},model:{value:(_vm.editedUserQuota),callback:function ($$v) {_vm.editedUserQuota=$$v},expression:\"editedUserQuota\"}})]:(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'language' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Set the language'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{attrs:{\"id\":'language' + _vm.uniqueId,\"data-cy-user-list-input-language\":\"\",\"data-loading\":_vm.loading.languages || undefined,\"allow-empty\":false,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loading.languages,\"clearable\":false,\"append-to-body\":false,\"options\":_vm.availableLanguages,\"placeholder\":_vm.t('settings', 'No language set'),\"value\":_vm.userLanguage,\"label\":\"name\"},on:{\"input\":_vm.setUserLanguage}})]:(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(_vm.editing)?[_c('label',{staticClass:\"hidden-visually\",attrs:{\"for\":'manager' + _vm.uniqueId}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.managerLabel)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcSelect',{staticClass:\"select--fill\",attrs:{\"data-cy-user-list-input-manager\":\"\",\"data-loading\":_vm.loading.manager || undefined,\"input-id\":'manager' + _vm.uniqueId,\"disabled\":_vm.isLoadingField,\"loading\":_vm.loadingPossibleManagers || _vm.loading.manager,\"options\":_vm.possibleManagers,\"placeholder\":_vm.managerLabel,\"label\":\"displayname\",\"filterable\":false,\"internal-search\":false,\"clearable\":true},on:{\"open\":_vm.searchInitialUserManager,\"search\":_vm.searchUserManager,\"update:model-value\":_vm.updateUserManager},model:{value:(_vm.currentManager),callback:function ($$v) {_vm.currentManager=$$v},expression:\"currentManager\"}})]:(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()],2),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"edit\":_vm.editing,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import sax from 'sax';\nfunction startsWith(array, prefix) {\n if (prefix.length > array.length) {\n return false;\n }\n for (let i = 0; i < prefix.length; i++) {\n if (array[i] !== prefix[i]) {\n return false;\n }\n }\n return true;\n}\nfunction hasXmlTag(xmlString) {\n return /^<\\s*\\w+(?=\\s+[^<>]*=|>)/.test(xmlString);\n}\nfunction hasArrayXmlTag(array, encoding) {\n const textDecoder = new TextDecoder(encoding);\n return hasXmlTag(textDecoder.decode(array));\n}\nexport function isXml(array) {\n if (startsWith(array, [60, 63, 120, 109, 108, 32])) {\n return { xml: true, encoding: 'utf-8', offset: 0 };\n }\n if (startsWith(array, [0xEF, 0xBB, 0xBF])) { // UTF-8 BOM\n const encoding = 'utf-8';\n if (startsWith(array.subarray(3), [60, 63, 120, 109, 108, 32]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 3 };\n }\n }\n if (startsWith(array, [0xFE, 0xFF])) {\n const encoding = 'utf-16be';\n if (startsWith(array.subarray(2), [0, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 2 };\n }\n }\n if (startsWith(array, [0xFF, 0xFE])) {\n const encoding = 'utf-16le';\n if (startsWith(array.subarray(2), [60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32, 0]) || hasArrayXmlTag(array, encoding)) {\n return { xml: true, encoding, offset: 2 };\n }\n return { xml: true, encoding: 'utf-16le', offset: 2 };\n }\n if (startsWith(array, [0, 60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32])) {\n return { xml: true, encoding: 'utf-16be', offset: 0 };\n }\n if (startsWith(array, [60, 0, 63, 0, 120, 0, 109, 0, 108, 0, 32, 0])) {\n return { xml: true, encoding: 'utf-16le', offset: 0 };\n }\n if (hasArrayXmlTag(array, 'utf-8')) {\n return { xml: true, encoding: 'utf-8', offset: 0 };\n }\n return { xml: false };\n}\n/**\n * Maps the root element namespace to corresponding file-type\n */\nconst namespaceMapping = {\n 'http://www.w3.org/2000/svg': {\n ext: 'svg',\n mime: 'image/svg+xml'\n },\n 'http://www.w3.org/1999/xhtml': {\n ext: 'xhtml',\n mime: 'application/xhtml+xml'\n },\n 'http://www.opengis.net/kml/2.2': {\n ext: 'kml',\n mime: 'application/vnd.google-earth.kml+xml'\n },\n 'http://www.opengis.net/gml': {\n ext: 'gml',\n mime: 'application/gml+xml'\n }\n};\n/**\n * Maps the root element name to corresponding file-type.\n * Used for Non-namespaced XML\n * @type {{rss: {ext: string, mime: string}}}\n */\nconst rootNameMapping = {\n rss: {\n ext: 'rss',\n mime: 'application/rss+xml'\n },\n 'score-partwise': {\n ext: 'musicxml',\n mime: 'application/vnd.recordare.musicxml+xml'\n },\n svg: {\n ext: 'svg',\n mime: 'image/svg+xml'\n }\n};\nexport class XmlTextDetector {\n constructor(options) {\n this.options = options ?? {};\n this.firstTag = true;\n this.onEnd = false;\n this.parser = sax.parser(true, { xmlns: true });\n this.nesting = 0;\n this.parser.onerror = e => {\n if (e.message.startsWith('Invalid character entity')) { // Allow entity reference\n return;\n }\n this.fileType = undefined;\n this.onEnd = true;\n };\n this.parser.onopentag = node => {\n ++this.nesting;\n if (!this.firstTag || this.onEnd) {\n return;\n }\n this.firstTag = false;\n if (node.uri) {\n // Resolve file-type boot root element namespace\n this.fileType = namespaceMapping[node.uri];\n }\n else if (node.name) {\n // Fall back on element name if there is no namespace\n this.fileType = rootNameMapping[node.name.toLowerCase()];\n }\n if (this.fileType && !this.options.fullScan) {\n this.onEnd = true;\n }\n };\n this.parser.onclosetag = () => {\n --this.nesting;\n };\n }\n write(text) {\n this.parser.write(text);\n }\n close() {\n this.parser.close();\n this.onEnd = true;\n }\n isValid() {\n return this.nesting === 0;\n }\n}\nexport const detectXml = {\n id: 'xml',\n detect: async (tokenizer) => {\n const buffer = new Uint8Array(512);\n // Increase sample size from 12 to 256.\n await tokenizer.peekBuffer(buffer, { length: 128, mayBeLess: true });\n const xmlDetection = isXml(buffer);\n if (xmlDetection.xml) {\n await tokenizer.ignore(xmlDetection.offset);\n const xmlTextDetector = new XmlTextDetector();\n const textDecoder = new TextDecoder(xmlDetection.encoding);\n do {\n const len = await tokenizer.readBuffer(buffer, { mayBeLess: true });\n const portion = buffer.subarray(0, len);\n const text = textDecoder.decode(portion);\n xmlTextDetector.write(text);\n if (len < buffer.length) {\n xmlTextDetector.close();\n }\n } while (!xmlTextDetector.onEnd);\n return xmlTextDetector.fileType ?? {\n ext: 'xml',\n mime: 'application/xml'\n };\n }\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-toggle-edit\":`${_vm.edit}`,\"disabled\":_vm.disabled},on:{\"click\":_vm.toggleEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{key:_vm.editSvg,attrs:{\"svg\":_vm.editSvg,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.edit ? _vm.t('settings', 'Done') : _vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import {XmlTextDetector} from '@file-type/xml';\n\nexport default function isSvg(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\tstring = string.trim();\n\n\tif (string.length === 0) {\n\t\treturn false;\n\t}\n\n\tconst xmlTextDetector = new XmlTextDetector();\n\txmlTextDetector.write(string);\n\treturn xmlTextDetector.isValid() && xmlTextDetector.fileType?.ext === 'svg';\n}\n","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=61782548\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcActionButtonGroup-BND4GQdv.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcActionButtonGroup-BND4GQdv.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionButtonGroup-BND4GQdv.css';\nimport { defineComponent } from \"vue\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { r as register, a as t } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister();\nconst _sfc_main = defineComponent({\n name: \"NcActionButtonGroup\",\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * Optional text shown below the button group\n */\n name: {\n required: false,\n default: void 0,\n type: String\n }\n },\n setup() {\n return {\n labelId: `nc-action-button-group-${GenRandomId()}`\n };\n },\n methods: {\n t\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"li\", { staticClass: \"nc-button-group-base\", attrs: { \"role\": _vm.isInSemanticMenu && \"presentation\" } }, [_vm.name ? _c(\"div\", { attrs: { \"id\": _vm.labelId } }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]) : _vm._e(), _c(\"ul\", { staticClass: \"nc-button-group-content\", attrs: { \"role\": \"group\", \"aria-labelledby\": _vm.name ? _vm.labelId : void 0 } }, [_vm._t(\"default\")], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcActionButtonGroup = __component__.exports;\nexport {\n NcActionButtonGroup as N\n};\n//# sourceMappingURL=NcActionButtonGroup-BteTNhIn.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcActionRadio-CodyhP86.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcActionRadio-CodyhP86.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionRadio-CodyhP86.css';\nimport Vue from \"vue\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { A as ActionGlobalMixin } from \"./actionGlobal-DqVa7c7G.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionRadio\",\n mixins: [ActionGlobalMixin],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * id attribute of the radio element\n */\n id: {\n type: String,\n default: () => \"action-\" + GenRandomId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n checked: {\n type: Boolean,\n default: void 0\n },\n /**\n * Checked state of the radio element\n * Boolean type removed in v9 - use String | Number instead\n */\n modelValue: {\n type: [Boolean, String, Number],\n default: false\n },\n /**\n * Define if this radio is part of a set.\n * Checking the radio will disable all the\n * others with the same name.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * value of the radio input\n */\n value: {\n type: [String, Number],\n default: \"\"\n },\n /**\n * disabled state of the radio element\n */\n disabled: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:checked\",\n /**\n * The radio state is changed\n * @type {boolean}\n */\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"change\"\n ],\n setup(props) {\n if (typeof props.modelValue === \"boolean\") {\n Vue.util.warn(\"[NcActionRadio] Boolean type of `modelValue` is deprecated and will be removed in next versions\");\n }\n const model = useModelMigration(\"checked\", \"update:checked\");\n return {\n model\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * aria-checked attribute for role=\"menuitemcheckbox\"\n *\n * @return {'true'|'false'|undefined} aria-checked value if needed\n */\n ariaChecked() {\n if (this.isInSemanticMenu) {\n return this.model ? \"true\" : \"false\";\n }\n return void 0;\n }\n },\n methods: {\n toggleInput(event) {\n this.$refs.label.click();\n },\n onChange(event) {\n this.$emit(\"change\", event);\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"action\", class: { \"action--disabled\": _vm.disabled }, attrs: { \"role\": _vm.isInSemanticMenu && \"presentation\" } }, [_c(\"span\", { staticClass: \"action-radio\", attrs: { \"role\": \"menuitemradio\", \"aria-checked\": _vm.ariaChecked } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.model, expression: \"model\" }], staticClass: \"radio action-radio__radio\", class: { focusable: _vm.isFocusable }, attrs: { \"id\": _vm.id, \"disabled\": _vm.disabled, \"name\": _vm.name, \"type\": \"radio\" }, domProps: { \"value\": _vm.value, \"checked\": _vm._q(_vm.model, _vm.value) }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;\n $event.preventDefault();\n return _vm.toggleInput.apply(null, arguments);\n }, \"change\": [function($event) {\n _vm.model = _vm.value;\n }, _vm.onChange] } }), _c(\"label\", { ref: \"label\", staticClass: \"action-radio__label\", attrs: { \"for\": _vm.id } }, [_vm._v(_vm._s(_vm.text))]), _vm._e()], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"8ddd08c0\"\n);\nconst NcActionRadio = __component__.exports;\nexport {\n NcActionRadio as N\n};\n//# sourceMappingURL=NcActionRadio-yAm71xxU.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcActionTextEditable-CasTVqIo.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcActionTextEditable-CasTVqIo.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionTextEditable-CasTVqIo.css';\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-fFcUPi2g.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { A as ArrowRight } from \"./ArrowRight-CY2b9hgN.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionTextEditable\",\n components: {\n ArrowLeft,\n ArrowRight\n },\n mixins: [ActionTextMixin],\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * id attribute of the checkbox element\n */\n id: {\n type: String,\n default: () => \"action-\" + GenRandomId(),\n validator: (id) => id.trim() !== \"\"\n },\n /**\n * disabled state of the text area\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: String,\n default: void 0\n },\n /**\n * value attribute of the input field\n */\n modelValue: {\n type: String,\n default: \"\"\n }\n },\n emits: [\n \"input\",\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:value\",\n /**\n * Emitted when the inputs value changes\n *\n * @type {string|Date}\n */\n \"update:modelValue\",\n /** Same as `update:modelValue` but with a different event name */\n \"update:model-value\",\n \"submit\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\");\n return {\n model,\n isRtl\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n computedId() {\n return GenRandomId();\n }\n },\n methods: {\n onInput(event) {\n this.$emit(\"input\", event);\n this.model = event.target.value;\n },\n onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n } else {\n return false;\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"action\", class: { \"action--disabled\": _vm.disabled } }, [_c(\"span\", { staticClass: \"action-text-editable\", on: { \"click\": _vm.onClick } }, [_vm._t(\"icon\", function() {\n return [_c(\"span\", { staticClass: \"action-text-editable__icon\", class: [_vm.isIconUrl ? \"action-text-editable__icon--url\" : _vm.icon], style: { backgroundImage: _vm.isIconUrl ? `url(${_vm.icon})` : null } })];\n }), _c(\"form\", { ref: \"form\", staticClass: \"action-text-editable__form\", attrs: { \"disabled\": _vm.disabled }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_c(\"input\", { staticClass: \"action-text-editable__submit\", attrs: { \"id\": _vm.id, \"type\": \"submit\" } }), _vm.name ? _c(\"label\", { staticClass: \"action-text-editable__name\", attrs: { \"for\": _vm.computedId } }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]) : _vm._e(), _c(\"textarea\", _vm._b({ class: [\"action-text-editable__textarea\", { focusable: _vm.isFocusable }], attrs: { \"id\": _vm.computedId, \"disabled\": _vm.disabled }, domProps: { \"value\": _vm.model }, on: { \"input\": _vm.onInput } }, \"textarea\", _vm.$attrs, false)), _c(\"label\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.disabled, expression: \"!disabled\" }], staticClass: \"action-text-editable__label\", attrs: { \"for\": _vm.id } }, [_vm.isRtl ? _c(\"ArrowLeft\", { attrs: { \"size\": 20 } }) : _c(\"ArrowRight\", { attrs: { \"size\": 20 } })], 1)])], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"a9c08a7c\"\n);\nconst NcActionTextEditable = __component__.exports;\nexport {\n NcActionTextEditable as N\n};\n//# sourceMappingURL=NcActionTextEditable-BYqqHPj2.mjs.map\n","import { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppContentDetails\"\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-content-details\" }, [_vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcAppContentDetails = __component__.exports;\nexport {\n NcAppContentDetails as default\n};\n//# sourceMappingURL=NcAppContentDetails.mjs.map\n","import { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppContentList\",\n props: {\n selection: {\n type: Boolean,\n default: false\n },\n showDetails: {\n type: Boolean,\n default: false\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-content-list\", class: { selection: _vm.selection, showdetails: _vm.showDetails } }, [_vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcAppContentList = __component__.exports;\nexport {\n NcAppContentList as default\n};\n//# sourceMappingURL=NcAppContentList.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationIconBullet-CeBYVy6t.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationIconBullet-CeBYVy6t.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcAppNavigationIconBullet-CeBYVy6t.css';\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationIconBullet\",\n props: {\n color: {\n type: String,\n required: true,\n validator(color) {\n return /^#?([0-9A-F]{3}){1,2}$/i.test(color);\n }\n }\n },\n emits: [\"click\"],\n computed: {\n formattedColor() {\n if (this.color.startsWith(\"#\")) {\n return this.color;\n }\n return \"#\" + this.color;\n }\n },\n methods: {\n onClick(e) {\n this.$emit(\"click\", e);\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-navigation-entry__icon-bullet\", on: { \"click\": _vm.onClick } }, [_c(\"div\", { style: { backgroundColor: _vm.formattedColor } })]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"938dadb1\"\n);\nconst NcAppNavigationIconBullet = __component__.exports;\nexport {\n NcAppNavigationIconBullet as default\n};\n//# sourceMappingURL=NcAppNavigationIconBullet.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationNewItem-D7wroqrc.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationNewItem-D7wroqrc.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcAppNavigationNewItem-D7wroqrc.css';\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-CacBXLGS.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationNewItem\",\n components: {\n NcInputConfirmCancel,\n NcLoadingIcon\n },\n props: {\n /**\n * The name of the element.\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Refers to the icon on the left, this prop accepts a class\n * like 'icon-category-enabled'.\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * Displays a loading animated icon on the left of the element\n * instead of the icon.\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Only for 'editable' items, sets label for the edit action button.\n */\n editLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Sets the placeholder text for the editing form.\n */\n editPlaceholder: {\n type: String,\n default: \"\"\n }\n },\n emits: [\"new-item\"],\n data() {\n return {\n newItemValue: \"\",\n newItemActive: false\n };\n },\n methods: {\n handleNewItem() {\n if (!this.loading) {\n this.newItemActive = true;\n this.$nextTick(() => {\n this.$refs.newItemInput.focusInput();\n });\n }\n },\n cancelNewItem() {\n this.newItemActive = false;\n },\n handleNewItemDone() {\n this.$emit(\"new-item\", this.newItemValue);\n this.newItemValue = \"\";\n this.newItemActive = false;\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"app-navigation-entry\", class: {\n \"app-navigation-entry--newItemActive\": _vm.newItemActive\n } }, [_c(\"button\", { staticClass: \"app-navigation-entry-button\", on: { \"click\": _vm.handleNewItem } }, [_c(\"span\", { staticClass: \"app-navigation-entry-icon\", class: { [_vm.icon]: !_vm.loading } }, [_vm.loading ? _c(\"NcLoadingIcon\") : _vm._t(\"icon\")], 2), !_vm.newItemActive ? _c(\"span\", { staticClass: \"app-navigation-new-item__name\", attrs: { \"title\": _vm.name } }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]) : _vm._e(), _vm.newItemActive ? _c(\"span\", { staticClass: \"newItemContainer\" }, [_c(\"NcInputConfirmCancel\", { ref: \"newItemInput\", attrs: { \"placeholder\": _vm.editPlaceholder !== \"\" ? _vm.editPlaceholder : _vm.name }, on: { \"cancel\": _vm.cancelNewItem, \"confirm\": _vm.handleNewItemDone }, model: { value: _vm.newItemValue, callback: function($$v) {\n _vm.newItemValue = $$v;\n }, expression: \"newItemValue\" } })], 1) : _vm._e()])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"46fee9ac\"\n);\nconst NcAppNavigationNewItem = __component__.exports;\nexport {\n NcAppNavigationNewItem as N\n};\n//# sourceMappingURL=NcAppNavigationNewItem-DGjgp78o.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationSettings-vd47rlNY.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationSettings-vd47rlNY.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcMentionBubble-CB5c5ue2.css';\nimport '../assets/NcAppNavigationSettings-vd47rlNY.css';\nimport { r as register, x as t45, a as t } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport clickOutsideOptions from \"../Mixins/clickOutsideOptions.mjs\";\nimport \"../Composables/useIsFullscreen.mjs\";\nimport \"../Composables/useIsMobile.mjs\";\nimport \"@nextcloud/router\";\n/* empty css */\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport \"vue\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/capabilities\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nregister(t45);\nconst _sfc_main$1 = {\n name: \"CogIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cog-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst Cog = __component__$1.exports;\nconst _sfc_main = {\n directives: {\n ClickOutside: vOnClickOutside\n },\n components: {\n Cog\n },\n mixins: [\n clickOutsideOptions\n ],\n props: {\n name: {\n type: String,\n required: false,\n default: t(\"Settings\")\n }\n },\n data() {\n return {\n open: false\n };\n },\n computed: {\n clickOutsideConfig() {\n return [\n this.closeMenu,\n this.clickOutsideOptions\n ];\n }\n },\n methods: {\n toggleMenu() {\n this.open = !this.open;\n },\n closeMenu() {\n this.open = false;\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { directives: [{ name: \"click-outside\", rawName: \"v-click-outside\", value: _vm.clickOutsideConfig, expression: \"clickOutsideConfig\" }], class: { open: _vm.open }, attrs: { \"id\": \"app-settings\" } }, [_c(\"div\", { attrs: { \"id\": \"app-settings__header\" } }, [_c(\"button\", { staticClass: \"settings-button\", attrs: { \"type\": \"button\", \"aria-expanded\": _vm.open ? \"true\" : \"false\", \"aria-controls\": \"app-settings__content\" }, on: { \"click\": _vm.toggleMenu } }, [_c(\"Cog\", { staticClass: \"settings-button__icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"settings-button__label\" }, [_vm._v(_vm._s(_vm.name))])], 1)]), _c(\"Transition\", { attrs: { \"name\": \"slide-up\" } }, [_c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.open, expression: \"open\" }], attrs: { \"id\": \"app-settings__content\" } }, [_vm._t(\"default\")], 2)])], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"d278a327\"\n);\nconst NcAppNavigationSettings = __component__.exports;\nexport {\n NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-t9JntjoG.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcBlurHash-7aGtE-_T.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcBlurHash-7aGtE-_T.css\";\n export default content && content.locals ? content.locals : undefined;\n","import PQueue from \"p-queue\";\nconst queue = new PQueue({ concurrency: 5 });\nfunction preloadImage(url) {\n const { resolve, promise } = Promise.withResolvers();\n queue.add(() => {\n const image = new Image();\n image.onerror = () => resolve(false);\n image.onload = () => resolve(true);\n image.src = url;\n return promise;\n });\n return promise;\n}\nexport {\n preloadImage\n};\n//# sourceMappingURL=preloadImage.mjs.map\n","import '../assets/NcBlurHash-7aGtE-_T.css';\nimport { decode } from \"blurhash\";\nimport { ref, watch, nextTick } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { preloadImage } from \"../Functions/preloadImage.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst fadeTransition = \"_fadeTransition_13rtj_2\";\nconst fadeTransitionActive = \"_fadeTransitionActive_13rtj_6\";\nconst style0 = {\n fadeTransition,\n fadeTransitionActive\n};\nconst _sfc_main = {\n __name: \"NcBlurHash\",\n props: {\n /**\n * The blur hash value to use.\n */\n hash: {\n required: true,\n type: String\n },\n /**\n * This is normally not needed, but if this blur hash is not only intended\n * for decorative purpose, descriptive text should be passed for accessibility.\n */\n alt: {\n type: String,\n default: \"\"\n },\n /**\n * Optional an image source to load, during the load the blur hash is shown.\n * As soon as it is loaded the image will be shown instead.\n */\n src: {\n type: String,\n default: \"\"\n }\n },\n emits: [\n /**\n * Emitted when the image (`src`) has been loaded.\n */\n \"load\"\n ],\n setup(__props, { emit }) {\n const props = __props;\n const canvas = ref();\n const imageLoaded = ref(false);\n watch(() => props.hash, drawBlurHash);\n watch(imageLoaded, () => {\n if (imageLoaded.value === false) {\n nextTick(() => drawBlurHash());\n }\n }, { immediate: true });\n watch(() => props.src, () => {\n imageLoaded.value = false;\n if (props.src) {\n preloadImage(props.src).then((success) => {\n imageLoaded.value = success;\n emit(\"load\", success);\n });\n }\n }, { immediate: true });\n function drawBlurHash() {\n if (imageLoaded.value) {\n return;\n }\n if (!props.hash) {\n logger.error(\"Invalid BlurHash value\");\n return;\n }\n if (canvas.value === void 0) {\n logger.error(\"BlurHash canvas not available\");\n return;\n }\n const { height, width } = canvas.value;\n const pixels = decode(props.hash, width, height);\n const ctx = canvas.value.getContext(\"2d\");\n if (ctx === null) {\n logger.error(\"Cannot create context for BlurHash canvas\");\n return;\n }\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n }\n return { __sfc: true, props, emit, canvas, imageLoaded, drawBlurHash };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"Transition\", { attrs: { \"css\": _vm.src ? void 0 : false, \"enter-active-class\": _vm.$style.fadeTransition, \"leave-active-class\": _vm.$style.fadeTransition, \"enter-class\": _vm.$style.fadeTransitionActive, \"leave-to-class\": _vm.$style.fadeTransitionActive } }, [!_setup.imageLoaded ? _c(\"canvas\", { ref: \"canvas\", attrs: { \"aria-hidden\": _vm.alt ? null : \"true\", \"aria-label\": _vm.alt } }) : _c(\"img\", { attrs: { \"alt\": _vm.alt, \"src\": _vm.src } })]);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n \"$style\": style0\n};\nfunction _sfc_injectStyles(ctx) {\n for (var key in __cssModules) {\n this[key] = __cssModules[key];\n }\n}\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n _sfc_injectStyles,\n null\n);\nconst NcBlurHash = __component__.exports;\nexport {\n NcBlurHash as N\n};\n//# sourceMappingURL=NcBlurHash-do2wxY-0.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcCollectionList-yjTCAR46.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcCollectionList-yjTCAR46.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcCollectionList-yjTCAR46.css';\nimport debounce from \"debounce\";\nimport { ref, set } from \"vue\";\nimport { r as register, L as t6, M as t26, a as t } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-CTzwxkvv.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DVUm4oCe.mjs\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport { N as NcActions } from \"./NcActions-DEZO46mP.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-Gpv56vuS.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t6);\nregister(t26);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n },\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\"remove-resource\", \"rename-collection\"],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"remove-resource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"rename-collection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"should-shake\": _vm.error }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.resources.slice(0, 2), function(resource) {\n return _c(_vm.getComponent(resource).component, { key: resource.type + \"|\" + resource.id, tag: \"component\", class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } })]);\n }), 1) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"Hide details\") : _vm.t(\"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(_vm.getComponent(resource).component, { tag: \"component\", attrs: { \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })], 1);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"878b819f\"\n);\nconst NcCollectionListItem = __component__$1.exports;\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n set(storedCollections, \"value\", collections);\n };\n const addCollection = (collection) => {\n set(storedCollections, \"value\", [...storedCollections.value, collection]);\n };\n const removeCollection = (collectionId) => {\n set(storedCollections, \"value\", storedCollections.value.filter((item) => item.id !== collectionId));\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n set(storedCollections.value, index, collection);\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n const addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n };\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter(\n (collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type)\n );\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n console.error(t(\"Failed to rename the project\"), e);\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"NcCollectionListItem\", { key: collection.id, attrs: { \"collection\": collection, \"error\": _vm.collectionsError[collection.id] }, on: { \"rename-collection\": _vm.renameCollectionFromItem, \"remove-resource\": _vm.removeResourceFromCollection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"efe8beb8\"\n);\nconst NcCollectionList = __component__.exports;\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-e-iLLNzl.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcGuestContent-B0ivUQHg.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcGuestContent-B0ivUQHg.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcGuestContent-B0ivUQHg.css';\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcGuestContent\",\n mounted() {\n document.getElementById(\"content\").classList.add(\"nc-guest-content\");\n },\n destroyed() {\n document.getElementById(\"content\").classList.remove(\"nc-guest-content\");\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { attrs: { \"id\": \"guest-content-vue\" } }, [_vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"cbad78fb\"\n);\nconst NcGuestContent = __component__.exports;\nexport {\n NcGuestContent as default\n};\n//# sourceMappingURL=NcGuestContent.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcHeaderButton-Dr6MgPDQ.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcHeaderButton-Dr6MgPDQ.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcHeaderButton-Dr6MgPDQ.css';\nimport { G as GenRandomId } from \"../chunks/GenRandomId-CMooMQt0.mjs\";\nimport NcButton from \"./NcButton.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcHeaderButton\",\n components: {\n NcButton\n },\n props: {\n /**\n * Unique id for this menu\n */\n id: {\n type: String,\n required: true\n },\n /**\n * `aria-label` attribute of the button\n */\n ariaLabel: {\n type: String,\n required: true\n },\n /**\n * Additional visually hidden description text for the button\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\n \"click\"\n ],\n data() {\n return {\n descriptionId: GenRandomId()\n };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"header-menu\", attrs: { \"id\": _vm.id } }, [_c(\"NcButton\", { staticClass: \"header-menu__trigger\", attrs: { \"aria-label\": _vm.ariaLabel, \"aria-describedby\": _vm.descriptionId, \"size\": \"large\", \"variant\": \"tertiary-no-background\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.$emit(\"click\", $event);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"icon\")];\n }, proxy: true }], null, true) }), _vm.description ? _c(\"span\", { staticClass: \"header-menu__description hidden-visually\", attrs: { \"id\": _vm.descriptionId } }, [_vm._v(\" \" + _vm._s(_vm.description) + \" \")]) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"20fd51f9\"\n);\nconst NcHeaderButton = __component__.exports;\nexport {\n NcHeaderButton as default\n};\n//# sourceMappingURL=NcHeaderButton.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcRelatedResourcesPanel-DhStLIO2.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcRelatedResourcesPanel-DhStLIO2.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcRelatedResourcesPanel-DhStLIO2.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-DFQfzh63.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-C7Dy9Bph.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Cb-cPj1R.mjs\";\nimport { r as register, S as t39, a as t, T as t36, U as t8 } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nconst _sfc_main$4 = {\n name: \"AccountGroupIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$4 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon account-group-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M12,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst AccountGroup = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"OpenInNewIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$3 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon open-in-new-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst OpenInNew = __component__$3.exports;\nregister(t39);\nconst teamResourceProviders = getCapabilities()?.circles?.teamResourceProviders ?? [];\nconst _sfc_main$2 = {\n name: \"NcTeamResources\",\n components: {\n AccountGroup,\n ChevronDown,\n ChevronUp,\n OpenInNew,\n NcButton,\n NcIconSvgWrapper\n },\n props: {\n providerId: {\n type: String,\n default: null\n },\n itemId: {\n type: [String, Number],\n default: null\n }\n },\n data() {\n return {\n appEnabled: OC?.appswebroots?.circles !== void 0 && (OC.config.version.split(\".\")[0] ?? 0) >= 29,\n loading: false,\n teamResources: null,\n teamOpen: []\n };\n },\n computed: {\n isVisible() {\n return !this.loading && this.teamResources?.length > 0;\n },\n teamProviders() {\n return (teamId) => {\n const team = this.teamResources.find((t2) => t2.teamId === teamId);\n return team.resources?.reduce((acc, resource) => {\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n if (!acc[resource.provider.id]) {\n acc[resource.provider.id] = resource.provider;\n acc[resource.provider.id].resources = [];\n }\n if (resource.provider.id === this.providerId && resource.id === String(this.itemId)) {\n return acc;\n }\n acc[resource.provider.id].resources.push(resource);\n return acc;\n }, {});\n };\n },\n open() {\n return (teamId) => {\n return this.teamOpen.indexOf(teamId) !== -1;\n };\n }\n },\n watch: {\n providerId() {\n this.fetchTeamResources();\n },\n itemId() {\n this.fetchTeamResources();\n }\n },\n created() {\n this.fetchTeamResources();\n },\n methods: {\n t,\n async fetchTeamResources() {\n if (!teamResourceProviders.includes(this.providerId)) {\n return;\n }\n try {\n this.loading = true;\n const response = await axios.get(generateOcsUrl(`/teams/resources/${this.providerId}/${this.itemId}`));\n this.teamResources = response.data.ocs.data.teams;\n this.teamOpen = [this.teamResources[0]?.teamId];\n } catch (e) {\n this.teamResources = null;\n console.error(e);\n } finally {\n this.loading = false;\n }\n },\n toggleOpen(teamId, open) {\n if (open) {\n this.teamOpen.push(teamId);\n } else {\n this.teamOpen.splice(this.teamOpen.indexOf(teamId), 1);\n }\n }\n }\n};\nvar _sfc_render$2 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _vm.appEnabled && _vm.isVisible ? _c(\"div\", { staticClass: \"team-resources\" }, [_c(\"h5\", { staticClass: \"team-resources__header\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Related team resources\")) + \" \")]), _vm._l(_vm.teamResources, function(team) {\n return _c(\"details\", { key: team.teamId, staticClass: \"related-team\", attrs: { \"name\": \"Team resources\", \"open\": _vm.open(team.teamId) }, on: { \"toggle\": (event) => _vm.toggleOpen(team.teamId, event.target.open) } }, [_c(\"summary\", { staticClass: \"related-team__header\" }, [_c(\"h5\", { staticClass: \"related-team__name\" }, [_c(\"AccountGroup\", { attrs: { \"size\": 20 } }), _vm._v(\" \" + _vm._s(team.displayName) + \" \")], 1), _c(\"NcButton\", { attrs: { \"aria-label\": _vm.t(\"View team\"), \"href\": team.link, \"title\": _vm.t(\"View team\"), \"variant\": \"tertiary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"OpenInNew\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, true) }), _vm.open(team.teamId) ? _c(\"ChevronUp\", { attrs: { \"size\": 20 } }) : _c(\"ChevronDown\", { attrs: { \"size\": 20 } })], 1), _c(\"div\", _vm._l(_vm.teamProviders(team.teamId), function(provider) {\n return _c(\"div\", { key: provider.id, staticClass: \"related-team-provider\" }, [provider.resources.length > 0 ? _c(\"h6\", [_vm._v(\" \" + _vm._s(provider.name) + \" \")]) : _vm._e(), _c(\"ul\", _vm._l(provider.resources, function(resource) {\n return _c(\"li\", { key: resource.url, staticClass: \"related-team-resource\" }, [_c(\"a\", { staticClass: \"related-team-resource__link\", attrs: { \"href\": resource.url } }, [resource.iconEmoji ? _c(\"span\", { staticClass: \"resource__icon\" }, [_vm._v(\" \" + _vm._s(resource.iconEmoji) + \" \")]) : resource.iconSvg ? _c(\"NcIconSvgWrapper\", { staticClass: \"resource__icon\", attrs: { \"svg\": resource.iconSvg, \"size\": 20 } }) : resource.iconURL ? _c(\"span\", { staticClass: \"resource__icon\" }, [_c(\"img\", { attrs: { \"src\": resource.iconURL, \"alt\": \"\" } })]) : _vm._e(), _c(\"span\", { staticClass: \"resource__name\" }, [_vm._v(\" \" + _vm._s(resource.label) + \" \")])], 1)]);\n }), 0)]);\n }), 0)]);\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"9e46b7b2\"\n);\nconst NcTeamResources = __component__$2.exports;\nregister(t36);\nconst _sfc_main$1 = {\n name: \"NcResource\",\n components: {\n NcButton\n },\n props: {\n icon: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n url: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n labelTranslated: t('Open link to \"{resourceName}\"', { resourceName: this.name })\n };\n },\n computed: {\n route() {\n return getRoute(this.$router, this.url);\n }\n },\n methods: {\n t\n }\n};\nvar _sfc_render$1 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"resource\" }, [_c(\"NcButton\", { staticClass: \"resource__button\", attrs: { \"aria-label\": _vm.labelTranslated, \"to\": _vm.route, \"href\": _vm.route ? null : _vm.url, \"variant\": \"tertiary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"div\", { staticClass: \"resource__icon\" }, [_c(\"img\", { attrs: { \"src\": _vm.icon } })])];\n }, proxy: true }]) }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"77c38062\"\n);\nconst NcResource = __component__$1.exports;\nregister(t8);\nconst _sfc_main = {\n name: \"NcRelatedResourcesPanel\",\n components: {\n NcResource,\n NcTeamResources\n },\n props: {\n /**\n * The provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n providerId: {\n type: String,\n default: null\n },\n /**\n * The item id which uniquely identities the e.g. Calendar event, Deck board, file, Talk room, etc.\n */\n itemId: {\n type: [String, Number],\n default: null\n },\n /**\n * Limits to specific resource type. i.e. any provider id implemented with `\\OCA\\RelatedResources\\IRelatedResourceProvider::getProviderId()`\n */\n resourceType: {\n type: String,\n default: \"\"\n },\n /**\n * Set the maximum number of resources to load\n */\n limit: {\n type: Number,\n default: 0\n },\n /**\n * Only used by the files sidebar\n *\n * File info is passed when registered with `OCA.Sharing.ShareTabSections.registerSection()`\n */\n fileInfo: {\n type: Object,\n default: null\n },\n /**\n * Make the header name dynamic\n */\n header: {\n type: String,\n default: t(\"Related resources\")\n },\n description: {\n type: String,\n default: t(\"Anything shared with the same group of people will show up here\")\n },\n /**\n * If this element is used on a primary element set to true for primary styling.\n */\n primary: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"has-error\",\n \"has-resources\"\n ],\n data() {\n return {\n appEnabled: OC?.appswebroots?.related_resources !== void 0,\n loading: false,\n error: null,\n resources: []\n };\n },\n computed: {\n isVisible() {\n if (this.loading) {\n return false;\n }\n return this.error ?? this.resources.length > 0;\n },\n subline() {\n if (this.error) {\n return t(\"Error getting related resources. Please contact your system administrator if you have any questions.\");\n }\n return this.description;\n },\n hasResourceInfo() {\n if (this.providerId !== null && this.itemId !== null) {\n return true;\n }\n if (this.fileInfo !== null) {\n return true;\n }\n return false;\n },\n isFiles() {\n return this.fileInfo?.id !== void 0;\n },\n url() {\n let providerId = null;\n let itemId = null;\n if (this.isFiles) {\n providerId = \"files\";\n itemId = this.fileInfo.id;\n } else {\n providerId = this.providerId;\n itemId = this.itemId;\n }\n return generateOcsUrl(\"/apps/related_resources/related/{providerId}?itemId={itemId}&resourceType={resourceType}&limit={limit}&format=json\", {\n providerId,\n itemId,\n resourceType: this.resourceType,\n limit: this.limit\n });\n }\n },\n watch: {\n providerId() {\n this.fetchRelatedResources();\n },\n itemId() {\n this.fetchRelatedResources();\n },\n fileInfo() {\n this.fetchRelatedResources();\n },\n error(error) {\n this.$emit(\"has-error\", Boolean(error));\n },\n resources(resources) {\n this.$emit(\"has-resources\", resources.length > 0);\n }\n },\n created() {\n this.fetchRelatedResources();\n },\n methods: {\n t,\n async fetchRelatedResources() {\n if (!this.appEnabled || !this.hasResourceInfo) {\n return;\n }\n this.loading = true;\n this.error = null;\n this.resources = [];\n try {\n const response = await axios.get(this.url);\n this.resources = response.data.ocs?.data;\n } catch (e) {\n this.error = e;\n console.error(e);\n } finally {\n this.loading = false;\n }\n }\n }\n};\nvar _sfc_render = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", [_c(\"NcTeamResources\", { attrs: { \"provider-id\": _vm.providerId, \"item-id\": _vm.itemId } }), _vm.appEnabled && _vm.isVisible ? _c(\"div\", { staticClass: \"related-resources\" }, [_c(\"div\", { staticClass: \"related-resources__header\" }, [_c(\"h5\", [_vm._v(_vm._s(_vm.header))]), _c(\"p\", [_vm._v(_vm._s(_vm.subline))])]), _vm._l(_vm.resources, function(resource) {\n return _c(\"NcResource\", { key: resource.itemId, staticClass: \"related-resources__entry\", attrs: { \"icon\": resource.icon, \"name\": resource.title, \"url\": resource.url } });\n })], 2) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"badd46a9\"\n);\nconst NcRelatedResourcesPanel = __component__.exports;\nexport {\n NcRelatedResourcesPanel as N\n};\n//# sourceMappingURL=NcRelatedResourcesPanel-BtfnMS2U.mjs.map\n","import { defineComponent } from \"vue\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = defineComponent({\n name: \"NcSavingIndicatorIcon\",\n props: {\n /**\n * Specify the size of the saving icon.\n */\n size: {\n type: Number,\n default: 20\n },\n /**\n * Specify what is saved.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Set to true when saving is in progress.\n */\n saving: {\n type: Boolean,\n default: false,\n required: false\n },\n /**\n * Set to true if an error occured while saving.\n */\n error: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n emits: [\"click\"],\n computed: {\n indicatorColor() {\n return this.error ? \"var(--color-error)\" : this.saving ? \"var(--color-primary-element)\" : \"none\";\n }\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"span\", { staticClass: \"material-design-icon\", attrs: { \"aria-label\": _vm.name, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"fill\": _vm.indicatorColor, \"d\": \"m19 15a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4z\" } }), _c(\"path\", { attrs: { \"fill\": \"currentColor\", \"d\": \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" } }, [_vm.name ? _c(\"title\", [_vm._v(_vm._s(_vm.name))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst NcSavingIndicatorIcon = __component__.exports;\nexport {\n NcSavingIndicatorIcon as N\n};\n//# sourceMappingURL=NcSavingIndicatorIcon-nv1147dk.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcSelectUsers-CRH00RA2.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcSelectUsers-CRH00RA2.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcSelectUsers-CRH00RA2.css';\nimport { ref, watch } from \"vue\";\nimport { r as register, i as t43, d as t15, a as t } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-NVu4D1gV.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DVUm4oCe.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t15, t43);\nconst _sfc_main = {\n __name: \"NcSelectUsers\",\n props: {\n /**\n * `aria-label` for the clear input button\n */\n ariaLabelClearSelected: {\n type: String,\n default: t(\"Clear selected\")\n },\n /**\n * `aria-label` for the listbox element\n */\n ariaLabelListbox: {\n type: String,\n default: t(\"Options\")\n },\n /**\n * Allows to customize the `aria-label` for the deselect-option button\n * The default is \"Deselect \" + optionLabel\n * @type {(optionLabel: string) => string}\n */\n ariaLabelDeselectOption: {\n type: Function,\n default: (optionLabel) => t(\"Deselect {option}\", { option: optionLabel })\n },\n /**\n * Keep the dropdown open after selecting an entry.\n */\n keepOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the component\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Callback to determine if the provided option should match the current search text.\n * Used to determine if the option should be displayed.\n *\n * By default it filters by the `displayName` and `subname` properties of the user\n * option object unless this prop is set explicitly\n */\n filterBy: {\n type: Function,\n default: null\n },\n /**\n * Input element id\n */\n inputId: {\n type: String,\n default: () => GenRandomId()\n },\n /**\n * Visible label for the input element\n *\n * @default 'Select account'\n */\n inputLabel: {\n type: String,\n default: t(\"Select account\")\n },\n /**\n * Pass true if you are using an external label.\n * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Show a loading icon.\n *\n * @default false\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Allow selection of multiple options\n *\n * @default false\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Disable automatic wrapping when selected options overflow the width.\n *\n * @default false\n */\n noWrap: {\n type: Boolean,\n default: false\n },\n /**\n * Array of users.\n *\n * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n */\n options: {\n type: Array,\n default: () => []\n },\n /**\n * Placeholder text.\n */\n placeholder: {\n type: String,\n default: \"\"\n },\n /**\n * Enable if a value is required for native form validation\n */\n required: {\n type: Boolean,\n default: false\n },\n /**\n * Currently selected value\n *\n * The `v-model` directive may be used for two-way data binding\n */\n modelValue: {\n type: Object,\n default: null\n }\n },\n emits: [\"search\", \"update:modelValue\"],\n setup(__props, { emit }) {\n const props = __props;\n const search = ref(\"\");\n watch(search, () => {\n emit(\"search\", search.value);\n });\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function localFilterBy(option, label, search2) {\n if (props.filterBy) {\n return props.filterBy;\n }\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return { __sfc: true, props, emit, search, clickableArea, gridBaseLine, avatarSize, localFilterBy, NcListItemIcon, NcSelect };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcSelect, _vm._b({ staticClass: \"nc-select-users\", attrs: { \"filter-by\": _setup.localFilterBy, \"label\": \"displayName\" }, on: { \"search\": function($event) {\n _setup.search = $event;\n }, \"update:model-value\": function($event) {\n return _vm.$emit(\"update:modelValue\", $event);\n } }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [_c(_setup.NcListItemIcon, _vm._b({ attrs: { \"avatar-size\": 32, \"name\": option.displayName, \"search\": _setup.search } }, \"NcListItemIcon\", option, false))];\n } }, { key: \"selected-option\", fn: function(selectedOption) {\n return [_c(_setup.NcListItemIcon, _vm._b({ attrs: { \"avatar-size\": _setup.avatarSize, \"name\": selectedOption.displayName, \"no-margin\": \"\", \"search\": _setup.search } }, \"NcListItemIcon\", selectedOption, false))];\n } }]) }, \"NcSelect\", _vm.$props, false));\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ecb8da4e\"\n);\nconst NcSelectUsers = __component__.exports;\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-BQGjCB8x.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsInputText-Bsp_6DjJ.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcSettingsInputText-Bsp_6DjJ.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcSettingsInputText-Bsp_6DjJ.css';\nimport { r as register, h as t47, a as t } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-EhAWvqDD.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t47);\nconst _sfc_main = {\n name: \"NcSettingsInputText\",\n model: {\n prop: \"value\",\n event: \"update:value\"\n },\n props: {\n /**\n * label of the select group element\n */\n label: {\n type: String,\n required: true\n },\n /**\n * hint of the select group input\n */\n hint: {\n type: String,\n default: \"\"\n },\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n * @deprecated\n */\n value: {\n type: String,\n default: void 0\n },\n /**\n * value of the select group input\n */\n modelValue: {\n type: String,\n default: \"\"\n },\n /**\n * disabled state of the settings select group input\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * id attribute of the select group element\n */\n id: {\n type: String,\n default: () => \"settings-input-text-\" + GenRandomId(),\n validator: (id) => id.trim() !== \"\"\n }\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n * @deprecated\n */\n \"update:value\",\n /**\n * Emitted when the inputs value changes\n *\n * @type {string}\n */\n \"update:modelValue\",\n /* Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"input\",\n \"submit\",\n \"change\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\");\n return {\n model\n };\n },\n data() {\n return {\n submitTranslated: t(\"Submit\")\n };\n },\n computed: {\n /**\n * @return {string}\n */\n idSubmit() {\n return this.id + \"-submit\";\n }\n },\n methods: {\n onInput(event) {\n this.$emit(\"input\", event);\n this.model = event.target.value;\n },\n onSubmit(event) {\n if (!this.disabled) {\n this.$emit(\"submit\", event);\n }\n },\n onChange(event) {\n this.$emit(\"change\", event);\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"form\", { ref: \"form\", attrs: { \"disabled\": _vm.disabled }, on: { \"submit\": function($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_c(\"div\", { staticClass: \"input-wrapper\" }, [_c(\"label\", { staticClass: \"action-input__label\", attrs: { \"for\": _vm.id } }, [_vm._v(_vm._s(_vm.label))]), _c(\"input\", { attrs: { \"id\": _vm.id, \"type\": \"text\", \"disabled\": _vm.disabled }, domProps: { \"value\": _vm.model }, on: { \"input\": _vm.onInput, \"change\": _vm.onChange } }), _c(\"input\", { staticClass: \"action-input__submit\", attrs: { \"id\": _vm.idSubmit, \"type\": \"submit\" }, domProps: { \"value\": _vm.submitTranslated } }), _vm.hint ? _c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.hint) + \" \")]) : _vm._e()])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"0907eb0a\"\n);\nconst NcSettingsInputText = __component__.exports;\nexport {\n NcSettingsInputText as N\n};\n//# sourceMappingURL=NcSettingsInputText-t1FMnLKA.mjs.map\n","function checkIfDarkTheme(el = document.body) {\n const backgroundInvertIfDark = window.getComputedStyle(el).getPropertyValue(\"--background-invert-if-dark\");\n if (backgroundInvertIfDark !== void 0) {\n return backgroundInvertIfDark === \"invert(100%)\";\n }\n return false;\n}\nconst isDarkTheme = checkIfDarkTheme();\nexport {\n checkIfDarkTheme,\n isDarkTheme\n};\n//# sourceMappingURL=isDarkTheme.mjs.map\n","import { ref, watch, readonly } from \"vue\";\nimport { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { checkIfDarkTheme } from \"../Functions/isDarkTheme.mjs\";\nfunction useIsDarkThemeElement(el = document.body) {\n const isDarkTheme = ref(checkIfDarkTheme(el));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(el);\n }\n useMutationObserver(el, updateIsDarkTheme, { attributes: true });\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=useIsDarkTheme.mjs.map\n","import { N as NcActionButton } from \"./chunks/NcActionButton-Gpv56vuS.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-BteTNhIn.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-DSMKeccY.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-DuwAyOU-.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-yAm71xxU.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-DEZO46mP.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-BYqqHPj2.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-LEyo6v0_.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-H8Gvbq5E.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-CkIBHQGQ.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-CjhP63uG.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport NcAppNavigationNew from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-DGjgp78o.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-DTW6CtnU.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-t9JntjoG.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-C5uE1lh5.mjs\";\nimport NcAppSettingsSection from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-C_C76E_8.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-G2VD8Nfl.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-CTzwxkvv.mjs\";\nimport { u } from \"./chunks/NcAvatar-CTzwxkvv.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-do2wxY-0.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-c6GeY5FH.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CPmhYEn-.mjs\";\nimport NcButton from \"./Components/NcButton.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-Di9rSADK.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-e-iLLNzl.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-C0sDksCi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-zoa5Bvb_.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-CDfRYl8B.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-C-hYC14S.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-jNmJHCzO.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-BR6BBvML.mjs\";\nimport { u as u2 } from \"./chunks/NcDateTime-BR6BBvML.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-Bg9U6bnj.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-BWYKv9fM.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-B7hMntv4.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport NcHeaderButton from \"./Components/NcHeaderButton.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-Dj7jeq88.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-Bz6q9mZw.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Cb-cPj1R.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-DTtUueUZ.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-CM-2Sxu0.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-NVu4D1gV.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-CTKHRVC4.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-kYsewfff.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-DegJ2JjE.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-BtfnMS2U.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-Dpk-sL3D.mjs\";\nimport { r } from \"./chunks/index-Dpk-sL3D.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-nJL0Ml6f.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-Br5t5ga_.mjs\";\nimport { N, h, d, i, b, r as r2, c, a } from \"./chunks/index-56SXuvlv.mjs\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a as a2, g, b as b2, c as c2, d as d2, s } from \"./chunks/referencePickerModal-DN7C4An4.mjs\";\nimport \"unist-util-visit\";\nimport \"unist-builder\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/sharing/public\";\nimport \"@nextcloud/auth\";\nimport { N as NcSelect } from \"./chunks/NcSelect-DVUm4oCe.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DRANdaIf.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-nv1147dk.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-BcBE70eK.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-BQGjCB8x.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-t1FMnLKA.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-EC3SmiDX.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaxnrQ1h.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-BHERsE_g.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-t60uHoNB.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-W_wjP2lY.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-WEKmuaoU.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e, g as g2, s as s2 } from \"./chunks/emoji-BY_D0V5K.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { u as u3 } from \"./chunks/usernameToColor-DJfepfog.mjs\";\nimport { directive } from \"./Directives/Focus.mjs\";\nimport { directive as directive$1 } from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a2 as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b2 as getProvider,\n c2 as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n d as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n b as registerCustomPickerElement,\n r2 as registerWidget,\n c as renderCustomPickerElement,\n a as renderWidget,\n r as richEditor,\n d2 as searchProvider,\n s2 as setCurrentSkinTone,\n s as sortProviders,\n spawnDialog,\n u2 as useFormatDateTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n u3 as usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { formatFileSize } from '@nextcloud/files'\nimport { useFormatDateTime } from '@nextcloud/vue'\n\nexport default {\n\tprops: {\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tsettings: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tlanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tsetup(props) {\n\t\tconst { formattedFullTime } = useFormatDateTime(props.user.firstLoginTimestamp * 1000, {\n\t\t\trelativeTime: false,\n\t\t\tformat: {\n\t\t\t\ttimeStyle: 'short',\n\t\t\t\tdateStyle: 'short',\n\t\t\t},\n\t\t})\n\t\treturn {\n\t\t\tformattedFullTime,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tavailableGroups: this.user.groups.map(id => ({ id, name: id })),\n\t\t\tavailableSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),\n\t\t\tuserGroups: this.user.groups.map(id => ({ id, name: id })),\n\t\t\tuserSubAdminGroups: this.user.subadmin.map(id => ({ id, name: id })),\n\t\t}\n\t},\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\t/* QUOTA MANAGEMENT */\n\t\tusedSpace() {\n\t\t\tconst quotaUsed = this.user.quota.used > 0 ? this.user.quota.used : 0\n\t\t\treturn t('settings', '{size} used', { size: formatFileSize(quotaUsed, true) })\n\t\t},\n\n\t\tusedQuota() {\n\t\t\tlet quota = this.user.quota.quota\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100))\n\t\t\t} else {\n\t\t\t\tconst usedInGB = this.user.quota.used / (10 * Math.pow(2, 30))\n\t\t\t\t// asymptotic curve approaching 50% at 10GB to visualize used stace with infinite quota\n\t\t\t\tquota = 95 * (1 - (1 / (usedInGB + 1)))\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota\n\t\t},\n\n\t\t// Mapping saved values to objects\n\t\tuserQuota() {\n\t\t\tif (this.user.quota.quota >= 0) {\n\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\tconst humanQuota = formatFileSize(this.user.quota.quota)\n\t\t\t\tconst userQuota = this.quotaOptions.find(quota => quota.id === humanQuota)\n\t\t\t\treturn userQuota || { id: humanQuota, label: humanQuota }\n\t\t\t} else if (this.user.quota.quota === 'default') {\n\t\t\t\t// default quota is replaced by the proper value on load\n\t\t\t\treturn this.quotaOptions[0]\n\t\t\t}\n\t\t\treturn this.quotaOptions[1] // unlimited\n\t\t},\n\n\t\t/* PASSWORD POLICY? */\n\t\tminPasswordLength() {\n\t\t\treturn this.$store.getters.getPasswordPolicyMinLength\n\t\t},\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage() {\n\t\t\tconst availableLanguages = this.languages[0].languages.concat(this.languages[1].languages)\n\t\t\tconst userLang = availableLanguages.find(lang => lang.code === this.user.language)\n\t\t\tif (typeof userLang !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language,\n\t\t\t\t}\n\t\t\t} else if (this.user.language === '') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn userLang\n\t\t},\n\n\t\tuserFirstLogin() {\n\t\t\tif (this.user.firstLoginTimestamp > 0) {\n\t\t\t\treturn this.formattedFullTime\n\t\t\t}\n\t\t\tif (this.user.firstLoginTimestamp < 0) {\n\t\t\t\treturn t('settings', 'Unknown')\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\n\t\t/* LAST LOGIN */\n\t\tuserLastLoginTooltip() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.formatDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tuserLastLogin() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.relativeModifiedDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\t},\n}\n","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<tr class=\"user-list__row\"\n\t\t:data-cy-user-row=\"user.id\">\n\t\t<td class=\"row__cell row__cell--avatar\" data-cy-user-list-cell-avatar>\n\t\t\t<NcLoadingIcon v-if=\"isLoadingUser\"\n\t\t\t\t:name=\"t('settings', 'Loading account …')\"\n\t\t\t\t:size=\"32\" />\n\t\t\t<NcAvatar v-else-if=\"visible\"\n\t\t\t\tdisable-menu\n\t\t\t\t:show-user-status=\"false\"\n\t\t\t\t:user=\"user.id\" />\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--displayname\" data-cy-user-list-cell-displayname>\n\t\t\t<template v-if=\"editing && user.backendCapabilities.setDisplayName\">\n\t\t\t\t<NcTextField ref=\"displayNameField\"\n\t\t\t\t\tclass=\"user-row-text-field\"\n\t\t\t\t\tdata-cy-user-list-input-displayname\n\t\t\t\t\t:data-loading=\"loading.displayName || undefined\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:class=\"{ 'icon-loading-small': loading.displayName }\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:disabled=\"loading.displayName || isLoadingField\"\n\t\t\t\t\t:label=\"t('settings', 'Change display name')\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedDisplayName\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\t@trailing-button-click=\"updateDisplayName\" />\n\t\t\t</template>\n\t\t\t<strong v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"user.displayname?.length > 20 ? user.displayname : null\">\n\t\t\t\t{{ user.displayname }}\n\t\t\t</strong>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--username\" data-cy-user-list-cell-username>\n\t\t\t<span class=\"row__subtitle\">{{ user.id }}</span>\n\t\t</td>\n\n\t\t<td data-cy-user-list-cell-password\n\t\t\tclass=\"row__cell\"\n\t\t\t:class=\"{ 'row__cell--obfuscated': hasObfuscated }\">\n\t\t\t<template v-if=\"editing && settings.canChangePassword && user.backendCapabilities.setPassword\">\n\t\t\t\t<NcTextField class=\"user-row-text-field\"\n\t\t\t\t\tdata-cy-user-list-input-password\n\t\t\t\t\t:data-loading=\"loading.password || undefined\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:class=\"{'icon-loading-small': loading.password}\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:disabled=\"loading.password || isLoadingField\"\n\t\t\t\t\t:minlength=\"minPasswordLength\"\n\t\t\t\t\tmaxlength=\"469\"\n\t\t\t\t\t:label=\"t('settings', 'Set new password')\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedPassword\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\trequired\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t@trailing-button-click=\"updatePassword\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"isObfuscated\">\n\t\t\t\t{{ t('settings', 'You do not have permissions to see the details of this account') }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell\" data-cy-user-list-cell-email>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<NcTextField class=\"user-row-text-field\"\n\t\t\t\t\t:class=\"{'icon-loading-small': loading.mailAddress}\"\n\t\t\t\t\tdata-cy-user-list-input-email\n\t\t\t\t\t:data-loading=\"loading.mailAddress || undefined\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\t:label=\"t('settings', 'Set new email address')\"\n\t\t\t\t\t:disabled=\"loading.mailAddress || isLoadingField\"\n\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t:value.sync=\"editedMail\"\n\t\t\t\t\tautocapitalize=\"off\"\n\t\t\t\t\tautocomplete=\"email\"\n\t\t\t\t\tspellcheck=\"false\"\n\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t@trailing-button-click=\"updateEmail\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"user.email?.length > 20 ? user.email : null\">\n\t\t\t\t{{ user.email }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--large row__cell--multiline\" data-cy-user-list-cell-groups>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'groups' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Add account to group') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect data-cy-user-list-input-groups\n\t\t\t\t\t:data-loading=\"loading.groups || undefined\"\n\t\t\t\t\t:input-id=\"'groups' + uniqueId\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField || loading.groupsDetails\"\n\t\t\t\t\t:loading=\"loading.groups\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:options=\"availableGroups\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Add account to group')\"\n\t\t\t\t\t:taggable=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\t\t\t:value=\"userGroups\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:no-wrap=\"true\"\n\t\t\t\t\t:create-option=\"(value) => ({ id: value, name: value, isCreating: true })\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:created=\"createGroup\"\n\t\t\t\t\t@option:selected=\"options => addUserGroup(options.at(-1))\"\n\t\t\t\t\t@option:deselected=\"removeUserGroup\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"userGroupsLabels?.length > 40 ? userGroupsLabels : null\">\n\t\t\t\t{{ userGroupsLabels }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td v-if=\"settings.isAdmin || settings.isDelegatedAdmin\"\n\t\t\tdata-cy-user-list-cell-subadmins\n\t\t\tclass=\"row__cell row__cell--large row__cell--multiline\">\n\t\t\t<template v-if=\"editing && (settings.isAdmin || settings.isDelegatedAdmin)\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'subadmins' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Set account as admin for') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect data-cy-user-list-input-subadmins\n\t\t\t\t\t:data-loading=\"loading.subadmins || undefined\"\n\t\t\t\t\t:input-id=\"'subadmins' + uniqueId\"\n\t\t\t\t\t:close-on-select=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField || loading.subAdminGroupsDetails\"\n\t\t\t\t\t:loading=\"loading.subadmins\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:multiple=\"true\"\n\t\t\t\t\t:no-wrap=\"true\"\n\t\t\t\t\t:options=\"availableSubAdminGroups\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Set account as admin for')\"\n\t\t\t\t\t:value=\"userSubAdminGroups\"\n\t\t\t\t\t@search=\"searchGroups\"\n\t\t\t\t\t@option:deselected=\"removeUserSubAdmin\"\n\t\t\t\t\t@option:selected=\"options => addUserSubAdmin(options.at(-1))\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\"\n\t\t\t\t:title=\"userSubAdminGroupsLabels?.length > 40 ? userSubAdminGroupsLabels : null\">\n\t\t\t\t{{ userSubAdminGroupsLabels }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell\" data-cy-user-list-cell-quota>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'quota' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Select account quota') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect v-model=\"editedUserQuota\"\n\t\t\t\t\t:close-on-select=\"true\"\n\t\t\t\t\t:create-option=\"validateQuota\"\n\t\t\t\t\tdata-cy-user-list-input-quota\n\t\t\t\t\t:data-loading=\"loading.quota || undefined\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loading.quota\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:input-id=\"'quota' + uniqueId\"\n\t\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\t\t:placeholder=\"t('settings', 'Select account quota')\"\n\t\t\t\t\t:taggable=\"true\"\n\t\t\t\t\t@option:selected=\"setUserQuota\" />\n\t\t\t</template>\n\t\t\t<template v-else-if=\"!isObfuscated\">\n\t\t\t\t<span :id=\"'quota-progress' + uniqueId\">{{ userQuota }} ({{ usedSpace }})</span>\n\t\t\t\t<NcProgressBar :aria-labelledby=\"'quota-progress' + uniqueId\"\n\t\t\t\t\tclass=\"row__progress\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'row__progress--warn': usedQuota > 80,\n\t\t\t\t\t}\"\n\t\t\t\t\t:value=\"usedQuota\" />\n\t\t\t</template>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showLanguages\"\n\t\t\tclass=\"row__cell row__cell--large\"\n\t\t\tdata-cy-user-list-cell-language>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'language' + uniqueId\">\n\t\t\t\t\t{{ t('settings', 'Set the language') }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect :id=\"'language' + uniqueId\"\n\t\t\t\t\tdata-cy-user-list-input-language\n\t\t\t\t\t:data-loading=\"loading.languages || undefined\"\n\t\t\t\t\t:allow-empty=\"false\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loading.languages\"\n\t\t\t\t\t:clearable=\"false\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:options=\"availableLanguages\"\n\t\t\t\t\t:placeholder=\"t('settings', 'No language set')\"\n\t\t\t\t\t:value=\"userLanguage\"\n\t\t\t\t\tlabel=\"name\"\n\t\t\t\t\t@input=\"setUserLanguage\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\">\n\t\t\t\t{{ userLanguage.name }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showUserBackend || showConfig.showStoragePath\"\n\t\t\tdata-cy-user-list-cell-storage-location\n\t\t\tclass=\"row__cell row__cell--large\">\n\t\t\t<template v-if=\"!isObfuscated\">\n\t\t\t\t<span v-if=\"showConfig.showUserBackend\">{{ user.backend }}</span>\n\t\t\t\t<span v-if=\"showConfig.showStoragePath\"\n\t\t\t\t\t:title=\"user.storageLocation\"\n\t\t\t\t\tclass=\"row__subtitle\">\n\t\t\t\t\t{{ user.storageLocation }}\n\t\t\t\t</span>\n\t\t\t</template>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showFirstLogin\"\n\t\t\tclass=\"row__cell\"\n\t\t\tdata-cy-user-list-cell-first-login>\n\t\t\t<span v-if=\"!isObfuscated\">{{ userFirstLogin }}</span>\n\t\t</td>\n\n\t\t<td v-if=\"showConfig.showLastLogin\"\n\t\t\t:title=\"userLastLoginTooltip\"\n\t\t\tclass=\"row__cell\"\n\t\t\tdata-cy-user-list-cell-last-login>\n\t\t\t<span v-if=\"!isObfuscated\">{{ userLastLogin }}</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--large row__cell--fill\" data-cy-user-list-cell-manager>\n\t\t\t<template v-if=\"editing\">\n\t\t\t\t<label class=\"hidden-visually\"\n\t\t\t\t\t:for=\"'manager' + uniqueId\">\n\t\t\t\t\t{{ managerLabel }}\n\t\t\t\t</label>\n\t\t\t\t<NcSelect v-model=\"currentManager\"\n\t\t\t\t\tclass=\"select--fill\"\n\t\t\t\t\tdata-cy-user-list-input-manager\n\t\t\t\t\t:data-loading=\"loading.manager || undefined\"\n\t\t\t\t\t:input-id=\"'manager' + uniqueId\"\n\t\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t\t:loading=\"loadingPossibleManagers || loading.manager\"\n\t\t\t\t\t:options=\"possibleManagers\"\n\t\t\t\t\t:placeholder=\"managerLabel\"\n\t\t\t\t\tlabel=\"displayname\"\n\t\t\t\t\t:filterable=\"false\"\n\t\t\t\t\t:internal-search=\"false\"\n\t\t\t\t\t:clearable=\"true\"\n\t\t\t\t\t@open=\"searchInitialUserManager\"\n\t\t\t\t\t@search=\"searchUserManager\"\n\t\t\t\t\t@update:model-value=\"updateUserManager\" />\n\t\t\t</template>\n\t\t\t<span v-else-if=\"!isObfuscated\">\n\t\t\t\t{{ user.manager }}\n\t\t\t</span>\n\t\t</td>\n\n\t\t<td class=\"row__cell row__cell--actions\" data-cy-user-list-cell-actions>\n\t\t\t<UserRowActions v-if=\"visible && !isObfuscated && canEdit && !loading.all\"\n\t\t\t\t:actions=\"userActions\"\n\t\t\t\t:disabled=\"isLoadingField\"\n\t\t\t\t:edit=\"editing\"\n\t\t\t\t:user=\"user\"\n\t\t\t\t@update:edit=\"toggleEdit\" />\n\t\t</td>\n\t</tr>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showSuccess, showError } from '@nextcloud/dialogs'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\nimport NcAvatar from '@nextcloud/vue/components/NcAvatar'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcProgressBar from '@nextcloud/vue/components/NcProgressBar'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\n\nimport UserRowActions from './UserRowActions.vue'\n\nimport UserRowMixin from '../../mixins/UserRowMixin.js'\nimport { isObfuscated, unlimitedQuota } from '../../utils/userUtils.ts'\nimport { searchGroups, loadUserGroups, loadUserSubAdminGroups } from '../../service/groups.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'UserRow',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcLoadingIcon,\n\t\tNcProgressBar,\n\t\tNcSelect,\n\t\tNcTextField,\n\t\tUserRowActions,\n\t},\n\n\tmixins: [\n\t\tUserRowMixin,\n\t],\n\n\tprops: {\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tvisible: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tusers: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\thasObfuscated: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tquotaOptions: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tlanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tsettings: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedQuota: false,\n\t\t\trand: Math.random().toString(36).substring(2),\n\t\t\tloadingPossibleManagers: false,\n\t\t\tpossibleManagers: [],\n\t\t\tcurrentManager: '',\n\t\t\tediting: false,\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tdisplayName: false,\n\t\t\t\tpassword: false,\n\t\t\t\tmailAddress: false,\n\t\t\t\tgroups: false,\n\t\t\t\tgroupsDetails: false,\n\t\t\t\tsubAdminGroupsDetails: false,\n\t\t\t\tsubadmins: false,\n\t\t\t\tquota: false,\n\t\t\t\tdelete: false,\n\t\t\t\tdisable: false,\n\t\t\t\tlanguages: false,\n\t\t\t\twipe: false,\n\t\t\t\tmanager: false,\n\t\t\t},\n\t\t\teditedDisplayName: this.user.displayname,\n\t\t\teditedPassword: '',\n\t\t\teditedMail: this.user.email ?? '',\n\t\t\t// Cancelable promise for search groups request\n\t\t\tpromise: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmanagerLabel() {\n\t\t\t// TRANSLATORS This string describes a person's manager in the context of an organization\n\t\t\treturn t('settings', 'Set line manager')\n\t\t},\n\n\t\tisObfuscated() {\n\t\t\treturn isObfuscated(this.user)\n\t\t},\n\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tisLoadingUser() {\n\t\t\treturn this.loading.delete || this.loading.disable || this.loading.wipe\n\t\t},\n\n\t\tisLoadingField() {\n\t\t\treturn this.loading.delete || this.loading.disable || this.loading.all\n\t\t},\n\n\t\tuniqueId() {\n\t\t\treturn encodeURIComponent(this.user.id + this.rand)\n\t\t},\n\n\t\tuserGroupsLabels() {\n\t\t\treturn this.userGroups\n\t\t\t\t.map(group => group.name ?? group.id)\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\tuserSubAdminGroupsLabels() {\n\t\t\treturn this.userSubAdminGroups\n\t\t\t\t.map(group => group.name ?? group.id)\n\t\t\t\t.join(', ')\n\t\t},\n\n\t\tusedSpace() {\n\t\t\tif (this.user.quota?.used) {\n\t\t\t\treturn t('settings', '{size} used', { size: formatFileSize(this.user.quota?.used) })\n\t\t\t}\n\t\t\treturn t('settings', '{size} used', { size: formatFileSize(0) })\n\t\t},\n\n\t\tcanEdit() {\n\t\t\treturn getCurrentUser().uid !== this.user.id || this.settings.isAdmin || this.settings.isDelegatedAdmin\n\t\t},\n\n\t\tuserQuota() {\n\t\t\tlet quota = this.user.quota?.quota\n\n\t\t\tif (quota === 'default') {\n\t\t\t\tquota = this.settings.defaultQuota\n\t\t\t\tif (quota !== 'none') {\n\t\t\t\t\t// convert to numeric value to match what the server would usually return\n\t\t\t\t\tquota = parseFileSize(quota, true)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// when the default quota is unlimited, the server returns -3 here, map it to \"none\"\n\t\t\tif (quota === 'none' || quota === -3) {\n\t\t\t\treturn t('settings', 'Unlimited')\n\t\t\t} else if (quota >= 0) {\n\t\t\t\treturn formatFileSize(quota)\n\t\t\t}\n\t\t\treturn formatFileSize(0)\n\t\t},\n\n\t\tuserActions() {\n\t\t\tconst actions = [\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\ttext: t('settings', 'Delete account'),\n\t\t\t\t\taction: this.deleteUser,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: 'icon-delete',\n\t\t\t\t\ttext: t('settings', 'Disconnect all devices and delete local data'),\n\t\t\t\t\taction: this.wipeUserDevices,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ticon: this.user.enabled ? 'icon-close' : 'icon-add',\n\t\t\t\t\ttext: this.user.enabled ? t('settings', 'Disable account') : t('settings', 'Enable account'),\n\t\t\t\t\taction: this.enableDisableUser,\n\t\t\t\t},\n\t\t\t]\n\t\t\tif (this.user.email !== null && this.user.email !== '') {\n\t\t\t\tactions.push({\n\t\t\t\t\ticon: 'icon-mail',\n\t\t\t\t\ttext: t('settings', 'Resend welcome email'),\n\t\t\t\t\taction: this.sendWelcomeMail,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn actions.concat(this.externalActions)\n\t\t},\n\n\t\t// mapping saved values to objects\n\t\teditedUserQuota: {\n\t\t\tget() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota\n\t\t\t\t}\n\t\t\t\tif (this.settings.defaultQuota !== unlimitedQuota.id && parseFileSize(this.settings.defaultQuota, true) >= 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota }\n\t\t\t\t}\n\t\t\t\treturn unlimitedQuota // unlimited\n\t\t\t},\n\t\t\tset(quota) {\n\t\t\t\tthis.selectedQuota = quota\n\t\t\t},\n\t\t},\n\n\t\tavailableLanguages() {\n\t\t\treturn this.languages[0].languages.concat(this.languages[1].languages)\n\t\t},\n\t},\n\tasync beforeMount() {\n\t\tif (this.user.manager) {\n\t\t\tawait this.initManager(this.user.manager)\n\t\t}\n\t},\n\n\tmethods: {\n\t\tasync wipeUserDevices() {\n\t\t\tconst userid = this.user.id\n\t\t\tawait confirmPassword()\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tt('settings', 'In case of lost device or exiting the organization, this can remotely wipe the Nextcloud data from all devices associated with {userid}. Only works if the devices are connected to the internet.', { userid }),\n\t\t\t\tt('settings', 'Remote wipe of devices'),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('settings', 'Wipe {userid}\\'s devices', { userid }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('settings', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tthis.loading.wipe = true\n\t\t\t\t\t\tthis.loading.all = true\n\t\t\t\t\t\tthis.$store.dispatch('wipeUserDevices', userid)\n\t\t\t\t\t\t\t.then(() => showSuccess(t('settings', 'Wiped {userid}\\'s devices', { userid })), { timeout: 2000 })\n\t\t\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\t\t\tthis.loading.wipe = false\n\t\t\t\t\t\t\t\tthis.loading.all = false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\n\t\tfilterManagers(managers) {\n\t\t\treturn managers.filter((manager) => manager.id !== this.user.id)\n\t\t},\n\n\t\tasync initManager(userId) {\n\t\t\tawait this.$store.dispatch('getUser', userId).then(response => {\n\t\t\t\tthis.currentManager = response?.data.ocs.data\n\t\t\t})\n\t\t},\n\n\t\tasync searchInitialUserManager() {\n\t\t\tthis.loadingPossibleManagers = true\n\t\t\tawait this.searchUserManager()\n\t\t\tthis.loadingPossibleManagers = false\n\t\t},\n\n\t\tasync loadGroupsDetails() {\n\t\t\tthis.loading.groups = true\n\t\t\tthis.loading.groupsDetails = true\n\t\t\ttry {\n\t\t\t\tconst groups = await loadUserGroups({ userId: this.user.id })\n\t\t\t\tthis.availableGroups = this.availableGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to load groups with details'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t\tthis.loading.groupsDetails = false\n\t\t},\n\n\t\tasync loadSubAdminGroupsDetails() {\n\t\t\tthis.loading.subadmins = true\n\t\t\tthis.loading.subAdminGroupsDetails = true\n\t\t\ttry {\n\t\t\t\tconst groups = await loadUserSubAdminGroups({ userId: this.user.id })\n\t\t\t\tthis.availableSubAdminGroups = this.availableSubAdminGroups.map(availableGroup => groups.find(group => group.id === availableGroup.id) ?? availableGroup)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to load sub admin groups with details'), { error })\n\t\t\t}\n\t\t\tthis.loading.subadmins = false\n\t\t\tthis.loading.subAdminGroupsDetails = false\n\t\t},\n\n\t\tasync searchGroups(query, toggleLoading) {\n\t\t\tif (query === '') {\n\t\t\t\treturn // Prevent unexpected search behaviour e.g. on option:created\n\t\t\t}\n\t\t\tif (this.promise) {\n\t\t\t\tthis.promise.cancel()\n\t\t\t}\n\t\t\ttoggleLoading(true)\n\t\t\ttry {\n\t\t\t\tthis.promise = await searchGroups({\n\t\t\t\t\tsearch: query,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\tlimit: 25,\n\t\t\t\t})\n\t\t\t\tconst groups = await this.promise\n\t\t\t\tthis.availableGroups = groups\n\t\t\t\tthis.availableSubAdminGroups = groups.filter(group => group.id !== 'admin')\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to search groups'), { error })\n\t\t\t}\n\t\t\tthis.promise = null\n\t\t\ttoggleLoading(false)\n\t\t},\n\n\t\tasync searchUserManager(query) {\n\t\t\tawait this.$store.dispatch('searchUsers', { offset: 0, limit: 10, search: query }).then(response => {\n\t\t\t\tconst users = response?.data ? this.filterManagers(Object.values(response?.data.ocs.data.users)) : []\n\t\t\t\tif (users.length > 0) {\n\t\t\t\t\tthis.possibleManagers = users\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tasync updateUserManager() {\n\t\t\tthis.loading.manager = true\n\n\t\t\t// Store the current manager before making changes\n\t\t\tconst previousManager = this.user.manager\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'manager',\n\t\t\t\t\tvalue: this.currentManager ? this.currentManager.id : '',\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\t// TRANSLATORS This string describes a line manager in the context of an organization\n\t\t\t\tshowError(t('settings', 'Failed to update line manager'))\n\t\t\t\tlogger.error('Failed to update manager:', { error })\n\n\t\t\t\t// Revert to the previous manager in the UI on error\n\t\t\t\tthis.currentManager = previousManager\n\t\t\t} finally {\n\t\t\t\tthis.loading.manager = false\n\t\t\t}\n\t\t},\n\n\t\tasync deleteUser() {\n\t\t\tconst userid = this.user.id\n\t\t\tawait confirmPassword()\n\t\t\tOC.dialogs.confirmDestructive(\n\t\t\t\tt('settings', 'Fully delete {userid}\\'s account including all their personal files, app data, etc.', { userid }),\n\t\t\t\tt('settings', 'Account deletion'),\n\t\t\t\t{\n\t\t\t\t\ttype: OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\t\tconfirm: t('settings', 'Delete {userid}\\'s account', { userid }),\n\t\t\t\t\tconfirmClasses: 'error',\n\t\t\t\t\tcancel: t('settings', 'Cancel'),\n\t\t\t\t},\n\t\t\t\t(result) => {\n\t\t\t\t\tif (result) {\n\t\t\t\t\t\tthis.loading.delete = true\n\t\t\t\t\t\tthis.loading.all = true\n\t\t\t\t\t\treturn this.$store.dispatch('deleteUser', userid)\n\t\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\t\t\t\tthis.loading.all = false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\n\t\tenableDisableUser() {\n\t\t\tthis.loading.delete = true\n\t\t\tthis.loading.all = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst enabled = !this.user.enabled\n\t\t\treturn this.$store.dispatch('enableDisableUser', {\n\t\t\t\tuserid,\n\t\t\t\tenabled,\n\t\t\t})\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.loading.delete = false\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Set user displayName\n\t\t */\n\t\tasync updateDisplayName() {\n\t\t\tthis.loading.displayName = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'displayname',\n\t\t\t\t\tvalue: this.editedDisplayName,\n\t\t\t\t})\n\n\t\t\t\tif (this.editedDisplayName === this.user.displayname) {\n\t\t\t\t\tshowSuccess(t('settings', 'Display name was successfully changed'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loading.displayName = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set user password\n\t\t */\n\t\tasync updatePassword() {\n\t\t\tthis.loading.password = true\n\t\t\tif (this.editedPassword.length === 0) {\n\t\t\t\tshowError(t('settings', \"Password can't be empty\"))\n\t\t\t\tthis.loading.password = false\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\t\tkey: 'password',\n\t\t\t\t\t\tvalue: this.editedPassword,\n\t\t\t\t\t})\n\t\t\t\t\tthis.editedPassword = ''\n\t\t\t\t\tshowSuccess(t('settings', 'Password was successfully changed'))\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading.password = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Set user mailAddress\n\t\t */\n\t\tasync updateEmail() {\n\t\t\tthis.loading.mailAddress = true\n\t\t\tif (this.editedMail === '') {\n\t\t\t\tshowError(t('settings', \"Email can't be empty\"))\n\t\t\t\tthis.loading.mailAddress = false\n\t\t\t\tthis.editedMail = this.user.email\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\t\tkey: 'email',\n\t\t\t\t\t\tvalue: this.editedMail,\n\t\t\t\t\t})\n\n\t\t\t\t\tif (this.editedMail === this.user.email) {\n\t\t\t\t\t\tshowSuccess(t('settings', 'Email was successfully changed'))\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading.mailAddress = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Create a new group and add user to it\n\t\t *\n\t\t * @param {string} gid Group id\n\t\t */\n\t\tasync createGroup({ name: gid }) {\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addGroup', gid)\n\t\t\t\tthis.availableGroups.push({ id: gid, name: gid })\n\t\t\t\tthis.availableSubAdminGroups.push({ id: gid, name: gid })\n\t\t\t\tconst userid = this.user.id\n\t\t\t\tawait this.$store.dispatch('addUserGroup', { userid, gid })\n\t\t\t\tthis.userGroups.push({ id: gid, name: gid })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(t('settings', 'Failed to create group'), { error })\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addUserGroup(group) {\n\t\t\tif (group.isCreating) {\n\t\t\t\t// This is NcSelect's internal value for a new inputted group name\n\t\t\t\t// Ignore\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\tif (group.canAdd === false) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loading.groups = true\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUserGroup', { userid, gid })\n\t\t\t\tthis.userGroups.push(group)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\tthis.loading.groups = false\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync removeUserGroup(group) {\n\t\t\tif (group.canRemove === false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tthis.loading.groups = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeUserGroup', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userGroups = this.userGroups.filter(group => group.id !== gid)\n\t\t\t\tthis.loading.groups = false\n\t\t\t\t// remove user from current list if current list is the removed group\n\t\t\t\tif (this.$route.params.selectedGroup === gid) {\n\t\t\t\t\tthis.$store.commit('deleteUser', userid)\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tthis.loading.groups = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add user to group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync addUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('addUserSubAdmin', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userSubAdminGroups.push(group)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\tthis.loading.subadmins = false\n\t\t},\n\n\t\t/**\n\t\t * Remove user from group\n\t\t *\n\t\t * @param {object} group Group object\n\t\t */\n\t\tasync removeUserSubAdmin(group) {\n\t\t\tthis.loading.subadmins = true\n\t\t\tconst userid = this.user.id\n\t\t\tconst gid = group.id\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeUserSubAdmin', {\n\t\t\t\t\tuserid,\n\t\t\t\t\tgid,\n\t\t\t\t})\n\t\t\t\tthis.userSubAdminGroups = this.userSubAdminGroups.filter(group => group.id !== gid)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading.subadmins = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Dispatch quota set request\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {string}\n\t\t */\n\t\tasync setUserQuota(quota = 'none') {\n\t\t\t// Make sure correct label is set for unlimited quota\n\t\t\tif (quota === 'none') {\n\t\t\t\tquota = unlimitedQuota\n\t\t\t}\n\t\t\tthis.loading.quota = true\n\n\t\t\t// ensure we only send the preset id\n\t\t\tquota = quota.id ? quota.id : quota\n\n\t\t\ttry {\n\t\t\t\t// If human readable format, convert to raw float format\n\t\t\t\t// Else just send the raw string\n\t\t\t\tconst value = (parseFileSize(quota, true) || quota).toString()\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'quota',\n\t\t\t\t\tvalue,\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading.quota = false\n\t\t\t}\n\t\t\treturn quota\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {object} The validated quota object or unlimited quota if input is invalid\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\tif (typeof quota === 'object') {\n\t\t\t\tquota = quota?.id || quota.label\n\t\t\t}\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = parseFileSize(quota, true)\n\t\t\tif (validQuota === null) {\n\t\t\t\treturn unlimitedQuota\n\t\t\t} else {\n\t\t\t\t// unify format output\n\t\t\t\tquota = formatFileSize(parseFileSize(quota, true))\n\t\t\t\treturn { id: quota, label: quota }\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Dispatch language set request\n\t\t *\n\t\t * @param {object} lang language object {code:'en', name:'English'}\n\t\t * @return {object}\n\t\t */\n\t\tasync setUserLanguage(lang) {\n\t\t\tthis.loading.languages = true\n\t\t\t// ensure we only send the preset id\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('setUserData', {\n\t\t\t\t\tuserid: this.user.id,\n\t\t\t\t\tkey: 'language',\n\t\t\t\t\tvalue: lang.code,\n\t\t\t\t})\n\t\t\t\tthis.loading.languages = false\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t}\n\t\t\treturn lang\n\t\t},\n\n\t\t/**\n\t\t * Dispatch new welcome mail request\n\t\t */\n\t\tsendWelcomeMail() {\n\t\t\tthis.loading.all = true\n\t\t\tthis.$store.dispatch('sendWelcomeMail', this.user.id)\n\t\t\t\t.then(() => showSuccess(t('settings', 'Welcome mail sent!'), { timeout: 2000 }))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.loading.all = false\n\t\t\t\t})\n\t\t},\n\n\t\tasync toggleEdit() {\n\t\t\tthis.editing = !this.editing\n\t\t\tif (this.editing) {\n\t\t\t\tawait this.$nextTick()\n\t\t\t\tthis.$refs.displayNameField?.$refs?.inputField?.$refs?.input?.focus()\n\t\t\t\tthis.loadGroupsDetails()\n\t\t\t\tthis.loadSubAdminGroupsDetails()\n\t\t\t}\n\t\t\tif (this.editedDisplayName !== this.user.displayname) {\n\t\t\t\tthis.editedDisplayName = this.user.displayname\n\t\t\t} else if (this.editedMail !== this.user.email) {\n\t\t\t\tthis.editedMail = this.user.email ?? ''\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use './shared/styles';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Limit width of select in fill cell\n\t.select--fill {\n\t\tmax-width: calc(var(--cell-width-large) - (2 * var(--cell-padding)));\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\n\t\t:deep {\n\t\t\t.v-select.select {\n\t\t\t\tmin-width: var(--cell-min-width);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=7faa9864&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=7faa9864&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7faa9864\",\n null\n \n)\n\nexport default component.exports","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Fragment>\n\t\t<NewUserDialog v-if=\"showConfig.showNewUserForm\"\n\t\t\t:loading=\"loading\"\n\t\t\t:new-user=\"newUser\"\n\t\t\t:quota-options=\"quotaOptions\"\n\t\t\t@reset=\"resetForm\"\n\t\t\t@closing=\"closeDialog\" />\n\n\t\t<NcEmptyContent v-if=\"filteredUsers.length === 0\"\n\t\t\tclass=\"empty\"\n\t\t\t:name=\"isInitialLoad && loading.users ? null : t('settings', 'No accounts')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"isInitialLoad && loading.users\"\n\t\t\t\t\t:name=\"t('settings', 'Loading accounts …')\"\n\t\t\t\t\t:size=\"64\" />\n\t\t\t\t<NcIconSvgWrapper v-else :path=\"mdiAccountGroup\" :size=\"64\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\n\t\t<VirtualList v-else\n\t\t\t:data-component=\"UserRow\"\n\t\t\t:data-sources=\"filteredUsers\"\n\t\t\tdata-key=\"id\"\n\t\t\tdata-cy-user-list\n\t\t\t:item-height=\"rowHeight\"\n\t\t\t:style=\"style\"\n\t\t\t:extra-props=\"{\n\t\t\t\tusers,\n\t\t\t\tsettings,\n\t\t\t\thasObfuscated,\n\t\t\t\tquotaOptions,\n\t\t\t\tlanguages,\n\t\t\t\texternalActions,\n\t\t\t}\"\n\t\t\t@scroll-end=\"handleScrollEnd\">\n\t\t\t<template #before>\n\t\t\t\t<caption class=\"hidden-visually\">\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t</caption>\n\t\t\t</template>\n\n\t\t\t<template #header>\n\t\t\t\t<UserListHeader :has-obfuscated=\"hasObfuscated\" />\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<UserListFooter :loading=\"loading.users\"\n\t\t\t\t\t:filtered-users=\"filteredUsers\" />\n\t\t\t</template>\n\t\t</VirtualList>\n\t</Fragment>\n</template>\n\n<script>\nimport { mdiAccountGroup } from '@mdi/js'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { Fragment } from 'vue-frag'\n\nimport Vue from 'vue'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\n\nimport VirtualList from './Users/VirtualList.vue'\nimport NewUserDialog from './Users/NewUserDialog.vue'\nimport UserListFooter from './Users/UserListFooter.vue'\nimport UserListHeader from './Users/UserListHeader.vue'\nimport UserRow from './Users/UserRow.vue'\n\nimport { defaultQuota, isObfuscated, unlimitedQuota } from '../utils/userUtils.ts'\nimport logger from '../logger.ts'\n\nconst newUser = Object.freeze({\n\tid: '',\n\tdisplayName: '',\n\tpassword: '',\n\tmailAddress: '',\n\tgroups: [],\n\tmanager: '',\n\tsubAdminsGroups: [],\n\tquota: defaultQuota,\n\tlanguage: {\n\t\tcode: 'en',\n\t\tname: t('settings', 'Default language'),\n\t},\n})\n\nexport default {\n\tname: 'UserList',\n\n\tcomponents: {\n\t\tFragment,\n\t\tNcEmptyContent,\n\t\tNcIconSvgWrapper,\n\t\tNcLoadingIcon,\n\t\tNewUserDialog,\n\t\tUserListFooter,\n\t\tUserListHeader,\n\t\tVirtualList,\n\t},\n\n\tprops: {\n\t\tselectedGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\n\tsetup() {\n\t\t// non reactive properties\n\t\treturn {\n\t\t\tmdiAccountGroup,\n\t\t\trowHeight: 55,\n\n\t\t\tUserRow,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tgroups: false,\n\t\t\t\tusers: false,\n\t\t\t},\n\t\t\tnewUser: { ...newUser },\n\t\t\tisInitialLoad: true,\n\t\t\tsearchQuery: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tstyle() {\n\t\t\treturn {\n\t\t\t\t'--row-height': `${this.rowHeight}px`,\n\t\t\t}\n\t\t},\n\n\t\thasObfuscated() {\n\t\t\treturn this.filteredUsers.some(user => isObfuscated(user))\n\t\t},\n\n\t\tusers() {\n\t\t\treturn this.$store.getters.getUsers\n\t\t},\n\n\t\tfilteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\treturn this.users.filter(user => user.enabled === false)\n\t\t\t}\n\t\t\treturn this.users.filter(user => user.enabled !== false)\n\t\t},\n\n\t\tgroups() {\n\t\t\treturn this.$store.getters.getSortedGroups\n\t\t\t\t.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({\n\t\t\t\tid: cur,\n\t\t\t\tlabel: cur,\n\t\t\t}), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\tquotaPreset.unshift(defaultQuota)\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset\n\t\t},\n\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit\n\t\t},\n\n\t\tdisabledUsersOffset() {\n\t\t\treturn this.$store.getters.getDisabledUsersOffset\n\t\t},\n\n\t\tdisabledUsersLimit() {\n\t\t\treturn this.$store.getters.getDisabledUsersLimit\n\t\t},\n\n\t\tusersCount() {\n\t\t\treturn this.users.length\n\t\t},\n\n\t\t/* LANGUAGES */\n\t\tlanguages() {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonLanguages,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Other languages'),\n\t\t\t\t\tlanguages: this.settings.languages.otherLanguages,\n\t\t\t\t},\n\t\t\t]\n\t\t},\n\t},\n\n\twatch: {\n\t\t// watch url change and group select\n\t\tasync selectedGroup(val) {\n\t\t\tthis.isInitialLoad = true\n\t\t\t// if selected is the disabled group but it's empty\n\t\t\tawait this.redirectIfDisabled()\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t\tthis.setNewUserDefaultGroup(val)\n\t\t},\n\n\t\tfilteredUsers(filteredUsers) {\n\t\t\tlogger.debug(`${filteredUsers.length} filtered user(s)`)\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.loadUsers()\n\t},\n\n\tasync mounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'))\n\t\t}\n\n\t\t/**\n\t\t * Reset and init new user form\n\t\t */\n\t\tthis.resetForm()\n\n\t\t/**\n\t\t * Register search\n\t\t */\n\t\tsubscribe('nextcloud:unified-search.search', this.search)\n\t\tsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\n\t\t/**\n\t\t * If disabled group but empty, redirect\n\t\t */\n\t\tawait this.redirectIfDisabled()\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('nextcloud:unified-search.search', this.search)\n\t\tunsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\t},\n\n\tmethods: {\n\t\tasync handleScrollEnd() {\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tasync loadUsers() {\n\t\t\tthis.loading.users = true\n\t\t\ttry {\n\t\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\t\tawait this.$store.dispatch('getDisabledUsers', {\n\t\t\t\t\t\toffset: this.disabledUsersOffset,\n\t\t\t\t\t\tlimit: this.disabledUsersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else if (this.selectedGroup === '__nc_internal_recent') {\n\t\t\t\t\tawait this.$store.dispatch('getRecentUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('getUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tgroup: this.selectedGroup,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tlogger.debug(`${this.users.length} total user(s) loaded`)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Failed to load accounts', { error })\n\t\t\t\tshowError('Failed to load accounts')\n\t\t\t}\n\t\t\tthis.loading.users = false\n\t\t\tthis.isInitialLoad = false\n\t\t},\n\n\t\tcloseDialog() {\n\t\t\tthis.$store.commit('setShowConfig', {\n\t\t\t\tkey: 'showNewUserForm',\n\t\t\t\tvalue: false,\n\t\t\t})\n\t\t},\n\n\t\tasync search({ query }) {\n\t\t\tthis.searchQuery = query\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tresetSearch() {\n\t\t\tthis.search({ query: '' })\n\t\t},\n\n\t\tresetForm() {\n\t\t\t// revert form to original state\n\t\t\tthis.newUser = Object.assign({}, newUser)\n\n\t\t\t/**\n\t\t\t * Init default language from server data. The use of this.settings\n\t\t\t * requires a computed variable, which break the v-model binding of the form,\n\t\t\t * this is a much easier solution than getter and setter on a computed var\n\t\t\t */\n\t\t\tif (this.settings.defaultLanguage) {\n\t\t\t\tVue.set(this.newUser.language, 'code', this.settings.defaultLanguage)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * In case the user directly loaded the user list within a group\n\t\t\t * the watch won't be triggered. We need to initialize it.\n\t\t\t */\n\t\t\tthis.setNewUserDefaultGroup(this.selectedGroup)\n\n\t\t\tthis.loading.all = false\n\t\t},\n\n\t\tsetNewUserDefaultGroup(value) {\n\t\t\t// Is no value set, but user is a line manager we set their group as this is a requirement for line manager\n\t\t\tif (!value && !this.settings.isAdmin && !this.settings.isDelegatedAdmin) {\n\t\t\t\tconst groups = this.$store.getters.getSubAdminGroups\n\t\t\t\t// if there are multiple groups we do not know which to add,\n\t\t\t\t// so we cannot make the managers life easier by preselecting it.\n\t\t\t\tif (groups.length === 1) {\n\t\t\t\t\tthis.newUser.groups = [...groups]\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\t// setting new account default group to the current selected one\n\t\t\t\tconst currentGroup = this.groups.find(group => group.id === value)\n\t\t\t\tif (currentGroup) {\n\t\t\t\t\tthis.newUser.groups = [currentGroup]\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\t// fallback, empty selected group\n\t\t\tthis.newUser.groups = []\n\t\t},\n\n\t\t/**\n\t\t * If the selected group is the disabled group but the count is 0\n\t\t * redirect to the all users page.\n\t\t * we only check for 0 because we don't have the count on ldap\n\t\t * and we therefore set the usercount to -1 in this specific case\n\t\t */\n\t\tasync redirectIfDisabled() {\n\t\t\tconst allGroups = this.$store.getters.getGroups\n\t\t\tif (this.selectedGroup === 'disabled'\n\t\t\t\t\t\t&& allGroups.findIndex(group => group.id === 'disabled' && group.usercount === 0) > -1) {\n\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\tthis.$router.push({ name: 'users' })\n\t\t\t\tawait this.loadUsers()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use './Users/shared/styles' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=1e8fee5a&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e8fee5a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroup,\"size\":64}})]},proxy:true}],null,false,226056511)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\thasObfuscated: _vm.hasObfuscated,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader',{attrs:{\"has-obfuscated\":_vm.hasObfuscated}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppContent :page-heading=\"pageHeading\">\n\t\t<UserList :selected-group=\"selectedGroupDecoded\"\n\t\t\t:external-actions=\"externalActions\" />\n\t</NcAppContent>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { emit } from '@nextcloud/event-bus'\nimport { defineComponent } from 'vue'\n\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport UserList from '../components/UserList.vue'\n\nexport default defineComponent({\n\tname: 'UserManagement',\n\n\tcomponents: {\n\t\tNcAppContent,\n\t\tUserList,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// temporary value used for multiselect change\n\t\t\texternalActions: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpageHeading() {\n\t\t\tif (this.selectedGroupDecoded === null) {\n\t\t\t\treturn t('settings', 'All accounts')\n\t\t\t}\n\t\t\tconst matchHeading = {\n\t\t\t\tadmin: t('settings', 'Admins'),\n\t\t\t\tdisabled: t('settings', 'Disabled accounts'),\n\t\t\t}\n\t\t\treturn matchHeading[this.selectedGroupDecoded] ?? t('settings', 'Account group: {group}', { group: this.selectedGroupDecoded })\n\t\t},\n\n\t\tselectedGroup() {\n\t\t\treturn this.$route.params.selectedGroup\n\t\t},\n\n\t\tselectedGroupDecoded() {\n\t\t\treturn this.selectedGroup ? decodeURIComponent(this.selectedGroup) : null\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength')\n\t},\n\n\tcreated() {\n\t\t// init the OCA.Settings.UserList object\n\t\twindow.OCA = window.OCA ?? {}\n\t\twindow.OCA.Settings = window.OCA.Settings ?? {}\n\t\twindow.OCA.Settings.UserList = window.OCA.Settings.UserList ?? {}\n\t\t// and add the registerAction method\n\t\twindow.OCA.Settings.UserList.registerAction = this.registerAction\n\t\temit('settings:user-management:loaded')\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Register a new action for the user menu\n\t\t *\n\t\t * @param {string} icon the icon class\n\t\t * @param {string} text the text to display\n\t\t * @param {Function} action the function to run\n\t\t * @param {(user: Record<string, unknown>) => boolean} enabled return true if the action is enabled for the user\n\t\t * @return {Array}\n\t\t */\n\t\tregisterAction(icon, text, action, enabled) {\n\t\t\tthis.externalActions.push({\n\t\t\t\ticon,\n\t\t\t\ttext,\n\t\t\t\taction,\n\t\t\t\tenabled,\n\t\t\t})\n\t\t\treturn this.externalActions\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=253f9eec&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"253f9eec\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__note[data-v-9f7a355c]{font-weight:normal}fieldset[data-v-9f7a355c]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-20fd51f9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.header-menu[data-v-20fd51f9] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\n --button-size: var(--header-height) !important;\n height: var(--header-height);\n opacity: 0.85;\n filter: none !important;\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9]:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n.header-menu--opened .header-menu__trigger[data-v-20fd51f9], .header-menu__trigger[data-v-20fd51f9]:hover, .header-menu__trigger[data-v-20fd51f9]:focus, .header-menu__trigger[data-v-20fd51f9]:active {\n opacity: 1;\n}\n@media only screen and (max-width: 512px) {\n.header-menu[data-v-20fd51f9] {\n width: var(--default-clickable-area);\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\n --button-size: var(--default-clickable-area) !important;\n}\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,8CAA8C;EAC9C,4BAA4B;EAC5B,aAAa;EACb,uBAAuB;EACvB,+EAA+E;AACjF;AACA;EACE,wBAAwB;EACxB,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;AACA;IACI,oCAAoC;AACxC;AACA;IACI,uDAAuD;AAC3D;AACA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-20fd51f9] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/*!\\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n.header-menu[data-v-20fd51f9] {\\n position: relative;\\n width: var(--header-height);\\n height: var(--header-height);\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\\n --button-size: var(--header-height) !important;\\n height: var(--header-height);\\n opacity: 0.85;\\n filter: none !important;\\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9]:focus-visible {\\n outline: none !important;\\n box-shadow: none !important;\\n}\\n.header-menu--opened .header-menu__trigger[data-v-20fd51f9], .header-menu__trigger[data-v-20fd51f9]:hover, .header-menu__trigger[data-v-20fd51f9]:focus, .header-menu__trigger[data-v-20fd51f9]:active {\\n opacity: 1;\\n}\\n@media only screen and (max-width: 512px) {\\n.header-menu[data-v-20fd51f9] {\\n width: var(--default-clickable-area);\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\\n --button-size: var(--default-clickable-area) !important;\\n}\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list__row[data-v-7faa9864]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-7faa9864]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-7faa9864]:not(.row__cell--actions){background-color:var(--color-background-hover)}.user-list__row .select--fill[data-v-7faa9864]{max-width:calc(var(--cell-width-large) - 2*var(--cell-padding))}.row__cell[data-v-7faa9864]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-7faa9864],.row__cell span[data-v-7faa9864],.row__cell label[data-v-7faa9864]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-7faa9864],.row__cell--displayname[data-v-7faa9864]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-7faa9864]{inset-inline-start:0}.row__cell--displayname[data-v-7faa9864]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-7faa9864]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-7faa9864]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-7faa9864]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-7faa9864]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-7faa9864]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--obfuscated[data-v-7faa9864]{min-width:400px;width:400px}.row__cell--fill[data-v-7faa9864]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-7faa9864]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-7faa9864]{color:var(--color-text-maxcontrast)}.row__cell[data-v-7faa9864]{border-bottom:1px solid var(--color-border)}.row__cell[data-v-7faa9864] .v-select.select{min-width:var(--cell-min-width)}.row__progress[data-v-7faa9864]{margin-top:4px}.row__progress--warn[data-v-7faa9864]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-7faa9864]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CAKF,+CACC,+DAAA,CCDD,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CDpFD,4BACC,2CAAA,CAGC,6CACC,+BAAA,CAKH,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Limit width of select in fill cell\\n\\t.select--fill {\\n\\t\\tmax-width: calc(var(--cell-width-large) - (2 * var(--cell-padding)));\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t\\t:deep {\\n\\t\\t\\t.v-select.select {\\n\\t\\t\\t\\tmin-width: var(--cell-min-width);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[data-v-21942da5]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-21942da5],.user-list__footer[data-v-21942da5]{position:sticky;display:block}.user-list__header[data-v-21942da5]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-21942da5]{inset-inline-start:0}.user-list__body[data-v-21942da5]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-878b819f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\n opacity: 0;\n}\n.linked-icons[data-v-878b819f] {\n display: flex;\n}\n.linked-icons img[data-v-878b819f] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-878b819f]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-878b819f] {\n display: none;\n}\n.popovermenu.open[data-v-878b819f] {\n display: block;\n}\nli.collection-list-item[data-v-878b819f] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-878b819f] {\n margin-top: 0;\n}\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-878b819f] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-878b819f] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-878b819f] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-878b819f] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-878b819f] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-878b819f] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\n opacity: 1;\n}\n.should-shake[data-v-878b819f] {\n animation: shake-878b819f 0.6s 1 linear;\n}\n@keyframes shake-878b819f {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-efe8beb8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.collection-list *[data-v-efe8beb8] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-efe8beb8] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-efe8beb8] {\n margin-top: 0;\n}\n#collection-select-container[data-v-efe8beb8] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-efe8beb8] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-efe8beb8]:hover {\n opacity: 1;\n}\np.hint[data-v-efe8beb8] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-efe8beb8] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-efe8beb8] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-efe8beb8] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-efe8beb8] {\n display: block;\n width: 32px;\n height: 32px;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-efe8beb8] {\n padding: 4px;\n}\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcCollectionList-yjTCAR46.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-878b819f] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-878b819f] {\\n display: flex;\\n}\\n.linked-icons img[data-v-878b819f] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-878b819f]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-878b819f] {\\n display: none;\\n}\\n.popovermenu.open[data-v-878b819f] {\\n display: block;\\n}\\nli.collection-list-item[data-v-878b819f] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-878b819f] {\\n margin-top: 0;\\n}\\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-878b819f] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-878b819f] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-878b819f] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-878b819f] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-878b819f] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-878b819f]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-878b819f] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-878b819f] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-878b819f] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\\n opacity: 1;\\n}\\n.should-shake[data-v-878b819f] {\\n animation: shake-878b819f 0.6s 1 linear;\\n}\\n@keyframes shake-878b819f {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-efe8beb8] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.collection-list *[data-v-efe8beb8] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-efe8beb8] {\\n display: flex;\\n align-items: center;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-efe8beb8] {\\n margin-top: 0;\\n}\\n#collection-select-container[data-v-efe8beb8] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-efe8beb8] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-efe8beb8]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-efe8beb8] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-efe8beb8] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-efe8beb8] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-efe8beb8] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-efe8beb8] {\\n display: block;\\n width: 32px;\\n height: 32px;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-efe8beb8] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.header[data-v-5c0f8828]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-5c0f8828]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-5c0f8828],.header__cell span[data-v-5c0f8828],.header__cell label[data-v-5c0f8828]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-5c0f8828],.header__cell--displayname[data-v-5c0f8828]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-5c0f8828]{inset-inline-start:0}.header__cell--displayname[data-v-5c0f8828]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-5c0f8828]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-5c0f8828]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-5c0f8828]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-5c0f8828]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-5c0f8828]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--obfuscated[data-v-5c0f8828]{min-width:400px;width:400px}.header__cell--fill[data-v-5c0f8828]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-5c0f8828]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-5c0f8828]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-9e46b7b2] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.team-resources__header[data-v-9e46b7b2] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-team[data-v-9e46b7b2] {\n border-radius: var(--border-radius-rounded);\n border: 2px solid var(--color-border-dark);\n margin-bottom: 6px;\n}\n.related-team__open[data-v-9e46b7b2] {\n border-color: var(--color-primary-element);\n}\n.related-team__header[data-v-9e46b7b2] {\n padding: 6px;\n padding-right: 24px;\n display: flex;\n gap: 12px;\n}\n.related-team__name[data-v-9e46b7b2] {\n display: flex;\n flex-grow: 1;\n align-items: center;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n margin: 0;\n}\n.related-team .related-team-provider[data-v-9e46b7b2] {\n padding: 6px 12px;\n}\n.related-team .related-team-provider__name[data-v-9e46b7b2] {\n font-weight: bold;\n margin-bottom: 3px;\n}\n.related-team .related-team-provider__link[data-v-9e46b7b2] {\n display: flex;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n}\n.related-team .related-team-resource__link[data-v-9e46b7b2] {\n display: flex;\n gap: 12px;\n height: var(--default-clickable-area);\n align-items: center;\n border-radius: var(--border-radius-large);\n}\n.related-team .related-team-resource__link[data-v-9e46b7b2]:hover {\n background-color: var(--color-background-hover);\n}\n.related-team .related-team-resource__link[data-v-9e46b7b2]:focus {\n background-color: var(--color-background-hover);\n outline: 2px solid var(--color-primary-element);\n}\n.related-team .related-team-resource .resource__icon[data-v-9e46b7b2] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n.related-team .related-team-resource .resource__icon > img[data-v-9e46b7b2] {\n border-radius: var(--border-radius-pill);\n overflow: hidden;\n width: 32px;\n height: 32px;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-77c38062] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resource[data-v-77c38062] {\n display: flex;\n align-items: center;\n height: var(--default-clickable-area);\n}\n.resource__button[data-v-77c38062] {\n width: 100% !important;\n justify-content: flex-start !important;\n padding: 0 !important;\n}\n.resource__button[data-v-77c38062] .button-vue__wrapper {\n justify-content: flex-start !important;\n}\n.resource__button[data-v-77c38062] .button-vue__wrapper .button-vue__text {\n font-weight: normal !important;\n margin-left: 2px !important;\n}\n.resource__icon[data-v-77c38062] {\n width: 32px;\n height: 32px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.resource__icon img[data-v-77c38062] {\n width: 16px;\n height: 16px;\n filter: var(--background-invert-if-dark);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-badd46a9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.related-resources__header h5[data-v-badd46a9] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-resources__header p[data-v-badd46a9] {\n color: var(--color-text-maxcontrast);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-DhStLIO2.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,2CAA2C;EAC3C,0CAA0C;EAC1C,kBAAkB;AACpB;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,YAAY;EACZ,mBAAmB;EACnB,aAAa;EACb,SAAS;AACX;AACA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;EACnB,SAAS;EACT,iBAAiB;EACjB,iBAAiB;EACjB,SAAS;AACX;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,SAAS;EACT,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,SAAS;EACT,qCAAqC;EACrC,mBAAmB;EACnB,yCAAyC;AAC3C;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;EAC/C,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;AACpB;AACA;EACE,wCAAwC;EACxC,gBAAgB;EAChB,WAAW;EACX,YAAY;AACd,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,qCAAqC;AACvC;AACA;EACE,sBAAsB;EACtB,sCAAsC;EACtC,qBAAqB;AACvB;AACA;EACE,sCAAsC;AACxC;AACA;EACE,8BAA8B;EAC9B,2BAA2B;AAC7B;AACA;EACE,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,wCAAwC;AAC1C,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,oCAAoC;AACtC\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-9e46b7b2] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.team-resources__header[data-v-9e46b7b2] {\\n font-weight: bold;\\n margin-bottom: 6px;\\n}\\n.related-team[data-v-9e46b7b2] {\\n border-radius: var(--border-radius-rounded);\\n border: 2px solid var(--color-border-dark);\\n margin-bottom: 6px;\\n}\\n.related-team__open[data-v-9e46b7b2] {\\n border-color: var(--color-primary-element);\\n}\\n.related-team__header[data-v-9e46b7b2] {\\n padding: 6px;\\n padding-right: 24px;\\n display: flex;\\n gap: 12px;\\n}\\n.related-team__name[data-v-9e46b7b2] {\\n display: flex;\\n flex-grow: 1;\\n align-items: center;\\n gap: 12px;\\n padding: 6px 12px;\\n font-weight: bold;\\n margin: 0;\\n}\\n.related-team .related-team-provider[data-v-9e46b7b2] {\\n padding: 6px 12px;\\n}\\n.related-team .related-team-provider__name[data-v-9e46b7b2] {\\n font-weight: bold;\\n margin-bottom: 3px;\\n}\\n.related-team .related-team-provider__link[data-v-9e46b7b2] {\\n display: flex;\\n gap: 12px;\\n padding: 6px 12px;\\n font-weight: bold;\\n}\\n.related-team .related-team-resource__link[data-v-9e46b7b2] {\\n display: flex;\\n gap: 12px;\\n height: var(--default-clickable-area);\\n align-items: center;\\n border-radius: var(--border-radius-large);\\n}\\n.related-team .related-team-resource__link[data-v-9e46b7b2]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.related-team .related-team-resource__link[data-v-9e46b7b2]:focus {\\n background-color: var(--color-background-hover);\\n outline: 2px solid var(--color-primary-element);\\n}\\n.related-team .related-team-resource .resource__icon[data-v-9e46b7b2] {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n text-align: center;\\n}\\n.related-team .related-team-resource .resource__icon > img[data-v-9e46b7b2] {\\n border-radius: var(--border-radius-pill);\\n overflow: hidden;\\n width: 32px;\\n height: 32px;\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-77c38062] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource[data-v-77c38062] {\\n display: flex;\\n align-items: center;\\n height: var(--default-clickable-area);\\n}\\n.resource__button[data-v-77c38062] {\\n width: 100% !important;\\n justify-content: flex-start !important;\\n padding: 0 !important;\\n}\\n.resource__button[data-v-77c38062] .button-vue__wrapper {\\n justify-content: flex-start !important;\\n}\\n.resource__button[data-v-77c38062] .button-vue__wrapper .button-vue__text {\\n font-weight: normal !important;\\n margin-left: 2px !important;\\n}\\n.resource__icon[data-v-77c38062] {\\n width: 32px;\\n height: 32px;\\n background-color: var(--color-text-maxcontrast);\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.resource__icon img[data-v-77c38062] {\\n width: 16px;\\n height: 16px;\\n filter: var(--background-invert-if-dark);\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-badd46a9] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.related-resources__header h5[data-v-badd46a9] {\\n font-weight: bold;\\n margin-bottom: 6px;\\n}\\n.related-resources__header p[data-v-badd46a9] {\\n color: var(--color-text-maxcontrast);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0b3c495c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/* 'New' button */\n.app-navigation-new[data-v-0b3c495c] {\n display: block;\n padding: calc(var(--default-grid-baseline, 4px) * 2);\n}\n.app-navigation-new button[data-v-0b3c495c] {\n width: 100%;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNew-Dbo2rvXH.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,iBAAiB;AACjB;EACE,cAAc;EACd,oDAAoD;AACtD;AACA;EACE,WAAW;AACb\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-0b3c495c] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/* 'New' button */\\n.app-navigation-new[data-v-0b3c495c] {\\n display: block;\\n padding: calc(var(--default-grid-baseline, 4px) * 2);\\n}\\n.app-navigation-new button[data-v-0b3c495c] {\\n width: 100%;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-938dadb1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry__icon-bullet[data-v-938dadb1] {\n display: block;\n padding: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\n}\n.app-navigation-entry__icon-bullet div[data-v-938dadb1] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n transition: background 100ms ease-in-out;\n border: none;\n border-radius: 50%;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationIconBullet-CeBYVy6t.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,+DAA+D;AACjE;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,wCAAwC;EACxC,YAAY;EACZ,kBAAkB;AACpB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-938dadb1] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-entry__icon-bullet[data-v-938dadb1] {\\n display: block;\\n padding: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\\n}\\n.app-navigation-entry__icon-bullet div[data-v-938dadb1] {\\n width: 14px;\\n height: 14px;\\n cursor: pointer;\\n transition: background 100ms ease-in-out;\\n border: none;\\n border-radius: 50%;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8ddd08c0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-8ddd08c0]:hover, li.action.active[data-v-8ddd08c0] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-8ddd08c0]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-8ddd08c0] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-8ddd08c0]:hover, .action--disabled[data-v-8ddd08c0]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-8ddd08c0] {\n opacity: 1 !important;\n}\n.action-radio[data-v-8ddd08c0] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-radio__radio[data-v-8ddd08c0] {\n position: absolute;\n inset-inline-start: 0 !important;\n z-index: -1;\n opacity: 0;\n}\n.action-radio__label[data-v-8ddd08c0] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-radio__label[data-v-8ddd08c0]::before {\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-radio--disabled[data-v-8ddd08c0],\n.action-radio--disabled .action-radio__label[data-v-8ddd08c0] {\n cursor: pointer;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionRadio-CodyhP86.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,gCAAgC;EAChC,WAAW;EACX,UAAU;AACZ;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,+EAA+E;AACjF;AACA;EACE,mEAAmE;AACrE;AACA;;EAEE,eAAe;AACjB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-8ddd08c0] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\nli.action[data-v-8ddd08c0]:hover, li.action.active[data-v-8ddd08c0] {\\n border-radius: 6px;\\n padding: 0;\\n}\\nli.action[data-v-8ddd08c0]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.action--disabled[data-v-8ddd08c0] {\\n pointer-events: none;\\n opacity: 0.5;\\n}\\n.action--disabled[data-v-8ddd08c0]:hover, .action--disabled[data-v-8ddd08c0]:focus {\\n cursor: default;\\n opacity: 0.5;\\n}\\n.action--disabled *[data-v-8ddd08c0] {\\n opacity: 1 !important;\\n}\\n.action-radio[data-v-8ddd08c0] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: normal;\\n line-height: var(--default-clickable-area);\\n /* checkbox/radio fixes */\\n}\\n.action-radio__radio[data-v-8ddd08c0] {\\n position: absolute;\\n inset-inline-start: 0 !important;\\n z-index: -1;\\n opacity: 0;\\n}\\n.action-radio__label[data-v-8ddd08c0] {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n padding: 0 !important;\\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2) !important;\\n}\\n.action-radio__label[data-v-8ddd08c0]::before {\\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\\n}\\n.action-radio--disabled[data-v-8ddd08c0],\\n.action-radio--disabled .action-radio__label[data-v-8ddd08c0] {\\n cursor: pointer;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\nconst formatGroup = (group) => ({\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n});\n/**\n * Search groups\n *\n * @param {object} options Options\n * @param {string} options.search Search query\n * @param {number} options.offset Offset\n * @param {number} options.limit Limit\n */\nexport const searchGroups = ({ search, offset, limit }) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n};\n/**\n * Load user groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n/**\n * Load user subadmin groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserSubAdminGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d278a327] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-d278a327] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-d278a327] {\n box-sizing: border-box;\n margin: 0 3px 3px 3px;\n}\n#app-settings__header .settings-button[data-v-d278a327] {\n display: flex;\n flex: 1 1 0;\n height: var(--default-clickable-area);\n width: 100%;\n padding: 0;\n margin: 0;\n background-color: transparent;\n box-shadow: none;\n border: 0;\n border-radius: var(--body-container-radius);\n text-align: start;\n font-weight: normal;\n font-size: 100%;\n color: var(--color-main-text);\n padding-inline-end: 14px;\n line-height: var(--default-clickable-area);\n}\n#app-settings__header .settings-button[data-v-d278a327]:hover, #app-settings__header .settings-button[data-v-d278a327]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-d278a327] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n}\n#app-settings__header .settings-button__label[data-v-d278a327] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-d278a327] {\n display: block;\n padding: 10px;\n /* prevent scrolled contents from stopping too early */\n margin-bottom: -3px;\n /* restrict height of settings and make scrollable */\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-d278a327],\n.slide-up-enter-active[data-v-d278a327] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-d278a327],\n.slide-up-leave-to[data-v-d278a327] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,WAAW;EACX,qCAAqC;EACrC,WAAW;EACX,UAAU;EACV,SAAS;EACT,6BAA6B;EAC7B,gBAAgB;EAChB,SAAS;EACT,2CAA2C;EAC3C,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;EACf,6BAA6B;EAC7B,wBAAwB;EACxB,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;EACb,sDAAsD;EACtD,mBAAmB;EACnB,oDAAoD;EACpD,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;AACxB;AACA;;EAEE,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;;EAEE,wBAAwB;EACxB,0BAA0B;AAC5B\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-d278a327] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#app-settings[data-v-d278a327] {\\n margin-top: auto;\\n padding: 3px;\\n}\\n#app-settings__header[data-v-d278a327] {\\n box-sizing: border-box;\\n margin: 0 3px 3px 3px;\\n}\\n#app-settings__header .settings-button[data-v-d278a327] {\\n display: flex;\\n flex: 1 1 0;\\n height: var(--default-clickable-area);\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n background-color: transparent;\\n box-shadow: none;\\n border: 0;\\n border-radius: var(--body-container-radius);\\n text-align: start;\\n font-weight: normal;\\n font-size: 100%;\\n color: var(--color-main-text);\\n padding-inline-end: 14px;\\n line-height: var(--default-clickable-area);\\n}\\n#app-settings__header .settings-button[data-v-d278a327]:hover, #app-settings__header .settings-button[data-v-d278a327]:focus {\\n background-color: var(--color-background-hover);\\n}\\n#app-settings__header .settings-button__icon[data-v-d278a327] {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n min-width: var(--default-clickable-area);\\n}\\n#app-settings__header .settings-button__label[data-v-d278a327] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n#app-settings__content[data-v-d278a327] {\\n display: block;\\n padding: 10px;\\n /* prevent scrolled contents from stopping too early */\\n margin-bottom: -3px;\\n /* restrict height of settings and make scrollable */\\n max-height: 300px;\\n overflow-y: auto;\\n box-sizing: border-box;\\n}\\n.slide-up-leave-active[data-v-d278a327],\\n.slide-up-enter-active[data-v-d278a327] {\\n transition-duration: var(--animation-slow);\\n transition-property: max-height, padding;\\n overflow-y: hidden !important;\\n}\\n.slide-up-enter[data-v-d278a327],\\n.slide-up-leave-to[data-v-d278a327] {\\n max-height: 0 !important;\\n padding: 0 10px !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-edf83404] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-edf83404]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-edf83404]{height:100% !important}.account-management__settings-toggle[data-v-edf83404]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0907eb0a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-0907eb0a] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-0907eb0a] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-0907eb0a]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-0907eb0a] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;EACpC,gBAAgB;AAClB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-0907eb0a] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.input-wrapper[data-v-0907eb0a] {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n width: 100%;\\n max-width: 400px;\\n}\\n.input-wrapper .action-input__label[data-v-0907eb0a] {\\n margin-right: 12px;\\n}\\n.input-wrapper[data-v-0907eb0a]:disabled {\\n cursor: default;\\n}\\n.input-wrapper .hint[data-v-0907eb0a] {\\n color: var(--color-text-maxcontrast);\\n margin-left: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.dialog__form[data-v-70bbf4c9]{display:flex;flex-direction:column;align-items:center;padding:0 8px;gap:4px 0}.dialog__item[data-v-70bbf4c9]{width:100%}.dialog__item[data-v-70bbf4c9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.dialog__hint[data-v-70bbf4c9]{color:var(--color-text-maxcontrast);margin-top:8px;align-self:flex-start}.dialog__label[data-v-70bbf4c9]{display:block;padding:4px 0}.dialog__select[data-v-70bbf4c9]{width:100%}.dialog__managers[data-v-70bbf4c9]{margin-bottom:12px}.dialog__submit[data-v-70bbf4c9]{margin-top:4px;margin-bottom:8px}.dialog[data-v-70bbf4c9] .dialog__actions{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,aAAA,CACA,SAAA,CAGD,+BACC,UAAA,CAEA,wDACC,qCAAA,CAIF,+BACC,mCAAA,CACA,cAAA,CACA,qBAAA,CAGD,gCACC,aAAA,CACA,aAAA,CAGD,iCACC,UAAA,CAGD,mCACC,kBAAA,CAGD,iCACC,cAAA,CACA,iBAAA,CAIA,0CACC,WAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 0 8px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-top: 8px;\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: block;\\n\\t\\tpadding: 4px 0;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__managers {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tmargin-top: 4px;\\n\\t\\tmargin-bottom: 8px;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.dialog__actions {\\n\\t\\t\\tmargin: auto;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationCaption-DU9PxTvu.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationCaption-DU9PxTvu.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcAppNavigationCaption-DU9PxTvu.css';\nimport { N as NcActions } from \"./NcActions-DEZO46mP.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcAppNavigationCaption\",\n components: {\n NcActions\n },\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n required: true\n },\n /**\n * `id` to set on the inner caption\n * Can be used for connecting the `NcActionCaption` with `NcActionList` using `aria-labelledby`.\n */\n headingId: {\n type: String,\n default: null\n },\n /**\n * Enable when used as a heading\n * e.g. Before NcAppNavigationList\n */\n isHeading: {\n type: Boolean,\n default: false\n },\n /**\n * If `isHeading` is set, this defines the heading level that should be used\n */\n headingLevel: {\n type: Number,\n default: 2\n },\n /**\n * Any [NcActions](#/Components/NcActions?id=ncactions-1) prop\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n },\n computed: {\n wrapperTag() {\n return this.isHeading ? \"div\" : \"li\";\n },\n captionTag() {\n const headingLevel = Math.max(2, this.headingLevel);\n return this.isHeading ? `h${headingLevel}` : \"span\";\n },\n // Check if the actions slot is populated\n hasActions() {\n return !!this.$slots.actions;\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(_vm.wrapperTag, { tag: \"component\", staticClass: \"app-navigation-caption\", class: { \"app-navigation-caption--heading\": _vm.isHeading } }, [_c(_vm.captionTag, { tag: \"component\", staticClass: \"app-navigation-caption__name\", attrs: { \"id\": _vm.headingId } }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]), _vm.hasActions ? _c(\"div\", { staticClass: \"app-navigation-caption__actions\" }, [_c(\"NcActions\", _vm._g(_vm._b({ scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"actionsTriggerIcon\")];\n }, proxy: true }], null, true) }, \"NcActions\", _vm.$attrs, false), _vm.$listeners), [_vm._t(\"actions\")], 2)], 1) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"1133b4da\"\n);\nconst NcAppNavigationCaption = __component__.exports;\nexport {\n NcAppNavigationCaption as N\n};\n//# sourceMappingURL=NcAppNavigationCaption-CkIBHQGQ.mjs.map\n","import '../assets/NcAppNavigationNew-Dbo2rvXH.css';\nimport NcButton from \"./NcButton.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n components: {\n NcButton\n },\n props: {\n buttonId: {\n type: String,\n required: false,\n default: \"\"\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n text: {\n type: String,\n required: true\n },\n /**\n * @deprecated use `variant` instead - will be removed with v9\n */\n type: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n },\n /**\n * The color variant to use.\n * @default 'primary'\n */\n variant: {\n type: String,\n default: \"primary\",\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\"].indexOf(value) !== -1;\n }\n }\n },\n emits: [\"click\"]\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"app-navigation-new\" }, [_c(\"NcButton\", { attrs: { \"id\": _vm.buttonId, \"disabled\": _vm.disabled, \"variant\": _vm.type !== \"primary\" ? _vm.type : _vm.variant }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"icon\")];\n }, proxy: true }], null, true) }, [_vm._v(\" \" + _vm._s(_vm.text) + \" \")])], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"0b3c495c\"\n);\nconst NcAppNavigationNew = __component__.exports;\nexport {\n NcAppNavigationNew as default\n};\n//# sourceMappingURL=NcAppNavigationNew.mjs.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-3e2f3c17]{margin:0}.modal__content[data-v-3e2f3c17]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-3e2f3c17]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.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\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.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(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // disallow unquoted attribute values if not otherwise configured\n // and strict mode is true\n if (parser.opt.unquotedAttributeValues === undefined) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\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\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n if (!Stream) Stream = function () {}\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\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\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\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\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\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\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\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\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\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n continue;\n }\n\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD\n parser.doctype += '<!' + parser.sgmlDecl + c\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n if (c === ']') {\n parser.doctype += c\n parser.state = S.DOCTYPE\n } else if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (isQuote(c)) {\n parser.doctype += c\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n } else {\n parser.doctype += c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, 'Unquoted attribute value')\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n var parsedEntity = parseEntity(parser)\n if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = ''\n parser.state = returnState\n parser.write(parsedEntity)\n } else {\n parser[buffer] += parsedEntity\n parser.entity = ''\n parser.state = returnState\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a9c08a7c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n/* Default global values */\nbutton[data-v-a9c08a7c]:not(.button-vue),\ninput[data-v-a9c08a7c]:not([type=range]),\ntextarea[data-v-a9c08a7c] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n /* Primary action button, use sparingly */\n}\nbutton[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-a9c08a7c],\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-a9c08a7c],\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):hover,\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-a9c08a7c] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-a9c08a7c]:not(.button-vue):disabled,\ninput[data-v-a9c08a7c]:not([type=range]):disabled,\ntextarea[data-v-a9c08a7c]:disabled {\n cursor: default;\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-a9c08a7c]:not(.button-vue):required,\ninput[data-v-a9c08a7c]:not([type=range]):required,\ntextarea[data-v-a9c08a7c]:required {\n box-shadow: none;\n}\nbutton[data-v-a9c08a7c]:not(.button-vue):invalid,\ninput[data-v-a9c08a7c]:not([type=range]):invalid,\ntextarea[data-v-a9c08a7c]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-a9c08a7c],\ninput:not([type=range]).primary[data-v-a9c08a7c],\ntextarea.primary[data-v-a9c08a7c] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):hover, button:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):focus, button:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):active,\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):hover,\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):focus,\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):active,\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:disabled,\ninput:not([type=range]).primary[data-v-a9c08a7c]:disabled,\ntextarea.primary[data-v-a9c08a7c]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-a9c08a7c]:hover, li.action.active[data-v-a9c08a7c] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-a9c08a7c]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-a9c08a7c] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-a9c08a7c]:hover, .action--disabled[data-v-a9c08a7c]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-a9c08a7c] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-a9c08a7c] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* Inputs inside popover supports text, submit & reset */\n}\n.action-text-editable > span[data-v-a9c08a7c] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-a9c08a7c] {\n min-width: 0; /* Overwrite icons*/\n min-height: 0;\n /* Keep padding to define the width to\n \tassure correct position of a possible text */\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n}\n.action-text-editable[data-v-a9c08a7c] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-text-editable[data-v-a9c08a7c] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-a9c08a7c] {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n margin: 4px 0;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.action-text-editable__submit[data-v-a9c08a7c] {\n position: absolute;\n inset-inline-start: 0;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n z-index: -1;\n opacity: 0;\n}\n.action-text-editable__label[data-v-a9c08a7c] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n inset-inline-end: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\n bottom: 1px;\n width: calc(var(--default-clickable-area) - 8px);\n height: calc(var(--default-clickable-area) - 8px);\n box-sizing: border-box;\n margin: 0;\n padding: 7px 6px;\n border: 0;\n border-radius: 50%;\n /* Avoid background under border */\n background-color: var(--color-main-background);\n background-clip: padding-box;\n}\n.action-text-editable__label[data-v-a9c08a7c], .action-text-editable__label *[data-v-a9c08a7c] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-a9c08a7c] {\n flex: 1 1 auto;\n color: inherit;\n border-color: var(--color-border-maxcontrast);\n min-height: calc(var(--default-clickable-area) * 2 - 8px); /* twice the element margin-y */\n max-height: calc(var(--default-clickable-area) * 3 - 8px); /* twice the element margin-y */\n min-width: calc(var(--default-clickable-area) * 4);\n width: 100% !important;\n margin: 0;\n /* only show confirm borders if input is not focused */\n}\n.action-text-editable__textarea[data-v-a9c08a7c]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-a9c08a7c] {\n background-color: var(--color-error);\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:focus {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c] {\n /* above previous input */\n z-index: 2;\n border-color: var(--color-primary-element);\n border-inline-start-color: transparent;\n}\nli:last-child > .action-text-editable[data-v-a9c08a7c] {\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-text-editable[data-v-a9c08a7c] {\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-CasTVqIo.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;;;;EAIE;AACF,0BAA0B;AAC1B;;;EAGE,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,gCAAgC;EAChC,0CAA0C;EAC1C,mCAAmC;EACnC,aAAa;EACb,8CAA8C;EAC9C,eAAe;EACf,yCAAyC;AAC3C;AACA;;;;;;;EAOE,sCAAsC;EACtC,0CAA0C;EAC1C,aAAa;AACf;AACA;;;EAGE,8BAA8B;EAC9B,aAAa;EACb,8CAA8C;AAChD;AACA;;;EAGE,eAAe;EACf,YAAY;EACZ,oCAAoC;EACpC,8CAA8C;AAChD;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gCAAgC;EAChC,2BAA2B;AAC7B;AACA;;;EAGE,eAAe;EACf,wCAAwC;EACxC,0CAA0C;EAC1C,8CAA8C;AAChD;AACA;;;;;;;EAOE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;;;EAGE,6CAA6C;AAC/C;AACA;;;EAGE,eAAe;EACf,6CAA6C;EAC7C,8CAA8C;AAChD;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,wDAAwD;AAC1D;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,YAAY,EAAE,mBAAmB;EACjC,aAAa;EACb;+CAC6C;EAC7C,wHAAwH;EACxH,4EAA4E;EAC5E,qBAAqB;AACvB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,aAAa;EACb,oEAAoE;AACtE;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,SAAS;EACT,UAAU;EACV,WAAW;EACX,gBAAgB;EAChB,WAAW;EACX,UAAU;AACZ;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,wEAAwE;EACxE,WAAW;EACX,gDAAgD;EAChD,iDAAiD;EACjD,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,kCAAkC;EAClC,8CAA8C;EAC9C,4BAA4B;AAC9B;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,cAAc;EACd,6CAA6C;EAC7C,yDAAyD,EAAE,+BAA+B;EAC1F,yDAAyD,EAAE,+BAA+B;EAC1F,kDAAkD;EAClD,sBAAsB;EACtB,SAAS;EACT,sDAAsD;AACxD;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,yBAAyB;EACzB,UAAU;EACV,0CAA0C;EAC1C,sCAAsC;AACxC;AACA;EACE,qEAAqE;AACvE;AACA;EACE,kEAAkE;AACpE\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-a9c08a7c] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * color-text-lighter\\t\\tnormal state\\n * color-text-lighter\\t\\tactive state\\n * color-text-maxcontrast \\tdisabled state\\n */\\n/* Default global values */\\nbutton[data-v-a9c08a7c]:not(.button-vue),\\ninput[data-v-a9c08a7c]:not([type=range]),\\ntextarea[data-v-a9c08a7c] {\\n margin: 0;\\n padding: 7px 6px;\\n cursor: text;\\n color: var(--color-text-lighter);\\n border: 1px solid var(--color-border-dark);\\n border-radius: var(--border-radius);\\n outline: none;\\n background-color: var(--color-main-background);\\n font-size: 13px;\\n /* Primary action button, use sparingly */\\n}\\nbutton[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-a9c08a7c],\\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):hover,\\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):focus,\\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-a9c08a7c],\\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):hover,\\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):focus,\\ntextarea:not(:disabled):not(.primary).active[data-v-a9c08a7c] {\\n /* active class used for multiselect */\\n border-color: var(--color-primary-element);\\n outline: none;\\n}\\nbutton[data-v-a9c08a7c]:not(.button-vue):not(:disabled):not(.primary):active,\\ninput[data-v-a9c08a7c]:not([type=range]):not(:disabled):not(.primary):active,\\ntextarea[data-v-a9c08a7c]:not(:disabled):not(.primary):active {\\n color: var(--color-text-light);\\n outline: none;\\n background-color: var(--color-main-background);\\n}\\nbutton[data-v-a9c08a7c]:not(.button-vue):disabled,\\ninput[data-v-a9c08a7c]:not([type=range]):disabled,\\ntextarea[data-v-a9c08a7c]:disabled {\\n cursor: default;\\n opacity: 0.5;\\n color: var(--color-text-maxcontrast);\\n background-color: var(--color-background-dark);\\n}\\nbutton[data-v-a9c08a7c]:not(.button-vue):required,\\ninput[data-v-a9c08a7c]:not([type=range]):required,\\ntextarea[data-v-a9c08a7c]:required {\\n box-shadow: none;\\n}\\nbutton[data-v-a9c08a7c]:not(.button-vue):invalid,\\ninput[data-v-a9c08a7c]:not([type=range]):invalid,\\ntextarea[data-v-a9c08a7c]:invalid {\\n border-color: var(--color-error);\\n box-shadow: none !important;\\n}\\nbutton:not(.button-vue).primary[data-v-a9c08a7c],\\ninput:not([type=range]).primary[data-v-a9c08a7c],\\ntextarea.primary[data-v-a9c08a7c] {\\n cursor: pointer;\\n color: var(--color-primary-element-text);\\n border-color: var(--color-primary-element);\\n background-color: var(--color-primary-element);\\n}\\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):hover, button:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):focus, button:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):hover,\\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):focus,\\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):active,\\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):hover,\\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):focus,\\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):active {\\n border-color: var(--color-primary-element-light);\\n background-color: var(--color-primary-element-light);\\n}\\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-a9c08a7c]:not(:disabled):active,\\ntextarea.primary[data-v-a9c08a7c]:not(:disabled):active {\\n color: var(--color-primary-element-text-dark);\\n}\\nbutton:not(.button-vue).primary[data-v-a9c08a7c]:disabled,\\ninput:not([type=range]).primary[data-v-a9c08a7c]:disabled,\\ntextarea.primary[data-v-a9c08a7c]:disabled {\\n cursor: default;\\n color: var(--color-primary-element-text-dark);\\n background-color: var(--color-primary-element);\\n}\\n\\n/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\nli.action[data-v-a9c08a7c]:hover, li.action.active[data-v-a9c08a7c] {\\n border-radius: 6px;\\n padding: 0;\\n}\\nli.action[data-v-a9c08a7c]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.action--disabled[data-v-a9c08a7c] {\\n pointer-events: none;\\n opacity: 0.5;\\n}\\n.action--disabled[data-v-a9c08a7c]:hover, .action--disabled[data-v-a9c08a7c]:focus {\\n cursor: default;\\n opacity: 0.5;\\n}\\n.action--disabled *[data-v-a9c08a7c] {\\n opacity: 1 !important;\\n}\\n.action-text-editable[data-v-a9c08a7c] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: normal;\\n line-height: var(--default-clickable-area);\\n /* Inputs inside popover supports text, submit & reset */\\n}\\n.action-text-editable > span[data-v-a9c08a7c] {\\n cursor: pointer;\\n white-space: nowrap;\\n}\\n.action-text-editable__icon[data-v-a9c08a7c] {\\n min-width: 0; /* Overwrite icons*/\\n min-height: 0;\\n /* Keep padding to define the width to\\n \\tassure correct position of a possible text */\\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\\n background-size: 16px;\\n}\\n.action-text-editable[data-v-a9c08a7c] .material-design-icon {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n opacity: 1;\\n}\\n.action-text-editable[data-v-a9c08a7c] .material-design-icon .material-design-icon__svg {\\n vertical-align: middle;\\n}\\n.action-text-editable__form[data-v-a9c08a7c] {\\n display: flex;\\n flex: 1 1 auto;\\n flex-direction: column;\\n position: relative;\\n margin: 4px 0;\\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\\n}\\n.action-text-editable__submit[data-v-a9c08a7c] {\\n position: absolute;\\n inset-inline-start: 0;\\n top: auto;\\n width: 1px;\\n height: 1px;\\n overflow: hidden;\\n z-index: -1;\\n opacity: 0;\\n}\\n.action-text-editable__label[data-v-a9c08a7c] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n position: absolute;\\n inset-inline-end: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\\n bottom: 1px;\\n width: calc(var(--default-clickable-area) - 8px);\\n height: calc(var(--default-clickable-area) - 8px);\\n box-sizing: border-box;\\n margin: 0;\\n padding: 7px 6px;\\n border: 0;\\n border-radius: 50%;\\n /* Avoid background under border */\\n background-color: var(--color-main-background);\\n background-clip: padding-box;\\n}\\n.action-text-editable__label[data-v-a9c08a7c], .action-text-editable__label *[data-v-a9c08a7c] {\\n cursor: pointer;\\n}\\n.action-text-editable__textarea[data-v-a9c08a7c] {\\n flex: 1 1 auto;\\n color: inherit;\\n border-color: var(--color-border-maxcontrast);\\n min-height: calc(var(--default-clickable-area) * 2 - 8px); /* twice the element margin-y */\\n max-height: calc(var(--default-clickable-area) * 3 - 8px); /* twice the element margin-y */\\n min-width: calc(var(--default-clickable-area) * 4);\\n width: 100% !important;\\n margin: 0;\\n /* only show confirm borders if input is not focused */\\n}\\n.action-text-editable__textarea[data-v-a9c08a7c]:disabled {\\n cursor: default;\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-a9c08a7c] {\\n background-color: var(--color-error);\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a9c08a7c]:focus {\\n background-color: var(--color-primary-element);\\n color: var(--color-primary-element-text);\\n}\\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-a9c08a7c] {\\n /* above previous input */\\n z-index: 2;\\n border-color: var(--color-primary-element);\\n border-inline-start-color: transparent;\\n}\\nli:last-child > .action-text-editable[data-v-a9c08a7c] {\\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\\n}\\nli:first-child > .action-text-editable[data-v-a9c08a7c] {\\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"type\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCog}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings','New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2218088905)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOff}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppSettingsDialog :open.sync=\"isModalOpen\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('settings', 'Account management settings')\">\n\t\t<NcAppSettingsSection id=\"visibility-settings\"\n\t\t\t:name=\"t('settings', 'Visibility')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLanguages\"\n\t\t\t\t:checked.sync=\"showLanguages\">\n\t\t\t\t{{ t('settings', 'Show language') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showUserBackend\"\n\t\t\t\t:checked.sync=\"showUserBackend\">\n\t\t\t\t{{ t('settings', 'Show account backend') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showStoragePath\"\n\t\t\t\t:checked.sync=\"showStoragePath\">\n\t\t\t\t{{ t('settings', 'Show storage path') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showFirstLogin\"\n\t\t\t\t:checked.sync=\"showFirstLogin\">\n\t\t\t\t{{ t('settings', 'Show first login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLastLogin\"\n\t\t\t\t:checked.sync=\"showLastLogin\">\n\t\t\t\t{{ t('settings', 'Show last login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"groups-sorting\"\n\t\t\t:name=\"t('settings', 'Sorting')\">\n\t\t\t<NcNoteCard v-if=\"isGroupSortingEnforced\" type=\"warning\">\n\t\t\t\t{{ t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.') }}\n\t\t\t</NcNoteCard>\n\t\t\t<fieldset>\n\t\t\t\t<legend>{{ t('settings', 'Group list sorting') }}</legend>\n\t\t\t\t<NcNoteCard class=\"dialog__note\"\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t:text=\"t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')\" />\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByMemberCount\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"member-count\">\n\t\t\t\t\t{{ t('settings', 'By member count') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByName\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"name\">\n\t\t\t\t\t{{ t('settings', 'By name') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t</fieldset>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"email-settings\"\n\t\t\t:name=\"t('settings', 'Send email')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"sendWelcomeMail\"\n\t\t\t\t:checked.sync=\"sendWelcomeMail\"\n\t\t\t\t:disabled=\"loadingSendMail\">\n\t\t\t\t{{ t('settings', 'Send welcome email to new accounts') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"default-settings\"\n\t\t\t:name=\"t('settings', 'Defaults')\">\n\t\t\t<NcSelect v-model=\"defaultQuota\"\n\t\t\t\t:clearable=\"false\"\n\t\t\t\t:create-option=\"validateQuota\"\n\t\t\t\t:filter-by=\"filterQuotas\"\n\t\t\t\t:input-label=\"t('settings', 'Default quota')\"\n\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\tplacement=\"top\"\n\t\t\t\t:placeholder=\"t('settings', 'Select default quota')\"\n\t\t\t\ttaggable\n\t\t\t\t@option:selected=\"setDefaultQuota\" />\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\n\nimport axios from '@nextcloud/axios'\nimport NcAppSettingsDialog from '@nextcloud/vue/components/NcAppSettingsDialog'\nimport NcAppSettingsSection from '@nextcloud/vue/components/NcAppSettingsSection'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\n\nimport { GroupSorting } from '../../constants/GroupManagement.ts'\nimport { unlimitedQuota } from '../../utils/userUtils.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'UserSettingsDialog',\n\n\tcomponents: {\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcNoteCard,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedQuota: false,\n\t\t\tloadingSendMail: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgroupSorting: {\n\t\t\tget() {\n\t\t\t\treturn this.$store.getters.getGroupSorting === GroupSorting.GroupName ? 'name' : 'member-count'\n\t\t\t},\n\t\t\tset(sorting) {\n\t\t\t\tthis.$store.commit('setGroupSorting', sorting === 'name' ? GroupSorting.GroupName : GroupSorting.UserCount)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Admin has configured `sort_groups_by_name` in the system config\n\t\t */\n\t\tisGroupSortingEnforced() {\n\t\t\treturn this.$store.getters.getServerData.forceSortGroupByName\n\t\t},\n\n\t\tisModalOpen: {\n\t\t\tget() {\n\t\t\t\treturn this.open\n\t\t\t},\n\t\t\tset(open) {\n\t\t\t\tthis.$emit('update:open', open)\n\t\t\t},\n\t\t},\n\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tshowLanguages: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLanguages\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLanguages', status)\n\t\t\t},\n\t\t},\n\n\t\tshowFirstLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showFirstLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showFirstLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowLastLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLastLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLastLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowUserBackend: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showUserBackend\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showUserBackend', status)\n\t\t\t},\n\t\t},\n\n\t\tshowStoragePath: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showStoragePath\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showStoragePath', status)\n\t\t\t},\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({ id: cur, label: cur }), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tdefaultQuota: {\n\t\t\tget() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota\n\t\t\t\t}\n\t\t\t\tif (this.settings.defaultQuota !== unlimitedQuota.id && OC.Util.computerFileSize(this.settings.defaultQuota) >= 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota }\n\t\t\t\t}\n\t\t\t\treturn unlimitedQuota // unlimited\n\t\t\t},\n\t\t\tset(quota) {\n\t\t\t\tthis.selectedQuota = quota\n\t\t\t},\n\t\t},\n\n\t\tsendWelcomeMail: {\n\t\t\tget() {\n\t\t\t\treturn this.settings.newUserSendEmail\n\t\t\t},\n\t\t\tasync set(value) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.loadingSendMail = true\n\t\t\t\t\tthis.$store.commit('setServerData', {\n\t\t\t\t\t\t...this.settings,\n\t\t\t\t\t\tnewUserSendEmail: value,\n\t\t\t\t\t})\n\t\t\t\t\tawait axios.post(generateUrl('/settings/users/preferences/newUser.sendEmail'), { value: value ? 'yes' : 'no' })\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Could not update newUser.sendEmail preference', { error })\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loadingSendMail = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if a quota matches the current search.\n\t\t * This is a custom filter function to allow to map \"1GB\" to the label \"1 GB\" (ignoring whitespaces).\n\t\t *\n\t\t * @param option The quota to check\n\t\t * @param label The label of the quota\n\t\t * @param search The search string\n\t\t */\n\t\tfilterQuotas(option, label, search) {\n\t\t\tconst searchValue = search.toLocaleLowerCase().replaceAll(/\\s/g, '')\n\t\t\treturn (label || '')\n\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t.replaceAll(/\\s/g, '')\n\t\t\t\t.indexOf(searchValue) > -1\n\t\t},\n\n\t\tsetShowConfig(key, status) {\n\t\t\tthis.$store.commit('setShowConfig', { key, value: status })\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {object} The validated quota object or unlimited quota if input is invalid\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\tif (typeof quota === 'object') {\n\t\t\t\tquota = quota?.id || quota.label\n\t\t\t}\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = parseFileSize(quota, true)\n\t\t\tif (validQuota === null) {\n\t\t\t\treturn unlimitedQuota\n\t\t\t}\n\t\t\t// unify format output\n\t\t\tquota = formatFileSize(validQuota)\n\t\t\treturn { id: quota, label: quota }\n\t\t},\n\n\t\t/**\n\t\t * Dispatch default quota set request\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t */\n\t\tsetDefaultQuota(quota = 'none') {\n\t\t\t// Make sure correct label is set for unlimited quota\n\t\t\tif (quota === 'none') {\n\t\t\t\tquota = unlimitedQuota\n\t\t\t}\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota,\n\t\t\t}).then(() => {\n\t\t\t\tif (typeof quota !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota }\n\t\t\t\t}\n\t\t\t\tthis.defaultQuota = quota\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=9f7a355c&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f7a355c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\",\"checked\":_vm.showLanguages},on:{\"update:checked\":function($event){_vm.showLanguages=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\",\"checked\":_vm.showUserBackend},on:{\"update:checked\":function($event){_vm.showUserBackend=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\",\"checked\":_vm.showStoragePath},on:{\"update:checked\":function($event){_vm.showStoragePath=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\",\"checked\":_vm.showFirstLogin},on:{\"update:checked\":function($event){_vm.showFirstLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\",\"checked\":_vm.showLastLogin},on:{\"update:checked\":function($event){_vm.showLastLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"checked\":_vm.sendWelcomeMail,\"disabled\":_vm.loadingSendMail},on:{\"update:checked\":function($event){_vm.sendWelcomeMail=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroup}})]},proxy:true}],null,false,3607647275)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.userGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Fragment>\n\t\t<NcModal v-if=\"showRemoveGroupModal\"\n\t\t\t@close=\"showRemoveGroupModal = false\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h2 class=\"modal__header\">\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t</h2>\n\t\t\t\t<NcNoteCard type=\"warning\"\n\t\t\t\t\tshow-alert>\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t</NcNoteCard>\n\t\t\t\t<div class=\"modal__button-row\">\n\t\t\t\t\t<NcButton type=\"secondary\"\n\t\t\t\t\t\t@click=\"showRemoveGroupModal = false\">\n\t\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t\t@click=\"removeGroup\">\n\t\t\t\t\t\t{{ t('settings', 'Confirm') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\n\t\t<NcAppNavigationItem :key=\"id\"\n\t\t\tref=\"listItem\"\n\t\t\t:exact=\"true\"\n\t\t\t:name=\"name\"\n\t\t\t:to=\"{ name: 'group', params: { selectedGroup: encodeURIComponent(id) } }\"\n\t\t\t:loading=\"loadingRenameGroup\"\n\t\t\t:menu-open=\"openGroupMenu\"\n\t\t\t@update:menuOpen=\"handleGroupMenuOpen\">\n\t\t\t<template #icon>\n\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #counter>\n\t\t\t\t<NcCounterBubble v-if=\"count\"\n\t\t\t\t\t:type=\"active ? 'highlighted' : undefined\">\n\t\t\t\t\t{{ count }}\n\t\t\t\t</NcCounterBubble>\n\t\t\t</template>\n\t\t\t<template #actions>\n\t\t\t\t<NcActionInput v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\tref=\"displayNameInput\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t:label=\" t('settings', 'Rename group')\"\n\t\t\t\t\t@submit=\"renameGroup(id)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionInput>\n\t\t\t\t<NcActionButton v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\t@click=\"showRemoveGroupModal = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('settings', 'Delete group') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcAppNavigationItem>\n\t</Fragment>\n</template>\n\n<script>\nimport { Fragment } from 'vue-frag'\n\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionInput from '@nextcloud/vue/components/NcActionInput'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCounterBubble from '@nextcloud/vue/components/NcCounterBubble'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\n\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\n\nimport { showError } from '@nextcloud/dialogs'\n\nexport default {\n\tname: 'GroupListItem',\n\tcomponents: {\n\t\tAccountGroup,\n\t\tDelete,\n\t\tFragment,\n\t\tNcActionButton,\n\t\tNcActionInput,\n\t\tNcAppNavigationItem,\n\t\tNcButton,\n\t\tNcCounterBubble,\n\t\tNcModal,\n\t\tNcNoteCard,\n\t\tPencil,\n\t},\n\tprops: {\n\t\t/**\n\t\t * If this group is currently selected\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Number of members within this group\n\t\t */\n\t\tcount: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Identifier of this group\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Name of this group\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloadingRenameGroup: false,\n\t\t\topenGroupMenu: false,\n\t\t\tshowRemoveGroupModal: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\t},\n\tmethods: {\n\t\thandleGroupMenuOpen() {\n\t\t\tthis.openGroupMenu = true\n\t\t},\n\t\tasync renameGroup(gid) {\n\t\t\t// check if group id is valid\n\t\t\tif (gid.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst displayName = this.$refs.displayNameInput.$el.querySelector('input[type=\"text\"]').value\n\n\t\t\t// check if group name is valid\n\t\t\tif (displayName.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.openGroupMenu = false\n\t\t\t\tthis.loadingRenameGroup = true\n\t\t\t\tawait this.$store.dispatch('renameGroup', {\n\t\t\t\t\tgroupid: gid.trim(),\n\t\t\t\t\tdisplayName: displayName.trim(),\n\t\t\t\t})\n\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t} catch {\n\t\t\t\tthis.openGroupMenu = true\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t}\n\t\t},\n\t\tasync removeGroup() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeGroup', this.id)\n\t\t\t\tthis.showRemoveGroupModal = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('settings', 'Failed to delete group \"{group}\"', { group: this.name }))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=3e2f3c17&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e2f3c17\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n const item = {\n id: group.id,\n title: group.name,\n usercount: group.usercount,\n count: Math.max(0, group.usercount - group.disabled),\n };\n return item;\n}\nexport const useFormatGroups = (groups) => {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter(group => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map(group => formatGroupMenu(group))\n // remove invalid\n .filter(group => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=2057c7ae\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=edf83404&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"edf83404\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n._fadeTransition_13rtj_2 {\n\ttransition: all var(--animation-quick) ease;\n}\n._fadeTransitionActive_13rtj_6 {\n\topacity: 0;\n\tposition: absolute;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcBlurHash-7aGtE-_T.css\"],\"names\":[],\"mappings\":\";AACA;CACC,2CAA2C;AAC5C;AACA;CACC,UAAU;CACV,kBAAkB;AACnB\",\"sourcesContent\":[\"\\n._fadeTransition_13rtj_2 {\\n\\ttransition: all var(--animation-quick) ease;\\n}\\n._fadeTransitionActive_13rtj_6 {\\n\\topacity: 0;\\n\\tposition: absolute;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationNew-Dbo2rvXH.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcAppNavigationNew-Dbo2rvXH.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcRichText-CzCM9V1U.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-DN7C4An4.mjs\";\nimport { U as URL_PATTERN, p as parseUrl, r as remarkAutolink, g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { getSharingToken } from \"@nextcloud/sharing/public\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./NcCheckboxRadioSwitch-Di9rSADK.mjs\";\nimport { visit, SKIP as SKIP$1, EXIT as EXIT$1 } from \"unist-util-visit\";\nimport { u } from \"unist-builder\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport breaks from \"remark-breaks\";\nimport remark2rehype from \"remark-rehype\";\nimport rehype2react from \"rehype-react\";\nimport rehypeExternalLinks from \"rehype-external-links\";\nimport { RouterLink } from \"vue-router\";\nconst _sfc_main$1 = {\n name: \"NcReferenceList\",\n components: {\n NcReferenceWidget\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n referenceData: {\n type: Array,\n default: null\n },\n limit: {\n type: Number,\n default: 1\n },\n displayFallback: {\n type: Boolean,\n default: false\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n references: null,\n loading: true\n };\n },\n computed: {\n isVisible() {\n return this.loading || this.displayedReferences.length !== 0;\n },\n values() {\n if (this.referenceData) {\n return this.referenceData;\n }\n if (this.displayFallback && !this.loading && !this.references) {\n return [this.fallbackReference];\n }\n return this.references ? Object.values(this.references) : [];\n },\n firstReference() {\n return this.values[0] ?? null;\n },\n displayedReferences() {\n return this.values.slice(0, this.limit);\n },\n fallbackReference() {\n return {\n accessible: true,\n openGraphObject: {\n id: this.text,\n link: this.text,\n name: this.text\n },\n richObjectType: \"open-graph\"\n };\n }\n },\n watch: {\n text: \"fetch\"\n },\n mounted() {\n this.fetch();\n },\n methods: {\n fetch() {\n this.loading = true;\n if (this.referenceData) {\n this.references = null;\n this.loading = false;\n return;\n }\n if (!new RegExp(URL_PATTERN).exec(this.text)) {\n this.references = null;\n this.loading = false;\n return;\n }\n this.resolve().then((response) => {\n this.references = response.data.ocs.data.references;\n this.loading = false;\n this.$emit(\"loaded\");\n }).catch((error) => {\n console.error(\"Failed to extract references\", error);\n this.loading = false;\n this.$emit(\"loaded\");\n });\n },\n resolve() {\n const match = new RegExp(URL_PATTERN).exec(this.text.trim());\n const isPublic = getCurrentUser() === null;\n if (this.limit === 1 && match) {\n return isPublic ? axios.get(generateOcsUrl(\"references/resolvePublic\") + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) : axios.get(generateOcsUrl(\"references/resolve\") + `?reference=${encodeURIComponent(match[0])}`);\n }\n return isPublic ? axios.post(generateOcsUrl(\"references/extractPublic\"), {\n text: this.text,\n resolve: true,\n limit: this.limit,\n sharingToken: getSharingToken()\n }) : axios.post(generateOcsUrl(\"references/extract\"), {\n text: this.text,\n resolve: true,\n limit: this.limit\n });\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _vm.isVisible ? _c(\"div\", { staticClass: \"widgets--list\", class: { \"icon-loading\": _vm.loading } }, _vm._l(_vm.displayedReferences, function(reference) {\n return _c(\"NcReferenceWidget\", { key: reference?.openGraphObject?.id, attrs: { \"reference\": reference, \"interactive\": _vm.interactive, \"interactive-opt-in\": _vm.interactiveOptIn } });\n }), 1) : _vm._e();\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"ffdba753\"\n);\nconst NcReferenceList = __component__$1.exports;\nconst remarkPlaceholder = function() {\n return function(ast) {\n visit(ast, (node2) => node2.type === \"text\", visitor);\n function visitor(node2, index, parent) {\n const placeholders = node2.value.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map((entry, index2, list2) => {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return u(\"text\", entry);\n }\n const [, component] = matches;\n return u(\"element\", {\n tagName: `#${component}`\n });\n });\n parent.children.splice(index, 1, ...placeholders);\n }\n };\n};\nconst prepareTextNode = ({ h, context }, text2) => {\n if (context.autolink) {\n text2 = parseUrl(text2);\n }\n if (Array.isArray(text2)) {\n return text2.map((entry) => {\n if (typeof entry === \"string\") {\n return entry;\n }\n const { component, props } = entry;\n const componentClass = component.name === \"NcLink\" ? void 0 : \"rich-text--component\";\n return h(component, {\n props,\n class: componentClass\n });\n });\n }\n return text2;\n};\nconst remarkUnescape = function() {\n return function(tree) {\n visit(\n tree,\n (node2) => [\"text\", \"code\", \"inlineCode\"].includes(node2.type),\n (node2, index, parent) => {\n parent.children.splice(index, 1, {\n ...node2,\n value: node2.value.replace(/</gmi, \"<\").replace(/>/gmi, \">\")\n });\n return [SKIP$1, index + 1];\n }\n );\n };\n};\nfunction ccount(value, character) {\n const source = String(value);\n if (typeof character !== \"string\") {\n throw new TypeError(\"Expected character\");\n }\n let count = 0;\n let index = source.indexOf(character);\n while (index !== -1) {\n count++;\n index = source.indexOf(character, index + character.length);\n }\n return count;\n}\nfunction ok$1() {\n}\nconst asciiAlpha = regexCheck(/[A-Za-z]/);\nconst asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\nfunction asciiControl(code2) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code2 !== null && (code2 < 32 || code2 === 127)\n );\n}\nfunction markdownLineEnding(code2) {\n return code2 !== null && code2 < -2;\n}\nfunction markdownLineEndingOrSpace(code2) {\n return code2 !== null && (code2 < 0 || code2 === 32);\n}\nfunction markdownSpace(code2) {\n return code2 === -2 || code2 === -1 || code2 === 32;\n}\nconst unicodePunctuation = regexCheck(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\"));\nconst unicodeWhitespace = regexCheck(/\\s/);\nfunction regexCheck(regex) {\n return check;\n function check(code2) {\n return code2 !== null && code2 > -1 && regex.test(String.fromCharCode(code2));\n }\n}\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\nconst convert = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(test) {\n if (test === null || test === void 0) {\n return ok;\n }\n if (typeof test === \"function\") {\n return castFactory(test);\n }\n if (typeof test === \"object\") {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test);\n }\n if (typeof test === \"string\") {\n return typeFactory(test);\n }\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction anyFactory(tests) {\n const checks = [];\n let index = -1;\n while (++index < tests.length) {\n checks[index] = convert(tests[index]);\n }\n return castFactory(any);\n function any(...parameters) {\n let index2 = -1;\n while (++index2 < checks.length) {\n if (checks[index2].apply(this, parameters)) return true;\n }\n return false;\n }\n}\nfunction propsFactory(check) {\n const checkAsRecord = (\n /** @type {Record<string, unknown>} */\n check\n );\n return castFactory(all2);\n function all2(node2) {\n const nodeAsRecord = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n node2\n );\n let key;\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false;\n }\n return true;\n }\n}\nfunction typeFactory(check) {\n return castFactory(type);\n function type(node2) {\n return node2 && node2.type === check;\n }\n}\nfunction castFactory(testFunction) {\n return check;\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) && testFunction.call(\n this,\n value,\n typeof index === \"number\" ? index : void 0,\n parent || void 0\n )\n );\n }\n}\nfunction ok() {\n return true;\n}\nfunction looksLikeANode(value) {\n return value !== null && typeof value === \"object\" && \"type\" in value;\n}\nfunction color(d) {\n return d;\n}\nconst empty = [];\nconst CONTINUE = true;\nconst EXIT = false;\nconst SKIP = \"skip\";\nfunction visitParents(tree, test, visitor, reverse) {\n let check;\n {\n check = test;\n }\n const is = convert(check);\n const step = 1;\n factory(tree, void 0, [])();\n function factory(node2, index, parents) {\n const value = (\n /** @type {Record<string, unknown>} */\n node2 && typeof node2 === \"object\" ? node2 : {}\n );\n if (typeof value.type === \"string\") {\n const name = (\n // `hast`\n typeof value.tagName === \"string\" ? value.tagName : (\n // `xast`\n typeof value.name === \"string\" ? value.name : void 0\n )\n );\n Object.defineProperty(visit2, \"name\", {\n value: \"node (\" + color(node2.type + (name ? \"<\" + name + \">\" : \"\")) + \")\"\n });\n }\n return visit2;\n function visit2() {\n let result = empty;\n let subresult;\n let offset;\n let grandparents;\n if (is(node2, index, parents[parents.length - 1] || void 0)) {\n result = toResult(visitor(node2, parents));\n if (result[0] === EXIT) {\n return result;\n }\n }\n if (\"children\" in node2 && node2.children) {\n const nodeAsParent = (\n /** @type {UnistParent} */\n node2\n );\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = -1 + step;\n grandparents = parents.concat(nodeAsParent);\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset];\n subresult = factory(child, offset, grandparents)();\n if (subresult[0] === EXIT) {\n return subresult;\n }\n offset = typeof subresult[1] === \"number\" ? subresult[1] : offset + step;\n }\n }\n }\n return result;\n }\n }\n}\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"number\") {\n return [CONTINUE, value];\n }\n return value === null || value === void 0 ? empty : [value];\n}\nfunction findAndReplace(tree, list2, options) {\n const settings = options || {};\n const ignored = convert(settings.ignore || []);\n const pairs = toPairs(list2);\n let pairIndex = -1;\n while (++pairIndex < pairs.length) {\n visitParents(tree, \"text\", visitor);\n }\n function visitor(node2, parents) {\n let index = -1;\n let grandparent;\n while (++index < parents.length) {\n const parent = parents[index];\n const siblings = grandparent ? grandparent.children : void 0;\n if (ignored(\n parent,\n siblings ? siblings.indexOf(parent) : void 0,\n grandparent\n )) {\n return;\n }\n grandparent = parent;\n }\n if (grandparent) {\n return handler(node2, parents);\n }\n }\n function handler(node2, parents) {\n const parent = parents[parents.length - 1];\n const find = pairs[pairIndex][0];\n const replace2 = pairs[pairIndex][1];\n let start = 0;\n const siblings = parent.children;\n const index = siblings.indexOf(node2);\n let change = false;\n let nodes = [];\n find.lastIndex = 0;\n let match = find.exec(node2.value);\n while (match) {\n const position = match.index;\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node2]\n };\n let value = replace2(...match, matchObject);\n if (typeof value === \"string\") {\n value = value.length > 0 ? { type: \"text\", value } : void 0;\n }\n if (value === false) {\n find.lastIndex = position + 1;\n } else {\n if (start !== position) {\n nodes.push({\n type: \"text\",\n value: node2.value.slice(start, position)\n });\n }\n if (Array.isArray(value)) {\n nodes.push(...value);\n } else if (value) {\n nodes.push(value);\n }\n start = position + match[0].length;\n change = true;\n }\n if (!find.global) {\n break;\n }\n match = find.exec(node2.value);\n }\n if (change) {\n if (start < node2.value.length) {\n nodes.push({ type: \"text\", value: node2.value.slice(start) });\n }\n parent.children.splice(index, 1, ...nodes);\n } else {\n nodes = [node2];\n }\n return index + nodes.length;\n }\n}\nfunction toPairs(tupleOrList) {\n const result = [];\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError(\"Expected find and replace tuple or list of tuples\");\n }\n const list2 = !tupleOrList[0] || Array.isArray(tupleOrList[0]) ? tupleOrList : [tupleOrList];\n let index = -1;\n while (++index < list2.length) {\n const tuple = list2[index];\n result.push([toExpression(tuple[0]), toFunction(tuple[1])]);\n }\n return result;\n}\nfunction toExpression(find) {\n return typeof find === \"string\" ? new RegExp(escapeStringRegexp(find), \"g\") : find;\n}\nfunction toFunction(replace2) {\n return typeof replace2 === \"function\" ? replace2 : function() {\n return replace2;\n };\n}\nconst inConstruct = \"phrasing\";\nconst notInConstruct = [\"autolink\", \"link\", \"image\", \"label\"];\nfunction gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n };\n}\nfunction gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: \"@\",\n before: \"[+\\\\-.\\\\w]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \".\",\n before: \"[Ww]\",\n after: \"[\\\\-.\\\\w]\",\n inConstruct,\n notInConstruct\n },\n {\n character: \":\",\n before: \"[ps]\",\n after: \"\\\\/\",\n inConstruct,\n notInConstruct\n }\n ]\n };\n}\nfunction enterLiteralAutolink(token) {\n this.enter({ type: \"link\", title: null, url: \"\", children: [] }, token);\n}\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token);\n}\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token);\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"link\");\n node2.url = \"http://\" + this.sliceSerialize(token);\n}\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token);\n}\nfunction exitLiteralAutolink(token) {\n this.exit(token);\n}\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n { ignore: [\"link\", \"linkReference\"] }\n );\n}\nfunction findUrl(_, protocol, domain2, path2, match) {\n let prefix = \"\";\n if (!previous(match)) {\n return false;\n }\n if (/^w/i.test(protocol)) {\n domain2 = protocol + domain2;\n protocol = \"\";\n prefix = \"http://\";\n }\n if (!isCorrectDomain(domain2)) {\n return false;\n }\n const parts = splitUrl(domain2 + path2);\n if (!parts[0]) return false;\n const result = {\n type: \"link\",\n title: null,\n url: prefix + protocol + parts[0],\n children: [{ type: \"text\", value: protocol + parts[0] }]\n };\n if (parts[1]) {\n return [result, { type: \"text\", value: parts[1] }];\n }\n return result;\n}\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) || // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false;\n }\n return {\n type: \"link\",\n title: null,\n url: \"mailto:\" + atext + \"@\" + label,\n children: [{ type: \"text\", value: atext + \"@\" + label }]\n };\n}\nfunction isCorrectDomain(domain2) {\n const parts = domain2.split(\".\");\n if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[a-zA-Z\\d]/.test(parts[parts.length - 2]))) {\n return false;\n }\n return true;\n}\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url);\n if (!trailExec) {\n return [url, void 0];\n }\n url = url.slice(0, trailExec.index);\n let trail2 = trailExec[0];\n let closingParenIndex = trail2.indexOf(\")\");\n const openingParens = ccount(url, \"(\");\n let closingParens = ccount(url, \")\");\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail2.slice(0, closingParenIndex + 1);\n trail2 = trail2.slice(closingParenIndex + 1);\n closingParenIndex = trail2.indexOf(\")\");\n closingParens++;\n }\n return [url, trail2];\n}\nfunction previous(match, email) {\n const code2 = match.input.charCodeAt(match.index - 1);\n return (match.index === 0 || unicodeWhitespace(code2) || unicodePunctuation(code2)) && (!email || code2 !== 47);\n}\nfunction normalizeIdentifier(value) {\n return value.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nfootnoteReference.peek = footnoteReferencePeek;\nfunction gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n };\n}\nfunction gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{ character: \"[\", inConstruct: [\"phrasing\", \"label\", \"reference\"] }],\n handlers: { footnoteDefinition, footnoteReference }\n };\n}\nfunction enterFootnoteDefinition(token) {\n this.enter(\n { type: \"footnoteDefinition\", identifier: \"\", label: \"\", children: [] },\n token\n );\n}\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer();\n}\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteDefinition\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteDefinition(token) {\n this.exit(token);\n}\nfunction enterFootnoteCall(token) {\n this.enter({ type: \"footnoteReference\", identifier: \"\", label: \"\" }, token);\n}\nfunction enterFootnoteCallString() {\n this.buffer();\n}\nfunction exitFootnoteCallString(token) {\n const label = this.resume();\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"footnoteReference\");\n node2.label = label;\n node2.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase();\n}\nfunction exitFootnoteCall(token) {\n this.exit(token);\n}\nfunction footnoteReference(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteReference\");\n const subexit = state.enter(\"reference\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n exit2();\n value += tracker.move(\"]\");\n return value;\n}\nfunction footnoteReferencePeek() {\n return \"[\";\n}\nfunction footnoteDefinition(node2, _, state, info) {\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[^\");\n const exit2 = state.enter(\"footnoteDefinition\");\n const subexit = state.enter(\"label\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n ...tracker.current(),\n before: value,\n after: \"]\"\n })\n );\n subexit();\n value += tracker.move(\n \"]:\" + (node2.children && node2.children.length > 0 ? \" \" : \"\")\n );\n tracker.shift(4);\n value += tracker.move(\n state.indentLines(state.containerFlow(node2, tracker.current()), map$2)\n );\n exit2();\n return value;\n}\nfunction map$2(line, index, blank) {\n if (index === 0) {\n return line;\n }\n return (blank ? \"\" : \" \") + line;\n}\nconst constructsWithoutStrikethrough = [\n \"autolink\",\n \"destinationLiteral\",\n \"destinationRaw\",\n \"reference\",\n \"titleQuote\",\n \"titleApostrophe\"\n];\nhandleDelete.peek = peekDelete;\nfunction gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: [\"delete\"],\n enter: { strikethrough: enterStrikethrough },\n exit: { strikethrough: exitStrikethrough }\n };\n}\nfunction gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: \"~\",\n inConstruct: \"phrasing\",\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: { delete: handleDelete }\n };\n}\nfunction enterStrikethrough(token) {\n this.enter({ type: \"delete\", children: [] }, token);\n}\nfunction exitStrikethrough(token) {\n this.exit(token);\n}\nfunction handleDelete(node2, _, state, info) {\n const tracker = state.createTracker(info);\n const exit2 = state.enter(\"strikethrough\");\n let value = tracker.move(\"~~\");\n value += state.containerPhrasing(node2, {\n ...tracker.current(),\n before: value,\n after: \"~\"\n });\n value += tracker.move(\"~~\");\n exit2();\n return value;\n}\nfunction peekDelete() {\n return \"~\";\n}\nfunction markdownTable(table, options = {}) {\n const align = (options.align || []).concat();\n const stringLength = options.stringLength || defaultStringLength;\n const alignments = [];\n const cellMatrix = [];\n const sizeMatrix = [];\n const longestCellByColumn = [];\n let mostCellsPerRow = 0;\n let rowIndex = -1;\n while (++rowIndex < table.length) {\n const row2 = [];\n const sizes2 = [];\n let columnIndex2 = -1;\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length;\n }\n while (++columnIndex2 < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex2]);\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell);\n sizes2[columnIndex2] = size;\n if (longestCellByColumn[columnIndex2] === void 0 || size > longestCellByColumn[columnIndex2]) {\n longestCellByColumn[columnIndex2] = size;\n }\n }\n row2.push(cell);\n }\n cellMatrix[rowIndex] = row2;\n sizeMatrix[rowIndex] = sizes2;\n }\n let columnIndex = -1;\n if (typeof align === \"object\" && \"length\" in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex]);\n }\n } else {\n const code2 = toAlignment(align);\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code2;\n }\n }\n columnIndex = -1;\n const row = [];\n const sizes = [];\n while (++columnIndex < mostCellsPerRow) {\n const code2 = alignments[columnIndex];\n let before = \"\";\n let after = \"\";\n if (code2 === 99) {\n before = \":\";\n after = \":\";\n } else if (code2 === 108) {\n before = \":\";\n } else if (code2 === 114) {\n after = \":\";\n }\n let size = options.alignDelimiters === false ? 1 : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n );\n const cell = before + \"-\".repeat(size) + after;\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length;\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size;\n }\n sizes[columnIndex] = size;\n }\n row[columnIndex] = cell;\n }\n cellMatrix.splice(1, 0, row);\n sizeMatrix.splice(1, 0, sizes);\n rowIndex = -1;\n const lines = [];\n while (++rowIndex < cellMatrix.length) {\n const row2 = cellMatrix[rowIndex];\n const sizes2 = sizeMatrix[rowIndex];\n columnIndex = -1;\n const line = [];\n while (++columnIndex < mostCellsPerRow) {\n const cell = row2[columnIndex] || \"\";\n let before = \"\";\n let after = \"\";\n if (options.alignDelimiters !== false) {\n const size = longestCellByColumn[columnIndex] - (sizes2[columnIndex] || 0);\n const code2 = alignments[columnIndex];\n if (code2 === 114) {\n before = \" \".repeat(size);\n } else if (code2 === 99) {\n if (size % 2) {\n before = \" \".repeat(size / 2 + 0.5);\n after = \" \".repeat(size / 2 - 0.5);\n } else {\n before = \" \".repeat(size / 2);\n after = before;\n }\n } else {\n after = \" \".repeat(size);\n }\n }\n if (options.delimiterStart !== false && !columnIndex) {\n line.push(\"|\");\n }\n if (options.padding !== false && // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === \"\") && (options.delimiterStart !== false || columnIndex)) {\n line.push(\" \");\n }\n if (options.alignDelimiters !== false) {\n line.push(before);\n }\n line.push(cell);\n if (options.alignDelimiters !== false) {\n line.push(after);\n }\n if (options.padding !== false) {\n line.push(\" \");\n }\n if (options.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1) {\n line.push(\"|\");\n }\n }\n lines.push(\n options.delimiterEnd === false ? line.join(\"\").replace(/ +$/, \"\") : line.join(\"\")\n );\n }\n return lines.join(\"\\n\");\n}\nfunction serialize(value) {\n return value === null || value === void 0 ? \"\" : String(value);\n}\nfunction defaultStringLength(value) {\n return value.length;\n}\nfunction toAlignment(value) {\n const code2 = typeof value === \"string\" ? value.codePointAt(0) : 0;\n return code2 === 67 || code2 === 99 ? 99 : code2 === 76 || code2 === 108 ? 108 : code2 === 82 || code2 === 114 ? 114 : 0;\n}\nfunction blockquote(node2, _, state, info) {\n const exit2 = state.enter(\"blockquote\");\n const tracker = state.createTracker(info);\n tracker.move(\"> \");\n tracker.shift(2);\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map$1\n );\n exit2();\n return value;\n}\nfunction map$1(line, _, blank) {\n return \">\" + (blank ? \"\" : \" \") + line;\n}\nfunction patternInScope(stack, pattern) {\n return listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false);\n}\nfunction listInScope(stack, list2, none) {\n if (typeof list2 === \"string\") {\n list2 = [list2];\n }\n if (!list2 || list2.length === 0) {\n return none;\n }\n let index = -1;\n while (++index < list2.length) {\n if (stack.includes(list2[index])) {\n return true;\n }\n }\n return false;\n}\nfunction hardBreak(_, _1, state, info) {\n let index = -1;\n while (++index < state.unsafe.length) {\n if (state.unsafe[index].character === \"\\n\" && patternInScope(state.stack, state.unsafe[index])) {\n return /[ \\t]/.test(info.before) ? \"\" : \" \";\n }\n }\n return \"\\\\\\n\";\n}\nfunction longestStreak(value, substring) {\n const source = String(value);\n let index = source.indexOf(substring);\n let expected = index;\n let count = 0;\n let max = 0;\n if (typeof substring !== \"string\") {\n throw new TypeError(\"Expected substring\");\n }\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count;\n }\n } else {\n count = 1;\n }\n expected = index + substring.length;\n index = source.indexOf(substring, expected);\n }\n return max;\n}\nfunction formatCodeAsIndented(node2, state) {\n return Boolean(\n state.options.fences === false && node2.value && // If there’s no info…\n !node2.lang && // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node2.value) && // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node2.value)\n );\n}\nfunction checkFence(state) {\n const marker = state.options.fence || \"`\";\n if (marker !== \"`\" && marker !== \"~\") {\n throw new Error(\n \"Cannot serialize code with `\" + marker + \"` for `options.fence`, expected `` ` `` or `~`\"\n );\n }\n return marker;\n}\nfunction code$1(node2, _, state, info) {\n const marker = checkFence(state);\n const raw = node2.value || \"\";\n const suffix = marker === \"`\" ? \"GraveAccent\" : \"Tilde\";\n if (formatCodeAsIndented(node2, state)) {\n const exit3 = state.enter(\"codeIndented\");\n const value2 = state.indentLines(raw, map);\n exit3();\n return value2;\n }\n const tracker = state.createTracker(info);\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3));\n const exit2 = state.enter(\"codeFenced\");\n let value = tracker.move(sequence);\n if (node2.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`);\n value += tracker.move(\n state.safe(node2.lang, {\n before: value,\n after: \" \",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n if (node2.lang && node2.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`);\n value += tracker.move(\" \");\n value += tracker.move(\n state.safe(node2.meta, {\n before: value,\n after: \"\\n\",\n encode: [\"`\"],\n ...tracker.current()\n })\n );\n subexit();\n }\n value += tracker.move(\"\\n\");\n if (raw) {\n value += tracker.move(raw + \"\\n\");\n }\n value += tracker.move(sequence);\n exit2();\n return value;\n}\nfunction map(line, _, blank) {\n return (blank ? \"\" : \" \") + line;\n}\nfunction checkQuote(state) {\n const marker = state.options.quote || '\"';\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n \"Cannot serialize title with `\" + marker + \"` for `options.quote`, expected `\\\"`, or `'`\"\n );\n }\n return marker;\n}\nfunction definition(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"definition\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"]: \");\n subexit();\n if (\n // If there’s no url, or…\n !node2.url || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \"\\n\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n exit2();\n return value;\n}\nfunction checkEmphasis(state) {\n const marker = state.options.emphasis || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize emphasis with `\" + marker + \"` for `options.emphasis`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nemphasis.peek = emphasisPeek;\nfunction emphasis(node2, _, state, info) {\n const marker = checkEmphasis(state);\n const exit2 = state.enter(\"emphasis\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker);\n exit2();\n return value;\n}\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || \"*\";\n}\nconst emptyOptions$1 = {};\nfunction toString(value, options) {\n const settings = emptyOptions$1;\n const includeImageAlt = typeof settings.includeImageAlt === \"boolean\" ? settings.includeImageAlt : true;\n const includeHtml = typeof settings.includeHtml === \"boolean\" ? settings.includeHtml : true;\n return one(value, includeImageAlt, includeHtml);\n}\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if (\"value\" in value) {\n return value.type === \"html\" && !includeHtml ? \"\" : value.value;\n }\n if (includeImageAlt && \"alt\" in value && value.alt) {\n return value.alt;\n }\n if (\"children\" in value) {\n return all(value.children, includeImageAlt, includeHtml);\n }\n }\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml);\n }\n return \"\";\n}\nfunction all(values, includeImageAlt, includeHtml) {\n const result = [];\n let index = -1;\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml);\n }\n return result.join(\"\");\n}\nfunction node(value) {\n return Boolean(value && typeof value === \"object\");\n}\nfunction formatHeadingAsSetext(node2, state) {\n let literalWithBreak = false;\n visit(node2, function(node3) {\n if (\"value\" in node3 && /\\r?\\n|\\r/.test(node3.value) || node3.type === \"break\") {\n literalWithBreak = true;\n return EXIT$1;\n }\n });\n return Boolean(\n (!node2.depth || node2.depth < 3) && toString(node2) && (state.options.setext || literalWithBreak)\n );\n}\nfunction heading(node2, _, state, info) {\n const rank = Math.max(Math.min(6, node2.depth || 1), 1);\n const tracker = state.createTracker(info);\n if (formatHeadingAsSetext(node2, state)) {\n const exit3 = state.enter(\"headingSetext\");\n const subexit2 = state.enter(\"phrasing\");\n const value2 = state.containerPhrasing(node2, {\n ...tracker.current(),\n before: \"\\n\",\n after: \"\\n\"\n });\n subexit2();\n exit3();\n return value2 + \"\\n\" + (rank === 1 ? \"=\" : \"-\").repeat(\n // The whole size…\n value2.length - // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value2.lastIndexOf(\"\\r\"), value2.lastIndexOf(\"\\n\")) + 1)\n );\n }\n const sequence = \"#\".repeat(rank);\n const exit2 = state.enter(\"headingAtx\");\n const subexit = state.enter(\"phrasing\");\n tracker.move(sequence + \" \");\n let value = state.containerPhrasing(node2, {\n before: \"# \",\n after: \"\\n\",\n ...tracker.current()\n });\n if (/^[\\t ]/.test(value)) {\n value = \"&#x\" + value.charCodeAt(0).toString(16).toUpperCase() + \";\" + value.slice(1);\n }\n value = value ? sequence + \" \" + value : sequence;\n if (state.options.closeAtx) {\n value += \" \" + sequence;\n }\n subexit();\n exit2();\n return value;\n}\nhtml.peek = htmlPeek;\nfunction html(node2) {\n return node2.value || \"\";\n}\nfunction htmlPeek() {\n return \"<\";\n}\nimage.peek = imagePeek;\nfunction image(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const exit2 = state.enter(\"image\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n value += tracker.move(\n state.safe(node2.alt, { before: value, after: \"]\", ...tracker.current() })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction imagePeek() {\n return \"!\";\n}\nimageReference.peek = imageReferencePeek;\nfunction imageReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"imageReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"![\");\n const alt = state.safe(node2.alt, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(alt + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !alt || alt !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction imageReferencePeek() {\n return \"!\";\n}\ninlineCode.peek = inlineCodePeek;\nfunction inlineCode(node2, _, state) {\n let value = node2.value || \"\";\n let sequence = \"`\";\n let index = -1;\n while (new RegExp(\"(^|[^`])\" + sequence + \"([^`]|$)\").test(value)) {\n sequence += \"`\";\n }\n if (/[^ \\r\\n]/.test(value) && (/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value) || /^`|`$/.test(value))) {\n value = \" \" + value + \" \";\n }\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index];\n const expression = state.compilePattern(pattern);\n let match;\n if (!pattern.atBreak) continue;\n while (match = expression.exec(value)) {\n let position = match.index;\n if (value.charCodeAt(position) === 10 && value.charCodeAt(position - 1) === 13) {\n position--;\n }\n value = value.slice(0, position) + \" \" + value.slice(match.index + 1);\n }\n }\n return sequence + value + sequence;\n}\nfunction inlineCodePeek() {\n return \"`\";\n}\nfunction formatLinkAsAutolink(node2, state) {\n const raw = toString(node2);\n return Boolean(\n !state.options.resourceLink && // If there’s a url…\n node2.url && // And there’s a no title…\n !node2.title && // And the content of `node` is a single text node…\n node2.children && node2.children.length === 1 && node2.children[0].type === \"text\" && // And if the url is the same as the content…\n (raw === node2.url || \"mailto:\" + raw === node2.url) && // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node2.url) && // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node2.url)\n );\n}\nlink.peek = linkPeek;\nfunction link(node2, _, state, info) {\n const quote = checkQuote(state);\n const suffix = quote === '\"' ? \"Quote\" : \"Apostrophe\";\n const tracker = state.createTracker(info);\n let exit2;\n let subexit;\n if (formatLinkAsAutolink(node2, state)) {\n const stack = state.stack;\n state.stack = [];\n exit2 = state.enter(\"autolink\");\n let value2 = tracker.move(\"<\");\n value2 += tracker.move(\n state.containerPhrasing(node2, {\n before: value2,\n after: \">\",\n ...tracker.current()\n })\n );\n value2 += tracker.move(\">\");\n exit2();\n state.stack = stack;\n return value2;\n }\n exit2 = state.enter(\"link\");\n subexit = state.enter(\"label\");\n let value = tracker.move(\"[\");\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: \"](\",\n ...tracker.current()\n })\n );\n value += tracker.move(\"](\");\n subexit();\n if (\n // If there’s no url but there is a title…\n !node2.url && node2.title || // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node2.url)\n ) {\n subexit = state.enter(\"destinationLiteral\");\n value += tracker.move(\"<\");\n value += tracker.move(\n state.safe(node2.url, { before: value, after: \">\", ...tracker.current() })\n );\n value += tracker.move(\">\");\n } else {\n subexit = state.enter(\"destinationRaw\");\n value += tracker.move(\n state.safe(node2.url, {\n before: value,\n after: node2.title ? \" \" : \")\",\n ...tracker.current()\n })\n );\n }\n subexit();\n if (node2.title) {\n subexit = state.enter(`title${suffix}`);\n value += tracker.move(\" \" + quote);\n value += tracker.move(\n state.safe(node2.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n );\n value += tracker.move(quote);\n subexit();\n }\n value += tracker.move(\")\");\n exit2();\n return value;\n}\nfunction linkPeek(node2, _, state) {\n return formatLinkAsAutolink(node2, state) ? \"<\" : \"[\";\n}\nlinkReference.peek = linkReferencePeek;\nfunction linkReference(node2, _, state, info) {\n const type = node2.referenceType;\n const exit2 = state.enter(\"linkReference\");\n let subexit = state.enter(\"label\");\n const tracker = state.createTracker(info);\n let value = tracker.move(\"[\");\n const text2 = state.containerPhrasing(node2, {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n value += tracker.move(text2 + \"][\");\n subexit();\n const stack = state.stack;\n state.stack = [];\n subexit = state.enter(\"reference\");\n const reference = state.safe(state.associationId(node2), {\n before: value,\n after: \"]\",\n ...tracker.current()\n });\n subexit();\n state.stack = stack;\n exit2();\n if (type === \"full\" || !text2 || text2 !== reference) {\n value += tracker.move(reference + \"]\");\n } else if (type === \"shortcut\") {\n value = value.slice(0, -1);\n } else {\n value += tracker.move(\"]\");\n }\n return value;\n}\nfunction linkReferencePeek() {\n return \"[\";\n}\nfunction checkBullet(state) {\n const marker = state.options.bullet || \"*\";\n if (marker !== \"*\" && marker !== \"+\" && marker !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bullet`, expected `*`, `+`, or `-`\"\n );\n }\n return marker;\n}\nfunction checkBulletOther(state) {\n const bullet = checkBullet(state);\n const bulletOther = state.options.bulletOther;\n if (!bulletOther) {\n return bullet === \"*\" ? \"-\" : \"*\";\n }\n if (bulletOther !== \"*\" && bulletOther !== \"+\" && bulletOther !== \"-\") {\n throw new Error(\n \"Cannot serialize items with `\" + bulletOther + \"` for `options.bulletOther`, expected `*`, `+`, or `-`\"\n );\n }\n if (bulletOther === bullet) {\n throw new Error(\n \"Expected `bullet` (`\" + bullet + \"`) and `bulletOther` (`\" + bulletOther + \"`) to be different\"\n );\n }\n return bulletOther;\n}\nfunction checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || \".\";\n if (marker !== \".\" && marker !== \")\") {\n throw new Error(\n \"Cannot serialize items with `\" + marker + \"` for `options.bulletOrdered`, expected `.` or `)`\"\n );\n }\n return marker;\n}\nfunction checkRule(state) {\n const marker = state.options.rule || \"*\";\n if (marker !== \"*\" && marker !== \"-\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize rules with `\" + marker + \"` for `options.rule`, expected `*`, `-`, or `_`\"\n );\n }\n return marker;\n}\nfunction list(node2, parent, state, info) {\n const exit2 = state.enter(\"list\");\n const bulletCurrent = state.bulletCurrent;\n let bullet = node2.ordered ? checkBulletOrdered(state) : checkBullet(state);\n const bulletOther = node2.ordered ? bullet === \".\" ? \")\" : \".\" : checkBulletOther(state);\n let useDifferentMarker = parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false;\n if (!node2.ordered) {\n const firstListItem = node2.children ? node2.children[0] : void 0;\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === \"*\" || bullet === \"-\") && // Empty first list item:\n firstListItem && (!firstListItem.children || !firstListItem.children[0]) && // Directly in two other list items:\n state.stack[state.stack.length - 1] === \"list\" && state.stack[state.stack.length - 2] === \"listItem\" && state.stack[state.stack.length - 3] === \"list\" && state.stack[state.stack.length - 4] === \"listItem\" && // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 && state.indexStack[state.indexStack.length - 2] === 0 && state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true;\n }\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1;\n while (++index < node2.children.length) {\n const item = node2.children[index];\n if (item && item.type === \"listItem\" && item.children && item.children[0] && item.children[0].type === \"thematicBreak\") {\n useDifferentMarker = true;\n break;\n }\n }\n }\n }\n if (useDifferentMarker) {\n bullet = bulletOther;\n }\n state.bulletCurrent = bullet;\n const value = state.containerFlow(node2, info);\n state.bulletLastUsed = bullet;\n state.bulletCurrent = bulletCurrent;\n exit2();\n return value;\n}\nfunction checkListItemIndent(state) {\n const style = state.options.listItemIndent || \"one\";\n if (style !== \"tab\" && style !== \"one\" && style !== \"mixed\") {\n throw new Error(\n \"Cannot serialize items with `\" + style + \"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`\"\n );\n }\n return style;\n}\nfunction listItem(node2, parent, state, info) {\n const listItemIndent = checkListItemIndent(state);\n let bullet = state.bulletCurrent || checkBullet(state);\n if (parent && parent.type === \"list\" && parent.ordered) {\n bullet = (typeof parent.start === \"number\" && parent.start > -1 ? parent.start : 1) + (state.options.incrementListMarker === false ? 0 : parent.children.indexOf(node2)) + bullet;\n }\n let size = bullet.length + 1;\n if (listItemIndent === \"tab\" || listItemIndent === \"mixed\" && (parent && parent.type === \"list\" && parent.spread || node2.spread)) {\n size = Math.ceil(size / 4) * 4;\n }\n const tracker = state.createTracker(info);\n tracker.move(bullet + \" \".repeat(size - bullet.length));\n tracker.shift(size);\n const exit2 = state.enter(\"listItem\");\n const value = state.indentLines(\n state.containerFlow(node2, tracker.current()),\n map2\n );\n exit2();\n return value;\n function map2(line, index, blank) {\n if (index) {\n return (blank ? \"\" : \" \".repeat(size)) + line;\n }\n return (blank ? bullet : bullet + \" \".repeat(size - bullet.length)) + line;\n }\n}\nfunction paragraph(node2, _, state, info) {\n const exit2 = state.enter(\"paragraph\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, info);\n subexit();\n exit2();\n return value;\n}\nconst phrasing = (\n /** @type {(node?: unknown) => node is Exclude<PhrasingContent, Html>} */\n convert([\n \"break\",\n \"delete\",\n \"emphasis\",\n // To do: next major: removed since footnotes were added to GFM.\n \"footnote\",\n \"footnoteReference\",\n \"image\",\n \"imageReference\",\n \"inlineCode\",\n // Enabled by `mdast-util-math`:\n \"inlineMath\",\n \"link\",\n \"linkReference\",\n // Enabled by `mdast-util-mdx`:\n \"mdxJsxTextElement\",\n // Enabled by `mdast-util-mdx`:\n \"mdxTextExpression\",\n \"strong\",\n \"text\",\n // Enabled by `mdast-util-directive`:\n \"textDirective\"\n ])\n);\nfunction root(node2, _, state, info) {\n const hasPhrasing = node2.children.some(function(d) {\n return phrasing(d);\n });\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow;\n return fn.call(state, node2, info);\n}\nfunction checkStrong(state) {\n const marker = state.options.strong || \"*\";\n if (marker !== \"*\" && marker !== \"_\") {\n throw new Error(\n \"Cannot serialize strong with `\" + marker + \"` for `options.strong`, expected `*`, or `_`\"\n );\n }\n return marker;\n}\nstrong.peek = strongPeek;\nfunction strong(node2, _, state, info) {\n const marker = checkStrong(state);\n const exit2 = state.enter(\"strong\");\n const tracker = state.createTracker(info);\n let value = tracker.move(marker + marker);\n value += tracker.move(\n state.containerPhrasing(node2, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n );\n value += tracker.move(marker + marker);\n exit2();\n return value;\n}\nfunction strongPeek(_, _1, state) {\n return state.options.strong || \"*\";\n}\nfunction text$1(node2, _, state, info) {\n return state.safe(node2.value, info);\n}\nfunction checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3;\n if (repetition < 3) {\n throw new Error(\n \"Cannot serialize rules with repetition `\" + repetition + \"` for `options.ruleRepetition`, expected `3` or more\"\n );\n }\n return repetition;\n}\nfunction thematicBreak(_, _1, state) {\n const value = (checkRule(state) + (state.options.ruleSpaces ? \" \" : \"\")).repeat(checkRuleRepetition(state));\n return state.options.ruleSpaces ? value.slice(0, -1) : value;\n}\nconst handle = {\n blockquote,\n break: hardBreak,\n code: code$1,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text: text$1,\n thematicBreak\n};\nfunction gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n };\n}\nfunction enterTable(token) {\n const align = token._align;\n this.enter(\n {\n type: \"table\",\n align: align.map(function(d) {\n return d === \"none\" ? null : d;\n }),\n children: []\n },\n token\n );\n this.data.inTable = true;\n}\nfunction exitTable(token) {\n this.exit(token);\n this.data.inTable = void 0;\n}\nfunction enterRow(token) {\n this.enter({ type: \"tableRow\", children: [] }, token);\n}\nfunction exit(token) {\n this.exit(token);\n}\nfunction enterCell(token) {\n this.enter({ type: \"tableCell\", children: [] }, token);\n}\nfunction exitCodeText(token) {\n let value = this.resume();\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace);\n }\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"inlineCode\");\n node2.value = value;\n this.exit(token);\n}\nfunction replace($0, $1) {\n return $1 === \"|\" ? $1 : $0;\n}\nfunction gfmTableToMarkdown(options) {\n const settings = options || {};\n const padding = settings.tableCellPadding;\n const alignDelimiters = settings.tablePipeAlign;\n const stringLength = settings.stringLength;\n const around = padding ? \" \" : \"|\";\n return {\n unsafe: [\n { character: \"\\r\", inConstruct: \"tableCell\" },\n { character: \"\\n\", inConstruct: \"tableCell\" },\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n { atBreak: true, character: \"|\", after: \"[\t :-]\" },\n // A pipe in a cell must be encoded.\n { character: \"|\", inConstruct: \"tableCell\" },\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n { atBreak: true, character: \":\", after: \"-\" },\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n { atBreak: true, character: \"-\", after: \"[:|-]\" }\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n };\n function handleTable(node2, _, state, info) {\n return serializeData(handleTableAsData(node2, state, info), node2.align);\n }\n function handleTableRow(node2, _, state, info) {\n const row = handleTableRowAsData(node2, state, info);\n const value = serializeData([row]);\n return value.slice(0, value.indexOf(\"\\n\"));\n }\n function handleTableCell(node2, _, state, info) {\n const exit2 = state.enter(\"tableCell\");\n const subexit = state.enter(\"phrasing\");\n const value = state.containerPhrasing(node2, {\n ...info,\n before: around,\n after: around\n });\n subexit();\n exit2();\n return value;\n }\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n });\n }\n function handleTableAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"table\");\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info);\n }\n subexit();\n return result;\n }\n function handleTableRowAsData(node2, state, info) {\n const children = node2.children;\n let index = -1;\n const result = [];\n const subexit = state.enter(\"tableRow\");\n while (++index < children.length) {\n result[index] = handleTableCell(children[index], node2, state, info);\n }\n subexit();\n return result;\n }\n function inlineCodeWithTable(node2, parent, state) {\n let value = handle.inlineCode(node2, parent, state);\n if (state.stack.includes(\"tableCell\")) {\n value = value.replace(/\\|/g, \"\\\\$&\");\n }\n return value;\n }\n}\nfunction gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n };\n}\nfunction gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{ atBreak: true, character: \"-\", after: \"[:|-]\" }],\n handlers: { listItem: listItemWithTaskListItem }\n };\n}\nfunction exitCheck(token) {\n const node2 = this.stack[this.stack.length - 2];\n ok$1(node2.type === \"listItem\");\n node2.checked = token.type === \"taskListCheckValueChecked\";\n}\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2];\n if (parent && parent.type === \"listItem\" && typeof parent.checked === \"boolean\") {\n const node2 = this.stack[this.stack.length - 1];\n ok$1(node2.type === \"paragraph\");\n const head = node2.children[0];\n if (head && head.type === \"text\") {\n const siblings = parent.children;\n let index = -1;\n let firstParaghraph;\n while (++index < siblings.length) {\n const sibling = siblings[index];\n if (sibling.type === \"paragraph\") {\n firstParaghraph = sibling;\n break;\n }\n }\n if (firstParaghraph === node2) {\n head.value = head.value.slice(1);\n if (head.value.length === 0) {\n node2.children.shift();\n } else if (node2.position && head.position && typeof head.position.start.offset === \"number\") {\n head.position.start.column++;\n head.position.start.offset++;\n node2.position.start = Object.assign({}, head.position.start);\n }\n }\n }\n }\n this.exit(token);\n}\nfunction listItemWithTaskListItem(node2, parent, state, info) {\n const head = node2.children[0];\n const checkable = typeof node2.checked === \"boolean\" && head && head.type === \"paragraph\";\n const checkbox = \"[\" + (node2.checked ? \"x\" : \" \") + \"] \";\n const tracker = state.createTracker(info);\n if (checkable) {\n tracker.move(checkbox);\n }\n let value = handle.listItem(node2, parent, state, {\n ...info,\n ...tracker.current()\n });\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check);\n }\n return value;\n function check($0) {\n return $0 + checkbox;\n }\n}\nfunction gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ];\n}\nfunction gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n };\n}\nfunction splice(list2, start, remove, items) {\n const end = list2.length;\n let chunkStart = 0;\n let parameters;\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n if (items.length < 1e4) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n list2.splice(...parameters);\n } else {\n if (remove) list2.splice(start, remove);\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 1e4);\n parameters.unshift(start, 0);\n list2.splice(...parameters);\n chunkStart += 1e4;\n start += 1e4;\n }\n }\n}\nconst hasOwnProperty = {}.hasOwnProperty;\nfunction combineExtensions(extensions) {\n const all2 = {};\n let index = -1;\n while (++index < extensions.length) {\n syntaxExtension(all2, extensions[index]);\n }\n return all2;\n}\nfunction syntaxExtension(all2, extension) {\n let hook;\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;\n const left = maybe || (all2[hook] = {});\n const right = extension[hook];\n let code2;\n if (right) {\n for (code2 in right) {\n if (!hasOwnProperty.call(left, code2)) left[code2] = [];\n const value = right[code2];\n constructs(\n // @ts-expect-error Looks like a list.\n left[code2],\n Array.isArray(value) ? value : value ? [value] : []\n );\n }\n }\n }\n}\nfunction constructs(existing, list2) {\n let index = -1;\n const before = [];\n while (++index < list2.length) {\n (list2[index].add === \"after\" ? existing : before).push(list2[index]);\n }\n splice(existing, 0, 0, before);\n}\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\nconst text = {};\nfunction gfmAutolinkLiteral() {\n return {\n text\n };\n}\nlet code = 48;\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;\n else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\nfunction tokenizeEmailAutolink(effects, ok2, nok) {\n const self = this;\n let dot;\n let data;\n return start;\n function start(code2) {\n if (!gfmAtext(code2) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkEmail\");\n return atext(code2);\n }\n function atext(code2) {\n if (gfmAtext(code2)) {\n effects.consume(code2);\n return atext;\n }\n if (code2 === 64) {\n effects.consume(code2);\n return emailDomain;\n }\n return nok(code2);\n }\n function emailDomain(code2) {\n if (code2 === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code2);\n }\n if (code2 === 45 || code2 === 95 || asciiAlphanumeric(code2)) {\n data = true;\n effects.consume(code2);\n return emailDomain;\n }\n return emailDomainAfter(code2);\n }\n function emailDomainDot(code2) {\n effects.consume(code2);\n dot = true;\n return emailDomain;\n }\n function emailDomainAfter(code2) {\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit(\"literalAutolinkEmail\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n return nok(code2);\n }\n}\nfunction tokenizeWwwAutolink(effects, ok2, nok) {\n const self = this;\n return wwwStart;\n function wwwStart(code2) {\n if (code2 !== 87 && code2 !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code2);\n }\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkWww\");\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code2);\n }\n function wwwAfter(code2) {\n effects.exit(\"literalAutolinkWww\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeProtocolAutolink(effects, ok2, nok) {\n const self = this;\n let buffer = \"\";\n let seen = false;\n return protocolStart;\n function protocolStart(code2) {\n if ((code2 === 72 || code2 === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter(\"literalAutolink\");\n effects.enter(\"literalAutolinkHttp\");\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n return nok(code2);\n }\n function protocolPrefixInside(code2) {\n if (asciiAlpha(code2) && buffer.length < 5) {\n buffer += String.fromCodePoint(code2);\n effects.consume(code2);\n return protocolPrefixInside;\n }\n if (code2 === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === \"http\" || protocol === \"https\") {\n effects.consume(code2);\n return protocolSlashesInside;\n }\n }\n return nok(code2);\n }\n function protocolSlashesInside(code2) {\n if (code2 === 47) {\n effects.consume(code2);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code2);\n }\n function afterProtocol(code2) {\n return code2 === null || asciiControl(code2) || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || unicodePunctuation(code2) ? nok(code2) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code2);\n }\n function protocolAfter(code2) {\n effects.exit(\"literalAutolinkHttp\");\n effects.exit(\"literalAutolink\");\n return ok2(code2);\n }\n}\nfunction tokenizeWwwPrefix(effects, ok2, nok) {\n let size = 0;\n return wwwPrefixInside;\n function wwwPrefixInside(code2) {\n if ((code2 === 87 || code2 === 119) && size < 3) {\n size++;\n effects.consume(code2);\n return wwwPrefixInside;\n }\n if (code2 === 46 && size === 3) {\n effects.consume(code2);\n return wwwPrefixAfter;\n }\n return nok(code2);\n }\n function wwwPrefixAfter(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction tokenizeDomain(effects, ok2, nok) {\n let underscoreInLastSegment;\n let underscoreInLastLastSegment;\n let seen;\n return domainInside;\n function domainInside(code2) {\n if (code2 === 46 || code2 === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2) || code2 !== 45 && unicodePunctuation(code2)) {\n return domainAfter(code2);\n }\n seen = true;\n effects.consume(code2);\n return domainInside;\n }\n function domainAtPunctuation(code2) {\n if (code2 === 95) {\n underscoreInLastSegment = true;\n } else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = void 0;\n }\n effects.consume(code2);\n return domainInside;\n }\n function domainAfter(code2) {\n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code2);\n }\n return ok2(code2);\n }\n}\nfunction tokenizePath(effects, ok2) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n function pathInside(code2) {\n if (code2 === 40) {\n sizeOpen++;\n effects.consume(code2);\n return pathInside;\n }\n if (code2 === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code2);\n }\n if (code2 === 33 || code2 === 34 || code2 === 38 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 60 || code2 === 63 || code2 === 93 || code2 === 95 || code2 === 126) {\n return effects.check(trail, ok2, pathAtPunctuation)(code2);\n }\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n effects.consume(code2);\n return pathInside;\n }\n function pathAtPunctuation(code2) {\n if (code2 === 41) {\n sizeClose++;\n }\n effects.consume(code2);\n return pathInside;\n }\n}\nfunction tokenizeTrail(effects, ok2, nok) {\n return trail2;\n function trail2(code2) {\n if (code2 === 33 || code2 === 34 || code2 === 39 || code2 === 41 || code2 === 42 || code2 === 44 || code2 === 46 || code2 === 58 || code2 === 59 || code2 === 63 || code2 === 95 || code2 === 126) {\n effects.consume(code2);\n return trail2;\n }\n if (code2 === 38) {\n effects.consume(code2);\n return trailCharRefStart;\n }\n if (code2 === 93) {\n effects.consume(code2);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code2 === 60 || // So is whitespace.\n code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)\n ) {\n return ok2(code2);\n }\n return nok(code2);\n }\n function trailBracketAfter(code2) {\n if (code2 === null || code2 === 40 || code2 === 91 || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return ok2(code2);\n }\n return trail2(code2);\n }\n function trailCharRefStart(code2) {\n return asciiAlpha(code2) ? trailCharRefInside(code2) : nok(code2);\n }\n function trailCharRefInside(code2) {\n if (code2 === 59) {\n effects.consume(code2);\n return trail2;\n }\n if (asciiAlpha(code2)) {\n effects.consume(code2);\n return trailCharRefInside;\n }\n return nok(code2);\n }\n}\nfunction tokenizeEmailDomainDotTrail(effects, ok2, nok) {\n return start;\n function start(code2) {\n effects.consume(code2);\n return after;\n }\n function after(code2) {\n return asciiAlphanumeric(code2) ? nok(code2) : ok2(code2);\n }\n}\nfunction previousWww(code2) {\n return code2 === null || code2 === 40 || code2 === 42 || code2 === 95 || code2 === 91 || code2 === 93 || code2 === 126 || markdownLineEndingOrSpace(code2);\n}\nfunction previousProtocol(code2) {\n return !asciiAlpha(code2);\n}\nfunction previousEmail(code2) {\n return !(code2 === 47 || gfmAtext(code2));\n}\nfunction gfmAtext(code2) {\n return code2 === 43 || code2 === 45 || code2 === 46 || code2 === 95 || asciiAlphanumeric(code2);\n}\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === \"labelLink\" || token.type === \"labelImage\") && !token._balanced) {\n result = true;\n break;\n }\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}\nfunction classifyCharacter(code2) {\n if (code2 === null || markdownLineEndingOrSpace(code2) || unicodeWhitespace(code2)) {\n return 1;\n }\n if (unicodePunctuation(code2)) {\n return 2;\n }\n}\nfunction resolveAll(constructs2, events, context) {\n const called = [];\n let index = -1;\n while (++index < constructs2.length) {\n const resolve = constructs2[index].resolveAll;\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context);\n called.push(resolve);\n }\n }\n return events;\n}\nfunction factorySpace(effects, ok2, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n function start(code2) {\n if (markdownSpace(code2)) {\n effects.enter(type);\n return prefix(code2);\n }\n return ok2(code2);\n }\n function prefix(code2) {\n if (markdownSpace(code2) && size++ < limit) {\n effects.consume(code2);\n return prefix;\n }\n effects.exit(type);\n return ok2(code2);\n }\n}\nconst blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n};\nfunction tokenizeBlankLine(effects, ok2, nok) {\n return start;\n function start(code2) {\n return markdownSpace(code2) ? factorySpace(effects, after, \"linePrefix\")(code2) : after(code2);\n }\n function after(code2) {\n return code2 === null || markdownLineEnding(code2) ? ok2(code2) : nok(code2);\n }\n}\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\nfunction gfmFootnote() {\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: \"after\",\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\nfunction tokenizePotentialGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let labelStart;\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n if (token.type === \"gfmFootnoteCall\" || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n function start(code2) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code2);\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n );\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return ok2(code2);\n }\n}\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === \"enter\") {\n events[index][1];\n break;\n }\n }\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = \"gfmFootnoteCallLabelMarker\";\n const call = {\n type: \"gfmFootnoteCall\",\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const marker = {\n type: \"gfmFootnoteCallMarker\",\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n const string = {\n type: \"gfmFootnoteCallString\",\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n const chunk = {\n type: \"chunkString\",\n contentType: \"string\",\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n [\"enter\", call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n [\"enter\", marker, context],\n [\"exit\", marker, context],\n // Everything in between.\n [\"enter\", string, context],\n [\"enter\", chunk, context],\n [\"exit\", chunk, context],\n [\"exit\", string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n [\"exit\", call, context]\n ];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\nfunction tokenizeGfmFootnoteCall(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteCall\");\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n return callStart;\n }\n function callStart(code2) {\n if (code2 !== 94) return nok(code2);\n effects.enter(\"gfmFootnoteCallMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallMarker\");\n effects.enter(\"gfmFootnoteCallString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return callData;\n }\n function callData(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteCallString\");\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code2);\n }\n effects.enter(\"gfmFootnoteCallLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteCallLabelMarker\");\n effects.exit(\"gfmFootnoteCall\");\n return ok2;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? callEscape : callData;\n }\n function callEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return callData;\n }\n return callData(code2);\n }\n}\nfunction tokenizeDefinitionStart(effects, ok2, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let identifier;\n let size = 0;\n let data;\n return start;\n function start(code2) {\n effects.enter(\"gfmFootnoteDefinition\")._container = true;\n effects.enter(\"gfmFootnoteDefinitionLabel\");\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n return labelAtMarker;\n }\n function labelAtMarker(code2) {\n if (code2 === 94) {\n effects.enter(\"gfmFootnoteDefinitionMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionMarker\");\n effects.enter(\"gfmFootnoteDefinitionLabelString\");\n effects.enter(\"chunkString\").contentType = \"string\";\n return labelInside;\n }\n return nok(code2);\n }\n function labelInside(code2) {\n if (\n // Too long.\n size > 999 || // Closing brace with nothing.\n code2 === 93 && !data || // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code2 === null || code2 === 91 || markdownLineEndingOrSpace(code2)\n ) {\n return nok(code2);\n }\n if (code2 === 93) {\n effects.exit(\"chunkString\");\n const token = effects.exit(\"gfmFootnoteDefinitionLabelString\");\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter(\"gfmFootnoteDefinitionLabelMarker\");\n effects.consume(code2);\n effects.exit(\"gfmFootnoteDefinitionLabelMarker\");\n effects.exit(\"gfmFootnoteDefinitionLabel\");\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code2)) {\n data = true;\n }\n size++;\n effects.consume(code2);\n return code2 === 92 ? labelEscape : labelInside;\n }\n function labelEscape(code2) {\n if (code2 === 91 || code2 === 92 || code2 === 93) {\n effects.consume(code2);\n size++;\n return labelInside;\n }\n return labelInside(code2);\n }\n function labelAfter(code2) {\n if (code2 === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code2);\n effects.exit(\"definitionMarker\");\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n return factorySpace(\n effects,\n whitespaceAfter,\n \"gfmFootnoteDefinitionWhitespace\"\n );\n }\n return nok(code2);\n }\n function whitespaceAfter(code2) {\n return ok2(code2);\n }\n}\nfunction tokenizeDefinitionContinuation(effects, ok2, nok) {\n return effects.check(blankLine, ok2, effects.attempt(indent, ok2, nok));\n}\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit(\"gfmFootnoteDefinition\");\n}\nfunction tokenizeIndent(effects, ok2, nok) {\n const self = this;\n return factorySpace(\n effects,\n afterPrefix,\n \"gfmFootnoteDefinitionIndent\",\n 4 + 1\n );\n function afterPrefix(code2) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"gfmFootnoteDefinitionIndent\" && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok2(code2) : nok(code2);\n }\n}\nfunction gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === void 0) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n while (++index < events.length) {\n if (events[index][0] === \"enter\" && events[index][1].type === \"strikethroughSequenceTemporary\" && events[index][1]._close) {\n let open = index;\n while (open--) {\n if (events[open][0] === \"exit\" && events[open][1].type === \"strikethroughSequenceTemporary\" && events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = \"strikethroughSequence\";\n events[open][1].type = \"strikethroughSequence\";\n const strikethrough = {\n type: \"strikethrough\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n const text2 = {\n type: \"strikethroughText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n const nextEvents = [\n [\"enter\", strikethrough, context],\n [\"enter\", events[open][1], context],\n [\"exit\", events[open][1], context],\n [\"enter\", text2, context]\n ];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n );\n }\n splice(nextEvents, nextEvents.length, 0, [\n [\"exit\", text2, context],\n [\"enter\", events[index][1], context],\n [\"exit\", events[index][1], context],\n [\"exit\", strikethrough, context]\n ]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === \"strikethroughSequenceTemporary\") {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n function tokenizeStrikethrough(effects, ok2, nok) {\n const previous2 = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n function start(code2) {\n if (previous2 === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code2);\n }\n effects.enter(\"strikethroughSequenceTemporary\");\n return more(code2);\n }\n function more(code2) {\n const before = classifyCharacter(previous2);\n if (code2 === 126) {\n if (size > 1) return nok(code2);\n effects.consume(code2);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code2);\n const token = effects.exit(\"strikethroughSequenceTemporary\");\n const after = classifyCharacter(code2);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok2(code2);\n }\n }\n}\nclass EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n this.map = [];\n }\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array<Event>} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add);\n }\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array<Event>} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function(a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n let index = this.map.length;\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n );\n events.length = this.map[index][0];\n }\n vecs.push([...events]);\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n events.push(...slice);\n slice = vecs.pop();\n }\n this.map.length = 0;\n }\n}\nfunction addImpl(editMap, at, remove, add) {\n let index = 0;\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n editMap.map[index][2].push(...add);\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\nfunction gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === \"enter\") {\n if (event[1].type === \"tableContent\") {\n align.push(\n events[index + 1][1].type === \"tableDelimiterMarker\" ? \"left\" : \"none\"\n );\n }\n } else if (event[1].type === \"tableContent\") {\n if (events[index - 1][1].type === \"tableDelimiterMarker\") {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === \"left\" ? \"center\" : \"right\";\n }\n } else if (event[1].type === \"tableDelimiterRow\") {\n break;\n }\n } else if (event[0] === \"enter\" && event[1].type === \"tableDelimiterRow\") {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}\nfunction gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\nfunction tokenizeTable(effects, ok2, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n let seen;\n return start;\n function start(code2) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" || // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\")\n index--;\n else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === \"tableHead\" || tail === \"tableRow\" ? bodyRowStart : headRowBefore;\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n return next(code2);\n }\n function headRowBefore(code2) {\n effects.enter(\"tableHead\");\n effects.enter(\"tableRow\");\n return headRowStart(code2);\n }\n function headRowStart(code2) {\n if (code2 === 124) {\n return headRowBreak(code2);\n }\n seen = true;\n sizeB += 1;\n return headRowBreak(code2);\n }\n function headRowBreak(code2) {\n if (code2 === null) {\n return nok(code2);\n }\n if (markdownLineEnding(code2)) {\n if (sizeB > 1) {\n sizeB = 0;\n self.interrupt = true;\n effects.exit(\"tableRow\");\n effects.enter(\"lineEnding\");\n effects.consume(code2);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n return nok(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, headRowBreak, \"whitespace\")(code2);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n size += 1;\n }\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n seen = true;\n return headRowBreak;\n }\n effects.enter(\"data\");\n return headRowData(code2);\n }\n function headRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return headRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? headRowEscape : headRowData;\n }\n function headRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return headRowData;\n }\n return headRowData(code2);\n }\n function headDelimiterStart(code2) {\n self.interrupt = false;\n if (self.parser.lazy[self.now().line]) {\n return nok(code2);\n }\n effects.enter(\"tableDelimiterRow\");\n seen = false;\n if (markdownSpace(code2)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n \"linePrefix\",\n self.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4\n )(code2);\n }\n return headDelimiterBefore(code2);\n }\n function headDelimiterBefore(code2) {\n if (code2 === 45 || code2 === 58) {\n return headDelimiterValueBefore(code2);\n }\n if (code2 === 124) {\n seen = true;\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return headDelimiterCellBefore;\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterCellBefore(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code2);\n }\n return headDelimiterValueBefore(code2);\n }\n function headDelimiterValueBefore(code2) {\n if (code2 === 58) {\n sizeB += 1;\n seen = true;\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterLeftAlignmentAfter;\n }\n if (code2 === 45) {\n sizeB += 1;\n return headDelimiterLeftAlignmentAfter(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n return headDelimiterCellAfter(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterLeftAlignmentAfter(code2) {\n if (code2 === 45) {\n effects.enter(\"tableDelimiterFiller\");\n return headDelimiterFiller(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterFiller(code2) {\n if (code2 === 45) {\n effects.consume(code2);\n return headDelimiterFiller;\n }\n if (code2 === 58) {\n seen = true;\n effects.exit(\"tableDelimiterFiller\");\n effects.enter(\"tableDelimiterMarker\");\n effects.consume(code2);\n effects.exit(\"tableDelimiterMarker\");\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit(\"tableDelimiterFiller\");\n return headDelimiterRightAlignmentAfter(code2);\n }\n function headDelimiterRightAlignmentAfter(code2) {\n if (markdownSpace(code2)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code2);\n }\n return headDelimiterCellAfter(code2);\n }\n function headDelimiterCellAfter(code2) {\n if (code2 === 124) {\n return headDelimiterBefore(code2);\n }\n if (code2 === null || markdownLineEnding(code2)) {\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code2);\n }\n effects.exit(\"tableDelimiterRow\");\n effects.exit(\"tableHead\");\n return ok2(code2);\n }\n return headDelimiterNok(code2);\n }\n function headDelimiterNok(code2) {\n return nok(code2);\n }\n function bodyRowStart(code2) {\n effects.enter(\"tableRow\");\n return bodyRowBreak(code2);\n }\n function bodyRowBreak(code2) {\n if (code2 === 124) {\n effects.enter(\"tableCellDivider\");\n effects.consume(code2);\n effects.exit(\"tableCellDivider\");\n return bodyRowBreak;\n }\n if (code2 === null || markdownLineEnding(code2)) {\n effects.exit(\"tableRow\");\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code2);\n }\n effects.enter(\"data\");\n return bodyRowData(code2);\n }\n function bodyRowData(code2) {\n if (code2 === null || code2 === 124 || markdownLineEndingOrSpace(code2)) {\n effects.exit(\"data\");\n return bodyRowBreak(code2);\n }\n effects.consume(code2);\n return code2 === 92 ? bodyRowEscape : bodyRowData;\n }\n function bodyRowEscape(code2) {\n if (code2 === 92 || code2 === 124) {\n effects.consume(code2);\n return bodyRowData;\n }\n return bodyRowData(code2);\n }\n}\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n let rowKind = 0;\n let lastCell = [0, 0, 0, 0];\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n let currentTable;\n let currentBody;\n let currentCell;\n const map2 = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === \"enter\") {\n if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = false;\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n currentBody = void 0;\n lastTableEnd = 0;\n }\n currentTable = {\n type: \"table\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentTable, context]]);\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n inFirstCellAwaitingPipe = true;\n currentCell = void 0;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: \"tableBody\",\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map2.add(index, 0, [[\"enter\", currentBody, context]]);\n }\n rowKind = token.type === \"tableDelimiterRow\" ? 2 : currentBody ? 3 : 1;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n inFirstCellAwaitingPipe = false;\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === \"tableCellDivider\") {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n void 0,\n currentCell\n );\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n } else if (token.type === \"tableHead\") {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === \"tableRow\" || token.type === \"tableDelimiterRow\") {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(\n map2,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n );\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map2, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === \"tableDelimiterMarker\" || token.type === \"tableDelimiterFiller\")) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map2, context, lastTableEnd, currentTable, currentBody);\n }\n map2.consume(context.events);\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === \"enter\" && event[1].type === \"table\") {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\nfunction flushCell(map2, context, range, rowKind, rowEnd, previousCell) {\n const groupName = rowKind === 1 ? \"tableHeader\" : rowKind === 2 ? \"tableDelimiter\" : \"tableData\";\n const valueName = \"tableContent\";\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map2.add(range[0], 0, [[\"exit\", previousCell, context]]);\n }\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map2.add(range[1], 0, [[\"enter\", previousCell, context]]);\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map2.add(range[2], 0, [[\"enter\", valueToken, context]]);\n if (rowKind !== 2) {\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map2.add(a, b, []);\n }\n }\n map2.add(range[3] + 1, 0, [[\"exit\", valueToken, context]]);\n }\n if (rowEnd !== void 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map2.add(rowEnd, 0, [[\"exit\", previousCell, context]]);\n previousCell = void 0;\n }\n return previousCell;\n}\nfunction flushTableEnd(map2, context, index, table, tableBody) {\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push([\"exit\", tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push([\"exit\", table, context]);\n map2.add(index + 1, 0, exits);\n}\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === \"enter\" ? \"start\" : \"end\";\n return event[1][side];\n}\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n};\nfunction gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\nfunction tokenizeTasklistCheck(effects, ok2, nok) {\n const self = this;\n return open;\n function open(code2) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code2);\n }\n effects.enter(\"taskListCheck\");\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n return inside;\n }\n function inside(code2) {\n if (markdownLineEndingOrSpace(code2)) {\n effects.enter(\"taskListCheckValueUnchecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueUnchecked\");\n return close;\n }\n if (code2 === 88 || code2 === 120) {\n effects.enter(\"taskListCheckValueChecked\");\n effects.consume(code2);\n effects.exit(\"taskListCheckValueChecked\");\n return close;\n }\n return nok(code2);\n }\n function close(code2) {\n if (code2 === 93) {\n effects.enter(\"taskListCheckMarker\");\n effects.consume(code2);\n effects.exit(\"taskListCheckMarker\");\n effects.exit(\"taskListCheck\");\n return after;\n }\n return nok(code2);\n }\n function after(code2) {\n if (markdownLineEnding(code2)) {\n return ok2(code2);\n }\n if (markdownSpace(code2)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok2,\n nok\n )(code2);\n }\n return nok(code2);\n }\n}\nfunction spaceThenNonSpace(effects, ok2, nok) {\n return factorySpace(effects, after, \"whitespace\");\n function after(code2) {\n return code2 === null ? nok(code2) : ok2(code2);\n }\n}\nfunction gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ]);\n}\nconst emptyOptions = {};\nfunction remarkGfm(options) {\n const self = (\n /** @type {Processor<Root>} */\n this\n );\n const settings = options || emptyOptions;\n const data = self.data();\n const micromarkExtensions = data.micromarkExtensions || (data.micromarkExtensions = []);\n const fromMarkdownExtensions = data.fromMarkdownExtensions || (data.fromMarkdownExtensions = []);\n const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);\n micromarkExtensions.push(gfm(settings));\n fromMarkdownExtensions.push(gfmFromMarkdown());\n toMarkdownExtensions.push(gfmToMarkdown(settings));\n}\nconst rehypeHighlight = ref(null);\nasync function importRehypeHighlightLibrary() {\n const module = await import(\"rehype-highlight\");\n rehypeHighlight.value = module.default;\n}\nconst _sfc_main = {\n name: \"NcRichText\",\n components: {\n NcReferenceList\n },\n props: {\n text: {\n type: String,\n default: \"\"\n },\n arguments: {\n type: Object,\n default: () => {\n return {};\n }\n },\n referenceLimit: {\n type: Number,\n default: 0\n },\n referenceInteractive: {\n type: Boolean,\n default: true\n },\n referenceInteractiveOptIn: {\n type: Boolean,\n default: false\n },\n /** Provide data upfront to avoid extra http request */\n references: {\n type: Array,\n default: null\n },\n /** Provide basic Markdown syntax */\n useMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide GitHub Flavored Markdown syntax */\n useExtendedMarkdown: {\n type: Boolean,\n default: false\n },\n /** Provide event from rendered markdown inputs */\n interactive: {\n type: Boolean,\n default: false\n },\n autolink: {\n type: Boolean,\n default: true\n }\n },\n emits: [\"interact:todo\"],\n data() {\n return {\n parentId: GenRandomId(5)\n };\n },\n methods: {\n renderPlaintext(h) {\n const context = this;\n const placeholders = this.text.split(/(\\{[a-z\\-_.0-9]+\\})/ig).map(function(entry, index, list2) {\n const matches = entry.match(/^\\{([a-z\\-_.0-9]+)\\}$/i);\n if (!matches) {\n return prepareTextNode({ h, context }, entry);\n }\n const argumentId = matches[1];\n const argument = context.arguments[argumentId];\n if (typeof argument === \"object\") {\n const { component, props } = argument;\n return h(component, {\n props,\n class: \"rich-text--component\"\n });\n }\n if (argument) {\n return h(\"span\", { class: \"rich-text--fallback\" }, argument);\n }\n return entry;\n });\n return h(\"div\", { class: \"rich-text--wrapper\" }, [\n h(\"div\", {}, placeholders.flat()),\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n },\n renderMarkdown(h) {\n const renderedMarkdown = unified().use(remarkParse).use(remarkAutolink, {\n autolink: this.autolink,\n useMarkdown: this.useMarkdown,\n useExtendedMarkdown: this.useExtendedMarkdown\n }).use(remarkUnescape).use(this.useExtendedMarkdown ? remarkGfm : void 0).use(breaks).use(remark2rehype, {\n handlers: {\n component(toHast, node2) {\n return toHast(node2, node2.component, { value: node2.value });\n }\n }\n }).use(this.useExtendedMarkdown ? rehypeHighlight.value : void 0).use(remarkPlaceholder).use(rehypeExternalLinks, {\n target: \"_blank\",\n rel: [\"noopener noreferrer\"]\n }).use(rehype2react, {\n createElement: (tag, attrs, children) => {\n if (!tag.startsWith(\"#\")) {\n if (this.useExtendedMarkdown) {\n if (tag === \"code\" && !rehypeHighlight.value && attrs?.attrs?.class?.includes(\"language\")) {\n importRehypeHighlightLibrary();\n }\n let nestedNode = null;\n if (tag === \"li\" && Array.isArray(children) && children[0].tag === \"input\" && children[0].data.attrs.type === \"checkbox\") {\n const [inputNode, ...labelParts] = children;\n const nestedNodeIndex = labelParts.findIndex((child) => [\"ul\", \"ol\", \"li\", \"blockquote\", \"pre\"].includes(child.tag));\n if (nestedNodeIndex !== -1) {\n nestedNode = labelParts[nestedNodeIndex];\n labelParts.splice(nestedNodeIndex);\n }\n const id = this.parentId + \"-markdown-input-\" + GenRandomId(5);\n const inputComponent = h(NcCheckboxRadioSwitch, {\n attrs: {\n ...inputNode.data.attrs,\n id,\n disabled: !this.interactive\n },\n on: {\n \"update:checked\": () => {\n this.$emit(\"interact:todo\", id);\n }\n }\n }, labelParts);\n return h(tag, attrs, [inputComponent, nestedNode]);\n }\n }\n if (tag === \"a\") {\n const route = getRoute(this.$router, attrs.attrs.href);\n if (route) {\n delete attrs.attrs.href;\n delete attrs.attrs.target;\n return h(RouterLink, {\n ...attrs,\n props: {\n to: route\n }\n }, children);\n }\n }\n return h(tag, attrs, children);\n }\n const placeholder = this.arguments[tag.slice(1)];\n if (!placeholder) {\n return h(\"span\", { ...{ attrs }, ...{ class: \"rich-text--fallback\" } }, [`{${tag.slice(1)}}`]);\n }\n if (!placeholder.component) {\n return h(\"span\", attrs, [placeholder]);\n }\n return h(\n placeholder.component,\n {\n attrs,\n props: placeholder.props,\n class: \"rich-text--component\"\n },\n children\n );\n },\n prefix: false\n }).processSync(\n this.text.replace(/<[^>]+>/g, (match) => match.replace(/</g, \"<\")).replace(/>/gmi, \">\")\n ).result;\n return h(\"div\", { class: \"rich-text--wrapper rich-text--wrapper-markdown\" }, [\n renderedMarkdown,\n this.referenceLimit > 0 ? h(\"div\", { class: \"rich-text--reference-widget\" }, [\n h(NcReferenceList, {\n props: {\n text: this.text,\n referenceData: this.references,\n interactive: this.referenceInteractive,\n interactiveOptIn: this.referenceInteractiveOptIn\n }\n })\n ]) : null\n ]);\n }\n },\n render(h) {\n return this.useMarkdown || this.useExtendedMarkdown ? this.renderMarkdown(h) : this.renderPlaintext(h);\n }\n};\nconst _sfc_render = null;\nconst _sfc_staticRenderFns = null;\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"d7087beb\"\n);\nconst NcRichText = __component__.exports;\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-Br5t5ga_.mjs.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.nc-select-users[data-v-ecb8da4e] .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-CRH00RA2.css\"],\"names\":[],\"mappings\":\";AACA;CACC,gCAAgC;AACjC\",\"sourcesContent\":[\"\\n.nc-select-users[data-v-ecb8da4e] .vs__selected {\\n\\tpadding-inline: 0 5px !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-1e8fee5a] .icon-vue{width:64px;height:64px}.empty[data-v-1e8fee5a] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-253f9eec]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import '../assets/referencePickerModal-Ba6soz9w.css';\nimport { e as destroyWidget, a as renderWidget, i as isWidgetRegistered, h as hasInteractiveView, f as hasFullWidth, c as renderCustomPickerElement, g as destroyCustomPickerElement, d as isCustomPickerElementRegistered, j as getCustomPickerElementSize } from \"./index-56SXuvlv.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { r as register, V as t21, a as t, W as t7, X as t44, Y as t38, Z as t22, B as t40, _ as t29, n as t17, $ as t11 } from \"./_l10n-Dt0m9Fxw.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { imagePath, generateOcsUrl } from \"@nextcloud/router\";\nimport NcEmptyContent from \"../Components/NcEmptyContent.mjs\";\nimport { N as NcHighlight } from \"./index-Bz6q9mZw.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DVUm4oCe.mjs\";\nimport { useElementSize, useIntersectionObserver } from \"@vueuse/core\";\nimport Vue, { ref, nextTick } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport NcLoadingIcon from \"../Components/NcLoadingIcon.mjs\";\nimport { N as NcTextField } from \"./NcTextField-DRANdaIf.mjs\";\nimport { D as DotsHorizontal } from \"./DotsHorizontal-C6LNsw4N.mjs\";\nimport NcModal from \"../Components/NcModal.mjs\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { C as Close } from \"./Close-BtLPUSdO.mjs\";\nregister(t21);\nconst IDLE_TIMEOUT = 3 * 60 * 1e3;\nconst _sfc_main$8 = {\n name: \"NcReferenceWidget\",\n components: {\n NcButton\n },\n props: {\n reference: {\n type: Object,\n required: true\n },\n interactive: {\n type: Boolean,\n default: true\n },\n interactiveOptIn: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n const isVisible = ref(false);\n const widgetRoot = ref();\n const { width } = useElementSize(widgetRoot);\n useIntersectionObserver(widgetRoot, ([entry]) => {\n nextTick(() => {\n isVisible.value = entry.isIntersecting;\n });\n });\n return {\n width,\n isVisible,\n widgetRoot\n };\n },\n data() {\n return {\n showInteractive: false,\n rendered: false,\n idleTimeout: null\n };\n },\n computed: {\n isInteractive() {\n return !this.interactiveOptIn && this.interactive || this.showInteractive;\n },\n hasFullWidth() {\n return hasFullWidth(this.reference.richObjectType);\n },\n hasCustomWidget() {\n return isWidgetRegistered(this.reference.richObjectType);\n },\n hasInteractiveView() {\n return isWidgetRegistered(this.reference.richObjectType) && hasInteractiveView(this.reference.richObjectType);\n },\n noAccess() {\n return this.reference && !this.reference.accessible;\n },\n descriptionStyle() {\n if (this.numberOfLines === 0) {\n return {\n display: \"none\"\n };\n }\n const lineClamp = this.numberOfLines;\n return {\n lineClamp,\n webkitLineClamp: lineClamp\n };\n },\n numberOfLines() {\n const lineCountOffsets = [450, 550, 650, Infinity];\n return lineCountOffsets.findIndex((max) => this.width < max);\n },\n compactLink() {\n const link = this.reference.openGraphObject.link;\n if (!link) {\n return \"\";\n }\n if (link.startsWith(\"https://\")) {\n return link.substring(8);\n }\n if (link.startsWith(\"http://\")) {\n return link.substring(7);\n }\n return link;\n },\n route() {\n return getRoute(this.$router, this.reference.openGraphObject.link);\n },\n referenceWidgetLinkComponent() {\n return this.route ? RouterLink : \"a\";\n },\n referenceWidgetLinkProps() {\n return this.route ? { to: this.route } : { href: this.reference.openGraphObject.link, target: \"_blank\" };\n }\n },\n watch: {\n isVisible: {\n handler(val) {\n if (!val) {\n this.idleTimeout = setTimeout(() => {\n if (!this.isVisible) {\n this.destroyWidget();\n }\n }, IDLE_TIMEOUT);\n return;\n }\n if (this.idleTimeout) {\n clearTimeout(this.idleTimeout);\n this.idleTimeout = null;\n }\n if (!this.rendered) {\n this.renderWidget();\n }\n },\n immediate: true\n }\n },\n beforeDestroy() {\n this.destroyWidget();\n },\n methods: {\n t,\n enableInteractive() {\n this.showInteractive = true;\n this.renderWidget();\n },\n renderWidget() {\n if (!this.$refs.customWidget) {\n return;\n }\n if (this?.reference?.richObjectType === \"open-graph\") {\n return;\n }\n this.$refs.customWidget.innerHTML = \"\";\n const widget = document.createElement(\"div\");\n widget.style = \"width: 100%;\";\n this.$refs.customWidget.appendChild(widget);\n this.$nextTick(() => {\n renderWidget(widget, {\n ...this.reference,\n interactive: this.isInteractive\n });\n this.rendered = true;\n });\n },\n destroyWidget() {\n if (this.rendered) {\n destroyWidget(this.reference.richObjectType, this.$el);\n this.rendered = false;\n }\n }\n }\n};\nvar _sfc_render$8 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"widgetRoot\", class: { \"toggle-interactive\": _vm.hasInteractiveView && !_vm.isInteractive } }, [_vm.reference && _vm.hasCustomWidget ? _c(\"div\", { ref: \"customWidget\", staticClass: \"widget-custom\", class: { \"full-width\": _vm.hasFullWidth } }) : !_vm.noAccess && _vm.reference && _vm.reference.openGraphObject && !_vm.hasCustomWidget ? _c(_vm.referenceWidgetLinkComponent, _vm._b({ tag: \"component\", staticClass: \"widget-default\", attrs: { \"rel\": \"noopener noreferrer\" } }, \"component\", _vm.referenceWidgetLinkProps, false), [_vm.reference.openGraphObject.thumb ? _c(\"img\", { staticClass: \"widget-default--image\", attrs: { \"src\": _vm.reference.openGraphObject.thumb } }) : _vm._e(), _c(\"div\", { staticClass: \"widget-default--details\" }, [_c(\"p\", { staticClass: \"widget-default--name\" }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.name) + \" \")]), _c(\"p\", { staticClass: \"widget-default--description\", style: _vm.descriptionStyle }, [_vm._v(\" \" + _vm._s(_vm.reference.openGraphObject.description) + \" \")]), _c(\"p\", { staticClass: \"widget-default--link\" }, [_vm._v(\" \" + _vm._s(_vm.compactLink) + \" \")])])]) : _vm._e(), _vm.interactiveOptIn && _vm.hasInteractiveView && !_vm.isInteractive ? _c(\"NcButton\", { staticClass: \"toggle-interactive--button\", on: { \"click\": _vm.enableInteractive } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Enable interactive view\")) + \" \")]) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$8 = [];\nvar __component__$8 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$8,\n _sfc_render$8,\n _sfc_staticRenderFns$8,\n false,\n null,\n \"734d6ae9\"\n);\nconst NcReferenceWidget = __component__$8.exports;\nconst _sfc_main$7 = {\n name: \"NcCustomPickerElement\",\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n isRegistered: isCustomPickerElementRegistered(this.provider.id),\n renderResult: null\n };\n },\n mounted() {\n if (this.isRegistered) {\n this.renderElement();\n }\n },\n beforeDestroy() {\n if (this.isRegistered) {\n destroyCustomPickerElement(this.provider.id, this.$el, this.renderResult);\n }\n },\n methods: {\n renderElement() {\n if (this.$refs.domElement) {\n this.$refs.domElement.innerHTML = \"\";\n }\n const renderFunctionResult = renderCustomPickerElement(this.$refs.domElement, { providerId: this.provider.id, accessible: false });\n Promise.resolve(renderFunctionResult).then((result) => {\n this.renderResult = result;\n if (this.renderResult.object?._isVue && this.renderResult.object?.$on) {\n this.renderResult.object.$on(\"submit\", this.onSubmit);\n this.renderResult.object.$on(\"cancel\", this.onCancel);\n }\n this.renderResult.element.addEventListener(\"submit\", (e) => {\n this.onSubmit(e.detail);\n });\n this.renderResult.element.addEventListener(\"cancel\", this.onCancel);\n });\n },\n onSubmit(value) {\n this.$emit(\"submit\", value);\n },\n onCancel() {\n this.$emit(\"cancel\");\n }\n }\n};\nvar _sfc_render$7 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { ref: \"domElement\" });\n};\nvar _sfc_staticRenderFns$7 = [];\nvar __component__$7 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$7,\n _sfc_render$7,\n _sfc_staticRenderFns$7,\n false,\n null,\n \"de9850e4\"\n);\nconst NcCustomPickerElement = __component__$7.exports;\nregister(t7);\nconst anyLinkProviderId = \"any-link\";\nconst anyLinkProvider = {\n id: anyLinkProviderId,\n title: t(\"Any link\"),\n icon_url: imagePath(\"core\", \"filetypes/link.svg\")\n};\nif (!window._vue_richtext_reference_providers) {\n window._vue_richtext_reference_providers = loadState(\"core\", \"reference-provider-list\", []);\n}\nif (!window._vue_richtext_reference_provider_timestamps) {\n window._vue_richtext_reference_provider_timestamps = loadState(\"core\", \"reference-provider-timestamps\", {});\n}\nfunction getProvider(providerId) {\n if (providerId === anyLinkProviderId) {\n return anyLinkProvider;\n }\n return getProviders().find((p) => p.id === providerId);\n}\nfunction getProviders() {\n return window._vue_richtext_reference_providers.filter((p) => {\n const keep = !!p.search_providers_ids && p.search_providers_ids.length > 0 || isCustomPickerElementRegistered(p.id);\n if (!keep) {\n console.debug(\"[smart picker]\", p.id, \"reference provider is discoverable but does not have any related search provider or custom picker component registered\");\n }\n return keep;\n });\n}\nfunction sortProviders(providerList) {\n const timestamps = window._vue_richtext_reference_provider_timestamps;\n return providerList.sort((a, b) => {\n return a.order === b.order ? 0 : a.order > b.order ? 1 : -1;\n }).sort((a, b) => {\n const ta = timestamps[a.id];\n const tb = timestamps[b.id];\n return ta === tb ? 0 : tb === void 0 ? -1 : ta === void 0 ? 1 : ta > tb ? -1 : 1;\n });\n}\nfunction searchProvider(query, limit = null) {\n const providers = getProviders();\n const escapedQuery = query.replace(/[/\\-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n const regexp = new RegExp(escapedQuery, \"i\");\n const sortedProviders = sortProviders(providers);\n const filteredSortedProviders = sortedProviders.filter((p) => {\n return p.title.match(regexp);\n });\n const searchResult = limit ? filteredSortedProviders.slice(0, limit) : filteredSortedProviders;\n if (query === \"\" || searchResult.length === 0) {\n searchResult.push(anyLinkProvider);\n }\n return searchResult;\n}\nfunction touchProvider(providerId) {\n const timestamp = Math.floor(Date.now() / 1e3);\n const params = {\n timestamp\n };\n const url = generateOcsUrl(\"references/provider/{providerId}\", { providerId });\n axios.put(url, params).then((response) => {\n window._vue_richtext_reference_provider_timestamps[providerId] = timestamp;\n });\n}\nlet mytimer = 0;\nfunction delay(callback, ms) {\n return function() {\n const context = this;\n const args = arguments;\n clearTimeout(mytimer);\n mytimer = setTimeout(function() {\n callback.apply(context, args);\n }, ms);\n };\n}\nfunction isUrl(str) {\n try {\n return Boolean(new URL(str));\n } catch (error) {\n return false;\n }\n}\nregister(t38, t44);\nconst _sfc_main$6 = {\n name: \"LinkVariantIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$6 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon link-variant-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$6 = [];\nvar __component__$6 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$6,\n _sfc_render$6,\n _sfc_staticRenderFns$6,\n false,\n null,\n null\n);\nconst LinkVariantIcon = __component__$6.exports;\nconst _sfc_main$5 = {\n name: \"NcProviderList\",\n components: {\n NcSelect,\n NcHighlight,\n NcEmptyContent,\n LinkVariantIcon\n },\n emits: [\n \"select-provider\",\n \"submit\"\n ],\n data() {\n return {\n selectedProvider: null,\n query: \"\",\n multiselectPlaceholder: t(\"Select provider\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n options() {\n const result = [];\n if (this.query !== \"\" && isUrl(this.query)) {\n result.push({\n id: this.query,\n title: this.query,\n isLink: true\n });\n }\n result.push(...searchProvider(this.query));\n return result;\n }\n },\n methods: {\n focus() {\n setTimeout(() => {\n this.$refs[\"provider-select\"]?.$el?.querySelector(\"#provider-select-input\")?.focus();\n }, 300);\n },\n onProviderSelected(p) {\n if (p !== null) {\n if (p.isLink) {\n this.$emit(\"submit\", p.title);\n } else {\n this.$emit(\"select-provider\", p);\n }\n this.selectedProvider = null;\n }\n },\n onSearch(query, loading) {\n this.query = query;\n }\n }\n};\nvar _sfc_render$5 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"provider-list\" }, [_c(\"NcSelect\", { ref: \"provider-select\", staticClass: \"provider-list--select\", attrs: { \"input-id\": \"provider-select-input\", \"label\": \"title\", \"placeholder\": _vm.multiselectPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"clear-search-on-select\": true, \"clear-search-on-blur\": () => false, \"filterable\": false }, on: { \"search\": _vm.onSearch, \"input\": _vm.onProviderSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isLink ? _c(\"div\", { staticClass: \"provider\" }, [_c(\"LinkVariantIcon\", { staticClass: \"link-icon\", attrs: { \"size\": 20 } }), _c(\"span\", [_vm._v(_vm._s(option.title))])], 1) : _c(\"div\", { staticClass: \"provider\" }, [_c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": option.icon_url, \"alt\": _vm.providerIconAlt } }), _c(\"NcHighlight\", { staticClass: \"option-text\", attrs: { \"search\": _vm.query, \"text\": option.title } })], 1)];\n } }]), model: { value: _vm.selectedProvider, callback: function($$v) {\n _vm.selectedProvider = $$v;\n }, expression: \"selectedProvider\" } }), _c(\"NcEmptyContent\", { staticClass: \"provider-list--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n \"f03ee0c9\"\n);\nconst NcProviderList = __component__$5.exports;\nregister(t22);\nconst _sfc_main$4 = {\n name: \"NcRawLinkInput\",\n components: {\n LinkVariantIcon,\n NcEmptyContent,\n NcLoadingIcon,\n NcReferenceWidget,\n NcTextField\n },\n props: {\n /**\n * The reference provider\n */\n provider: {\n type: Object,\n required: true\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n inputValue: \"\",\n loading: false,\n reference: null,\n abortController: null,\n inputPlaceholder: t(\"Enter link\")\n };\n },\n computed: {\n isLinkValid() {\n return isUrl(this.inputValue);\n }\n },\n methods: {\n focus() {\n this.$refs[\"url-input\"].$el.getElementsByTagName(\"input\")[0]?.focus();\n },\n onSubmit(e) {\n const value = e.target.value;\n if (this.isLinkValid) {\n this.$emit(\"submit\", value);\n }\n },\n onClear() {\n this.inputValue = \"\";\n this.reference = null;\n },\n onInput() {\n this.reference = null;\n if (this.abortController) {\n this.abortController.abort();\n }\n if (this.isLinkValid) {\n delay(() => {\n this.updateReference();\n }, 500)();\n }\n },\n updateReference() {\n this.loading = true;\n this.abortController = new AbortController();\n axios.get(generateOcsUrl(\"references/resolve\", 2) + \"?reference=\" + encodeURIComponent(this.inputValue), {\n signal: this.abortController.signal\n }).then((response) => {\n this.reference = response.data.ocs.data.references[this.inputValue];\n }).catch((error) => {\n console.error(error);\n }).then(() => {\n this.loading = false;\n });\n }\n }\n};\nvar _sfc_render$4 = function render5() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"raw-link\" }, [_c(\"div\", { staticClass: \"input-wrapper\" }, [_c(\"NcTextField\", { ref: \"url-input\", attrs: { \"value\": _vm.inputValue, \"show-trailing-button\": _vm.inputValue !== \"\", \"label\": _vm.inputPlaceholder }, on: { \"update:value\": [function($event) {\n _vm.inputValue = $event;\n }, _vm.onInput], \"trailing-button-click\": _vm.onClear }, nativeOn: { \"keyup\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")) return null;\n return _vm.onSubmit.apply(null, arguments);\n } } }, [_vm.loading ? _c(\"NcLoadingIcon\", { attrs: { \"size\": 16 } }) : _c(\"LinkVariantIcon\", { attrs: { \"size\": 16 } })], 1)], 1), _vm.reference !== null ? _c(\"NcReferenceWidget\", { staticClass: \"reference-widget\", attrs: { \"reference\": _vm.reference } }) : _c(\"NcEmptyContent\", { staticClass: \"raw-link--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }]) })], 1);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n \"3c1803b5\"\n);\nconst NcRawLinkInput = __component__$4.exports;\nconst _sfc_main$3 = {\n name: \"NcSearchResult\",\n components: {\n NcHighlight\n },\n props: {\n /**\n * Unified search result entry\n */\n entry: {\n type: Object,\n required: true\n },\n /**\n * The query that led to getting this result\n * Used to highlight the entry text\n */\n query: {\n type: String,\n required: true\n }\n }\n};\nvar _sfc_render$3 = function render6() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"result\" }, [_vm.entry.icon ? _c(\"div\", { staticClass: \"result--icon-class\", class: { [_vm.entry.icon]: true, rounded: _vm.entry.rounded } }) : _c(\"img\", { staticClass: \"result--image\", class: { rounded: _vm.entry.rounded }, attrs: { \"src\": _vm.entry.thumbnailUrl } }), _c(\"div\", { staticClass: \"result--content\" }, [_c(\"span\", { staticClass: \"result--content--name\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.title } })], 1), _c(\"span\", { staticClass: \"result--content--subline\" }, [_c(\"NcHighlight\", { attrs: { \"search\": _vm.query, \"text\": _vm.entry.subline } })], 1)])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n \"ff4bcbf3\"\n);\nconst NcSearchResult = __component__$3.exports;\nregister(t29, t38, t40);\nconst LIMIT = 5;\nconst _sfc_main$2 = {\n name: \"NcSearch\",\n components: {\n LinkVariantIcon,\n DotsHorizontalIcon: DotsHorizontal,\n NcEmptyContent,\n NcSelect,\n NcSearchResult\n },\n props: {\n /**\n * The selected reference provider\n */\n provider: {\n type: Object,\n required: true\n },\n showEmptyContent: {\n type: Boolean,\n default: true\n },\n searchPlaceholder: {\n type: String,\n default: null\n }\n },\n emits: [\n \"submit\"\n ],\n data() {\n return {\n searchQuery: \"\",\n selectedResult: null,\n resultsBySearchProvider: {},\n searching: false,\n searchingMoreOf: null,\n abortController: null,\n noOptionsText: t(\"Start typing to search\"),\n providerIconAlt: t(\"Provider icon\")\n };\n },\n computed: {\n mySearchPlaceholder() {\n return this.searchPlaceholder || t(\"Search\");\n },\n searchProviderIds() {\n return this.provider.search_providers_ids;\n },\n options() {\n if (this.searchQuery === \"\") {\n return [];\n }\n const options = [];\n if (isUrl(this.searchQuery)) {\n options.push(this.rawLinkEntry);\n }\n options.push(...this.formattedSearchResults);\n return options;\n },\n rawLinkEntry() {\n return {\n id: \"rawLinkEntry\",\n resourceUrl: this.searchQuery,\n isRawLink: true\n };\n },\n formattedSearchResults() {\n const results = [];\n this.searchProviderIds.forEach((pid) => {\n if (this.resultsBySearchProvider[pid].entries.length > 0) {\n if (this.searchProviderIds.length > 1 || this.resultsBySearchProvider[pid].entries.length > 1) {\n results.push({\n id: \"groupTitle-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isCustomGroupTitle: true,\n providerId: pid\n });\n }\n const providerEntriesWithId = this.resultsBySearchProvider[pid].entries.map((entry, index) => {\n return {\n id: \"provider-\" + pid + \"-entry-\" + index,\n ...entry\n };\n });\n results.push(...providerEntriesWithId);\n if (this.resultsBySearchProvider[pid].isPaginated) {\n results.push({\n id: \"moreOf-\" + pid,\n name: this.resultsBySearchProvider[pid].name,\n isMore: true,\n providerId: pid,\n isLoading: this.searchingMoreOf === pid\n });\n }\n }\n });\n return results;\n }\n },\n mounted() {\n this.resetResults();\n },\n beforeDestroy() {\n this.cancelSearchRequests();\n },\n methods: {\n t,\n resetResults() {\n const resultsBySearchProvider = {};\n this.searchProviderIds.forEach((pid) => {\n resultsBySearchProvider[pid] = {\n entries: []\n };\n });\n this.resultsBySearchProvider = resultsBySearchProvider;\n },\n focus() {\n setTimeout(() => {\n this.$refs[\"search-select\"]?.$el?.querySelector(\"#search-select-input\")?.focus();\n }, 300);\n },\n cancelSearchRequests() {\n if (this.abortController) {\n this.abortController.abort();\n }\n },\n onSearchInput(query, loading) {\n this.searchQuery = query;\n delay(() => {\n this.updateSearch();\n }, 500)();\n },\n onSelectResultSelected(item) {\n if (item !== null) {\n if (item.resourceUrl) {\n this.cancelSearchRequests();\n this.$emit(\"submit\", item.resourceUrl);\n } else if (item.isMore) {\n this.searchMoreOf(item.providerId).then(() => {\n this.selectedResult = null;\n });\n }\n }\n },\n searchMoreOf(searchProviderId) {\n this.searchingMoreOf = searchProviderId;\n this.cancelSearchRequests();\n return this.searchProviders(searchProviderId);\n },\n updateSearch() {\n this.cancelSearchRequests();\n this.resetResults();\n if (this.searchQuery === \"\") {\n this.searching = false;\n return;\n }\n return this.searchProviders();\n },\n searchProviders(searchProviderId = null) {\n this.abortController = new AbortController();\n this.searching = true;\n const searchPromises = searchProviderId === null ? [...this.searchProviderIds].map((pid) => {\n return this.searchOneProvider(pid);\n }) : [this.searchOneProvider(searchProviderId, this.resultsBySearchProvider[searchProviderId]?.cursor ?? null)];\n return Promise.allSettled(searchPromises).then((promises) => {\n const isOneCanceled = !!promises.find((p) => {\n return p.status === \"rejected\" && (p.reason.name === \"CanceledError\" || p.reason.code === \"ERR_CANCELED\");\n });\n if (!isOneCanceled) {\n this.searching = false;\n this.searchingMoreOf = null;\n }\n });\n },\n searchOneProvider(providerId, cursor = null) {\n const url = cursor === null ? generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}\", { providerId, term: this.searchQuery, limit: LIMIT }) : generateOcsUrl(\"search/providers/{providerId}/search?term={term}&limit={limit}&cursor={cursor}\", { providerId, term: this.searchQuery, limit: LIMIT, cursor });\n return axios.get(url, {\n signal: this.abortController.signal\n }).then((response) => {\n const data = response.data.ocs.data;\n this.resultsBySearchProvider[providerId].name = data.name;\n this.resultsBySearchProvider[providerId].cursor = data.cursor;\n this.resultsBySearchProvider[providerId].isPaginated = data.isPaginated;\n this.resultsBySearchProvider[providerId].entries.push(...data.entries);\n });\n }\n }\n};\nvar _sfc_render$2 = function render7() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"smart-picker-search\", class: { \"with-empty-content\": _vm.showEmptyContent } }, [_c(\"NcSelect\", { ref: \"search-select\", staticClass: \"smart-picker-search--select\", attrs: { \"input-id\": \"search-select-input\", \"label\": \"name\", \"placeholder\": _vm.mySearchPlaceholder, \"options\": _vm.options, \"append-to-body\": false, \"close-on-select\": false, \"clear-search-on-select\": false, \"clear-search-on-blur\": () => false, \"reset-focus-on-options-change\": false, \"filterable\": false, \"autoscroll\": true, \"reset-on-options-change\": false, \"loading\": _vm.searching }, on: { \"search\": _vm.onSearchInput, \"input\": _vm.onSelectResultSelected }, scopedSlots: _vm._u([{ key: \"option\", fn: function(option) {\n return [option.isRawLink ? _c(\"div\", { staticClass: \"custom-option\" }, [_c(\"LinkVariantIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Raw link {options}\", { options: option.resourceUrl })) + \" \")])], 1) : option.resourceUrl ? _c(\"NcSearchResult\", { staticClass: \"search-result\", attrs: { \"entry\": option, \"query\": _vm.searchQuery } }) : option.isCustomGroupTitle ? _c(\"span\", { staticClass: \"custom-option group-name\" }, [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon group-name-icon\", attrs: { \"src\": _vm.provider.icon_url } }) : _vm._e(), _c(\"span\", { staticClass: \"option-text\" }, [_c(\"strong\", [_vm._v(_vm._s(option.name))])])]) : option.isMore ? _c(\"span\", { class: { \"custom-option\": true } }, [option.isLoading ? _c(\"span\", { staticClass: \"option-simple-icon icon-loading-small\" }) : _c(\"DotsHorizontalIcon\", { staticClass: \"option-simple-icon\", attrs: { \"size\": 20 } }), _c(\"span\", { staticClass: \"option-text\" }, [_vm._v(\" \" + _vm._s(_vm.t('Load more \"{options}\"', { options: option.name })) + \" \")])], 1) : _vm._e()];\n } }, { key: \"no-options\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.noOptionsText) + \" \")];\n }, proxy: true }]), model: { value: _vm.selectedResult, callback: function($$v) {\n _vm.selectedResult = $$v;\n }, expression: \"selectedResult\" } }), _vm.showEmptyContent ? _c(\"NcEmptyContent\", { staticClass: \"smart-picker-search--empty-content\", scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.provider.icon_url ? _c(\"img\", { staticClass: \"provider-icon\", attrs: { \"alt\": _vm.providerIconAlt, \"src\": _vm.provider.icon_url } }) : _c(\"LinkVariantIcon\")];\n }, proxy: true }], null, false, 2922132592) }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n \"05fef988\"\n);\nconst NcSearch = __component__$2.exports;\nconst MODES = {\n providerList: 1,\n standardLinkInput: 2,\n searchInput: 3,\n customElement: 4\n};\nconst _sfc_main$1 = {\n name: \"NcReferencePicker\",\n components: {\n NcCustomPickerElement,\n NcProviderList,\n NcRawLinkInput,\n NcSearch\n },\n props: {\n /**\n * Provider to select on creation\n * Default: null. Show the provider list\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Optional width in pixels\n * Default: 100%\n */\n width: {\n type: Number,\n default: null\n },\n /**\n * Focus on the provider list select input on creation\n * Default: true\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n }\n },\n emits: [\n \"cancel\",\n \"cancel-raw-link\",\n \"cancel-search\",\n \"provider-selected\",\n \"submit\"\n ],\n data() {\n return {\n MODES,\n selectedProvider: this.initialProvider\n };\n },\n computed: {\n mode() {\n return this.selectedProvider === null ? MODES.providerList : isCustomPickerElementRegistered(this.selectedProvider.id) ? MODES.customElement : this.selectedProvider.search_providers_ids ? MODES.searchInput : MODES.standardLinkInput;\n },\n pickerWrapperStyle() {\n return {\n width: this.width ? this.width + \"px\" : void 0\n };\n }\n },\n mounted() {\n if (this.focusOnCreate) {\n if (this.initialProvider) {\n setTimeout(() => {\n this.$refs[\"url-input\"]?.focus();\n }, 300);\n } else {\n this.$nextTick(() => {\n this.$refs[\"provider-list\"]?.focus();\n });\n }\n }\n },\n methods: {\n onEscapePressed() {\n if (this.selectedProvider !== null) {\n this.deselectProvider();\n } else {\n this.cancelProviderSelection();\n }\n },\n onProviderSelected(provider) {\n this.selectedProvider = provider;\n this.$emit(\"provider-selected\", provider);\n this.$nextTick(() => {\n this.$refs[\"url-input\"]?.focus();\n });\n },\n cancelCustomElement() {\n this.deselectProvider();\n },\n cancelSearch() {\n this.$emit(\"cancel-search\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelRawLinkInput() {\n this.$emit(\"cancel-raw-link\", this.selectedProvider?.title);\n this.deselectProvider();\n },\n cancelProviderSelection() {\n this.$emit(\"cancel\");\n },\n submitLink(link) {\n if (this.selectedProvider !== null) {\n touchProvider(this.selectedProvider.id);\n }\n this.$emit(\"submit\", link);\n this.deselectProvider();\n },\n deselectProvider() {\n this.selectedProvider = null;\n this.$emit(\"provider-selected\", null);\n setTimeout(() => {\n this.$refs[\"provider-list\"]?.focus();\n }, 300);\n }\n }\n};\nvar _sfc_render$1 = function render8() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"reference-picker\", style: _vm.pickerWrapperStyle, attrs: { \"tabindex\": \"-1\" }, on: { \"keydown\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) return null;\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.onEscapePressed.apply(null, arguments);\n } } }, [_vm.mode === _vm.MODES.providerList ? _c(\"NcProviderList\", { ref: \"provider-list\", on: { \"select-provider\": _vm.onProviderSelected, \"submit\": _vm.submitLink, \"cancel\": _vm.cancelProviderSelection } }) : _vm.mode === _vm.MODES.standardLinkInput ? _c(\"NcRawLinkInput\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelRawLinkInput } }) : _vm.mode === _vm.MODES.searchInput ? _c(\"NcSearch\", { ref: \"url-input\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"cancel\": _vm.cancelSearch, \"submit\": _vm.submitLink } }) : _vm.mode === _vm.MODES.customElement ? _c(\"div\", { staticClass: \"custom-element-wrapper\" }, [_c(\"NcCustomPickerElement\", { staticClass: \"custom-element\", attrs: { \"provider\": _vm.selectedProvider }, on: { \"submit\": _vm.submitLink, \"cancel\": _vm.cancelCustomElement } })], 1) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"cd33df8e\"\n);\nconst NcReferencePicker = __component__$1.exports;\nregister(t11, t17);\nconst _sfc_main = {\n name: \"NcReferencePickerModal\",\n components: {\n NcReferencePicker,\n NcModal,\n NcButton,\n ArrowLeftIcon: ArrowLeft,\n CloseIcon: Close\n },\n props: {\n /**\n * Provider to select on creation\n * Show the provider list if no initial one is provided\n */\n initialProvider: {\n type: Object,\n default: () => null\n },\n /**\n * Focus on the input item on create\n */\n focusOnCreate: {\n type: Boolean,\n default: true\n },\n /**\n * If true, add the modal content to the Viewer trap elements via the event-bus\n */\n isInsideViewer: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"cancel\",\n \"submit\"\n ],\n data() {\n return {\n show: true,\n selectedProvider: this.initialProvider,\n backButtonTitle: t(\"Back to provider selection\"),\n closeButtonTitle: t(\"Close\"),\n closeButtonLabel: t(\"Close Smart Picker\")\n };\n },\n computed: {\n isProviderSelected() {\n return this.selectedProvider !== null;\n },\n showBackButton() {\n return this.initialProvider === null && this.isProviderSelected;\n },\n modalSize() {\n return this.isProviderSelected && isCustomPickerElementRegistered(this.selectedProvider.id) ? getCustomPickerElementSize(this.selectedProvider.id) ?? \"large\" : \"normal\";\n },\n showModalName() {\n return !this.isProviderSelected || !isCustomPickerElementRegistered(this.selectedProvider.id);\n },\n modalName() {\n return this.isProviderSelected ? this.selectedProvider.title : t(\"Smart Picker\");\n }\n },\n mounted() {\n if (this.isInsideViewer) {\n const elem = this.$refs.modal_content;\n emit(\"viewer:trapElements:changed\", elem);\n }\n },\n methods: {\n onCancel() {\n this.show = false;\n this.$emit(\"cancel\");\n },\n onSubmit(value) {\n this.show = false;\n this.$emit(\"submit\", value);\n },\n onProviderSelect(provider) {\n this.selectedProvider = provider;\n if (provider === null && this.initialProvider !== null) {\n this.onCancel();\n }\n },\n onBackClicked() {\n this.$refs.referencePicker.deselectProvider();\n }\n }\n};\nvar _sfc_render = function render9() {\n var _vm = this, _c = _vm._self._c;\n return _vm.show ? _c(\"NcModal\", { staticClass: \"reference-picker-modal\", attrs: { \"size\": _vm.modalSize, \"can-close\": true }, on: { \"close\": _vm.onCancel } }, [_c(\"div\", { ref: \"modal_content\", staticClass: \"reference-picker-modal--content\" }, [_vm.showBackButton ? _c(\"NcButton\", { staticClass: \"back-button\", attrs: { \"aria-label\": _vm.backButtonTitle, \"title\": _vm.backButtonTitle }, on: { \"click\": _vm.onBackClicked }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"ArrowLeftIcon\")];\n }, proxy: true }], null, false, 3001860362) }) : _vm._e(), _c(\"NcButton\", { staticClass: \"close-button\", attrs: { \"aria-label\": _vm.closeButtonLabel, \"title\": _vm.closeButtonTitle, \"variant\": \"tertiary\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"CloseIcon\")];\n }, proxy: true }], null, false, 2491825086) }), _vm.showModalName ? _c(\"h2\", [_vm._v(\" \" + _vm._s(_vm.modalName) + \" \")]) : _vm._e(), _c(\"NcReferencePicker\", { ref: \"referencePicker\", attrs: { \"initial-provider\": _vm.initialProvider, \"focus-on-create\": _vm.focusOnCreate }, on: { \"provider-selected\": _vm.onProviderSelect, \"submit\": _vm.onSubmit, \"cancel\": _vm.onCancel } })], 1)]) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"c66449c1\"\n);\nconst NcReferencePickerModal = __component__.exports;\nasync function getLinkWithPicker(providerId = null, isInsideViewer = void 0) {\n return await new Promise((resolve, reject) => {\n const modalId = \"referencePickerModal\";\n const modalElement = document.createElement(\"div\");\n modalElement.id = modalId;\n document.body.append(modalElement);\n const initialProvider = providerId === null ? null : getProvider(providerId) ?? null;\n const View = Vue.extend(NcReferencePickerModal);\n const view = new View({\n propsData: {\n initialProvider,\n isInsideViewer\n }\n }).$mount(modalElement);\n view.$on(\"cancel\", () => {\n view.$destroy();\n reject(new Error(\"User cancellation\"));\n });\n view.$on(\"submit\", (link) => {\n view.$destroy();\n resolve(link);\n });\n });\n}\nexport {\n NcReferenceWidget as N,\n anyLinkProviderId as a,\n getProvider as b,\n getProviders as c,\n searchProvider as d,\n NcReferencePicker as e,\n NcReferencePickerModal as f,\n getLinkWithPicker as g,\n NcSearch as h,\n sortProviders as s\n};\n//# sourceMappingURL=referencePickerModal-DN7C4An4.mjs.map\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1133b4da] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-1133b4da] {\n display: flex;\n justify-content: space-between;\n}\n.app-navigation-caption--heading[data-v-1133b4da] {\n padding: var(--app-navigation-padding);\n}\n.app-navigation-caption--heading[data-v-1133b4da]:not(:first-child):not(:last-child) {\n padding: 0 var(--app-navigation-padding);\n}\n.app-navigation-caption__name[data-v-1133b4da] {\n font-weight: bold;\n color: var(--color-main-text);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-shadow: none !important;\n flex-shrink: 1;\n padding-block: 0;\n padding-inline: calc(var(--default-grid-baseline, 4px) * 2) 0;\n margin-top: 0px;\n margin-bottom: var(--default-grid-baseline);\n}\n.app-navigation-caption__actions[data-v-1133b4da] {\n flex: 0 0 var(--default-clickable-area);\n}\n.app-navigation-caption[data-v-1133b4da]:not(:first-child) {\n margin-top: calc(var(--default-clickable-area) / 2);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationCaption-DU9PxTvu.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,sCAAsC;AACxC;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,iBAAiB;EACjB,6BAA6B;EAC7B,mCAAmC;EACnC,0CAA0C;EAC1C,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,2BAA2B;EAC3B,cAAc;EACd,gBAAgB;EAChB,6DAA6D;EAC7D,eAAe;EACf,2CAA2C;AAC7C;AACA;EACE,uCAAuC;AACzC;AACA;EACE,mDAAmD;AACrD\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-1133b4da] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.app-navigation-caption[data-v-1133b4da] {\\n display: flex;\\n justify-content: space-between;\\n}\\n.app-navigation-caption--heading[data-v-1133b4da] {\\n padding: var(--app-navigation-padding);\\n}\\n.app-navigation-caption--heading[data-v-1133b4da]:not(:first-child):not(:last-child) {\\n padding: 0 var(--app-navigation-padding);\\n}\\n.app-navigation-caption__name[data-v-1133b4da] {\\n font-weight: bold;\\n color: var(--color-main-text);\\n font-size: var(--default-font-size);\\n line-height: var(--default-clickable-area);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n box-shadow: none !important;\\n flex-shrink: 1;\\n padding-block: 0;\\n padding-inline: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n margin-top: 0px;\\n margin-bottom: var(--default-grid-baseline);\\n}\\n.app-navigation-caption__actions[data-v-1133b4da] {\\n flex: 0 0 var(--default-clickable-area);\\n}\\n.app-navigation-caption[data-v-1133b4da]:not(:first-child) {\\n margin-top: calc(var(--default-clickable-area) / 2);\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-46fee9ac] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.app-navigation-entry[data-v-46fee9ac] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: var(--default-clickable-area);\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color 200ms ease-in-out;\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n /* hide deletion/collapse of subitems */\n}\n.app-navigation-entry-wrapper[data-v-46fee9ac] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-46fee9ac] {\n display: none;\n}\n.app-navigation-entry.active[data-v-46fee9ac] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active[data-v-46fee9ac]:hover {\n background-color: var(--color-primary-element-hover) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry.active .app-navigation-entry-button[data-v-46fee9ac] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-46fee9ac]:focus-within, .app-navigation-entry[data-v-46fee9ac]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-46fee9ac], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-46fee9ac], .app-navigation-entry:hover .app-navigation-entry__children[data-v-46fee9ac] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-46fee9ac] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-46fee9ac] {\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button[data-v-46fee9ac] {\n z-index: 100; /* above the bullet to allow click*/\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: var(--default-clickable-area);\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px 16px;\n line-height: var(--default-clickable-area);\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-46fee9ac] {\n display: flex;\n align-items: center;\n flex: 0 0 var(--default-clickable-area);\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-46fee9ac] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-46fee9ac] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-46fee9ac]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-46fee9ac]:focus-visible {\n box-shadow: 0 0 0 4px var(--color-main-background);\n outline: 2px solid var(--color-main-text);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n}\n\n/* Second level nesting for lists */\n.app-navigation-entry__children[data-v-46fee9ac] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-46fee9ac] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-inline-start: 16px;\n}\n\n/* Deleted entries */\n.app-navigation-entry__deleted[data-v-46fee9ac] {\n display: inline-flex;\n flex: 1 1 0;\n padding-inline-start: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-46fee9ac] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: var(--default-clickable-area);\n}\n\n/* counter and actions */\n.app-navigation-entry__utils[data-v-46fee9ac] {\n display: flex;\n min-width: var(--default-clickable-area);\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n /* counter */\n /* actions */\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-46fee9ac] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-46fee9ac] {\n margin-inline-end: calc(var(--default-grid-baseline) * 2);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-46fee9ac] {\n display: none;\n}\n\n/* editing state */\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-46fee9ac] {\n z-index: 250;\n opacity: 1;\n}\n\n/* deleted state */\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-46fee9ac] {\n z-index: 250;\n transform: translateX(0);\n}\n\n/* pinned state */\n.app-navigation-entry--pinned[data-v-46fee9ac] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-46fee9ac] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-46fee9ac]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}\n.app-navigation-new-item__name[data-v-46fee9ac] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-inline-start: 7px;\n font-size: 14px;\n}\n.newItemContainer[data-v-46fee9ac] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNewItem-D7wroqrc.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;EACX,yCAAyC;EACzC,+DAA+D;EAC/D,8CAA8C;EAC9C,sEAAsE;EACtE,uCAAuC;AACzC;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAyD;AAC3D;AACA;EACE,+DAA+D;AACjE;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;AACf;AACA;EACE,oEAAoE;AACtE;AACA;EACE,YAAY,EAAE,mCAAmC;EACjD,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,yCAAyC;EACzC,UAAU;EACV,mBAAmB;EACnB,6BAA6B;EAC7B,4BAA4B;EAC5B,4EAA4E;EAC5E,0BAA0B;EAC1B,0CAA0C;AAC5C;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uCAAuC;EACvC,uBAAuB;EACvB,oCAAoC;EACpC,qCAAqC;EACrC,0BAA0B;EAC1B,4BAA4B;EAC5B,4EAA4E;AAC9E;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iDAAiD;EACjD,YAAY;AACd;AACA;EACE,kDAAkD;EAClD,yCAAyC;EACzC,sEAAsE;AACxE;;AAEA,mCAAmC;AACnC;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;AACxC;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,0BAA0B;AAC5B;;AAEA,oBAAoB;AACpB;EACE,oBAAoB;EACpB,WAAW;EACX,iHAAiH;AACnH;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,uBAAuB;EACvB,0CAA0C;AAC5C;;AAEA,wBAAwB;AACxB;EACE,aAAa;EACb,wCAAwC;EACxC,mBAAmB;EACnB,cAAc;EACd,yBAAyB;EACzB,YAAY;EACZ,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,yDAAyD;EACzD,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,aAAa;AACf;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,wBAAwB;AAC1B;;AAEA,iBAAiB;AACjB;EACE,QAAQ;EACR,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,qEAAqE;AACvE;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,yBAAyB;EACzB,eAAe;AACjB;AACA;EACE,iDAAiD;EACjD,YAAY;AACd\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-46fee9ac] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n.app-navigation-entry[data-v-46fee9ac] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n min-height: var(--default-clickable-area);\\n transition: background-color var(--animation-quick) ease-in-out;\\n transition: background-color 200ms ease-in-out;\\n border-radius: var(--border-radius-element, var(--border-radius-pill));\\n /* hide deletion/collapse of subitems */\\n}\\n.app-navigation-entry-wrapper[data-v-46fee9ac] {\\n position: relative;\\n display: flex;\\n flex-shrink: 0;\\n flex-wrap: wrap;\\n box-sizing: border-box;\\n width: 100%;\\n}\\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-46fee9ac] {\\n display: none;\\n}\\n.app-navigation-entry.active[data-v-46fee9ac] {\\n background-color: var(--color-primary-element) !important;\\n}\\n.app-navigation-entry.active[data-v-46fee9ac]:hover {\\n background-color: var(--color-primary-element-hover) !important;\\n}\\n.app-navigation-entry.active .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry.active .app-navigation-entry-button[data-v-46fee9ac] {\\n color: var(--color-primary-element-text) !important;\\n}\\n.app-navigation-entry[data-v-46fee9ac]:focus-within, .app-navigation-entry[data-v-46fee9ac]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.app-navigation-entry.active .app-navigation-entry__children[data-v-46fee9ac], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-46fee9ac], .app-navigation-entry:hover .app-navigation-entry__children[data-v-46fee9ac] {\\n background-color: var(--color-main-background);\\n}\\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-46fee9ac] {\\n display: inline-block;\\n}\\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-46fee9ac] {\\n display: none;\\n}\\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-46fee9ac] {\\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2);\\n}\\n.app-navigation-entry .app-navigation-entry-link[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button[data-v-46fee9ac] {\\n z-index: 100; /* above the bullet to allow click*/\\n display: flex;\\n overflow: hidden;\\n flex: 1 1 0;\\n box-sizing: border-box;\\n min-height: var(--default-clickable-area);\\n padding: 0;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n background-repeat: no-repeat;\\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\\n background-size: 16px 16px;\\n line-height: var(--default-clickable-area);\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-46fee9ac] {\\n display: flex;\\n align-items: center;\\n flex: 0 0 var(--default-clickable-area);\\n justify-content: center;\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n background-size: 16px 16px;\\n background-repeat: no-repeat;\\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\\n}\\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-46fee9ac] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-46fee9ac], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-46fee9ac] {\\n width: calc(100% - var(--default-clickable-area));\\n margin: auto;\\n}\\n.app-navigation-entry .app-navigation-entry-link[data-v-46fee9ac]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-46fee9ac]:focus-visible {\\n box-shadow: 0 0 0 4px var(--color-main-background);\\n outline: 2px solid var(--color-main-text);\\n border-radius: var(--border-radius-element, var(--border-radius-pill));\\n}\\n\\n/* Second level nesting for lists */\\n.app-navigation-entry__children[data-v-46fee9ac] {\\n position: relative;\\n display: flex;\\n flex: 0 1 auto;\\n flex-direction: column;\\n width: 100%;\\n gap: var(--default-grid-baseline, 4px);\\n}\\n.app-navigation-entry__children .app-navigation-entry[data-v-46fee9ac] {\\n display: inline-flex;\\n flex-wrap: wrap;\\n padding-inline-start: 16px;\\n}\\n\\n/* Deleted entries */\\n.app-navigation-entry__deleted[data-v-46fee9ac] {\\n display: inline-flex;\\n flex: 1 1 0;\\n padding-inline-start: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\\n}\\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-46fee9ac] {\\n position: relative;\\n overflow: hidden;\\n flex: 1 1 0;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n line-height: var(--default-clickable-area);\\n}\\n\\n/* counter and actions */\\n.app-navigation-entry__utils[data-v-46fee9ac] {\\n display: flex;\\n min-width: var(--default-clickable-area);\\n align-items: center;\\n flex: 0 1 auto;\\n justify-content: flex-end;\\n /* counter */\\n /* actions */\\n}\\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-46fee9ac] {\\n display: inline-block;\\n}\\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-46fee9ac] {\\n margin-inline-end: calc(var(--default-grid-baseline) * 2);\\n display: flex;\\n align-items: center;\\n flex: 0 1 auto;\\n}\\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-46fee9ac] {\\n display: none;\\n}\\n\\n/* editing state */\\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-46fee9ac] {\\n z-index: 250;\\n opacity: 1;\\n}\\n\\n/* deleted state */\\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-46fee9ac] {\\n z-index: 250;\\n transform: translateX(0);\\n}\\n\\n/* pinned state */\\n.app-navigation-entry--pinned[data-v-46fee9ac] {\\n order: 2;\\n margin-top: auto;\\n}\\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-46fee9ac] {\\n margin-top: 0;\\n}\\n[data-themes*=highcontrast] .app-navigation-entry[data-v-46fee9ac]:active {\\n background-color: var(--color-primary-element-light-hover) !important;\\n}\\n.app-navigation-new-item__name[data-v-46fee9ac] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n padding-inline-start: 7px;\\n font-size: 14px;\\n}\\n.newItemContainer[data-v-46fee9ac] {\\n width: calc(100% - var(--default-clickable-area));\\n margin: auto;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.footer[data-v-db2a7c4e]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-db2a7c4e]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-db2a7c4e],.footer__cell span[data-v-db2a7c4e],.footer__cell label[data-v-db2a7c4e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-db2a7c4e],.footer__cell--displayname[data-v-db2a7c4e]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-db2a7c4e]{inset-inline-start:0}.footer__cell--displayname[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-db2a7c4e]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-db2a7c4e]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-db2a7c4e]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-db2a7c4e]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--obfuscated[data-v-db2a7c4e]{min-width:400px;width:400px}.footer__cell--fill[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-db2a7c4e]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-db2a7c4e]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-db2a7c4e]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-db2a7c4e]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDpGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport const isObfuscated = (user) => {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cbad78fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-cbad78fb] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcGuestContent-B0ivUQHg.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,8CAA8C;EAC9C,YAAY;EACZ,yCAAyC;EACzC,4CAA4C;EAC5C,mBAAmB;EACnB,aAAa;EACb,iBAAiB;AACnB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,+DAA+D;AACjE\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-cbad78fb] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#guest-content-vue[data-v-cbad78fb] {\\n color: var(--color-main-text);\\n background-color: var(--color-main-background);\\n min-width: 0;\\n border-radius: var(--border-radius-large);\\n box-shadow: 0 0 10px var(--color-box-shadow);\\n height: fit-content;\\n padding: 15px;\\n margin: 20px auto;\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#content.nc-guest-content {\\n overflow: auto;\\n margin-bottom: 0;\\n height: calc(var(--body-height) + var(--body-container-margin));\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","Vue","directive","vElementVisibility","extend","name","props","dataComponent","type","Object","Function","required","dataKey","String","dataSources","Array","itemHeight","Number","extraProps","default","data","bufferItems","index","headerHeight","tableHeight","resizeObserver","computed","startIndex","Math","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","length","lastIndex","hiddenAfterItems","min","paddingTop","paddingBottom","mounted","root","$el","tfoot","$refs","thead","ResizeObserver","debounce","clientHeight","logger","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","methods","handleFooterVisibility","visible","$emit","round","scrollTop","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setupProxy","staticClass","_t","_v","ref","attrs","style","_l","item","i","_b","key","tag","directives","rawName","value","expression","components","NcButton","NcDialog","NcPasswordField","NcSelect","NcTextField","loading","newUser","quotaOptions","availableGroups","possibleManagers","managerInputLabel","t","managerLabel","promise","showConfig","$store","getters","getShowConfig","settings","getServerData","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","subAdminsGroups","filter","group","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","username","focus","createUser","all","dispatch","userid","password","displayName","email","mailAddress","groups","map","subadmin","quota","language","code","manager","error","response","ocs","meta","statuscode","searchGroups","query","toggleLoading","cancel","search","offset","limit","createGroup","_ref","gid","addGroup","isCreating","canAdd","validateQuota","validQuota","OC","Util","computerFileSize","formatFileSize","parseFileSize","label","languageFilterBy","option","some","_ref2","toLocaleLowerCase","includes","then","users","values","_g","scopedSlots","_u","fn","_s","proxy","$listeners","on","$event","preventDefault","apply","arguments","$set","newUserRequireEmail","_e","at","model","callback","$$v","showLanguages","class","NcLoadingIcon","Boolean","filteredUsers","userCount","n","hasObfuscated","passwordLabel","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","namespaceMapping","ext","mime","rootNameMapping","rss","svg","XmlTextDetector","constructor","firstTag","onEnd","parser","sax","xmlns","nesting","onerror","e","message","startsWith","fileType","undefined","onopentag","node","uri","toLowerCase","fullScan","onclosetag","write","text","close","isValid","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","disabled","edit","user","editSvg","SvgCheck","SvgPencil","enabledActions","action","enabled","isSvg","string","TypeError","trim","xmlTextDetector","toggleEdit","icon","event","r","_sfc_main","inject","isInSemanticMenu","from","setup","labelId","G","_sfc_render","_sfc_staticRenderFns","exports","mixins","A","prop","validator","checked","modelValue","emits","util","warn","u","isFocusable","ariaChecked","toggleInput","click","onChange","focusable","domProps","_q","indexOf","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","ArrowLeft","ArrowRight","isRtl","computedId","onInput","target","onSubmit","stopPropagation","onClick","isIconUrl","backgroundImage","$attrs","selection","showDetails","showdetails","color","test","formattedColor","backgroundColor","NcInputConfirmCancel","editLabel","editPlaceholder","newItemValue","newItemActive","handleNewItem","$nextTick","newItemInput","focusInput","cancelNewItem","handleNewItemDone","_sfc_main$1","title","fillColor","size","_sfc_render$1","_sfc_staticRenderFns$1","Cog","ClickOutside","clickOutsideOptions","open","clickOutsideConfig","closeMenu","toggleMenu","queue","concurrency","__name","hash","alt","src","__props","emit","canvas","imageLoaded","drawBlurHash","l","height","width","pixels","ctx","getContext","imageData","createImageData","set","putImageData","immediate","url","resolve","Promise","withResolvers","add","image","Image","onload","preloadImage","success","__sfc","_setup","$style","fadeTransition","fadeTransitionActive","__cssModules","_sfc_injectStyles","NcAvatar","collection","detailsOpen","newName","getIcon","resource","iconClass","typeClass","resources","isArray","getComponent","route","g","$router","link","component","to","href","iconUrl","mimetype","MimeType","getIconUrl","toggleDetails","removeResource","collectionId","resourceType","resourceId","openRename","renameCollection","composing","extractOcsData","NcCollectionListItem","isActive","storedCollections","fetchCollectionsByResource","createCollection","addResourceToCollection","removeResourceFromCollection","addCollection","updateCollection","findIndex","async","post","addResourceService","collections","get","getCollectionsByResourceService","addCollections","baseResourceType","baseResourceId","createCollectionService","collectionName","put","renameCollectionService","delete","params","removeResourceService","removeCollection","useCollections","searchCollections","searchService","catch","console","finally","selectIsOpen","generatingCodes","codes","collectionsError","isSelectOpen","placeholder","window","OCP","Collaboration","getTypes","sort","forEach","method","getLabel","trigger","find","resourceIdentifier","watch","deep","handler","select","selectedOption","setError","showSelect","setTimeout","renameCollectionFromItem","_m","document","getElementById","classList","destroyed","remove","ariaLabel","description","descriptionId","_sfc_main$4","_sfc_render$4","_sfc_staticRenderFns$4","AccountGroup","_sfc_main$3","_sfc_render$3","_sfc_staticRenderFns$3","OpenInNew","teamResourceProviders","circles","_sfc_main$2","ChevronDown","ChevronUp","providerId","itemId","appEnabled","appswebroots","config","version","split","teamResources","teamOpen","isVisible","teamProviders","teamId","team","t2","reduce","acc","provider","fetchTeamResources","created","teams","toggleOpen","splice","_sfc_render$2","iconEmoji","iconSvg","iconURL","_sfc_staticRenderFns$2","NcTeamResources","labelTranslated","resourceName","NcResource","fileInfo","header","primary","related_resources","subline","hasResourceInfo","isFiles","fetchRelatedResources","saving","indicatorColor","ariaLabelClearSelected","ariaLabelListbox","ariaLabelDeselectOption","optionLabel","keepOpen","filterBy","inputId","inputLabel","labelOutside","multiple","noWrap","clickableArea","parseInt","getComputedStyle","body","getPropertyValue","gridBaseLine","avatarSize","localFilterBy","search2","match","subname","NcListItemIcon","$props","hint","submitTranslated","idSubmit","checkIfDarkTheme","el","backgroundInvertIfDark","isDarkTheme","isDarkSystemTheme","updateIsDarkTheme","attributes","useIsDarkThemeElement","Symbol","toStringTag","externalActions","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","availableSubAdminGroups","userGroups","userSubAdminGroups","usedSpace","quotaUsed","used","usedQuota","pow","isNaN","userQuota","humanQuota","userLanguage","userLang","concat","lang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","formatDate","userLastLogin","relativeModifiedDate","NcProgressBar","UserRowActions","UserRowMixin","selectedQuota","rand","random","toString","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","disable","wipe","editedDisplayName","displayname","editedPassword","editedMail","isObfuscated","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","join","userSubAdminGroupsLabels","canEdit","getCurrentUser","uid","defaultQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","editedUserQuota","unlimitedQuota","availableLanguages","initManager","confirmPassword","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","showSuccess","timeout","filterManagers","managers","userId","searchInitialUserManager","loadGroupsDetails","loadUserGroups","availableGroup","loadSubAdminGroupsDetails","loadUserSubAdminGroups","updateUserManager","previousManager","showError","updateDisplayName","updatePassword","updateEmail","addUserGroup","removeUserGroup","canRemove","$route","selectedGroup","commit","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","displayNameField","inputField","input","backendCapabilities","setDisplayName","canChangePassword","setPassword","backend","storageLocation","freeze","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","mdiAccountGroup","rowHeight","UserRow","isInitialLoad","searchQuery","getUsers","quotaPreset","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","val","redirectIfDisabled","loadUsers","setNewUserDefaultGroup","Notification","showTemporary","resetForm","subscribe","resetSearch","unsubscribe","handleScrollEnd","closeDialog","assign","defaultLanguage","currentGroup","allGroups","getGroups","usercount","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","decodeURIComponent","OCA","Settings","registerAction","storage","persist","build","emojiIndex","emojiSearch","maxResults","EmojiIndex","currentSkinTone","getCurrentSkinTone","results","frequently","emoji","getSkin","emojiAddRecent","emojiData","skinTone","getItem","setCurrentSkinTone","setItem","formatGroup","controller","AbortController","CancelablePromise","reject","onCancel","abort","axios","generateOcsUrl","signal","_ref3","inheritAttrs","headingId","isHeading","headingLevel","wrapperTag","captionTag","hasActions","$slots","NcAppNavigationCaption","buttonId","variant","NcAppNavigationNew","strict","opt","SAXParser","SAXStream","createStream","MAX_BUFFER_LENGTH","Stream","buffers","clearBuffers","q","c","bufferCheckPosition","lowercase","lowercasetags","looseCase","tags","closed","closedRoot","sawRoot","noscript","state","S","BEGIN","strictEntities","ENTITIES","create","XML_ENTITIES","attribList","ns","rootNS","unquotedAttributeValues","trackPosition","position","line","column","EVENTS","o","F","prototype","keys","a","hasOwnProperty","end","chunk","charAt","BEGIN_WHITESPACE","beginWhiteSpace","TEXT","starti","textNode","isWhitespace","strictFail","TEXT_ENTITY","OPEN_WAKA","startTagPosition","SCRIPT","SCRIPT_ENDING","script","CLOSE_TAG","SGML_DECL","sgmlDecl","isMatch","nameStart","OPEN_TAG","tagName","PROC_INST","procInstName","procInstBody","pad","COMMENT","comment","doctype","DOCTYPE_DTD","toUpperCase","CDATA","emitNode","cdata","DOCTYPE","isQuote","SGML_DECL_QUOTED","DOCTYPE_QUOTED","DOCTYPE_DTD_QUOTED","COMMENT_ENDING","COMMENT_ENDED","textopts","CDATA_ENDING","CDATA_ENDING_2","PROC_INST_ENDING","PROC_INST_BODY","nameBody","newTag","openTag","OPEN_TAG_SLASH","ATTRIB","closeTag","attribName","attribValue","ATTRIB_NAME","ATTRIB_VALUE","attrib","ATTRIB_NAME_SAW_WHITE","ATTRIB_VALUE_QUOTED","ATTRIB_VALUE_UNQUOTED","ATTRIB_VALUE_ENTITY_Q","ATTRIB_VALUE_CLOSED","isAttribEnd","ATTRIB_VALUE_ENTITY_U","CLOSE_TAG_SAW_WHITE","notMatch","returnState","buffer","parsedEntity","parseEntity","unparsedEntities","entity","entityBody","entityStart","Error","maxAllowed","maxActual","len","closeText","m","checkBufferLength","resume","flush","ex","streamWraps","ev","_parser","writable","readable","me","onend","er","_decoder","defineProperty","h","removeAllListeners","enumerable","configurable","Buffer","isBuffer","SD","args","call","XML_NAMESPACE","XMLNS_NAMESPACE","xml","regex","stringFromCharCode","floor","fromCodePoint","s","STATE","COMMENT_STARTING","fromCharCode","nodeType","normalize","replace","parent","qname","attribute","qualName","prefix","local","qn","selfClosing","JSON","stringify","p","nv","isSelfClosing","closeTo","pop","x","num","entityLC","numStr","highSurrogate","lowSurrogate","codeUnits","codePoint","isFinite","RangeError","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcNoteCard","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","newUserSendEmail","generateUrl","filterQuotas","searchValue","replaceAll","setDefaultQuota","app","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","displayNameInput","querySelector","groupid","removeGroup","formatGroupMenu","useFormatGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","store","useStore","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","groupListItems","lastGroupListItem","findLast","$vnode","listItem","isLastGroupVisible","useElementVisibility","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationList","NcAppNavigationSearch","GroupListItem","refInFor","isDialogOpen","getUserCount","showNewUserMenu","mdiAccount","mdiAccountOff","mdiCog","mdiShieldAccount","mdiHistory","NcAppNavigation","UserSettingsDialog","AppNavigationGroupList","NcReferenceWidget","referenceData","displayFallback","interactive","interactiveOptIn","references","displayedReferences","fallbackReference","firstReference","accessible","openGraphObject","richObjectType","fetch","RegExp","U","exec","isPublic","sharingToken","reference","NcReferenceList","remarkPlaceholder","ast","node2","placeholders","entry","index2","list2","matches","children","remarkUnescape","tree","ccount","character","source","asciiAlpha","regexCheck","asciiAlphanumeric","markdownLineEnding","code2","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","convert","ok","castFactory","tests","checks","parameters","anyFactory","check","checkAsRecord","nodeAsRecord","propsFactory","testFunction","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","visitor","reverse","is","factory","parents","visit2","subresult","grandparents","toResult","nodeAsParent","child","toFunction","replace2","inConstruct","notInConstruct","enterLiteralAutolink","token","enter","enterLiteralAutolinkValue","autolinkProtocol","exitLiteralAutolinkHttp","exit","exitLiteralAutolinkWww","stack","sliceSerialize","exitLiteralAutolinkEmail","autolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","ignored","ignore","pairs","tupleOrList","tuple","escapeStringRegexp","toPairs","pairIndex","grandparent","siblings","start","change","nodes","matchObject","global","findAndReplace","findUrl","findEmail","_","protocol","domain2","path2","previous","parts","isCorrectDomain","trailExec","trail2","closingParenIndex","openingParens","closingParens","splitUrl","atext","charCodeAt","normalizeIdentifier","enterFootnoteDefinition","identifier","enterFootnoteDefinitionLabelString","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","footnoteReference","info","tracker","createTracker","move","exit2","subexit","safe","associationId","current","before","after","footnoteDefinition","shift","indentLines","containerFlow","map$2","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","defaultStringLength","toAlignment","codePointAt","map$1","listInScope","none","hardBreak","_1","unsafe","pattern","checkQuote","marker","quote","emphasis","checkEmphasis","emptyOptions$1","one","includeImageAlt","includeHtml","html","suffix","imageReference","referenceType","inlineCode","sequence","compilePattern","atBreak","formatLinkAsAutolink","raw","resourceLink","value2","linkReference","text2","checkBullet","bullet","checkRule","rule","phrasing","strong","checkStrong","handle","blockquote","break","fence","checkFence","fences","formatCodeAsIndented","exit3","repeat","expected","longestStreak","encode","definition","heading","rank","depth","literalWithBreak","node3","setext","formatHeadingAsSetext","subexit2","lastIndexOf","closeAtx","list","bulletCurrent","ordered","bulletOrdered","checkBulletOrdered","bulletOther","checkBulletOther","useDifferentMarker","bulletLastUsed","firstListItem","indexStack","listItemIndent","checkListItemIndent","incrementListMarker","spread","paragraph","d","thematicBreak","ruleSpaces","repetition","ruleRepetition","checkRuleRepetition","enterTable","align","_align","inTable","exitTable","enterRow","enterCell","exitCodeText","$0","$1","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","handlers","table","serializeData","handleTableRowAsData","handleTableAsData","tableCell","handleTableCell","tableRow","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","row2","sizes2","columnIndex2","cell","columnIndex","row","sizes","lines","delimiterStart","delimiterEnd","markdownTable","exitCheck","exitParagraphWithTaskListItem","head","firstParaghraph","sibling","listItemWithTaskListItem","checkable","checkbox","items","chunkStart","syntaxExtension","all2","extension","hook","left","right","constructs","existing","wwwPrefix","tokenize","effects","ok2","nok","wwwPrefixInside","consume","wwwPrefixAfter","partial","domain","underscoreInLastSegment","underscoreInLastLastSegment","seen","domainInside","trail","domainAfter","domainAtPunctuation","path","sizeOpen","sizeClose","pathInside","pathAtPunctuation","trailCharRefStart","trailBracketAfter","trailCharRefInside","emailDomainDotTrail","wwwAutolink","self","previousWww","previousUnbalanced","events","attempt","wwwAfter","protocolAutolink","previousProtocol","protocolPrefixInside","protocolSlashesInside","afterProtocol","asciiControl","protocolAfter","emailAutolink","dot","gfmAtext","previousEmail","emailDomain","emailDomainAfter","emailDomainDot","_balanced","_gfmAutolinkLiteralWalkedInto","classifyCharacter","resolveAll","constructs2","context","called","factorySpace","POSITIVE_INFINITY","blankLine","indent","tail","tokenizePotentialGfmFootnoteCall","defined","gfmFootnotes","labelStart","now","resolveToPotentialGfmFootnoteCall","_bufferIndex","contentType","replacement","tokenizeGfmFootnoteCall","callStart","callData","callEscape","tokenizeDefinitionStart","_container","labelAtMarker","labelInside","labelAfter","labelEscape","whitespaceAfter","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","gfmStrikethrough","single","singleTilde","tokenizer","previous2","more","_open","_close","strikethrough","nextEvents","insideSpan","null","attentionMarkers","EditMap","editMap","addImpl","b","vecs","gfmTableAlign","inDelimiterRow","alignIndex","tokenizeTable","sizeB","next","bodyRowStart","headRowBefore","lazy","headRowBreak","headRowStart","interrupt","headDelimiterStart","headRowData","headRowEscape","headDelimiterBefore","headDelimiterValueBefore","headDelimiterCellBefore","headDelimiterNok","headDelimiterLeftAlignmentAfter","headDelimiterCellAfter","headDelimiterFiller","headDelimiterRightAlignmentAfter","bodyRowBreak","bodyRowData","bodyRowEscape","resolveTable","currentTable","currentBody","currentCell","inFirstCellAwaitingPipe","rowKind","lastCell","afterHeadAwaitingFirstBodyRow","lastTableEnd","map2","flushTableEnd","flushCell","range","rowEnd","previousCell","groupName","getPoint","relatedStart","relatedEnd","valueToken","tableBody","exits","related","side","tasklistCheck","_gfmTasklistFirstContentOfListItem","inside","spaceThenNonSpace","emptyOptions","remarkGfm","micromarkExtensions","fromMarkdownExtensions","toMarkdownExtensions","extensions","combineExtensions","continuation","resolveTo","flow","gfm","transforms","literalAutolink","literalAutolinkEmail","literalAutolinkHttp","literalAutolinkWww","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","canContainEols","tableData","tableHeader","codeText","taskListCheckValueChecked","taskListCheckValueUnchecked","gfmToMarkdown","rehypeHighlight","referenceLimit","referenceInteractive","referenceInteractiveOptIn","useMarkdown","useExtendedMarkdown","autolink","parentId","renderPlaintext","componentClass","prepareTextNode","argumentId","argument","flat","renderMarkdown","renderedMarkdown","use","toHast","rel","createElement","importRehypeHighlightLibrary","nestedNode","inputNode","labelParts","nestedNodeIndex","inputComponent","N","processSync","render","NcRichText","_sfc_main$8","widgetRoot","isIntersecting","showInteractive","rendered","idleTimeout","isInteractive","hasFullWidth","hasCustomWidget","hasInteractiveView","noAccess","descriptionStyle","numberOfLines","display","lineClamp","webkitLineClamp","Infinity","compactLink","referenceWidgetLinkComponent","referenceWidgetLinkProps","clearTimeout","renderWidget","destroyWidget","enableInteractive","customWidget","innerHTML","widget","appendChild","_sfc_render$8","thumb","_sfc_staticRenderFns$8","_sfc_main$7","isRegistered","renderResult","renderElement","domElement","renderFunctionResult","object","_isVue","$on","element","detail","_sfc_render$7","_sfc_staticRenderFns$7","NcCustomPickerElement","anyLinkProviderId","anyLinkProvider","icon_url","getProviders","_vue_richtext_reference_providers","keep","search_providers_ids","searchProvider","providers","escapedQuery","regexp","filteredSortedProviders","providerList","timestamps","_vue_richtext_reference_provider_timestamps","order","ta","tb","sortProviders","searchResult","mytimer","delay","ms","isUrl","str","URL","_sfc_main$6","_sfc_render$6","_sfc_staticRenderFns$6","LinkVariantIcon","_sfc_main$5","NcHighlight","selectedProvider","multiselectPlaceholder","providerIconAlt","isLink","onProviderSelected","onSearch","_sfc_render$5","_sfc_staticRenderFns$5","NcProviderList","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","updateReference","nativeOn","NcRawLinkInput","rounded","thumbnailUrl","NcSearchResult","DotsHorizontalIcon","D","showEmptyContent","searchPlaceholder","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","pid","entries","isCustomGroupTitle","providerEntriesWithId","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","reason","term","NcSearch","MODES","standardLinkInput","searchInput","customElement","initialProvider","focusOnCreate","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","Date","touchProvider","NcReferencePicker","ArrowLeftIcon","CloseIcon","C","isInsideViewer","show","backButtonTitle","closeButtonTitle","closeButtonLabel","isProviderSelected","showBackButton","modalSize","showModalName","modalName","elem","modal_content","onProviderSelect","onBackClicked","referencePicker","NcReferencePickerModal","getLinkWithPicker","modalElement","append","getProvider","view","propsData","$mount","$destroy"],"sourceRoot":""}
\ No newline at end of file |