1
|
{"version":3,"file":"settings-users-3239.js?v=55a0fb9a0716f6beddd2","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/node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=21942da5&prod&lang=scss&scoped=true","webpack://nextcloud/./apps/settings/src/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/NcCollectionList-yjTCAR46.css?52df","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcCollectionList-CdqFiw6Z.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcGuestContent-B0ivUQHg.css?0e9c","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcGuestContent.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css?0c75","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcHeaderButton.mjs","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-DhStLIO2.css?1484","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/NcRelatedResourcesPanel-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?750d","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?c771","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack:///nextcloud/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/components/Users/UserRow.vue?vue&type=style&index=0&id=95190948&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcCollectionList-yjTCAR46.css","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/node_modules/@nextcloud/vue/dist/assets/NcActionRadio-CodyhP86.css","webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css","webpack:///nextcloud/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/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/sax/lib/sax.js","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/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/components/UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?da91","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?e356","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?3dcd","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/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/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 \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-20fd51f9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.header-menu[data-v-20fd51f9] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\n --button-size: var(--header-height) !important;\n height: var(--header-height);\n opacity: 0.85;\n filter: none !important;\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9]:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n.header-menu--opened .header-menu__trigger[data-v-20fd51f9], .header-menu__trigger[data-v-20fd51f9]:hover, .header-menu__trigger[data-v-20fd51f9]:focus, .header-menu__trigger[data-v-20fd51f9]:active {\n opacity: 1;\n}\n@media only screen and (max-width: 512px) {\n.header-menu[data-v-20fd51f9] {\n width: var(--default-clickable-area);\n}\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\n --button-size: var(--default-clickable-area) !important;\n}\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcHeaderButton-Dr6MgPDQ.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,8CAA8C;EAC9C,4BAA4B;EAC5B,aAAa;EACb,uBAAuB;EACvB,+EAA+E;AACjF;AACA;EACE,wBAAwB;EACxB,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;AACA;IACI,oCAAoC;AACxC;AACA;IACI,uDAAuD;AAC3D;AACA\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-20fd51f9] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/*!\\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n.header-menu[data-v-20fd51f9] {\\n position: relative;\\n width: var(--header-height);\\n height: var(--header-height);\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\\n --button-size: var(--header-height) !important;\\n height: var(--header-height);\\n opacity: 0.85;\\n filter: none !important;\\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9]:focus-visible {\\n outline: none !important;\\n box-shadow: none !important;\\n}\\n.header-menu--opened .header-menu__trigger[data-v-20fd51f9], .header-menu__trigger[data-v-20fd51f9]:hover, .header-menu__trigger[data-v-20fd51f9]:focus, .header-menu__trigger[data-v-20fd51f9]:active {\\n opacity: 1;\\n}\\n@media only screen and (max-width: 512px) {\\n.header-menu[data-v-20fd51f9] {\\n width: var(--default-clickable-area);\\n}\\n.header-menu .header-menu__trigger[data-v-20fd51f9] {\\n --button-size: var(--default-clickable-area) !important;\\n}\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.user-list[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","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) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\tstring = string.trim();\n\n\tif (string.length === 0) {\n\t\treturn false;\n\t}\n\n\tconst xmlTextDetector = new XmlTextDetector();\n\txmlTextDetector.write(string);\n\treturn xmlTextDetector.isValid() && xmlTextDetector.fileType?.ext === 'svg';\n}\n","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=61782548\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcActionButtonGroup-BND4GQdv.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcActionButtonGroup-BND4GQdv.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcActionButtonGroup-BND4GQdv.css';\nimport { defineComponent } from \"vue\";\nimport { G as GenRandomId } from \"./GenRandomId-CMooMQt0.mjs\";\nimport { r as register, a as t } from \"./_l10n-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!./NcCollectionList-yjTCAR46.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcCollectionList-yjTCAR46.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcCollectionList-yjTCAR46.css';\nimport debounce from \"debounce\";\nimport { ref, set } from \"vue\";\nimport { r as register, L as t6, M as t26, a as t } from \"./_l10n-DIOHNc85.mjs\";\nimport { N as NcAvatar } from \"./NcAvatar-DC7NtEPz.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DmIaznJY.mjs\";\nimport { g as getRoute } from \"./autolink-cbuFALXr.mjs\";\nimport { N as NcActions } from \"./NcActions-CzpbMJoY.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-CpGK6gSX.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nregister(t6);\nregister(t26);\nconst _sfc_main$1 = {\n name: \"NcCollectionListItem\",\n components: {\n NcAvatar,\n NcActions,\n NcActionButton\n },\n props: {\n collection: {\n type: Object,\n default: null\n },\n error: {\n type: String,\n default: void 0\n }\n },\n emits: [\"remove-resource\", \"rename-collection\"],\n data() {\n return {\n detailsOpen: false,\n newName: null\n };\n },\n computed: {\n getIcon() {\n return (resource) => [resource.iconClass];\n },\n typeClass() {\n return (resource) => \"resource-type-\" + resource.type;\n },\n resources() {\n return this.collection.resources?.filter((resource) => !Array.isArray(resource)) ?? [];\n },\n getComponent() {\n return (resource) => {\n const route = getRoute(this.$router, resource.link);\n return route ? { component: \"router-link\", to: route, href: void 0 } : { component: \"a\", to: void 0, href: resource.link };\n };\n },\n iconUrl() {\n return (resource) => {\n if (resource.mimetype) {\n return OC.MimeType.getIconUrl(resource.mimetype);\n }\n if (resource.iconUrl) {\n return resource.iconUrl;\n }\n return \"\";\n };\n }\n },\n methods: {\n t,\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = true;\n },\n removeResource(collection, resource) {\n this.$emit(\"remove-resource\", {\n collectionId: collection.id,\n resourceType: resource.type,\n resourceId: resource.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName) {\n this.$emit(\"rename-collection\", {\n collectionId: this.collection.id,\n name: this.newName\n });\n }\n this.newName = null;\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"collection-list-item\" }, [_c(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": _vm.collection.name, \"allow-placeholder\": \"\" } }), _vm.newName === null ? _c(\"span\", { staticClass: \"collection-item-name\", attrs: { \"title\": \"\" }, on: { \"click\": _vm.showDetails } }, [_vm._v(_vm._s(_vm.collection.name))]) : _c(\"form\", { class: { \"should-shake\": _vm.error }, on: { \"submit\": function($event) {\n $event.preventDefault();\n return _vm.renameCollection.apply(null, arguments);\n } } }, [_c(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: _vm.newName, expression: \"newName\" }], attrs: { \"type\": \"text\", \"autocomplete\": \"off\", \"autocapitalize\": \"off\" }, domProps: { \"value\": _vm.newName }, on: { \"input\": function($event) {\n if ($event.target.composing) return;\n _vm.newName = $event.target.value;\n } } }), _c(\"input\", { staticClass: \"icon-confirm\", attrs: { \"type\": \"submit\", \"value\": \"\" } })]), !_vm.detailsOpen && _vm.newName === null ? _c(\"div\", { staticClass: \"linked-icons\" }, _vm._l(_vm.resources.slice(0, 2), function(resource) {\n return _c(_vm.getComponent(resource).component, { key: resource.type + \"|\" + resource.id, tag: \"component\", class: _vm.typeClass(resource), attrs: { \"title\": resource.name, \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } })]);\n }), 1) : _vm._e(), _vm.newName === null ? _c(\"span\", { staticClass: \"sharingOptionsGroup\" }, [_c(\"NcActions\", [_c(\"NcActionButton\", { attrs: { \"icon\": \"icon-info\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.toggleDetails.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.detailsOpen ? _vm.t(\"Hide details\") : _vm.t(\"Show details\")) + \" \")]), _c(\"NcActionButton\", { attrs: { \"icon\": \"icon-rename\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openRename.apply(null, arguments);\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Rename project\")) + \" \")])], 1)], 1) : _vm._e(), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"div\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.detailsOpen ? _c(\"ul\", { staticClass: \"resource-list-details\" }, _vm._l(_vm.resources, function(resource) {\n return _c(\"li\", { key: resource.type + \"|\" + resource.id, class: _vm.typeClass(resource) }, [_c(_vm.getComponent(resource).component, { tag: \"component\", attrs: { \"to\": _vm.getComponent(resource).to, \"href\": _vm.getComponent(resource).href } }, [_c(\"img\", { attrs: { \"src\": _vm.iconUrl(resource), \"alt\": resource.name } }), _c(\"span\", { staticClass: \"resource-name\" }, [_vm._v(_vm._s(resource.name || \"\"))])]), _c(\"span\", { staticClass: \"icon-close\", on: { \"click\": function($event) {\n return _vm.removeResource(_vm.collection, resource);\n } } })], 1);\n }), 0) : _vm._e()])], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"878b819f\"\n);\nconst NcCollectionListItem = __component__$1.exports;\nfunction extractOcsData(response) {\n return response.data.ocs.data;\n}\nfunction renameCollectionService(collectionId, collectionName) {\n return axios.put(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { collectionName }).then(extractOcsData);\n}\nfunction getCollectionsByResourceService(resourceType, resourceId) {\n return axios.get(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId })).then(extractOcsData);\n}\nfunction createCollectionService(resourceType, resourceId, name) {\n return axios.post(generateOcsUrl(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType, resourceId }), { name }).then(extractOcsData);\n}\nfunction addResourceService(collectionId, resourceType, resourceId) {\n return axios.post(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { resourceType, resourceId }).then(extractOcsData);\n}\nfunction removeResourceService(collectionId, resourceType, resourceId) {\n return axios.delete(generateOcsUrl(\"collaboration/resources/collections/{collectionId}\", { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData);\n}\nfunction searchService(query) {\n return axios.get(generateOcsUrl(\"collaboration/resources/collections/search/{query}\", { query })).then(extractOcsData);\n}\nfunction useCollections() {\n const storedCollections = ref([]);\n const addCollections = (collections) => {\n set(storedCollections, \"value\", collections);\n };\n const addCollection = (collection) => {\n set(storedCollections, \"value\", [...storedCollections.value, collection]);\n };\n const removeCollection = (collectionId) => {\n set(storedCollections, \"value\", storedCollections.value.filter((item) => item.id !== collectionId));\n };\n const updateCollection = (collection) => {\n const index = storedCollections.value.findIndex((item) => item.id === collection.id);\n if (index !== -1) {\n set(storedCollections.value, index, collection);\n } else {\n addCollection(collection);\n }\n };\n const fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n const collections = await getCollectionsByResourceService(resourceType, resourceId);\n addCollections(collections);\n };\n const createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n const collection = await createCollectionService(baseResourceType, baseResourceId, name);\n addCollection(collection);\n await addResourceToCollection({\n collectionId: collection.id,\n resourceType,\n resourceId\n });\n };\n const renameCollection = async ({ collectionId, name }) => {\n const collection = await renameCollectionService(collectionId, name);\n updateCollection(collection);\n };\n const addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await addResourceService(collectionId, resourceType, String(resourceId));\n updateCollection(collection);\n };\n const removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n const collection = await removeResourceService(collectionId, resourceType, String(resourceId));\n if (collection.resources.length > 0) {\n updateCollection(collection);\n } else {\n removeCollection(collectionId);\n }\n };\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n renameCollection,\n addResourceToCollection,\n removeResourceFromCollection\n };\n}\nconst METHOD_CREATE_COLLECTION = 0;\nconst METHOD_ADD_TO_COLLECTION = 1;\nconst _sfc_main = {\n name: \"NcCollectionList\",\n components: {\n NcCollectionListItem,\n NcAvatar,\n NcSelect\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * Whether the component is active (to start fetch resources)\n */\n isActive: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection\n } = useCollections();\n const searchCollections = ref([]);\n const search = debounce(function(query, loading) {\n if (query !== \"\") {\n loading(true);\n searchService(query).then((collections) => {\n searchCollections.value = collections;\n }).catch((e) => {\n console.error(\"Failed to search for collections\", e);\n }).finally(() => {\n loading(false);\n });\n }\n }, 500);\n return {\n storedCollections,\n fetchCollectionsByResource,\n createCollection,\n addResourceToCollection,\n removeResourceFromCollection,\n renameCollection,\n searchCollections,\n search\n };\n },\n data() {\n return {\n selectIsOpen: false,\n generatingCodes: false,\n codes: void 0,\n value: null,\n model: {},\n collectionsError: {},\n error: null,\n isSelectOpen: false\n };\n },\n computed: {\n collections() {\n return this.storedCollections.filter(\n (collection) => collection.resources.some((resource) => resource && resource.id === String(this.id) && resource.type === this.type)\n );\n },\n placeholder() {\n return this.isSelectOpen ? t(\"Type to search for existing projects\") : t(\"Add to a project\");\n },\n options() {\n const options = [];\n window.OCP.Collaboration.getTypes().sort().forEach((type) => {\n options.push({\n method: METHOD_CREATE_COLLECTION,\n type,\n title: window.OCP.Collaboration.getLabel(type),\n class: window.OCP.Collaboration.getIcon(type),\n action: () => window.OCP.Collaboration.trigger(type)\n });\n });\n for (const index in this.searchCollections) {\n if (!this.collections.find((collection) => collection.id === this.searchCollections[index].id)) {\n options.push({\n method: METHOD_ADD_TO_COLLECTION,\n title: this.searchCollections[index].name,\n collectionId: this.searchCollections[index].id\n });\n }\n }\n return options;\n },\n resourceIdentifier() {\n return {\n resourceType: this.type,\n resourceId: this.id,\n isActive: this.isActive\n };\n }\n },\n watch: {\n resourceIdentifier: {\n deep: true,\n immediate: true,\n handler(resourceIdentifier) {\n if (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n return;\n }\n this.fetchCollectionsByResource(resourceIdentifier);\n }\n }\n },\n methods: {\n t,\n select(selectedOption) {\n if (selectedOption.method === METHOD_CREATE_COLLECTION) {\n selectedOption.action().then((resourceId) => {\n this.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: selectedOption.type,\n resourceId,\n name: this.name\n }).catch((e) => {\n this.setError(t(\"Failed to create a project\"), e);\n });\n }).catch((e) => {\n console.error(\"No resource selected\", e);\n });\n }\n if (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n this.addResourceToCollection({\n collectionId: selectedOption.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((e) => {\n this.setError(t(\"Failed to add the item to the project\"), e);\n });\n }\n this.value = null;\n },\n showSelect() {\n this.selectIsOpen = true;\n this.$refs.select.$el.focus();\n },\n setError(error, e) {\n console.error(error, e);\n this.error = error;\n setTimeout(() => {\n this.error = null;\n }, 5e3);\n },\n renameCollectionFromItem({ collectionId, name }) {\n this.renameCollection({ collectionId, name }).catch((e) => {\n console.error(t(\"Failed to rename the project\"), e);\n this.collectionsError[collectionId] = t(\"Failed to rename the project\");\n setTimeout(() => {\n this.collectionsError[collectionId] = null;\n }, 5e3);\n });\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _vm.collections && _vm.type && _vm.id ? _c(\"ul\", { staticClass: \"collection-list\", attrs: { \"id\": \"collection-list\" } }, [_c(\"li\", { on: { \"click\": _vm.showSelect } }, [_vm._m(0), _c(\"div\", { attrs: { \"id\": \"collection-select-container\" } }, [_c(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": _vm.t(\"Add to a project\"), \"options\": _vm.options, \"placeholder\": _vm.placeholder, \"label\": \"title\", \"limit\": 5 }, on: { \"close\": function($event) {\n _vm.isSelectOpen = false;\n }, \"open\": function($event) {\n _vm.isSelectOpen = true;\n }, \"option:selected\": _vm.select, \"search\": _vm.search }, scopedSlots: _vm._u([{ key: \"selected-option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__desc\" }, [_c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])])];\n } }, { key: \"option\", fn: function(option) {\n return [_c(\"span\", { staticClass: \"option__wrapper\" }, [option.class ? _c(\"span\", { staticClass: \"avatar\", class: option.class }) : option.method !== 2 ? _c(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": option.title } }) : _vm._e(), _c(\"span\", { staticClass: \"option__title\" }, [_vm._v(_vm._s(option.title))])], 1)];\n } }], null, false, 2397208459), model: { value: _vm.value, callback: function($$v) {\n _vm.value = $$v;\n }, expression: \"value\" } }, [_c(\"p\", { staticClass: \"hint\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), _c(\"transition\", { attrs: { \"name\": \"fade\" } }, [_vm.error ? _c(\"li\", { staticClass: \"error\" }, [_vm._v(\" \" + _vm._s(_vm.error) + \" \")]) : _vm._e()]), _vm._l(_vm.collections, function(collection) {\n return _c(\"NcCollectionListItem\", { key: collection.id, attrs: { \"collection\": collection, \"error\": _vm.collectionsError[collection.id] }, on: { \"rename-collection\": _vm.renameCollectionFromItem, \"remove-resource\": _vm.removeResourceFromCollection } });\n })], 2) : _vm._e();\n};\nvar _sfc_staticRenderFns = [function() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"avatar\" }, [_c(\"span\", { staticClass: \"icon-projects\" })]);\n}];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"efe8beb8\"\n);\nconst NcCollectionList = __component__.exports;\nexport {\n NcCollectionList as N\n};\n//# sourceMappingURL=NcCollectionList-CdqFiw6Z.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcGuestContent-B0ivUQHg.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcGuestContent-B0ivUQHg.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcGuestContent-B0ivUQHg.css';\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcGuestContent\",\n mounted() {\n document.getElementById(\"content\").classList.add(\"nc-guest-content\");\n },\n destroyed() {\n document.getElementById(\"content\").classList.remove(\"nc-guest-content\");\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { attrs: { \"id\": \"guest-content-vue\" } }, [_vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"cbad78fb\"\n);\nconst NcGuestContent = __component__.exports;\nexport {\n NcGuestContent as default\n};\n//# sourceMappingURL=NcGuestContent.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcHeaderButton-Dr6MgPDQ.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcHeaderButton-Dr6MgPDQ.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcHeaderButton-Dr6MgPDQ.css';\nimport { G as GenRandomId } from \"../chunks/GenRandomId-CMooMQt0.mjs\";\nimport NcButton from \"./NcButton.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcHeaderButton\",\n components: {\n NcButton\n },\n props: {\n /**\n * Unique id for this menu\n */\n id: {\n type: String,\n required: true\n },\n /**\n * `aria-label` attribute of the button\n */\n ariaLabel: {\n type: String,\n required: true\n },\n /**\n * Additional visually hidden description text for the button\n */\n description: {\n type: String,\n default: null\n }\n },\n emits: [\n \"click\"\n ],\n data() {\n return {\n descriptionId: GenRandomId()\n };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"header-menu\", attrs: { \"id\": _vm.id } }, [_c(\"NcButton\", { staticClass: \"header-menu__trigger\", attrs: { \"aria-label\": _vm.ariaLabel, \"aria-describedby\": _vm.descriptionId, \"size\": \"large\", \"variant\": \"tertiary-no-background\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.$emit(\"click\", $event);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"icon\")];\n }, proxy: true }], null, true) }), _vm.description ? _c(\"span\", { staticClass: \"header-menu__description hidden-visually\", attrs: { \"id\": _vm.descriptionId } }, [_vm._v(\" \" + _vm._s(_vm.description) + \" \")]) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"20fd51f9\"\n);\nconst NcHeaderButton = __component__.exports;\nexport {\n NcHeaderButton as default\n};\n//# sourceMappingURL=NcHeaderButton.mjs.map\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcRelatedResourcesPanel-DhStLIO2.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./NcRelatedResourcesPanel-DhStLIO2.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcRelatedResourcesPanel-DhStLIO2.css';\nimport axios from \"@nextcloud/axios\";\nimport { generateOcsUrl } from \"@nextcloud/router\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-DFQfzh63.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-C7Dy9Bph.mjs\";\nimport NcButton from \"../Components/NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Cb-cPj1R.mjs\";\nimport { r as register, S as t39, a as t, T as t36, U as t8 } from \"./_l10n-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=\"mdiAccountGroup\" :size=\"64\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\n\t\t<VirtualList v-else\n\t\t\t:data-component=\"UserRow\"\n\t\t\t:data-sources=\"filteredUsers\"\n\t\t\tdata-key=\"id\"\n\t\t\tdata-cy-user-list\n\t\t\t:item-height=\"rowHeight\"\n\t\t\t:style=\"style\"\n\t\t\t:extra-props=\"{\n\t\t\t\tusers,\n\t\t\t\tsettings,\n\t\t\t\thasObfuscated,\n\t\t\t\tquotaOptions,\n\t\t\t\tlanguages,\n\t\t\t\texternalActions,\n\t\t\t}\"\n\t\t\t@scroll-end=\"handleScrollEnd\">\n\t\t\t<template #before>\n\t\t\t\t<caption class=\"hidden-visually\">\n\t\t\t\t\t{{ t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.') }}\n\t\t\t\t</caption>\n\t\t\t</template>\n\n\t\t\t<template #header>\n\t\t\t\t<UserListHeader :has-obfuscated=\"hasObfuscated\" />\n\t\t\t</template>\n\n\t\t\t<template #footer>\n\t\t\t\t<UserListFooter :loading=\"loading.users\"\n\t\t\t\t\t:filtered-users=\"filteredUsers\" />\n\t\t\t</template>\n\t\t</VirtualList>\n\t</Fragment>\n</template>\n\n<script>\nimport { mdiAccountGroup } from '@mdi/js'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { Fragment } from 'vue-frag'\n\nimport Vue from 'vue'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\n\nimport VirtualList from './Users/VirtualList.vue'\nimport NewUserDialog from './Users/NewUserDialog.vue'\nimport UserListFooter from './Users/UserListFooter.vue'\nimport UserListHeader from './Users/UserListHeader.vue'\nimport UserRow from './Users/UserRow.vue'\n\nimport { defaultQuota, isObfuscated, unlimitedQuota } from '../utils/userUtils.ts'\nimport logger from '../logger.ts'\n\nconst newUser = Object.freeze({\n\tid: '',\n\tdisplayName: '',\n\tpassword: '',\n\tmailAddress: '',\n\tgroups: [],\n\tmanager: '',\n\tsubAdminsGroups: [],\n\tquota: defaultQuota,\n\tlanguage: {\n\t\tcode: 'en',\n\t\tname: t('settings', 'Default language'),\n\t},\n})\n\nexport default {\n\tname: 'UserList',\n\n\tcomponents: {\n\t\tFragment,\n\t\tNcEmptyContent,\n\t\tNcIconSvgWrapper,\n\t\tNcLoadingIcon,\n\t\tNewUserDialog,\n\t\tUserListFooter,\n\t\tUserListHeader,\n\t\tVirtualList,\n\t},\n\n\tprops: {\n\t\tselectedGroup: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\n\tsetup() {\n\t\t// non reactive properties\n\t\treturn {\n\t\t\tmdiAccountGroup,\n\t\t\trowHeight: 55,\n\n\t\t\tUserRow,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: {\n\t\t\t\tall: false,\n\t\t\t\tgroups: false,\n\t\t\t\tusers: false,\n\t\t\t},\n\t\t\tnewUser: { ...newUser },\n\t\t\tisInitialLoad: true,\n\t\t\tsearchQuery: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tstyle() {\n\t\t\treturn {\n\t\t\t\t'--row-height': `${this.rowHeight}px`,\n\t\t\t}\n\t\t},\n\n\t\thasObfuscated() {\n\t\t\treturn this.filteredUsers.some(user => isObfuscated(user))\n\t\t},\n\n\t\tusers() {\n\t\t\treturn this.$store.getters.getUsers\n\t\t},\n\n\t\tfilteredUsers() {\n\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\treturn this.users.filter(user => user.enabled === false)\n\t\t\t}\n\t\t\treturn this.users.filter(user => user.enabled !== false)\n\t\t},\n\n\t\tgroups() {\n\t\t\treturn this.$store.getters.getSortedGroups\n\t\t\t\t.filter(group => group.id !== '__nc_internal_recent' && group.id !== 'disabled')\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({\n\t\t\t\tid: cur,\n\t\t\t\tlabel: cur,\n\t\t\t}), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\tquotaPreset.unshift(defaultQuota)\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tusersOffset() {\n\t\t\treturn this.$store.getters.getUsersOffset\n\t\t},\n\n\t\tusersLimit() {\n\t\t\treturn this.$store.getters.getUsersLimit\n\t\t},\n\n\t\tdisabledUsersOffset() {\n\t\t\treturn this.$store.getters.getDisabledUsersOffset\n\t\t},\n\n\t\tdisabledUsersLimit() {\n\t\t\treturn this.$store.getters.getDisabledUsersLimit\n\t\t},\n\n\t\tusersCount() {\n\t\t\treturn this.users.length\n\t\t},\n\n\t\t/* LANGUAGES */\n\t\tlanguages() {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Common languages'),\n\t\t\t\t\tlanguages: this.settings.languages.commonLanguages,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: t('settings', 'Other languages'),\n\t\t\t\t\tlanguages: this.settings.languages.otherLanguages,\n\t\t\t\t},\n\t\t\t]\n\t\t},\n\t},\n\n\twatch: {\n\t\t// watch url change and group select\n\t\tasync selectedGroup(val) {\n\t\t\tthis.isInitialLoad = true\n\t\t\t// if selected is the disabled group but it's empty\n\t\t\tawait this.redirectIfDisabled()\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t\tthis.setNewUserDefaultGroup(val)\n\t\t},\n\n\t\tfilteredUsers(filteredUsers) {\n\t\t\tlogger.debug(`${filteredUsers.length} filtered user(s)`)\n\t\t},\n\t},\n\n\tasync created() {\n\t\tawait this.loadUsers()\n\t},\n\n\tasync mounted() {\n\t\tif (!this.settings.canChangePassword) {\n\t\t\tOC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'))\n\t\t}\n\n\t\t/**\n\t\t * Reset and init new user form\n\t\t */\n\t\tthis.resetForm()\n\n\t\t/**\n\t\t * Register search\n\t\t */\n\t\tsubscribe('nextcloud:unified-search.search', this.search)\n\t\tsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\n\t\t/**\n\t\t * If disabled group but empty, redirect\n\t\t */\n\t\tawait this.redirectIfDisabled()\n\t},\n\n\tbeforeDestroy() {\n\t\tunsubscribe('nextcloud:unified-search.search', this.search)\n\t\tunsubscribe('nextcloud:unified-search.reset', this.resetSearch)\n\t},\n\n\tmethods: {\n\t\tasync handleScrollEnd() {\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tasync loadUsers() {\n\t\t\tthis.loading.users = true\n\t\t\ttry {\n\t\t\t\tif (this.selectedGroup === 'disabled') {\n\t\t\t\t\tawait this.$store.dispatch('getDisabledUsers', {\n\t\t\t\t\t\toffset: this.disabledUsersOffset,\n\t\t\t\t\t\tlimit: this.disabledUsersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else if (this.selectedGroup === '__nc_internal_recent') {\n\t\t\t\t\tawait this.$store.dispatch('getRecentUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tawait this.$store.dispatch('getUsers', {\n\t\t\t\t\t\toffset: this.usersOffset,\n\t\t\t\t\t\tlimit: this.usersLimit,\n\t\t\t\t\t\tgroup: this.selectedGroup,\n\t\t\t\t\t\tsearch: this.searchQuery,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tlogger.debug(`${this.users.length} total user(s) loaded`)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Failed to load accounts', { error })\n\t\t\t\tshowError('Failed to load accounts')\n\t\t\t}\n\t\t\tthis.loading.users = false\n\t\t\tthis.isInitialLoad = false\n\t\t},\n\n\t\tcloseDialog() {\n\t\t\tthis.$store.commit('setShowConfig', {\n\t\t\t\tkey: 'showNewUserForm',\n\t\t\t\tvalue: false,\n\t\t\t})\n\t\t},\n\n\t\tasync search({ query }) {\n\t\t\tthis.searchQuery = query\n\t\t\tthis.$store.commit('resetUsers')\n\t\t\tawait this.loadUsers()\n\t\t},\n\n\t\tresetSearch() {\n\t\t\tthis.search({ query: '' })\n\t\t},\n\n\t\tresetForm() {\n\t\t\t// revert form to original state\n\t\t\tthis.newUser = Object.assign({}, newUser)\n\n\t\t\t/**\n\t\t\t * Init default language from server data. The use of this.settings\n\t\t\t * requires a computed variable, which break the v-model binding of the form,\n\t\t\t * this is a much easier solution than getter and setter on a computed var\n\t\t\t */\n\t\t\tif (this.settings.defaultLanguage) {\n\t\t\t\tVue.set(this.newUser.language, 'code', this.settings.defaultLanguage)\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * In case the user directly loaded the user list within a group\n\t\t\t * the watch won't be triggered. We need to initialize it.\n\t\t\t */\n\t\t\tthis.setNewUserDefaultGroup(this.selectedGroup)\n\n\t\t\tthis.loading.all = false\n\t\t},\n\n\t\tsetNewUserDefaultGroup(value) {\n\t\t\t// Is no value set, but user is a line manager we set their group as this is a requirement for line manager\n\t\t\tif (!value && !this.settings.isAdmin && !this.settings.isDelegatedAdmin) {\n\t\t\t\tconst groups = this.$store.getters.getSubAdminGroups\n\t\t\t\t// if there are multiple groups we do not know which to add,\n\t\t\t\t// so we cannot make the managers life easier by preselecting it.\n\t\t\t\tif (groups.length === 1) {\n\t\t\t\t\tthis.newUser.groups = [...groups]\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\t// setting new account default group to the current selected one\n\t\t\t\tconst currentGroup = this.groups.find(group => group.id === value)\n\t\t\t\tif (currentGroup) {\n\t\t\t\t\tthis.newUser.groups = [currentGroup]\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\t// fallback, empty selected group\n\t\t\tthis.newUser.groups = []\n\t\t},\n\n\t\t/**\n\t\t * If the selected group is the disabled group but the count is 0\n\t\t * redirect to the all users page.\n\t\t * we only check for 0 because we don't have the count on ldap\n\t\t * and we therefore set the usercount to -1 in this specific case\n\t\t */\n\t\tasync redirectIfDisabled() {\n\t\t\tconst allGroups = this.$store.getters.getGroups\n\t\t\tif (this.selectedGroup === 'disabled'\n\t\t\t\t\t\t&& allGroups.findIndex(group => group.id === 'disabled' && group.usercount === 0) > -1) {\n\t\t\t\t// disabled group is empty, redirection to all users\n\t\t\t\tthis.$router.push({ name: 'users' })\n\t\t\t\tawait this.loadUsers()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use './Users/shared/styles' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=1e8fee5a&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=1e8fee5a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e8fee5a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"reset\":_vm.resetForm,\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroup,\"size\":64}})]},proxy:true}],null,false,226056511)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\thasObfuscated: _vm.hasObfuscated,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader',{attrs:{\"has-obfuscated\":_vm.hasObfuscated}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppContent :page-heading=\"pageHeading\">\n\t\t<UserList :selected-group=\"selectedGroupDecoded\"\n\t\t\t:external-actions=\"externalActions\" />\n\t</NcAppContent>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { emit } from '@nextcloud/event-bus'\nimport { defineComponent } from 'vue'\n\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport UserList from '../components/UserList.vue'\n\nexport default defineComponent({\n\tname: 'UserManagement',\n\n\tcomponents: {\n\t\tNcAppContent,\n\t\tUserList,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// temporary value used for multiselect change\n\t\t\texternalActions: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpageHeading() {\n\t\t\tif (this.selectedGroupDecoded === null) {\n\t\t\t\treturn t('settings', 'All accounts')\n\t\t\t}\n\t\t\tconst matchHeading = {\n\t\t\t\tadmin: t('settings', 'Admins'),\n\t\t\t\tdisabled: t('settings', 'Disabled accounts'),\n\t\t\t}\n\t\t\treturn matchHeading[this.selectedGroupDecoded] ?? t('settings', 'Account group: {group}', { group: this.selectedGroupDecoded })\n\t\t},\n\n\t\tselectedGroup() {\n\t\t\treturn this.$route.params.selectedGroup\n\t\t},\n\n\t\tselectedGroupDecoded() {\n\t\t\treturn this.selectedGroup ? decodeURIComponent(this.selectedGroup) : null\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\tthis.$store.dispatch('getPasswordPolicyMinLength')\n\t},\n\n\tcreated() {\n\t\t// init the OCA.Settings.UserList object\n\t\twindow.OCA = window.OCA ?? {}\n\t\twindow.OCA.Settings = window.OCA.Settings ?? {}\n\t\twindow.OCA.Settings.UserList = window.OCA.Settings.UserList ?? {}\n\t\t// and add the registerAction method\n\t\twindow.OCA.Settings.UserList.registerAction = this.registerAction\n\t\temit('settings:user-management:loaded')\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Register a new action for the user menu\n\t\t *\n\t\t * @param {string} icon the icon class\n\t\t * @param {string} text the text to display\n\t\t * @param {Function} action the function to run\n\t\t * @param {(user: Record<string, unknown>) => boolean} enabled return true if the action is enabled for the user\n\t\t * @return {Array}\n\t\t */\n\t\tregisterAction(icon, text, action, enabled) {\n\t\t\tthis.externalActions.push({\n\t\t\t\ticon,\n\t\t\t\ttext,\n\t\t\t\taction,\n\t\t\t\tenabled,\n\t\t\t})\n\t\t\treturn this.externalActions\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=253f9eec&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=253f9eec&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"253f9eec\",\n null\n \n)\n\nexport default component.exports","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, `.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 * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-878b819f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\n opacity: 0;\n}\n.linked-icons[data-v-878b819f] {\n display: flex;\n}\n.linked-icons img[data-v-878b819f] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: 0.7;\n}\n.linked-icons img[data-v-878b819f]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-878b819f] {\n display: none;\n}\n.popovermenu.open[data-v-878b819f] {\n display: block;\n}\nli.collection-list-item[data-v-878b819f] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-878b819f] {\n margin-top: 0;\n}\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-878b819f] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-878b819f] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-878b819f] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-878b819f] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-878b819f] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-878b819f] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\n opacity: 1;\n}\n.should-shake[data-v-878b819f] {\n animation: shake-878b819f 0.6s 1 linear;\n}\n@keyframes shake-878b819f {\n0% {\n transform: translate(15px);\n}\n20% {\n transform: translate(-15px);\n}\n40% {\n transform: translate(7px);\n}\n60% {\n transform: translate(-7px);\n}\n80% {\n transform: translate(3px);\n}\n100% {\n transform: translate(0px);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-efe8beb8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.collection-list *[data-v-efe8beb8] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-efe8beb8] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-efe8beb8] {\n margin-top: 0;\n}\n#collection-select-container[data-v-efe8beb8] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-efe8beb8] {\n display: block;\n padding: 16px;\n opacity: 0.7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-efe8beb8]:hover {\n opacity: 1;\n}\np.hint[data-v-efe8beb8] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-efe8beb8] {\n width: 32px;\n height: 32px;\n margin: 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n margin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects[data-v-efe8beb8] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-efe8beb8] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-efe8beb8] {\n display: block;\n width: 32px;\n height: 32px;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-efe8beb8] {\n padding: 4px;\n}\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\n opacity: 0;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcCollectionList-yjTCAR46.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;EAC3B,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,YAAY;EACZ,eAAe;EACf,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,eAAe;EACf,YAAY;EACZ,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,YAAY;EACZ,4BAA4B;EAC5B,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,kBAAkB;AACpB;AACA;EACE,uBAAuB;EACvB,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,0BAA0B;AAC9B;AACA;IACI,yBAAyB;AAC7B;AACA;IACI,yBAAyB;AAC7B;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,oCAAoC;EACpC,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,SAAS;EACT,YAAY;EACZ,8CAA8C;EAC9C,gBAAgB;AAClB;;AAEA,qCAAqC;AACrC;EACE,cAAc;EACd,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;AAC7B;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-878b819f] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\\n transition: opacity 0.3s ease;\\n}\\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\\n opacity: 0;\\n}\\n.linked-icons[data-v-878b819f] {\\n display: flex;\\n}\\n.linked-icons img[data-v-878b819f] {\\n padding: 12px;\\n height: 44px;\\n display: block;\\n background-repeat: no-repeat;\\n background-position: center;\\n opacity: 0.7;\\n}\\n.linked-icons img[data-v-878b819f]:hover {\\n opacity: 1;\\n}\\n.popovermenu[data-v-878b819f] {\\n display: none;\\n}\\n.popovermenu.open[data-v-878b819f] {\\n display: block;\\n}\\nli.collection-list-item[data-v-878b819f] {\\n flex-wrap: wrap;\\n height: auto;\\n cursor: pointer;\\n margin-bottom: 0 !important;\\n}\\nli.collection-list-item .collection-avatar[data-v-878b819f] {\\n margin-top: 0;\\n}\\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\\n flex-basis: 10%;\\n flex-grow: 1;\\n display: flex;\\n}\\nli.collection-list-item .collection-item-name[data-v-878b819f] {\\n padding: 12px 9px;\\n}\\nli.collection-list-item input[data-v-878b819f] {\\n margin-top: 4px;\\n border-color: var(--color-border-maxcontrast);\\n}\\nli.collection-list-item input[type=text][data-v-878b819f] {\\n flex-grow: 1;\\n}\\nli.collection-list-item .error[data-v-878b819f] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details[data-v-878b819f] {\\n flex-basis: 100%;\\n width: 100%;\\n}\\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\\n display: flex;\\n margin-left: 44px;\\n border-radius: 3px;\\n cursor: pointer;\\n}\\nli.collection-list-item .resource-list-details li[data-v-878b819f]:hover {\\n background-color: var(--color-background-dark);\\n}\\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\\n flex-grow: 1;\\n padding: 3px;\\n max-width: calc(100% - 30px);\\n display: flex;\\n}\\nli.collection-list-item .resource-list-details span[data-v-878b819f] {\\n display: inline-block;\\n vertical-align: top;\\n margin-right: 10px;\\n}\\nli.collection-list-item .resource-list-details span.resource-name[data-v-878b819f] {\\n text-overflow: ellipsis;\\n overflow: hidden;\\n position: relative;\\n vertical-align: top;\\n white-space: nowrap;\\n flex-grow: 1;\\n padding: 4px;\\n}\\nli.collection-list-item .resource-list-details img[data-v-878b819f] {\\n width: 24px;\\n height: 24px;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\\n opacity: 0.7;\\n}\\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\\n opacity: 1;\\n}\\n.should-shake[data-v-878b819f] {\\n animation: shake-878b819f 0.6s 1 linear;\\n}\\n@keyframes shake-878b819f {\\n0% {\\n transform: translate(15px);\\n}\\n20% {\\n transform: translate(-15px);\\n}\\n40% {\\n transform: translate(7px);\\n}\\n60% {\\n transform: translate(-7px);\\n}\\n80% {\\n transform: translate(3px);\\n}\\n100% {\\n transform: translate(0px);\\n}\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-efe8beb8] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.collection-list *[data-v-efe8beb8] {\\n box-sizing: border-box;\\n}\\n.collection-list > li[data-v-efe8beb8] {\\n display: flex;\\n align-items: center;\\n gap: 12px;\\n}\\n.collection-list > li > .avatar[data-v-efe8beb8] {\\n margin-top: 0;\\n}\\n#collection-select-container[data-v-efe8beb8] {\\n display: flex;\\n flex-direction: column;\\n}\\n.v-select span.avatar[data-v-efe8beb8] {\\n display: block;\\n padding: 16px;\\n opacity: 0.7;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.v-select span.avatar[data-v-efe8beb8]:hover {\\n opacity: 1;\\n}\\np.hint[data-v-efe8beb8] {\\n z-index: 1;\\n margin-top: -16px;\\n padding: 8px 8px;\\n color: var(--color-text-maxcontrast);\\n line-height: normal;\\n}\\ndiv.avatar[data-v-efe8beb8] {\\n width: 32px;\\n height: 32px;\\n margin: 0;\\n padding: 8px;\\n background-color: var(--color-background-dark);\\n margin-top: 30px;\\n}\\n\\n/** TODO provide white icon in core */\\n.icon-projects[data-v-efe8beb8] {\\n display: block;\\n padding: 8px;\\n background-repeat: no-repeat;\\n background-position: center;\\n}\\n.option__wrapper[data-v-efe8beb8] {\\n display: flex;\\n}\\n.option__wrapper .avatar[data-v-efe8beb8] {\\n display: block;\\n width: 32px;\\n height: 32px;\\n background-color: var(--color-background-darker) !important;\\n}\\n.option__wrapper .option__title[data-v-efe8beb8] {\\n padding: 4px;\\n}\\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\\n transition: opacity 0.5s;\\n}\\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\\n opacity: 0;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8ddd08c0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action[data-v-8ddd08c0]:hover, li.action.active[data-v-8ddd08c0] {\n border-radius: 6px;\n padding: 0;\n}\nli.action[data-v-8ddd08c0]:hover {\n background-color: var(--color-background-hover);\n}\n.action--disabled[data-v-8ddd08c0] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-8ddd08c0]:hover, .action--disabled[data-v-8ddd08c0]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-8ddd08c0] {\n opacity: 1 !important;\n}\n.action-radio[data-v-8ddd08c0] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-radio__radio[data-v-8ddd08c0] {\n position: absolute;\n inset-inline-start: 0 !important;\n z-index: -1;\n opacity: 0;\n}\n.action-radio__label[data-v-8ddd08c0] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-radio__label[data-v-8ddd08c0]::before {\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-radio--disabled[data-v-8ddd08c0],\n.action-radio--disabled .action-radio__label[data-v-8ddd08c0] {\n cursor: pointer;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionRadio-CodyhP86.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;EAGE;AACF;EACE,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,gCAAgC;EAChC,WAAW;EACX,UAAU;AACZ;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,+EAA+E;AACjF;AACA;EACE,mEAAmE;AACrE;AACA;;EAEE,eAAe;AACjB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-8ddd08c0] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\nli.action[data-v-8ddd08c0]:hover, li.action.active[data-v-8ddd08c0] {\\n border-radius: 6px;\\n padding: 0;\\n}\\nli.action[data-v-8ddd08c0]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.action--disabled[data-v-8ddd08c0] {\\n pointer-events: none;\\n opacity: 0.5;\\n}\\n.action--disabled[data-v-8ddd08c0]:hover, .action--disabled[data-v-8ddd08c0]:focus {\\n cursor: default;\\n opacity: 0.5;\\n}\\n.action--disabled *[data-v-8ddd08c0] {\\n opacity: 1 !important;\\n}\\n.action-radio[data-v-8ddd08c0] {\\n display: flex;\\n align-items: flex-start;\\n width: 100%;\\n height: auto;\\n margin: 0;\\n padding: 0;\\n cursor: pointer;\\n white-space: nowrap;\\n color: var(--color-main-text);\\n border: 0;\\n border-radius: 0;\\n background-color: transparent;\\n box-shadow: none;\\n font-weight: normal;\\n line-height: var(--default-clickable-area);\\n /* checkbox/radio fixes */\\n}\\n.action-radio__radio[data-v-8ddd08c0] {\\n position: absolute;\\n inset-inline-start: 0 !important;\\n z-index: -1;\\n opacity: 0;\\n}\\n.action-radio__label[data-v-8ddd08c0] {\\n display: flex;\\n align-items: center;\\n width: 100%;\\n padding: 0 !important;\\n padding-inline-end: calc((var(--default-clickable-area) - 16px) / 2) !important;\\n}\\n.action-radio__label[data-v-8ddd08c0]::before {\\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\\n}\\n.action-radio--disabled[data-v-8ddd08c0],\\n.action-radio--disabled .action-radio__label[data-v-8ddd08c0] {\\n cursor: pointer;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\nconst formatGroup = (group) => ({\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n});\n/**\n * Search groups\n *\n * @param {object} options Options\n * @param {string} options.search Search query\n * @param {number} options.offset Offset\n * @param {number} options.limit Limit\n */\nexport const searchGroups = ({ search, offset, limit }) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n};\n/**\n * Load user groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n/**\n * Load user subadmin groups\n *\n * @param {object} options Options\n * @param {string} options.userId User id\n */\nexport const loadUserSubAdminGroups = async ({ userId }) => {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d278a327] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-d278a327] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-d278a327] {\n box-sizing: border-box;\n margin: 0 3px 3px 3px;\n}\n#app-settings__header .settings-button[data-v-d278a327] {\n display: flex;\n flex: 1 1 0;\n height: var(--default-clickable-area);\n width: 100%;\n padding: 0;\n margin: 0;\n background-color: transparent;\n box-shadow: none;\n border: 0;\n border-radius: var(--body-container-radius);\n text-align: start;\n font-weight: normal;\n font-size: 100%;\n color: var(--color-main-text);\n padding-inline-end: 14px;\n line-height: var(--default-clickable-area);\n}\n#app-settings__header .settings-button[data-v-d278a327]:hover, #app-settings__header .settings-button[data-v-d278a327]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-d278a327] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n}\n#app-settings__header .settings-button__label[data-v-d278a327] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-d278a327] {\n display: block;\n padding: 10px;\n /* prevent scrolled contents from stopping too early */\n margin-bottom: -3px;\n /* restrict height of settings and make scrollable */\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-d278a327],\n.slide-up-enter-active[data-v-d278a327] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-d278a327],\n.slide-up-leave-to[data-v-d278a327] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-vd47rlNY.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,WAAW;EACX,qCAAqC;EACrC,WAAW;EACX,UAAU;EACV,SAAS;EACT,6BAA6B;EAC7B,gBAAgB;EAChB,SAAS;EACT,2CAA2C;EAC3C,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;EACf,6BAA6B;EAC7B,wBAAwB;EACxB,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;EACb,sDAAsD;EACtD,mBAAmB;EACnB,oDAAoD;EACpD,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;AACxB;AACA;;EAEE,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;;EAEE,wBAAwB;EACxB,0BAA0B;AAC5B\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-d278a327] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#app-settings[data-v-d278a327] {\\n margin-top: auto;\\n padding: 3px;\\n}\\n#app-settings__header[data-v-d278a327] {\\n box-sizing: border-box;\\n margin: 0 3px 3px 3px;\\n}\\n#app-settings__header .settings-button[data-v-d278a327] {\\n display: flex;\\n flex: 1 1 0;\\n height: var(--default-clickable-area);\\n width: 100%;\\n padding: 0;\\n margin: 0;\\n background-color: transparent;\\n box-shadow: none;\\n border: 0;\\n border-radius: var(--body-container-radius);\\n text-align: start;\\n font-weight: normal;\\n font-size: 100%;\\n color: var(--color-main-text);\\n padding-inline-end: 14px;\\n line-height: var(--default-clickable-area);\\n}\\n#app-settings__header .settings-button[data-v-d278a327]:hover, #app-settings__header .settings-button[data-v-d278a327]:focus {\\n background-color: var(--color-background-hover);\\n}\\n#app-settings__header .settings-button__icon[data-v-d278a327] {\\n width: var(--default-clickable-area);\\n height: var(--default-clickable-area);\\n min-width: var(--default-clickable-area);\\n}\\n#app-settings__header .settings-button__label[data-v-d278a327] {\\n overflow: hidden;\\n max-width: 100%;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n#app-settings__content[data-v-d278a327] {\\n display: block;\\n padding: 10px;\\n /* prevent scrolled contents from stopping too early */\\n margin-bottom: -3px;\\n /* restrict height of settings and make scrollable */\\n max-height: 300px;\\n overflow-y: auto;\\n box-sizing: border-box;\\n}\\n.slide-up-leave-active[data-v-d278a327],\\n.slide-up-enter-active[data-v-d278a327] {\\n transition-duration: var(--animation-slow);\\n transition-property: max-height, padding;\\n overflow-y: hidden !important;\\n}\\n.slide-up-enter[data-v-d278a327],\\n.slide-up-leave-to[data-v-d278a327] {\\n max-height: 0 !important;\\n padding: 0 10px !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.account-management__navigation[data-v-edf83404] .app-navigation__body{will-change:scroll-position}.account-management__system-list[data-v-edf83404]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-edf83404]{height:100% !important}.account-management__settings-toggle[data-v-edf83404]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0907eb0a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-0907eb0a] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-0907eb0a] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-0907eb0a]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-0907eb0a] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-Bsp_6DjJ.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;EACpC,gBAAgB;AAClB\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-0907eb0a] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.input-wrapper[data-v-0907eb0a] {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n width: 100%;\\n max-width: 400px;\\n}\\n.input-wrapper .action-input__label[data-v-0907eb0a] {\\n margin-right: 12px;\\n}\\n.input-wrapper[data-v-0907eb0a]:disabled {\\n cursor: default;\\n}\\n.input-wrapper .hint[data-v-0907eb0a] {\\n color: var(--color-text-maxcontrast);\\n margin-left: 8px;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.modal__header[data-v-3e2f3c17]{margin:0}.modal__content[data-v-3e2f3c17]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-3e2f3c17]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n",";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // disallow unquoted attribute values if not otherwise configured\n // and strict mode is true\n if (parser.opt.unquotedAttributeValues === undefined) {\n parser.opt.unquotedAttributeValues = !strict;\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n if (!Stream) Stream = function () {}\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n continue;\n }\n\n if (parser.doctype && parser.doctype !== true && parser.sgmlDecl) {\n parser.state = S.DOCTYPE_DTD\n parser.doctype += '<!' + parser.sgmlDecl + c\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n if (c === ']') {\n parser.doctype += c\n parser.state = S.DOCTYPE\n } else if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (isQuote(c)) {\n parser.doctype += c\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n } else {\n parser.doctype += c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else if (parser.doctype && parser.doctype !== true) {\n parser.state = S.DOCTYPE_DTD\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n if (!parser.opt.unquotedAttributeValues) {\n error(parser, 'Unquoted attribute value')\n }\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n var parsedEntity = parseEntity(parser)\n if (parser.opt.unparsedEntities && !Object.values(sax.XML_ENTITIES).includes(parsedEntity)) {\n parser.entity = ''\n parser.state = returnState\n parser.write(parsedEntity)\n } else {\n parser[buffer] += parsedEntity\n parser.entity = ''\n parser.state = returnState\n }\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default: /* istanbul ignore next */ {\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n","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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.empty[data-v-1e8fee5a] .icon-vue{width:64px;height:64px}.empty[data-v-1e8fee5a] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-content[data-v-253f9eec]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"type\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCog}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings','New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccount}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2218088905)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOff}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppSettingsDialog :open.sync=\"isModalOpen\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('settings', 'Account management settings')\">\n\t\t<NcAppSettingsSection id=\"visibility-settings\"\n\t\t\t:name=\"t('settings', 'Visibility')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLanguages\"\n\t\t\t\t:checked.sync=\"showLanguages\">\n\t\t\t\t{{ t('settings', 'Show language') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showUserBackend\"\n\t\t\t\t:checked.sync=\"showUserBackend\">\n\t\t\t\t{{ t('settings', 'Show account backend') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showStoragePath\"\n\t\t\t\t:checked.sync=\"showStoragePath\">\n\t\t\t\t{{ t('settings', 'Show storage path') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showFirstLogin\"\n\t\t\t\t:checked.sync=\"showFirstLogin\">\n\t\t\t\t{{ t('settings', 'Show first login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"showLastLogin\"\n\t\t\t\t:checked.sync=\"showLastLogin\">\n\t\t\t\t{{ t('settings', 'Show last login') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"groups-sorting\"\n\t\t\t:name=\"t('settings', 'Sorting')\">\n\t\t\t<NcNoteCard v-if=\"isGroupSortingEnforced\" type=\"warning\">\n\t\t\t\t{{ t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.') }}\n\t\t\t</NcNoteCard>\n\t\t\t<fieldset>\n\t\t\t\t<legend>{{ t('settings', 'Group list sorting') }}</legend>\n\t\t\t\t<NcNoteCard class=\"dialog__note\"\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t:text=\"t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')\" />\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByMemberCount\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"member-count\">\n\t\t\t\t\t{{ t('settings', 'By member count') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcCheckboxRadioSwitch type=\"radio\"\n\t\t\t\t\t:checked.sync=\"groupSorting\"\n\t\t\t\t\tdata-test=\"sortGroupsByName\"\n\t\t\t\t\t:disabled=\"isGroupSortingEnforced\"\n\t\t\t\t\tname=\"group-sorting-mode\"\n\t\t\t\t\tvalue=\"name\">\n\t\t\t\t\t{{ t('settings', 'By name') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t</fieldset>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"email-settings\"\n\t\t\t:name=\"t('settings', 'Send email')\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\tdata-test=\"sendWelcomeMail\"\n\t\t\t\t:checked.sync=\"sendWelcomeMail\"\n\t\t\t\t:disabled=\"loadingSendMail\">\n\t\t\t\t{{ t('settings', 'Send welcome email to new accounts') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<NcAppSettingsSection id=\"default-settings\"\n\t\t\t:name=\"t('settings', 'Defaults')\">\n\t\t\t<NcSelect v-model=\"defaultQuota\"\n\t\t\t\t:clearable=\"false\"\n\t\t\t\t:create-option=\"validateQuota\"\n\t\t\t\t:filter-by=\"filterQuotas\"\n\t\t\t\t:input-label=\"t('settings', 'Default quota')\"\n\t\t\t\t:options=\"quotaOptions\"\n\t\t\t\tplacement=\"top\"\n\t\t\t\t:placeholder=\"t('settings', 'Select default quota')\"\n\t\t\t\ttaggable\n\t\t\t\t@option:selected=\"setDefaultQuota\" />\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport { formatFileSize, parseFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\n\nimport axios from '@nextcloud/axios'\nimport NcAppSettingsDialog from '@nextcloud/vue/components/NcAppSettingsDialog'\nimport NcAppSettingsSection from '@nextcloud/vue/components/NcAppSettingsSection'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\n\nimport { GroupSorting } from '../../constants/GroupManagement.ts'\nimport { unlimitedQuota } from '../../utils/userUtils.ts'\nimport logger from '../../logger.ts'\n\nexport default {\n\tname: 'UserSettingsDialog',\n\n\tcomponents: {\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcNoteCard,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedQuota: false,\n\t\t\tloadingSendMail: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgroupSorting: {\n\t\t\tget() {\n\t\t\t\treturn this.$store.getters.getGroupSorting === GroupSorting.GroupName ? 'name' : 'member-count'\n\t\t\t},\n\t\t\tset(sorting) {\n\t\t\t\tthis.$store.commit('setGroupSorting', sorting === 'name' ? GroupSorting.GroupName : GroupSorting.UserCount)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Admin has configured `sort_groups_by_name` in the system config\n\t\t */\n\t\tisGroupSortingEnforced() {\n\t\t\treturn this.$store.getters.getServerData.forceSortGroupByName\n\t\t},\n\n\t\tisModalOpen: {\n\t\t\tget() {\n\t\t\t\treturn this.open\n\t\t\t},\n\t\t\tset(open) {\n\t\t\t\tthis.$emit('update:open', open)\n\t\t\t},\n\t\t},\n\n\t\tshowConfig() {\n\t\t\treturn this.$store.getters.getShowConfig\n\t\t},\n\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\n\t\tshowLanguages: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLanguages\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLanguages', status)\n\t\t\t},\n\t\t},\n\n\t\tshowFirstLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showFirstLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showFirstLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowLastLogin: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showLastLogin\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showLastLogin', status)\n\t\t\t},\n\t\t},\n\n\t\tshowUserBackend: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showUserBackend\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showUserBackend', status)\n\t\t\t},\n\t\t},\n\n\t\tshowStoragePath: {\n\t\t\tget() {\n\t\t\t\treturn this.showConfig.showStoragePath\n\t\t\t},\n\t\t\tset(status) {\n\t\t\t\tthis.setShowConfig('showStoragePath', status)\n\t\t\t},\n\t\t},\n\n\t\tquotaOptions() {\n\t\t\t// convert the preset array into objects\n\t\t\tconst quotaPreset = this.settings.quotaPreset.reduce((acc, cur) => acc.concat({ id: cur, label: cur }), [])\n\t\t\t// add default presets\n\t\t\tif (this.settings.allowUnlimitedQuota) {\n\t\t\t\tquotaPreset.unshift(unlimitedQuota)\n\t\t\t}\n\t\t\treturn quotaPreset\n\t\t},\n\n\t\tdefaultQuota: {\n\t\t\tget() {\n\t\t\t\tif (this.selectedQuota !== false) {\n\t\t\t\t\treturn this.selectedQuota\n\t\t\t\t}\n\t\t\t\tif (this.settings.defaultQuota !== unlimitedQuota.id && OC.Util.computerFileSize(this.settings.defaultQuota) >= 0) {\n\t\t\t\t\t// if value is valid, let's map the quotaOptions or return custom quota\n\t\t\t\t\treturn { id: this.settings.defaultQuota, label: this.settings.defaultQuota }\n\t\t\t\t}\n\t\t\t\treturn unlimitedQuota // unlimited\n\t\t\t},\n\t\t\tset(quota) {\n\t\t\t\tthis.selectedQuota = quota\n\t\t\t},\n\t\t},\n\n\t\tsendWelcomeMail: {\n\t\t\tget() {\n\t\t\t\treturn this.settings.newUserSendEmail\n\t\t\t},\n\t\t\tasync set(value) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.loadingSendMail = true\n\t\t\t\t\tthis.$store.commit('setServerData', {\n\t\t\t\t\t\t...this.settings,\n\t\t\t\t\t\tnewUserSendEmail: value,\n\t\t\t\t\t})\n\t\t\t\t\tawait axios.post(generateUrl('/settings/users/preferences/newUser.sendEmail'), { value: value ? 'yes' : 'no' })\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Could not update newUser.sendEmail preference', { error })\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loadingSendMail = false\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if a quota matches the current search.\n\t\t * This is a custom filter function to allow to map \"1GB\" to the label \"1 GB\" (ignoring whitespaces).\n\t\t *\n\t\t * @param option The quota to check\n\t\t * @param label The label of the quota\n\t\t * @param search The search string\n\t\t */\n\t\tfilterQuotas(option, label, search) {\n\t\t\tconst searchValue = search.toLocaleLowerCase().replaceAll(/\\s/g, '')\n\t\t\treturn (label || '')\n\t\t\t\t.toLocaleLowerCase()\n\t\t\t\t.replaceAll(/\\s/g, '')\n\t\t\t\t.indexOf(searchValue) > -1\n\t\t},\n\n\t\tsetShowConfig(key, status) {\n\t\t\tthis.$store.commit('setShowConfig', { key, value: status })\n\t\t},\n\n\t\t/**\n\t\t * Validate quota string to make sure it's a valid human file size\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t * @return {object} The validated quota object or unlimited quota if input is invalid\n\t\t */\n\t\tvalidateQuota(quota) {\n\t\t\tif (typeof quota === 'object') {\n\t\t\t\tquota = quota?.id || quota.label\n\t\t\t}\n\t\t\t// only used for new presets sent through @Tag\n\t\t\tconst validQuota = parseFileSize(quota, true)\n\t\t\tif (validQuota === null) {\n\t\t\t\treturn unlimitedQuota\n\t\t\t}\n\t\t\t// unify format output\n\t\t\tquota = formatFileSize(validQuota)\n\t\t\treturn { id: quota, label: quota }\n\t\t},\n\n\t\t/**\n\t\t * Dispatch default quota set request\n\t\t *\n\t\t * @param {string | object} quota Quota in readable format '5 GB' or Object {id: '5 GB', label: '5GB'}\n\t\t */\n\t\tsetDefaultQuota(quota = 'none') {\n\t\t\t// Make sure correct label is set for unlimited quota\n\t\t\tif (quota === 'none') {\n\t\t\t\tquota = unlimitedQuota\n\t\t\t}\n\t\t\tthis.$store.dispatch('setAppConfig', {\n\t\t\t\tapp: 'files',\n\t\t\t\tkey: 'default_quota',\n\t\t\t\t// ensure we only send the preset id\n\t\t\t\tvalue: quota.id ? quota.id : quota,\n\t\t\t}).then(() => {\n\t\t\t\tif (typeof quota !== 'object') {\n\t\t\t\t\tquota = { id: quota, label: quota }\n\t\t\t\t}\n\t\t\t\tthis.defaultQuota = quota\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=9f7a355c&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=9f7a355c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f7a355c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\",\"checked\":_vm.showLanguages},on:{\"update:checked\":function($event){_vm.showLanguages=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\",\"checked\":_vm.showUserBackend},on:{\"update:checked\":function($event){_vm.showUserBackend=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\",\"checked\":_vm.showStoragePath},on:{\"update:checked\":function($event){_vm.showStoragePath=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\",\"checked\":_vm.showFirstLogin},on:{\"update:checked\":function($event){_vm.showFirstLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\",\"checked\":_vm.showLastLogin},on:{\"update:checked\":function($event){_vm.showLastLogin=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"checked\":_vm.groupSorting,\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},on:{\"update:checked\":function($event){_vm.groupSorting=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"checked\":_vm.sendWelcomeMail,\"disabled\":_vm.loadingSendMail},on:{\"update:checked\":function($event){_vm.sendWelcomeMail=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroup}})]},proxy:true}],null,false,3607647275)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"value\":_setup.newGroupName,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"update:value\":function($event){_setup.newGroupName=$event},\"submit\":_setup.createGroup}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.t('settings', 'Search groups…')},model:{value:(_setup.groupsSearchQuery),callback:function ($$v) {_setup.groupsSearchQuery=$$v},expression:\"groupsSearchQuery\"}}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<Fragment>\n\t\t<NcModal v-if=\"showRemoveGroupModal\"\n\t\t\t@close=\"showRemoveGroupModal = false\">\n\t\t\t<div class=\"modal__content\">\n\t\t\t\t<h2 class=\"modal__header\">\n\t\t\t\t\t{{ t('settings', 'Please confirm the group removal') }}\n\t\t\t\t</h2>\n\t\t\t\t<NcNoteCard type=\"warning\"\n\t\t\t\t\tshow-alert>\n\t\t\t\t\t{{ t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: name }) }}\n\t\t\t\t</NcNoteCard>\n\t\t\t\t<div class=\"modal__button-row\">\n\t\t\t\t\t<NcButton type=\"secondary\"\n\t\t\t\t\t\t@click=\"showRemoveGroupModal = false\">\n\t\t\t\t\t\t{{ t('settings', 'Cancel') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton type=\"primary\"\n\t\t\t\t\t\t@click=\"removeGroup\">\n\t\t\t\t\t\t{{ t('settings', 'Confirm') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</NcModal>\n\n\t\t<NcAppNavigationItem :key=\"id\"\n\t\t\tref=\"listItem\"\n\t\t\t:exact=\"true\"\n\t\t\t:name=\"name\"\n\t\t\t:to=\"{ name: 'group', params: { selectedGroup: encodeURIComponent(id) } }\"\n\t\t\t:loading=\"loadingRenameGroup\"\n\t\t\t:menu-open=\"openGroupMenu\"\n\t\t\t@update:menuOpen=\"handleGroupMenuOpen\">\n\t\t\t<template #icon>\n\t\t\t\t<AccountGroup :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #counter>\n\t\t\t\t<NcCounterBubble v-if=\"count\"\n\t\t\t\t\t:type=\"active ? 'highlighted' : undefined\">\n\t\t\t\t\t{{ count }}\n\t\t\t\t</NcCounterBubble>\n\t\t\t</template>\n\t\t\t<template #actions>\n\t\t\t\t<NcActionInput v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\tref=\"displayNameInput\"\n\t\t\t\t\t:trailing-button-label=\"t('settings', 'Submit')\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t:value=\"name\"\n\t\t\t\t\t:label=\" t('settings', 'Rename group')\"\n\t\t\t\t\t@submit=\"renameGroup(id)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionInput>\n\t\t\t\t<NcActionButton v-if=\"id !== 'admin' && id !== 'disabled' && (settings.isAdmin || settings.isDelegatedAdmin)\"\n\t\t\t\t\t@click=\"showRemoveGroupModal = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('settings', 'Delete group') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcAppNavigationItem>\n\t</Fragment>\n</template>\n\n<script>\nimport { Fragment } from 'vue-frag'\n\nimport NcActionButton from '@nextcloud/vue/components/NcActionButton'\nimport NcActionInput from '@nextcloud/vue/components/NcActionInput'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCounterBubble from '@nextcloud/vue/components/NcCounterBubble'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport NcNoteCard from '@nextcloud/vue/components/NcNoteCard'\n\nimport AccountGroup from 'vue-material-design-icons/AccountGroup.vue'\nimport Delete from 'vue-material-design-icons/Delete.vue'\nimport Pencil from 'vue-material-design-icons/Pencil.vue'\n\nimport { showError } from '@nextcloud/dialogs'\n\nexport default {\n\tname: 'GroupListItem',\n\tcomponents: {\n\t\tAccountGroup,\n\t\tDelete,\n\t\tFragment,\n\t\tNcActionButton,\n\t\tNcActionInput,\n\t\tNcAppNavigationItem,\n\t\tNcButton,\n\t\tNcCounterBubble,\n\t\tNcModal,\n\t\tNcNoteCard,\n\t\tPencil,\n\t},\n\tprops: {\n\t\t/**\n\t\t * If this group is currently selected\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Number of members within this group\n\t\t */\n\t\tcount: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Identifier of this group\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Name of this group\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloadingRenameGroup: false,\n\t\t\topenGroupMenu: false,\n\t\t\tshowRemoveGroupModal: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tsettings() {\n\t\t\treturn this.$store.getters.getServerData\n\t\t},\n\t},\n\tmethods: {\n\t\thandleGroupMenuOpen() {\n\t\t\tthis.openGroupMenu = true\n\t\t},\n\t\tasync renameGroup(gid) {\n\t\t\t// check if group id is valid\n\t\t\tif (gid.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst displayName = this.$refs.displayNameInput.$el.querySelector('input[type=\"text\"]').value\n\n\t\t\t// check if group name is valid\n\t\t\tif (displayName.trim() === '') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.openGroupMenu = false\n\t\t\t\tthis.loadingRenameGroup = true\n\t\t\t\tawait this.$store.dispatch('renameGroup', {\n\t\t\t\t\tgroupid: gid.trim(),\n\t\t\t\t\tdisplayName: displayName.trim(),\n\t\t\t\t})\n\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t} catch {\n\t\t\t\tthis.openGroupMenu = true\n\t\t\t\tthis.loadingRenameGroup = false\n\t\t\t}\n\t\t},\n\t\tasync removeGroup() {\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('removeGroup', this.id)\n\t\t\t\tthis.showRemoveGroupModal = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('settings', 'Failed to delete group \"{group}\"', { group: this.name }))\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=script&lang=js\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=3e2f3c17&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=3e2f3c17&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e2f3c17\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\nexport const useFormatGroups = (groups) => {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter(group => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map(group => formatGroupMenu(group))\n // remove invalid\n .filter(group => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find(group => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=49ad50e4\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=edf83404&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=edf83404&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"edf83404\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * 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, `.footer[data-v-db2a7c4e]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-db2a7c4e]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-db2a7c4e],.footer__cell span[data-v-db2a7c4e],.footer__cell label[data-v-db2a7c4e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-db2a7c4e],.footer__cell--displayname[data-v-db2a7c4e]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-db2a7c4e]{inset-inline-start:0}.footer__cell--displayname[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-db2a7c4e]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-db2a7c4e]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-db2a7c4e]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-db2a7c4e]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--obfuscated[data-v-db2a7c4e]{min-width:400px;width:400px}.footer__cell--fill[data-v-db2a7c4e]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-db2a7c4e]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-db2a7c4e]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-db2a7c4e]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-db2a7c4e]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-db2a7c4e]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDpGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport const isObfuscated = (user) => {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cbad78fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-cbad78fb] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcGuestContent-B0ivUQHg.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,8CAA8C;EAC9C,YAAY;EACZ,yCAAyC;EACzC,4CAA4C;EAC5C,mBAAmB;EACnB,aAAa;EACb,iBAAiB;AACnB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,+DAA+D;AACjE\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-cbad78fb] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#guest-content-vue[data-v-cbad78fb] {\\n color: var(--color-main-text);\\n background-color: var(--color-main-background);\\n min-width: 0;\\n border-radius: var(--border-radius-large);\\n box-shadow: 0 0 10px var(--color-box-shadow);\\n height: fit-content;\\n padding: 15px;\\n margin: 20px auto;\\n}/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n#content.nc-guest-content {\\n overflow: auto;\\n margin-bottom: 0;\\n height: calc(var(--body-height) + var(--body-container-margin));\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","Vue","directive","vElementVisibility","extend","name","props","dataComponent","type","Object","Function","required","dataKey","String","dataSources","Array","itemHeight","Number","extraProps","default","data","bufferItems","index","headerHeight","tableHeight","resizeObserver","computed","startIndex","Math","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","length","lastIndex","hiddenAfterItems","min","paddingTop","paddingBottom","mounted","root","$el","tfoot","$refs","thead","ResizeObserver","debounce","clientHeight","logger","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","methods","handleFooterVisibility","visible","$emit","round","scrollTop","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","_setupProxy","staticClass","_t","_v","ref","attrs","style","_l","item","i","_b","key","tag","directives","rawName","value","expression","components","NcButton","NcDialog","NcPasswordField","NcSelect","NcTextField","loading","newUser","quotaOptions","possibleManagers","managerInputLabel","t","managerLabel","promise","showConfig","$store","getters","getShowConfig","settings","getServerData","usernameLabel","newUserGenerateUserID","minPasswordLength","getPasswordPolicyMinLength","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","group","languages","commonLanguages","otherLanguages","beforeMount","searchUserManager","username","focus","createUser","all","dispatch","userid","password","displayName","email","mailAddress","groups","map","subadmin","subAdminsGroups","quota","language","code","manager","error","response","ocs","meta","statuscode","searchGroups","query","toggleLoading","cancel","search","offset","limit","commit","createGroup","_ref","gid","addGroup","isCreating","canAdd","validateQuota","validQuota","OC","Util","computerFileSize","formatFileSize","parseFileSize","label","languageFilterBy","option","some","_ref2","toLocaleLowerCase","includes","then","users","values","_g","scopedSlots","_u","fn","_s","proxy","$listeners","on","$event","preventDefault","apply","arguments","$set","newUserRequireEmail","_e","at","model","callback","$$v","showLanguages","class","NcLoadingIcon","Boolean","filteredUsers","userCount","n","hasObfuscated","passwordLabel","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","namespaceMapping","ext","mime","rootNameMapping","rss","svg","XmlTextDetector","constructor","firstTag","onEnd","parser","sax","xmlns","nesting","onerror","e","message","startsWith","fileType","undefined","onopentag","node","uri","toLowerCase","fullScan","onclosetag","write","text","close","isValid","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","disabled","edit","user","editSvg","SvgCheck","SvgPencil","enabledActions","action","enabled","isSvg","string","TypeError","trim","xmlTextDetector","toggleEdit","icon","event","r","_sfc_main","inject","isInSemanticMenu","from","setup","labelId","G","_sfc_render","_sfc_staticRenderFns","exports","mixins","A","prop","validator","checked","modelValue","emits","util","warn","u","isFocusable","ariaChecked","toggleInput","click","onChange","focusable","domProps","_q","indexOf","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","mdiArrowRight","computedId","onInput","target","onSubmit","stopPropagation","onClick","isIconUrl","backgroundImage","$attrs","selection","showDetails","showdetails","color","test","formattedColor","backgroundColor","NcInputConfirmCancel","editLabel","editPlaceholder","newItemValue","newItemActive","handleNewItem","$nextTick","newItemInput","focusInput","cancelNewItem","handleNewItemDone","_sfc_main$1","title","fillColor","size","_sfc_render$1","_sfc_staticRenderFns$1","Cog","ClickOutside","clickOutsideOptions","open","clickOutsideConfig","closeMenu","toggleMenu","queue","concurrency","__name","hash","alt","src","__props","emit","canvas","imageLoaded","drawBlurHash","l","height","width","pixels","ctx","getContext","imageData","createImageData","set","putImageData","immediate","url","resolve","Promise","withResolvers","add","image","Image","onload","preloadImage","success","__sfc","_setup","$style","fadeTransition","fadeTransitionActive","__cssModules","_sfc_injectStyles","NcAvatar","collection","detailsOpen","newName","getIcon","resource","iconClass","typeClass","resources","isArray","getComponent","route","g","$router","link","component","to","href","iconUrl","mimetype","MimeType","getIconUrl","toggleDetails","removeResource","collectionId","resourceType","resourceId","openRename","renameCollection","composing","extractOcsData","NcCollectionListItem","isActive","storedCollections","fetchCollectionsByResource","createCollection","addResourceToCollection","removeResourceFromCollection","addCollection","updateCollection","findIndex","async","post","addResourceService","collections","get","getCollectionsByResourceService","addCollections","baseResourceType","baseResourceId","createCollectionService","collectionName","put","renameCollectionService","delete","params","removeResourceService","removeCollection","useCollections","searchCollections","searchService","catch","console","finally","selectIsOpen","generatingCodes","codes","collectionsError","isSelectOpen","placeholder","window","OCP","Collaboration","getTypes","sort","forEach","method","getLabel","trigger","find","resourceIdentifier","watch","deep","handler","select","selectedOption","setError","showSelect","setTimeout","renameCollectionFromItem","_m","document","getElementById","classList","destroyed","remove","ariaLabel","description","descriptionId","_sfc_main$4","_sfc_render$4","_sfc_staticRenderFns$4","AccountGroup","_sfc_main$3","_sfc_render$3","_sfc_staticRenderFns$3","OpenInNew","teamResourceProviders","circles","_sfc_main$2","ChevronDown","ChevronUp","providerId","itemId","appEnabled","appswebroots","config","version","split","teamResources","teamOpen","isVisible","teamProviders","teamId","team","t2","reduce","acc","provider","fetchTeamResources","created","teams","toggleOpen","splice","_sfc_render$2","iconEmoji","iconSvg","iconURL","_sfc_staticRenderFns$2","NcTeamResources","labelTranslated","resourceName","NcResource","fileInfo","header","primary","related_resources","subline","hasResourceInfo","isFiles","fetchRelatedResources","saving","indicatorColor","__default__","assign","ariaLabelClearSelected","ariaLabelListbox","ariaLabelDeselectOption","optionLabel","keepOpen","filterBy","inputId","inputLabel","labelOutside","multiple","noWrap","clickableArea","parseInt","getComputedStyle","body","getPropertyValue","gridBaseLine","avatarSize","localFilterBy","search2","match","subname","NcListItemIcon","$props","hint","submitTranslated","idSubmit","checkIfDarkTheme","el","backgroundInvertIfDark","isDarkTheme","isDarkSystemTheme","updateIsDarkTheme","attributes","useIsDarkThemeElement","Symbol","toStringTag","externalActions","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","selectedGroups","selectedSubAdminGroups","userGroups","userSubAdminGroups","usedSpace","quotaUsed","used","usedQuota","pow","isNaN","userQuota","humanQuota","userLanguage","userLang","concat","lang","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","formatDate","userLastLogin","relativeModifiedDate","NcProgressBar","UserRowActions","UserRowMixin","selectedQuota","rand","random","toString","substring","loadingPossibleManagers","currentManager","editing","groupsDetails","subAdminGroupsDetails","subadmins","disable","wipe","editedDisplayName","displayname","editedPassword","editedMail","isObfuscated","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","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","filterManagers","managers","userId","searchInitialUserManager","loadGroupsDetails","loadUserGroups","selectedGroup","loadSubAdminGroupsDetails","loadUserSubAdminGroups","updateUserManager","previousManager","showError","updateDisplayName","updatePassword","updateEmail","addUserGroup","removeUserGroup","canRemove","$route","addUserSubAdmin","removeUserSubAdmin","setUserQuota","setUserLanguage","displayNameField","inputField","input","backendCapabilities","setDisplayName","canChangePassword","setPassword","backend","storageLocation","freeze","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","mdiAccountGroup","rowHeight","UserRow","isInitialLoad","searchQuery","getUsers","quotaPreset","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","val","redirectIfDisabled","loadUsers","setNewUserDefaultGroup","Notification","showTemporary","resetForm","subscribe","resetSearch","unsubscribe","handleScrollEnd","closeDialog","defaultLanguage","currentGroup","allGroups","getGroups","usercount","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","decodeURIComponent","OCA","Settings","registerAction","inheritAttrs","headingId","isHeading","headingLevel","wrapperTag","captionTag","hasActions","$slots","NcAppNavigationCaption","storage","persist","build","emojiIndex","emojiSearch","maxResults","EmojiIndex","currentSkinTone","getCurrentSkinTone","results","frequently","emoji","getSkin","emojiAddRecent","emojiData","skinTone","getItem","setCurrentSkinTone","setItem","formatGroup","controller","AbortController","CancelablePromise","reject","onCancel","abort","axios","generateOcsUrl","signal","_ref3","_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","clearTimeout","renderWidget","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","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","nativeOn","NcRawLinkInput","rounded","thumbnailUrl","NcSearchResult","DotsHorizontalIcon","D","showEmptyContent","searchPlaceholder","selectedResult","resultsBySearchProvider","searching","searchingMoreOf","noOptionsText","mySearchPlaceholder","searchProviderIds","rawLinkEntry","formattedSearchResults","resourceUrl","isRawLink","pid","entries","isCustomGroupTitle","providerEntriesWithId","isPaginated","isMore","isLoading","resetResults","cancelSearchRequests","onSearchInput","updateSearch","onSelectResultSelected","searchMoreOf","searchProviderId","searchProviders","searchPromises","searchOneProvider","cursor","allSettled","promises","status","reason","term","NcSearch","MODES","standardLinkInput","searchInput","customElement","initialProvider","focusOnCreate","mode","pickerWrapperStyle","onEscapePressed","deselectProvider","cancelProviderSelection","cancelCustomElement","cancelSearch","cancelRawLinkInput","submitLink","timestamp","floor","Date","now","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","sharingToken","NcReferenceList","remarkPlaceholder","ast","node2","placeholders","index2","list2","matches","children","remarkUnescape","tree","ccount","character","source","count","asciiAlpha","regexCheck","asciiAlphanumeric","markdownLineEnding","code2","markdownLineEndingOrSpace","markdownSpace","unicodePunctuation","unicodeWhitespace","convert","ok","castFactory","tests","checks","parameters","anyFactory","check","checkAsRecord","nodeAsRecord","propsFactory","testFunction","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","visitor","reverse","is","factory","parents","visit2","subresult","grandparents","toResult","nodeAsParent","child","toFunction","replace2","inConstruct","notInConstruct","enterLiteralAutolink","token","enter","enterLiteralAutolinkValue","autolinkProtocol","exitLiteralAutolinkHttp","exit","exitLiteralAutolinkWww","stack","sliceSerialize","exitLiteralAutolinkEmail","autolinkEmail","exitLiteralAutolink","transformGfmAutolinkLiterals","ignored","ignore","pairs","tupleOrList","tuple","escapeStringRegexp","toPairs","pairIndex","grandparent","siblings","start","change","nodes","matchObject","global","findAndReplace","findUrl","findEmail","_","protocol","domain2","path2","previous","parts","isCorrectDomain","trailExec","trail2","closingParenIndex","openingParens","closingParens","splitUrl","atext","charCodeAt","normalizeIdentifier","enterFootnoteDefinition","identifier","enterFootnoteDefinitionLabelString","exitFootnoteDefinitionLabelString","exitFootnoteDefinition","enterFootnoteCall","enterFootnoteCallString","exitFootnoteCallString","exitFootnoteCall","footnoteReference","info","tracker","createTracker","move","exit2","subexit","safe","associationId","current","before","after","footnoteDefinition","shift","indentLines","containerFlow","map$2","blank","peek","constructsWithoutStrikethrough","enterStrikethrough","exitStrikethrough","handleDelete","containerPhrasing","defaultStringLength","toAlignment","codePointAt","map$1","listInScope","none","hardBreak","_1","unsafe","pattern","checkQuote","marker","quote","emphasis","checkEmphasis","emptyOptions$1","one","includeImageAlt","includeHtml","html","suffix","imageReference","referenceType","inlineCode","sequence","compilePattern","atBreak","formatLinkAsAutolink","raw","resourceLink","value2","linkReference","text2","checkBullet","bullet","checkRule","rule","phrasing","strong","checkStrong","handle","blockquote","break","fence","checkFence","fences","formatCodeAsIndented","exit3","repeat","expected","longestStreak","encode","definition","heading","rank","depth","literalWithBreak","node3","setext","formatHeadingAsSetext","subexit2","lastIndexOf","closeAtx","list","bulletCurrent","ordered","bulletOrdered","checkBulletOrdered","bulletOther","checkBulletOther","useDifferentMarker","bulletLastUsed","firstListItem","indexStack","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","mdiAccount","mdiAccountOff","mdiCog","mdiShieldAccount","mdiHistory","NcAppNavigation","UserSettingsDialog","AppNavigationGroupList"],"sourceRoot":""}
|