diff options
Diffstat (limited to 'dist/settings-users-3239.js.map')
-rw-r--r-- | dist/settings-users-3239.js.map | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/dist/settings-users-3239.js.map b/dist/settings-users-3239.js.map new file mode 100644 index 00000000000..6c9ccf244b7 --- /dev/null +++ b/dist/settings-users-3239.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings-users-3239.js?v=387a29f90c4c2f30cc6a","mappings":"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","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcActionButtonGroup-BND4GQdv.css","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/VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationCaption-B-5VHm-a.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=a52e1068&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=54280d98&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=95190948&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-BOwQNNMf.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/./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?d723","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-BkU5oOmB.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-BflqGcjc.css?a6b9","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcActionTextEditable-a_607PST.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-PE-w8y-g.css?5710","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationNewItem-DgTuysCV.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css?c692","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-CS36ibjM.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/NcGuestContent-B0ivUQHg.css?0e9c","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcGuestContent.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-DhStLIO2.css?1484","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-w0cVgK_u.mjs","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSavingIndicatorIcon-nv1147dk.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-BOwQNNMf.css?c520","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-BYynRS17.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css?387e","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcSettingsInputText-BXbSSC7N.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?2128","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?86cc","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/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/node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-BflqGcjc.css","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/referencePickerModal-sscttPbK.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationCaption-DU9PxTvu.css?cd91","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcAppNavigationNew.mjs","webpack:///nextcloud/node_modules/sax/lib/sax.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRichText-BWY0OxW9.mjs","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/assets/NcAppNavigationNewItem-PE-w8y-g.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/node_modules/vue-material-design-icons/AccountGroupOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountGroupOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountGroupOutline.vue?5281","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountGroupOutline.vue?vue&type=template&id=6ffd195e","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?c689","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?8662","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","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/assets/NcAppNavigationCaption-DU9PxTvu.css","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=1195b9bc&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=34669961&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/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","// 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[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 '../assets/NcAppNavigationCaption-DU9PxTvu.css';\nimport { N as NcActions } from \"./NcActions-CzpbMJoY.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-B-5VHm-a.mjs.map\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 \"../../../../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-a52e1068] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-a52e1068]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-a52e1068]{height:100% !important}.account-management__settings-toggle[data-v-a52e1068]{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, `.empty[data-v-54280d98] .icon-vue{width:64px;height:64px}.empty[data-v-54280d98] .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, `.user-list__row[data-v-95190948]{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-95190948]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-95190948]:not(.row__cell--actions){background-color:var(--color-background-hover)}.user-list__row .select--fill[data-v-95190948]{max-width:calc(var(--cell-width-large) - 2*var(--cell-padding))}.row__cell[data-v-95190948]{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-95190948],.row__cell span[data-v-95190948],.row__cell label[data-v-95190948]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-95190948],.row__cell--displayname[data-v-95190948]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-95190948]{inset-inline-start:0}.row__cell--displayname[data-v-95190948]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-95190948]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-95190948]{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-95190948]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-95190948]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-95190948]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--obfuscated[data-v-95190948]{min-width:400px;width:400px}.row__cell--fill[data-v-95190948]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-95190948]{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-95190948]{color:var(--color-text-maxcontrast)}.row__cell[data-v-95190948]{border-bottom:1px solid var(--color-border)}.row__cell[data-v-95190948] .v-select.select{min-width:var(--cell-min-width)}.row__progress[data-v-95190948]{margin-top:4px}.row__progress--warn[data-v-95190948]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-95190948]::-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 \"../../../../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-09b0d8bb] .vs__selected {\n\tpadding-inline: 0 5px !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSelectUsers-BOwQNNMf.css\"],\"names\":[],\"mappings\":\";AACA;CACC,gCAAgC;AACjC\",\"sourcesContent\":[\"\\n.nc-select-users[data-v-09b0d8bb] .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, `.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","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.availableGroups,\"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=\"availableGroups\"\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\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\tavailableGroups() {\n\t\t\tconst groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin)\n\t\t\t\t? this.$store.getters.getSortedGroups\n\t\t\t\t: this.$store.getters.getSubAdminGroups\n\n\t\t\treturn groups.filter(group => 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\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.settings.isAdmin && !this.settings.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\t// Populate store from server request\n\t\t\t\tfor (const group of groups) {\n\t\t\t\t\tthis.$store.commit('addGroup', group)\n\t\t\t\t}\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.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, true))\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=1195b9bc&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=1195b9bc&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=1195b9bc&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=1195b9bc&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 \"1195b9bc\",\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, {validate = true} = {}) {\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({fullScan: validate});\n\n\tif (validate) {\n\t\txmlTextDetector.write(string);\n\n\t\tif (!xmlTextDetector.isValid()) {\n\t\t\treturn false;\n\t\t}\n\t} else {\n\t\tconst chunkSize = 128;\n\n\t\tlet offset = 0;\n\t\twhile (string.length > offset && !xmlTextDetector.onEnd) {\n\t\t\txmlTextDetector.write(string.slice(offset, Math.min(offset + chunkSize, string.length)));\n\t\t\toffset += chunkSize;\n\t\t}\n\t}\n\n\treturn xmlTextDetector.fileType?.ext === 'svg';\n}\n","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=7edbb4de\"\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-DIOHNc85.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-BkU5oOmB.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-BflqGcjc.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-BflqGcjc.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionTextEditable-BflqGcjc.css';\nimport { d as mdiArrowRight } from \"./mdi-C1L0jZ1V.mjs\";\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 { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Cb-cPj1R.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionTextEditable\",\n components: {\n NcIconSvgWrapper\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 mdiArrowRight\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 } }, [_c(\"NcIconSvgWrapper\", { attrs: { \"directional\": \"\", \"path\": _vm.mdiArrowRight } })], 1)])], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"a4505289\"\n);\nconst NcActionTextEditable = __component__.exports;\nexport {\n NcActionTextEditable as N\n};\n//# sourceMappingURL=NcActionTextEditable-a_607PST.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-PE-w8y-g.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-PE-w8y-g.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcAppNavigationNewItem-PE-w8y-g.css';\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-B4xEFita.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-DgTuysCV.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-DIOHNc85.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-CS36ibjM.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!./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!./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-DIOHNc85.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-w0cVgK_u.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-BOwQNNMf.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-BOwQNNMf.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcSelectUsers-BOwQNNMf.css';\nimport { ref, watch } from \"vue\";\nimport { r as register, j as t43, g as t15, a as t } from \"./_l10n-DIOHNc85.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-BDq6PIUq.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DmIaznJY.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t15, t43);\nconst __default__ = {\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n }\n};\nconst _sfc_main = /* @__PURE__ */ Object.assign(__default__, {\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 \"09b0d8bb\"\n);\nconst NcSelectUsers = __component__.exports;\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-BYynRS17.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, i as t47, a as t } from \"./_l10n-DIOHNc85.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-BXbSSC7N.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-CpGK6gSX.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-BkU5oOmB.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-DSMKeccY.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-D3FN751M.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-CzpbMJoY.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-a_607PST.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CP6G4fZX.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-sCuN3OZe.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-B-5VHm-a.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D7Y5mGGC.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport NcAppNavigationNew from \"./Components/NcAppNavigationNew.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-DgTuysCV.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-9NTDoHar.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-CS36ibjM.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-DBViVlqo.mjs\";\nimport NcAppSettingsSection from \"./Components/NcAppSettingsSection.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-6PtLRD0F.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-G2VD8Nfl.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC7NtEPz.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC7NtEPz.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-do2wxY-0.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-WO64bNkF.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-DrTlt5X4.mjs\";\nimport NcButton from \"./Components/NcButton.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-BIEYfWtF.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-CdqFiw6Z.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-CtcS-XMk.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-BOBFr3nn.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-CDfRYl8B.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-C3FrsWrR.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-D83T9o2C.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-kanSdMgW.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-OV8kfc5o.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-BhuiKGmE.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-BJSfoews.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-BHhlE1Sb.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-BDq6PIUq.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-5oXVlA4T.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-w0cVgK_u.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-Cqt-neS3.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-BWY0OxW9.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-sscttPbK.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-DmIaznJY.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-Cd_RjGj6.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-nv1147dk.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-MsqvY1l4.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-BYynRS17.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BXbSSC7N.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-BNefU-yk.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-DWEorw2V.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-BHERsE_g.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-BjUmYLVj.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-DH2UiUfH.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Bya1v9qo.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e, 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 u2 } from \"./chunks/usernameToColor-BPaEECqs.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 useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n u2 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\tselectedGroups: this.user.groups.map(id => ({ id, name: id })),\n\t\t\tselectedSubAdminGroups: 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\tavailableGroups() {\n\t\t\tconst groups = (this.settings.isAdmin || this.settings.isDelegatedAdmin)\n\t\t\t\t? this.$store.getters.getSortedGroups\n\t\t\t\t: this.$store.getters.getSubAdminGroups\n\n\t\t\treturn groups.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tavailableSubAdminGroups() {\n\t\t\treturn this.availableGroups.filter(group => group.id !== 'admin')\n\t\t},\n\n\t\tuserGroupsLabels() {\n\t\t\treturn this.userGroups\n\t\t\t\t.map(group => {\n\t\t\t\t\t// Try to match with more extensive group data\n\t\t\t\t\tconst availableGroup = this.availableGroups.find(g => g.id === group.id)\n\t\t\t\t\treturn availableGroup?.name ?? group.name ?? group.id\n\t\t\t\t})\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 => {\n\t\t\t\t\t// Try to match with more extensive group data\n\t\t\t\t\tconst availableGroup = this.availableSubAdminGroups.find(g => g.id === group.id)\n\t\t\t\t\treturn availableGroup?.name ?? group.name ?? group.id\n\t\t\t\t})\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\t// Populate store from server request\n\t\t\t\tfor (const group of groups) {\n\t\t\t\t\tthis.$store.commit('addGroup', group)\n\t\t\t\t}\n\t\t\t\tthis.selectedGroups = this.selectedGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup)\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\t// Populate store from server request\n\t\t\t\tfor (const group of groups) {\n\t\t\t\t\tthis.$store.commit('addGroup', group)\n\t\t\t\t}\n\t\t\t\tthis.selectedSubAdminGroups = this.selectedSubAdminGroups.map(selectedGroup => groups.find(group => group.id === selectedGroup.id) ?? selectedGroup)\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\t// Populate store from server request\n\t\t\t\tfor (const group of groups) {\n\t\t\t\t\tthis.$store.commit('addGroup', group)\n\t\t\t\t}\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\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=95190948&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=95190948&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=95190948&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=95190948&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 \"95190948\",\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=\"mdiAccountGroupOutline\" :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 { mdiAccountGroupOutline } 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\tmdiAccountGroupOutline,\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=54280d98&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=54280d98&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=54280d98&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=54280d98&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 \"54280d98\",\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.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1833612063)}):_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 \"../../../../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 \"../../../../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 \"../../../../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-a4505289] {\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-a4505289]:not(.button-vue),\ninput[data-v-a4505289]:not([type=range]),\ntextarea[data-v-a4505289] {\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-a4505289]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-a4505289]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-a4505289],\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-a4505289],\ntextarea[data-v-a4505289]:not(:disabled):not(.primary):hover,\ntextarea[data-v-a4505289]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-a4505289] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-a4505289]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-a4505289]: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-a4505289]:not(.button-vue):disabled,\ninput[data-v-a4505289]:not([type=range]):disabled,\ntextarea[data-v-a4505289]: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-a4505289]:not(.button-vue):required,\ninput[data-v-a4505289]:not([type=range]):required,\ntextarea[data-v-a4505289]:required {\n box-shadow: none;\n}\nbutton[data-v-a4505289]:not(.button-vue):invalid,\ninput[data-v-a4505289]:not([type=range]):invalid,\ntextarea[data-v-a4505289]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-a4505289],\ninput:not([type=range]).primary[data-v-a4505289],\ntextarea.primary[data-v-a4505289] {\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-a4505289]:not(:disabled):hover, button:not(.button-vue).primary[data-v-a4505289]:not(:disabled):focus, button:not(.button-vue).primary[data-v-a4505289]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):active,\ntextarea.primary[data-v-a4505289]:not(:disabled):hover,\ntextarea.primary[data-v-a4505289]:not(:disabled):focus,\ntextarea.primary[data-v-a4505289]: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-a4505289]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):active,\ntextarea.primary[data-v-a4505289]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-a4505289]:disabled,\ninput:not([type=range]).primary[data-v-a4505289]:disabled,\ntextarea.primary[data-v-a4505289]: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-a4505289]:hover, li.action.active[data-v-a4505289] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-a4505289]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-a4505289] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-a4505289]:hover, .action--disabled[data-v-a4505289]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-a4505289] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-a4505289] {\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-a4505289] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-a4505289] {\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-a4505289] .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-a4505289] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-a4505289] {\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-a4505289] {\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-a4505289] {\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-a4505289], .action-text-editable__label *[data-v-a4505289] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-a4505289] {\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-a4505289]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-a4505289] {\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-a4505289]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a4505289]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a4505289]: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-a4505289], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-a4505289], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-a4505289] {\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-a4505289] {\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-text-editable[data-v-a4505289] {\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-BflqGcjc.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-a4505289] {\\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-a4505289]:not(.button-vue),\\ninput[data-v-a4505289]:not([type=range]),\\ntextarea[data-v-a4505289] {\\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-a4505289]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-a4505289]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-a4505289],\\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):hover,\\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):focus,\\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-a4505289],\\ntextarea[data-v-a4505289]:not(:disabled):not(.primary):hover,\\ntextarea[data-v-a4505289]:not(:disabled):not(.primary):focus,\\ntextarea:not(:disabled):not(.primary).active[data-v-a4505289] {\\n /* active class used for multiselect */\\n border-color: var(--color-primary-element);\\n outline: none;\\n}\\nbutton[data-v-a4505289]:not(.button-vue):not(:disabled):not(.primary):active,\\ninput[data-v-a4505289]:not([type=range]):not(:disabled):not(.primary):active,\\ntextarea[data-v-a4505289]: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-a4505289]:not(.button-vue):disabled,\\ninput[data-v-a4505289]:not([type=range]):disabled,\\ntextarea[data-v-a4505289]: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-a4505289]:not(.button-vue):required,\\ninput[data-v-a4505289]:not([type=range]):required,\\ntextarea[data-v-a4505289]:required {\\n box-shadow: none;\\n}\\nbutton[data-v-a4505289]:not(.button-vue):invalid,\\ninput[data-v-a4505289]:not([type=range]):invalid,\\ntextarea[data-v-a4505289]:invalid {\\n border-color: var(--color-error);\\n box-shadow: none !important;\\n}\\nbutton:not(.button-vue).primary[data-v-a4505289],\\ninput:not([type=range]).primary[data-v-a4505289],\\ntextarea.primary[data-v-a4505289] {\\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-a4505289]:not(:disabled):hover, button:not(.button-vue).primary[data-v-a4505289]:not(:disabled):focus, button:not(.button-vue).primary[data-v-a4505289]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):hover,\\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):focus,\\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):active,\\ntextarea.primary[data-v-a4505289]:not(:disabled):hover,\\ntextarea.primary[data-v-a4505289]:not(:disabled):focus,\\ntextarea.primary[data-v-a4505289]: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-a4505289]:not(:disabled):active,\\ninput:not([type=range]).primary[data-v-a4505289]:not(:disabled):active,\\ntextarea.primary[data-v-a4505289]:not(:disabled):active {\\n color: var(--color-primary-element-text-dark);\\n}\\nbutton:not(.button-vue).primary[data-v-a4505289]:disabled,\\ninput:not([type=range]).primary[data-v-a4505289]:disabled,\\ntextarea.primary[data-v-a4505289]: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-a4505289]:hover, li.action.active[data-v-a4505289] {\\n border-radius: 6px;\\n padding: 0;\\n}\\nli.action[data-v-a4505289]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.action--disabled[data-v-a4505289] {\\n pointer-events: none;\\n opacity: 0.5;\\n}\\n.action--disabled[data-v-a4505289]:hover, .action--disabled[data-v-a4505289]:focus {\\n cursor: default;\\n opacity: 0.5;\\n}\\n.action--disabled *[data-v-a4505289] {\\n opacity: 1 !important;\\n}\\n.action-text-editable[data-v-a4505289] {\\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-a4505289] {\\n cursor: pointer;\\n white-space: nowrap;\\n}\\n.action-text-editable__icon[data-v-a4505289] {\\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-a4505289] .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-a4505289] .material-design-icon .material-design-icon__svg {\\n vertical-align: middle;\\n}\\n.action-text-editable__form[data-v-a4505289] {\\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-a4505289] {\\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-a4505289] {\\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-a4505289], .action-text-editable__label *[data-v-a4505289] {\\n cursor: pointer;\\n}\\n.action-text-editable__textarea[data-v-a4505289] {\\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-a4505289]:disabled {\\n cursor: default;\\n}\\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-a4505289] {\\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-a4505289]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a4505289]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-a4505289]: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-a4505289], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-a4505289], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-a4505289] {\\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-a4505289] {\\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\\n}\\nli:first-child > .action-text-editable[data-v-a4505289] {\\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\\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-DIOHNc85.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-DmIaznJY.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-Cd_RjGj6.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-sscttPbK.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!./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/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",";(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","import '../assets/NcRichText-CWVHZl8s.css';\nimport { ref } from \"vue\";\nimport { N as NcReferenceWidget } from \"./referencePickerModal-sscttPbK.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-BIEYfWtF.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 remarkUnlinkProtocols from \"remark-unlink-protocols\";\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 LINK_PROTOCOLS = [\"http\", \"https\", \"mailto\", \"tel\"];\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: [\n \"interact-todo\",\n \"interact:todo\"\n ],\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(remarkUnlinkProtocols, { except: LINK_PROTOCOLS }).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 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 \"cd4f75c7\"\n);\nconst NcRichText = __component__.exports;\nexport {\n NcRichText as N,\n NcReferenceList as a\n};\n//# sourceMappingURL=NcRichText-BWY0OxW9.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._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","// 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 --app-navigation-item-child-offset: 10px;\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 padding-inline-start: var(--app-navigation-item-child-offset);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-46fee9ac] {\n display: inline-flex;\n flex-wrap: wrap;\n}\n.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-46fee9ac] {\n --app-navigation-item-child-offset: 0;\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-PE-w8y-g.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,wCAAwC;EACxC,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;EACtC,6DAA6D;AAC/D;AACA;EACE,oBAAoB;EACpB,eAAe;AACjB;AACA;EACE,qCAAqC;AACvC;;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 --app-navigation-item-child-offset: 10px;\\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 padding-inline-start: var(--app-navigation-item-child-offset);\\n}\\n.app-navigation-entry__children .app-navigation-entry[data-v-46fee9ac] {\\n display: inline-flex;\\n flex-wrap: wrap;\\n}\\n.app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children .app-navigation-entry__children[data-v-46fee9ac] {\\n --app-navigation-item-child-offset: 0;\\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","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.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings','New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - 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.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon account-group-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,5A3.5,3.5 0 0,0 8.5,8.5A3.5,3.5 0 0,0 12,12A3.5,3.5 0 0,0 15.5,8.5A3.5,3.5 0 0,0 12,5M12,7A1.5,1.5 0 0,1 13.5,8.5A1.5,1.5 0 0,1 12,10A1.5,1.5 0 0,1 10.5,8.5A1.5,1.5 0 0,1 12,7M5.5,8A2.5,2.5 0 0,0 3,10.5C3,11.44 3.53,12.25 4.29,12.68C4.65,12.88 5.06,13 5.5,13C5.94,13 6.35,12.88 6.71,12.68C7.08,12.47 7.39,12.17 7.62,11.81C6.89,10.86 6.5,9.7 6.5,8.5C6.5,8.41 6.5,8.31 6.5,8.22C6.2,8.08 5.86,8 5.5,8M18.5,8C18.14,8 17.8,8.08 17.5,8.22C17.5,8.31 17.5,8.41 17.5,8.5C17.5,9.7 17.11,10.86 16.38,11.81C16.5,12 16.63,12.15 16.78,12.3C16.94,12.45 17.1,12.58 17.29,12.68C17.65,12.88 18.06,13 18.5,13C18.94,13 19.35,12.88 19.71,12.68C20.47,12.25 21,11.44 21,10.5A2.5,2.5 0 0,0 18.5,8M12,14C9.66,14 5,15.17 5,17.5V19H19V17.5C19,15.17 14.34,14 12,14M4.71,14.55C2.78,14.78 0,15.76 0,17.5V19H3V17.07C3,16.06 3.69,15.22 4.71,14.55M19.29,14.55C20.31,15.22 21,16.06 21,17.07V19H24V17.5C24,15.76 21.22,14.78 19.29,14.55M12,16C13.53,16 15.24,16.5 16.23,17H7.77C8.76,16.5 10.47,16 12,16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountGroupOutlineIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroupOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroupOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountGroupOutline.vue?vue&type=template&id=6ffd195e\"\nimport script from \"./AccountGroupOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroupOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-group-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,5A3.5,3.5 0 0,0 8.5,8.5A3.5,3.5 0 0,0 12,12A3.5,3.5 0 0,0 15.5,8.5A3.5,3.5 0 0,0 12,5M12,7A1.5,1.5 0 0,1 13.5,8.5A1.5,1.5 0 0,1 12,10A1.5,1.5 0 0,1 10.5,8.5A1.5,1.5 0 0,1 12,7M5.5,8A2.5,2.5 0 0,0 3,10.5C3,11.44 3.53,12.25 4.29,12.68C4.65,12.88 5.06,13 5.5,13C5.94,13 6.35,12.88 6.71,12.68C7.08,12.47 7.39,12.17 7.62,11.81C6.89,10.86 6.5,9.7 6.5,8.5C6.5,8.41 6.5,8.31 6.5,8.22C6.2,8.08 5.86,8 5.5,8M18.5,8C18.14,8 17.8,8.08 17.5,8.22C17.5,8.31 17.5,8.41 17.5,8.5C17.5,9.7 17.11,10.86 16.38,11.81C16.5,12 16.63,12.15 16.78,12.3C16.94,12.45 17.1,12.58 17.29,12.68C17.65,12.88 18.06,13 18.5,13C18.94,13 19.35,12.88 19.71,12.68C20.47,12.25 21,11.44 21,10.5A2.5,2.5 0 0,0 18.5,8M12,14C9.66,14 5,15.17 5,17.5V19H19V17.5C19,15.17 14.34,14 12,14M4.71,14.55C2.78,14.78 0,15.76 0,17.5V19H3V17.07C3,16.06 3.69,15.22 4.71,14.55M19.29,14.55C20.31,15.22 21,16.06 21,17.07V19H24V17.5C24,15.76 21.22,14.78 19.29,14.55M12,16C13.53,16 15.24,16.5 16.23,17H7.77C8.76,16.5 10.47,16 12,16Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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/AccountGroupOutline.vue'\nimport Delete from 'vue-material-design-icons/DeleteOutline.vue'\nimport Pencil from 'vue-material-design-icons/PencilOutline.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=34669961&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=34669961&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=34669961&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=34669961&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 \"34669961\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\nexport const useFormatGroups = (groups) => {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter(group => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map(group => formatGroupMenu(group))\n // remove invalid\n .filter(group => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=3aa65384\"\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=a52e1068&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=a52e1068&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=a52e1068&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=a52e1068&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 \"a52e1068\",\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, `.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 \"../../../../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 \"../../../../../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-1195b9bc]{display:flex;flex-direction:column;align-items:center;padding:0 8px;gap:4px 0}.dialog__item[data-v-1195b9bc]{width:100%}.dialog__item[data-v-1195b9bc]:not(:focus):not(:active){border-color:var(--color-border-dark)}.dialog__hint[data-v-1195b9bc]{color:var(--color-text-maxcontrast);margin-top:8px;align-self:flex-start}.dialog__label[data-v-1195b9bc]{display:block;padding:4px 0}.dialog__select[data-v-1195b9bc]{width:100%}.dialog__managers[data-v-1195b9bc]{margin-bottom:12px}.dialog__submit[data-v-1195b9bc]{margin-top:4px;margin-bottom:8px}.dialog[data-v-1195b9bc] .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","// 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-34669961]{margin:0}.modal__content[data-v-34669961]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-34669961]{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, `.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","_sfc_main","name","components","NcActions","inheritAttrs","props","type","String","required","headingId","default","isHeading","Boolean","headingLevel","Number","computed","wrapperTag","this","captionTag","Math","max","hasActions","$slots","actions","_sfc_render","_vm","_c","_self","tag","staticClass","class","attrs","_v","_s","_g","_b","scopedSlots","_u","key","fn","_t","proxy","$attrs","$listeners","_e","_sfc_staticRenderFns","NcAppNavigationCaption","n","exports","storage","persist","build","emojiIndex","emojiSearch","query","maxResults","EmojiIndex","currentSkinTone","getCurrentSkinTone","results","search","length","concat","frequently","get","map","emoji","getSkin","emojiAddRecent","emojiData","add","skinTone","parseInt","getItem","min","setCurrentSkinTone","setItem","toString","Vue","directive","vElementVisibility","extend","dataComponent","Object","Function","dataKey","dataSources","Array","itemHeight","extraProps","data","bufferItems","index","headerHeight","tableHeight","resizeObserver","startIndex","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","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","_setupProxy","ref","style","_l","item","i","directives","rawName","value","expression","NcButton","NcDialog","NcPasswordField","NcSelect","NcTextField","loading","newUser","quotaOptions","possibleManagers","managerInputLabel","t","managerLabel","promise","showConfig","$store","getters","getShowConfig","settings","getServerData","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","group","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","username","focus","createUser","all","dispatch","userid","password","displayName","email","mailAddress","groups","subadmin","subAdminsGroups","quota","language","code","manager","error","response","ocs","meta","statuscode","searchGroups","toggleLoading","cancel","offset","limit","commit","createGroup","_ref","gid","addGroup","isCreating","canAdd","validateQuota","validQuota","OC","Util","computerFileSize","formatFileSize","parseFileSize","label","languageFilterBy","option","some","_ref2","toLocaleLowerCase","includes","then","users","values","on","$event","preventDefault","apply","arguments","$set","newUserRequireEmail","at","model","callback","$$v","showLanguages","NcLoadingIcon","filteredUsers","userCount","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","NcIconSvgWrapper","disabled","edit","user","editSvg","SvgCheck","SvgPencil","enabledActions","action","enabled","isSvg","string","validate","TypeError","trim","xmlTextDetector","chunkSize","toggleEdit","icon","event","r","inject","isInSemanticMenu","from","setup","labelId","G","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","mdiArrowRight","computedId","onInput","target","onSubmit","stopPropagation","onClick","isIconUrl","backgroundImage","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","image","Image","onload","preloadImage","success","__sfc","_setup","$style","fadeTransition","fadeTransitionActive","__cssModules","_sfc_injectStyles","document","getElementById","classList","destroyed","remove","_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","find","t2","resources","reduce","acc","resource","provider","watch","fetchTeamResources","created","teams","console","toggleOpen","splice","_sfc_render$2","link","iconEmoji","iconSvg","iconURL","_sfc_staticRenderFns$2","NcTeamResources","labelTranslated","resourceName","route","g","$router","NcResource","resourceType","fileInfo","header","description","primary","related_resources","subline","hasResourceInfo","isFiles","fetchRelatedResources","saving","indicatorColor","__default__","assign","ariaLabelClearSelected","ariaLabelListbox","ariaLabelDeselectOption","optionLabel","keepOpen","filterBy","inputId","inputLabel","labelOutside","multiple","noWrap","placeholder","clickableArea","window","getComputedStyle","body","getPropertyValue","gridBaseLine","avatarSize","localFilterBy","search2","match","subname","NcListItemIcon","selectedOption","$props","hint","submitTranslated","idSubmit","checkIfDarkTheme","el","backgroundInvertIfDark","isDarkTheme","isDarkSystemTheme","updateIsDarkTheme","attributes","useIsDarkThemeElement","Symbol","toStringTag","externalActions","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","selectedGroups","selectedSubAdminGroups","userGroups","userSubAdminGroups","usedSpace","quotaUsed","used","usedQuota","pow","isNaN","userQuota","humanQuota","userLanguage","userLang","lang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","formatDate","userLastLogin","relativeModifiedDate","NcAvatar","NcProgressBar","UserRowActions","UserRowMixin","selectedQuota","rand","random","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","delete","disable","wipe","editedDisplayName","displayname","editedPassword","editedMail","isObfuscated","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","availableSubAdminGroups","userGroupsLabels","availableGroup","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","finally","filterManagers","managers","userId","searchInitialUserManager","loadGroupsDetails","loadUserGroups","selectedGroup","loadSubAdminGroupsDetails","loadUserSubAdminGroups","updateUserManager","previousManager","showError","updateDisplayName","updatePassword","updateEmail","addUserGroup","removeUserGroup","canRemove","$route","params","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","displayNameField","inputField","input","backendCapabilities","setDisplayName","canChangePassword","setPassword","backend","storageLocation","freeze","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","mdiAccountGroupOutline","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","defaultLanguage","currentGroup","allGroups","getGroups","findIndex","usercount","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","decodeURIComponent","OCA","Settings","registerAction","formatGroup","controller","AbortController","CancelablePromise","async","reject","onCancel","abort","axios","generateOcsUrl","signal","_ref3","_sfc_main$8","reference","interactive","interactiveOptIn","widgetRoot","entry","isIntersecting","showInteractive","rendered","idleTimeout","isInteractive","hasFullWidth","richObjectType","hasCustomWidget","hasInteractiveView","h","noAccess","accessible","descriptionStyle","numberOfLines","display","lineClamp","webkitLineClamp","Infinity","compactLink","openGraphObject","referenceWidgetLinkComponent","referenceWidgetLinkProps","to","href","handler","clearTimeout","renderWidget","setTimeout","destroyWidget","enableInteractive","customWidget","innerHTML","widget","createElement","appendChild","_sfc_render$8","thumb","_sfc_staticRenderFns$8","NcReferenceWidget","_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","p","keep","search_providers_ids","searchProvider","providers","escapedQuery","replace","regexp","RegExp","filteredSortedProviders","providerList","timestamps","_vue_richtext_reference_provider_timestamps","sort","a","b","order","ta","tb","sortProviders","searchResult","mytimer","delay","ms","context","args","isUrl","str","URL","_sfc_main$6","_sfc_render$6","_sfc_staticRenderFns$6","LinkVariantIcon","_sfc_main$5","NcHighlight","selectedProvider","multiselectPlaceholder","providerIconAlt","isLink","querySelector","onProviderSelected","onSearch","_sfc_render$5","_sfc_staticRenderFns$5","NcProviderList","inputValue","abortController","inputPlaceholder","isLinkValid","getElementsByTagName","onClear","updateReference","references","catch","nativeOn","NcRawLinkInput","rounded","thumbnailUrl","NcSearchResult","DotsHorizontalIcon","D","showEmptyContent","searchPlaceholder","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","forEach","pid","entries","isCustomGroupTitle","providerEntriesWithId","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","status","reason","term","NcSearch","MODES","standardLinkInput","searchInput","customElement","initialProvider","focusOnCreate","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","floor","Date","now","put","touchProvider","NcReferencePicker","NcModal","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","Error","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","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","maxAllowed","maxActual","len","closeText","m","checkBufferLength","resume","flush","ex","streamWraps","ev","_parser","writable","readable","me","onend","er","_decoder","defineProperty","removeAllListeners","enumerable","configurable","Buffer","isBuffer","SD","call","XML_NAMESPACE","XMLNS_NAMESPACE","xml","regex","stringFromCharCode","fromCodePoint","s","STATE","COMMENT_STARTING","fromCharCode","nodeType","normalize","parent","qname","attribute","qualName","prefix","local","qn","selfClosing","JSON","stringify","nv","isSelfClosing","closeTo","pop","x","num","entityLC","numStr","highSurrogate","lowSurrogate","codeUnits","codePoint","isFinite","RangeError","referenceData","displayFallback","displayedReferences","fallbackReference","firstReference","fetch","U","exec","isPublic","post","sharingToken","NcReferenceList","remarkPlaceholder","ast","node2","placeholders","index2","list2","matches","component","children","remarkUnescape","tree","ccount","character","source","count","asciiAlpha","regexCheck","asciiAlphanumeric","markdownLineEnding","code2","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","convert","ok","castFactory","isArray","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","listItem","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","called","factorySpace","POSITIVE_INFINITY","blankLine","indent","tail","tokenizePotentialGfmFootnoteCall","defined","gfmFootnotes","labelStart","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","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","LINK_PROTOCOLS","rehypeHighlight","referenceLimit","referenceInteractive","referenceInteractiveOptIn","useMarkdown","useExtendedMarkdown","autolink","parentId","renderPlaintext","componentClass","prepareTextNode","argumentId","argument","flat","renderMarkdown","renderedMarkdown","use","except","toHast","rel","importRehypeHighlightLibrary","nestedNode","inputNode","labelParts","nestedNodeIndex","inputComponent","N","processSync","render","NcRichText","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcNoteCard","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","setShowConfig","newUserSendEmail","generateUrl","filterQuotas","searchValue","replaceAll","setDefaultQuota","app","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","Pencil","active","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","displayNameInput","groupid","removeGroup","formatGroupMenu","useFormatGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","store","useStore","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","groupListItems","lastGroupListItem","findLast","$vnode","isLastGroupVisible","useElementVisibility","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationList","NcAppNavigationSearch","GroupListItem","refInFor","isDialogOpen","getUserCount","showNewUserMenu","mdiAccountOutline","mdiAccountOffOutline","mdiCogOutline","mdiShieldAccountOutline","mdiHistory","NcAppNavigation","UserSettingsDialog","AppNavigationGroupList"],"sourceRoot":""}
\ No newline at end of file |