{"version":3,"file":"guests-users.mjs","sources":["../node_modules/@nextcloud/vue/dist/Functions/dialog.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog-BM_wTqUn.mjs","../node_modules/@nextcloud/dialogs/dist/index.mjs","../node_modules/@mdi/svg/svg/account-arrow-right.svg?raw","../node_modules/@nextcloud/vue/dist/chunks/AlertCircleOutline-DBxbepLy.mjs","../node_modules/@nextcloud/vue/dist/chunks/Check-BkThHPH7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputField-1ujONIvp.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcTextField-BE9R1pLt.mjs","../src/components/TransferGuestDialog.vue","../src/users.ts"],"sourcesContent":["import Vue, { toRaw } from \"vue\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nfunction spawnDialog(dialog, props = {}, optionsOrOnClose = {}, onClose = () => {\n}) {\n if (typeof optionsOrOnClose === \"function\") {\n onClose = optionsOrOnClose;\n optionsOrOnClose = {};\n }\n let { container } = optionsOrOnClose;\n if (\"container\" in props && typeof props.container === \"string\") {\n container != null ? container : container = props.container;\n }\n const resolvedContainer = typeof container === \"string\" && document.querySelector(container) || document.body;\n const element = resolvedContainer.appendChild(document.createElement(\"div\"));\n const vm = new Vue({\n el: element,\n name: \"VueDialogHelper\",\n render: (h) => h(dialog, {\n props: __spreadValues({\n // If dialog has no `container` prop passing a falsy value does nothing\n // Otherwise it is expected that `null` disables teleport and mounts dialog in place like NcDialog/NcModal\n container: null\n }, props),\n on: {\n close: (...rest) => {\n onClose(...rest.map((v) => toRaw(v)));\n vm.$destroy();\n element.remove();\n }\n }\n })\n });\n return vm;\n}\nexport {\n spawnDialog\n};\n//# sourceMappingURL=dialog.mjs.map\n","import '../assets/NcDialog-COuFb47k.css';\nimport { useElementSize } from \"@vueuse/core\";\nimport { defineComponent, ref, computed } from \"vue\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { N as NcDialogButton } from \"./NcDialogButton-Cr0wVMne.mjs\";\nimport NcModal from \"../Components/NcModal.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = defineComponent({\n name: \"NcDialog\",\n components: {\n NcDialogButton,\n NcModal\n },\n props: {\n /** Name of the dialog (the heading) */\n name: {\n type: String,\n required: true\n },\n /** Text of the dialog */\n message: {\n type: String,\n default: \"\"\n },\n /** Additional elements to add to the focus trap */\n additionalTrapElements: {\n type: Array,\n validator: (arr) => {\n return Array.isArray(arr) && arr.every((element) => typeof element === \"string\" || element instanceof HTMLElement);\n },\n default: () => []\n },\n /**\n * The element where to mount the dialog, if `null` is passed the dialog is mounted in place\n *\n * @default 'body'\n */\n container: {\n type: String,\n required: false,\n default: \"body\"\n },\n /**\n * Whether the dialog should be shown\n *\n * @default true\n */\n open: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Size of the underlying NcModal\n *\n * @default 'small'\n * @type {'small'|'normal'|'large'|'full'}\n */\n size: {\n type: String,\n required: false,\n default: \"small\",\n validator: (value) => typeof value === \"string\" && [\"small\", \"normal\", \"large\", \"full\"].includes(value)\n },\n /**\n * Buttons to display\n *\n * @default []\n */\n buttons: {\n type: Array,\n required: false,\n default: () => [],\n validator: (value) => Array.isArray(value) && value.every((element) => typeof element === \"object\")\n },\n /**\n * Do not show the close button for the dialog.\n *\n * @default false\n */\n noClose: {\n type: Boolean,\n default: false\n },\n /**\n * Set to false to no show a close button on the dialog\n *\n * @deprecated - Use `noClose` instead. Will be removed in v9.\n * @default true\n */\n canClose: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Close the dialog if the user clicked outside of the dialog\n * Only relevant if `canClose` is set to true.\n */\n closeOnClickOutside: {\n type: Boolean,\n default: false\n },\n /**\n * Make the dialog wrapper a HTML form element.\n * The buttons will be wrapped within the form so they can be used as submit / reset buttons.\n * Please note that when using the property the `navigation` should not be used.\n */\n isForm: {\n type: Boolean,\n default: false\n },\n /**\n * Declare if hiding the modal should be animated\n *\n * @default false\n */\n outTransition: {\n type: Boolean,\n default: false\n },\n /**\n * Optionally pass additional classes which will be set on the navigation for custom styling\n *\n * @default ''\n * @example\n * ```html\n * \n * \n * \n * ```\n */\n navigationClasses: {\n type: [String, Array, Object],\n required: false,\n default: \"\"\n },\n /**\n * aria-label for the dialog navigation.\n * Use it when you want to provide a more meaningful label than the dialog name.\n *\n * By default, navigation is labeled by the dialog name.\n */\n navigationAriaLabel: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * aria-labelledby for the dialog navigation.\n * Use it when you have an implicit navigation label (e.g. a heading).\n *\n * By default, navigation is labeled by the dialog name.\n */\n navigationAriaLabelledby: {\n type: String,\n required: false,\n default: \"\"\n },\n /**\n * Optionally pass additional classes which will be set on the content wrapper for custom styling\n *\n * @default ''\n */\n contentClasses: {\n type: [String, Array, Object],\n required: false,\n default: \"\"\n },\n /**\n * Optionally pass additional classes which will be set on the dialog itself\n * (the default `class` attribute will be set on the modal wrapper)\n *\n * @default ''\n */\n dialogClasses: {\n type: [String, Array, Object],\n required: false,\n default: \"\"\n }\n },\n emits: [\"closing\", \"update:open\", \"submit\"],\n setup(props, { emit, slots }) {\n const wrapper = ref();\n const { width: dialogWidth } = useElementSize(wrapper, { width: 900 });\n const isNavigationCollapsed = computed(() => dialogWidth.value < 876);\n const hasNavigation = computed(() => (slots == null ? void 0 : slots.navigation) !== void 0);\n const navigationId = GenRandomId();\n const navigationAriaLabelAttr = computed(() => props.navigationAriaLabel || void 0);\n const navigationAriaLabelledbyAttr = computed(() => {\n if (props.navigationAriaLabel) {\n return void 0;\n }\n return props.navigationAriaLabelledby || navigationId;\n });\n const dialogElement = ref();\n const dialogTagName = computed(() => props.isForm && !hasNavigation.value ? \"form\" : \"div\");\n const dialogListeners = computed(() => dialogTagName.value === \"form\" ? {\n /**\n * @param {SubmitEvent} event Form submit event\n */\n submit(event) {\n event.preventDefault();\n emit(\"submit\", event);\n },\n /**\n * @param {Event} event Form submit event\n */\n reset(event) {\n event.preventDefault();\n emit(\"reset\", event);\n }\n } : {});\n const showModal = ref(true);\n function handleButtonClose(button, result) {\n if ((button.type === \"submit\" || button.nativeType === \"submit\") && dialogTagName.value === \"form\" && !dialogElement.value.reportValidity()) {\n return;\n }\n handleClosing(result);\n window.setTimeout(() => handleClosed(), 300);\n }\n function handleClosing(result) {\n showModal.value = false;\n emit(\"closing\", result);\n }\n function handleClosed() {\n showModal.value = true;\n emit(\"update:open\", false);\n }\n const modalProps = computed(() => ({\n noClose: props.noClose || !props.canClose,\n container: props.container === void 0 ? \"body\" : props.container,\n // we do not pass the name as we already have the name as the headline\n // name: props.name,\n // But we need to set the correct label id so the dialog is labelled\n labelId: navigationId,\n size: props.size,\n show: props.open && showModal.value,\n outTransition: props.outTransition,\n closeOnClickOutside: props.closeOnClickOutside,\n additionalTrapElements: props.additionalTrapElements\n }));\n return {\n dialogElement,\n dialogListeners,\n dialogTagName,\n handleButtonClose,\n handleClosing,\n handleClosed,\n hasNavigation,\n navigationId,\n navigationAriaLabelAttr,\n navigationAriaLabelledbyAttr,\n isNavigationCollapsed,\n modalProps,\n wrapper\n };\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.open ? _c(\"NcModal\", _vm._b({ staticClass: \"dialog__modal\", attrs: { \"enable-slideshow\": false, \"enable-swipe\": false }, on: { \"close\": _vm.handleClosed, \"update:show\": function($event) {\n return _vm.handleClosing();\n } } }, \"NcModal\", _vm.modalProps, false), [_c(\"h2\", { staticClass: \"dialog__name\", attrs: { \"id\": _vm.navigationId }, domProps: { \"textContent\": _vm._s(_vm.name) } }), _c(_vm.dialogTagName, _vm._g({ ref: \"dialogElement\", tag: \"component\", staticClass: \"dialog\", class: _vm.dialogClasses }, _vm.dialogListeners), [_c(\"div\", { ref: \"wrapper\", staticClass: \"dialog__wrapper\", class: { \"dialog__wrapper--collapsed\": _vm.isNavigationCollapsed } }, [_vm.hasNavigation ? _c(\"nav\", { staticClass: \"dialog__navigation\", class: _vm.navigationClasses, attrs: { \"aria-label\": _vm.navigationAriaLabelAttr, \"aria-labelledby\": _vm.navigationAriaLabelledbyAttr } }, [_vm._t(\"navigation\", null, { \"isCollapsed\": _vm.isNavigationCollapsed })], 2) : _vm._e(), _c(\"div\", { staticClass: \"dialog__content\", class: _vm.contentClasses }, [_vm._t(\"default\", function() {\n return [_c(\"p\", { staticClass: \"dialog__text\" }, [_vm._v(\" \" + _vm._s(_vm.message) + \" \")])];\n })], 2)]), _c(\"div\", { staticClass: \"dialog__actions\" }, [_vm._t(\"actions\", function() {\n return _vm._l(_vm.buttons, function(button, idx) {\n return _c(\"NcDialogButton\", _vm._b({ key: idx, on: { \"click\": (_, result) => _vm.handleButtonClose(button, result) } }, \"NcDialogButton\", button, false));\n });\n })], 2)])], 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 \"66c29e13\"\n);\nconst NcDialog = __component__.exports;\nexport {\n NcDialog as N\n};\n//# sourceMappingURL=NcDialog-BM_wTqUn.mjs.map\n","import { basename } from \"path\";\nimport { spawnDialog as spawnDialog$1 } from \"@nextcloud/vue/functions/dialog\";\nimport { t, a as n, n as normalizeComponent } from \"./chunks/_plugin-vue2_normalizer-jrlE7CJU.mjs\";\nimport { h, f, g, d, e, c, T, b, l, k, o, s, i, m, j } from \"./chunks/_plugin-vue2_normalizer-jrlE7CJU.mjs\";\nimport { defineComponent, onMounted, onUnmounted, defineAsyncComponent } from \"vue\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcNoteCard from \"@nextcloud/vue/components/NcNoteCard\";\nconst IconMove = '';\nconst IconCopy = '';\nvar FilePickerType = /* @__PURE__ */ ((FilePickerType2) => {\n FilePickerType2[FilePickerType2[\"Choose\"] = 1] = \"Choose\";\n FilePickerType2[FilePickerType2[\"Move\"] = 2] = \"Move\";\n FilePickerType2[FilePickerType2[\"Copy\"] = 3] = \"Copy\";\n FilePickerType2[FilePickerType2[\"CopyMove\"] = 4] = \"CopyMove\";\n FilePickerType2[FilePickerType2[\"Custom\"] = 5] = \"Custom\";\n return FilePickerType2;\n})(FilePickerType || {});\nclass FilePickerClosed extends Error {\n}\nclass FilePicker {\n title;\n multiSelect;\n mimeTypeFilter;\n directoriesAllowed;\n buttons;\n path;\n filter;\n container;\n disabledNavigation;\n constructor(title, multiSelect, mimeTypeFilter, directoriesAllowed, buttons, path, filter, container, disabledNavigation = false) {\n this.title = title;\n this.multiSelect = multiSelect;\n this.mimeTypeFilter = mimeTypeFilter;\n this.directoriesAllowed = directoriesAllowed;\n this.path = path;\n this.filter = filter;\n this.buttons = buttons;\n this.container = container;\n this.disabledNavigation = disabledNavigation;\n }\n /**\n * Pick files using the FilePicker.\n *\n * @return Promise with array of picked files or rejected promise on close without picking\n */\n async pickNodes() {\n const { FilePickerVue } = await import(\"./chunks/index-BC-7VPxC.mjs\");\n return new Promise((resolve, reject) => {\n spawnDialog$1(FilePickerVue, {\n allowPickDirectory: this.directoriesAllowed,\n buttons: this.buttons,\n container: this.container,\n name: this.title,\n path: this.path,\n mimetypeFilter: this.mimeTypeFilter,\n multiselect: this.multiSelect,\n filterFn: this.filter,\n disabledNavigation: this.disabledNavigation\n }, (...rest) => {\n const [nodes] = rest;\n if (!Array.isArray(nodes) || nodes.length === 0) {\n reject(new FilePickerClosed(\"FilePicker: No nodes selected\"));\n } else {\n resolve(nodes);\n }\n });\n });\n }\n /**\n * Pick files using the FilePicker\n *\n * @return Promise with array of paths of picked files or rejected promise on close without picking\n */\n async pick() {\n const nodes = await this.pickNodes();\n if (this.multiSelect) {\n return nodes.map((node) => node.path);\n }\n const path = nodes[0]?.path ?? \"/\";\n return path;\n }\n}\nclass FilePickerBuilder {\n title;\n multiSelect = false;\n mimeTypeFilter = [];\n directoriesAllowed = false;\n path;\n filter;\n buttons = [];\n container;\n disabledNavigation = false;\n /**\n * Construct a new FilePicker\n *\n * @param title Title of the FilePicker\n */\n constructor(title) {\n this.title = title;\n }\n /**\n * Set the container where the FilePicker will be mounted\n * By default 'body' is used\n *\n * @param container The dialog container\n */\n setContainer(container) {\n this.container = container;\n return this;\n }\n /**\n * Enable or disable picking multiple files\n *\n * @param ms True to enable picking multiple files, false otherwise\n */\n setMultiSelect(ms) {\n this.multiSelect = ms;\n return this;\n }\n /**\n * Add allowed MIME type\n *\n * @param filter MIME type to allow\n */\n addMimeTypeFilter(filter) {\n this.mimeTypeFilter.push(filter);\n return this;\n }\n /**\n * Set allowed MIME types\n *\n * @param filter Array of allowed MIME types\n */\n setMimeTypeFilter(filter) {\n this.mimeTypeFilter = filter;\n return this;\n }\n /**\n * Add a button to the FilePicker\n * Note: This overrides any previous `setButtonFactory` call\n *\n * @param button The button\n */\n addButton(button) {\n if (typeof this.buttons === \"function\") {\n console.warn(\"FilePicker buttons were set to factory, now overwritten with button object.\");\n this.buttons = [];\n }\n this.buttons.push(button);\n return this;\n }\n /**\n * Set the button factory which is used to generate buttons from current view, path and selected nodes\n * Note: This overrides any previous `addButton` call\n *\n * @param factory The button factory\n */\n setButtonFactory(factory) {\n this.buttons = factory;\n return this;\n }\n /**\n * Set FilePicker type based on legacy file picker types\n * @param type The legacy filepicker type to emulate\n * @deprecated Use `addButton` or `setButtonFactory` instead as with setType you do not know which button was pressed\n */\n setType(type) {\n this.buttons = (nodes, path) => {\n const buttons = [];\n const node = nodes?.[0]?.attributes?.displayName || nodes?.[0]?.basename;\n const target = node || basename(path);\n if (type === 1) {\n let label = t(\"Choose\");\n if (nodes.length === 1) {\n label = t(\"Choose {file}\", { file: node });\n } else if (this.multiSelect) {\n label = n(\"Choose %n file\", \"Choose %n files\", nodes.length);\n }\n buttons.push({\n callback: () => {\n },\n type: \"primary\",\n label\n });\n }\n if (type === 4 || type === 3) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Copy to {target}\", { target }) : t(\"Copy\"),\n icon: IconCopy,\n variant: type === 3 ? \"primary\" : \"secondary\"\n });\n }\n if (type === 4 || type === 2) {\n buttons.push({\n callback: () => {\n },\n label: target ? t(\"Move to {target}\", { target }) : t(\"Move\"),\n icon: IconMove,\n variant: \"primary\"\n // move is always primary - also on copy-move\n });\n }\n return buttons;\n };\n return this;\n }\n /**\n * Allow to pick directories besides files\n *\n * @param allow True to allow picking directories\n */\n allowDirectories(allow = true) {\n this.directoriesAllowed = allow;\n return this;\n }\n /**\n * Set starting path of the FilePicker\n *\n * @param path Path to start from picking\n */\n startAt(path) {\n this.path = path;\n return this;\n }\n /**\n * Add filter function to filter file list of FilePicker\n *\n * @param filter Filter function to apply\n */\n setFilter(filter) {\n this.filter = filter;\n return this;\n }\n /**\n * Disable navigation (view selection)\n */\n disableNavigation() {\n this.disabledNavigation = true;\n return this;\n }\n /**\n * Construct the configured FilePicker\n */\n build() {\n return new FilePicker(\n this.title,\n this.multiSelect,\n this.mimeTypeFilter,\n this.directoriesAllowed,\n this.buttons,\n this.path,\n this.filter,\n this.container,\n this.disabledNavigation\n );\n }\n}\nfunction getFilePickerBuilder(title) {\n return new FilePickerBuilder(title);\n}\nconst spawnDialog = spawnDialog$1;\nvar DialogSeverity = /* @__PURE__ */ ((DialogSeverity2) => {\n DialogSeverity2[\"Info\"] = \"info\";\n DialogSeverity2[\"Warning\"] = \"warning\";\n DialogSeverity2[\"Error\"] = \"error\";\n return DialogSeverity2;\n})(DialogSeverity || {});\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"GenericDialog\",\n props: {\n name: null,\n text: null,\n html: null,\n buttons: null,\n severity: null\n },\n setup(__props) {\n const props = __props;\n const handleUnload = () => `${props.name}: ${props.text}`;\n onMounted(() => window.addEventListener(\"unload\", handleUnload));\n onUnmounted(() => window.removeEventListener(\"unload\", handleUnload));\n return { __sfc: true, props, handleUnload, NcDialog, NcNoteCard };\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(_setup.NcDialog, { attrs: { \"dialog-classes\": \"nc-generic-dialog\", \"buttons\": _vm.buttons, \"name\": _vm.name, \"message\": _vm.text }, on: { \"update:open\": function($event) {\n return _vm.$emit(\"close\");\n } } }, [_vm.severity ? _c(_setup.NcNoteCard, { attrs: { \"type\": _vm.severity } }, [_c(\"p\", { domProps: { \"textContent\": _vm._s(_vm.text) } })]) : _vm._e(), _vm.html ? _c(\"div\", { domProps: { \"innerHTML\": _vm._s(_vm.html) } }) : _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 null\n);\nconst GenericDialog = __component__.exports;\nclass Dialog {\n #name;\n #text;\n #buttons;\n #severity;\n #dialog;\n /** @deprecated */\n #html;\n constructor(name, text, buttons = [], severity) {\n this.#name = name;\n this.#text = text;\n this.#buttons = buttons;\n this.#severity = severity;\n this.#dialog = void 0;\n this.#html = void 0;\n }\n /**\n * @deprecated DO NOT USE! It will be removed in the near future!\n * @param html HTML content\n */\n setHTML(html) {\n this.#html = html;\n return this;\n }\n /**\n * Spawn and show the dialog - if already open the previous instance will be destroyed\n * @return Promise that resolves when the dialog is answered successfully and rejects on close\n */\n async show() {\n if (this.#dialog) {\n this.#dialog.$destroy();\n }\n return new Promise((resolve) => {\n this.#dialog = spawnDialog$1(\n GenericDialog,\n {\n buttons: this.#buttons,\n name: this.#name,\n text: this.#text,\n severity: this.#severity,\n html: this.#html\n },\n resolve\n );\n });\n }\n /**\n * Hide and destroy the current dialog instance\n *\n * @deprecated use the promise of the `show` methods for the user interaction.\n */\n hide() {\n this.#dialog?.$destroy();\n }\n}\nclass DialogBuilder {\n #severity;\n #text;\n #name;\n #buttons;\n constructor(name) {\n this.#severity = void 0;\n this.#text = \"\";\n this.#name = name ?? \"\";\n this.#buttons = [];\n }\n /**\n * Set dialog name\n * @param name The name or headline of the dialog\n */\n setName(name) {\n this.#name = name;\n return this;\n }\n /**\n * Set the dialog text\n * @param text Main text of the dialog\n */\n setText(text) {\n this.#text = text;\n return this;\n }\n /**\n * Set the severity of the dialog\n * @param severity Severity of the dialog\n */\n setSeverity(severity) {\n this.#severity = severity;\n return this;\n }\n /**\n * Set buttons from array\n * @param buttons Either an array of dialog buttons\n */\n setButtons(buttons) {\n if (this.#buttons.length > 0) {\n console.warn(\"[@nextcloud/dialogs] Dialog buttons are already set - this overrides previous buttons.\");\n }\n this.#buttons = buttons;\n return this;\n }\n /**\n * Add a single button\n * @param button Button to add\n */\n addButton(button) {\n this.#buttons.push(button);\n return this;\n }\n build() {\n return new Dialog(this.#name, this.#text, this.#buttons, this.#severity);\n }\n}\nfunction getDialogBuilder(name) {\n return new DialogBuilder(name);\n}\nfunction showGuestUserPrompt(props) {\n return new Promise((resolve) => {\n spawnDialog$1(\n defineAsyncComponent(() => import(\"./chunks/PublicAuthPrompt-ecDAsnUN.mjs\")),\n props,\n resolve\n );\n });\n}\nexport {\n Dialog,\n DialogBuilder,\n DialogSeverity,\n FilePicker,\n FilePickerBuilder,\n FilePickerClosed,\n FilePickerType,\n h as TOAST_ARIA_LIVE_ASSERTIVE,\n f as TOAST_ARIA_LIVE_OFF,\n g as TOAST_ARIA_LIVE_POLITE,\n d as TOAST_DEFAULT_TIMEOUT,\n e as TOAST_PERMANENT_TIMEOUT,\n c as TOAST_UNDO_TIMEOUT,\n T as ToastAriaLive,\n b as ToastType,\n getDialogBuilder,\n getFilePickerBuilder,\n l as showError,\n showGuestUserPrompt,\n k as showInfo,\n o as showLoading,\n s as showMessage,\n i as showSuccess,\n m as showUndo,\n j as showWarning,\n spawnDialog\n};\n//# sourceMappingURL=index.mjs.map\n","export default \"\"","import { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"AlertCircleOutlineIcon\",\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 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon alert-circle-outline-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\": \"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _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 AlertCircle = __component__.exports;\nexport {\n AlertCircle as A\n};\n//# sourceMappingURL=AlertCircleOutline-DBxbepLy.mjs.map\n","import { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"CheckIcon\",\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 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon check-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\": \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _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 Check = __component__.exports;\nexport {\n Check as C\n};\n//# sourceMappingURL=Check-BkThHPH7.mjs.map\n","import '../assets/NcInputField-BI3vWgSo.css';\nimport { A as AlertCircle } from \"./AlertCircleOutline-DBxbepLy.mjs\";\nimport { C as Check } from \"./Check-BkThHPH7.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-DBUi8saj.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { i as isLegacy32 } from \"./legacy-NU_qxPFK.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { N as NcButton } from \"./NcButton-D3CaJu1f.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcInputField\",\n components: {\n NcButton,\n AlertCircle,\n Check\n },\n inheritAttrs: false,\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: {\n /**\n * Removed in v9 - use `modelValue` (`v-model`) instead\n *\n * @deprecated\n */\n value: {\n type: [String, Number],\n default: void 0\n },\n /**\n * The value of the input field\n * If type is 'number' and a number is passed as value than the type of `update:modelValue` will also be 'number'\n */\n modelValue: {\n type: [String, Number],\n default: void 0\n },\n /**\n * The type of the input element\n */\n type: {\n type: String,\n default: \"text\",\n validator: (value) => [\n \"text\",\n \"password\",\n \"email\",\n \"tel\",\n \"url\",\n \"search\",\n \"number\"\n ].includes(value)\n },\n /**\n * The input label, always provide one for accessibility purposes.\n * This will also be used as a placeholder unless the placeholder\n * prop is populated with a different string.\n *\n * Note: If the background color is not `--color-main-background` consider using an external label instead (see `labelOutside`).\n */\n label: {\n type: String,\n default: void 0\n },\n /**\n * Pass in true if you want to use an external label. This is useful\n * if you need a label that looks different from the one provided by\n * this component\n */\n labelOutside: {\n type: Boolean,\n default: false\n },\n /**\n * The placeholder of the input. This defaults as the string that's\n * passed into the label prop. In order to remove the placeholder,\n * pass in an empty string.\n */\n placeholder: {\n type: String,\n default: void 0\n },\n /**\n * Controls whether to display the trailing button.\n */\n showTrailingButton: {\n type: Boolean,\n default: false\n },\n /**\n * Label of the trailing button\n *\n * Required when showTrailingButton is set\n */\n trailingButtonLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Toggles the success state of the component. Adds a checkmark icon.\n * this cannot be used together with canClear.\n */\n success: {\n type: Boolean,\n default: false\n },\n /**\n * Toggles the error state of the component. Adds an error icon.\n * this cannot be used together with canClear.\n */\n error: {\n type: Boolean,\n default: false\n },\n /**\n * Additional helper text message\n *\n * This will be displayed beneath the input field. In case the field is\n * also marked as having an error, the text will be displayed in red.\n */\n helperText: {\n type: String,\n default: \"\"\n },\n /**\n * Disable the input field\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Specifies whether the input should have a pill form.\n * By default, input has rounded corners.\n */\n pill: {\n type: Boolean,\n default: false\n },\n /**\n * Class to add to the input field.\n * Necessary to use NcInputField in the NcActionInput component.\n */\n inputClass: {\n type: [Object, String],\n default: \"\"\n }\n },\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n *\n * @deprecated\n */\n \"update:value\",\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\",\n \"trailing-button-click\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\", true);\n return {\n isLegacy32,\n model\n };\n },\n computed: {\n computedId() {\n return this.$attrs.id && this.$attrs.id !== \"\" ? this.$attrs.id : this.inputName;\n },\n inputName() {\n return \"input\" + GenRandomId();\n },\n hasTrailingIcon() {\n return this.success;\n },\n hasPlaceholder() {\n return this.placeholder !== \"\" && this.placeholder !== void 0;\n },\n computedPlaceholder() {\n if (this.hasPlaceholder) {\n return this.placeholder;\n }\n if (isLegacy32) {\n return this.label;\n }\n return void 0;\n },\n isValidLabel() {\n const isValidLabel = this.label || this.labelOutside;\n if (!isValidLabel) {\n logger.warn(\"You need to add a label to the NcInputField component. Either use the prop label or use an external one, as per the example in the documentation.\");\n }\n return isValidLabel;\n },\n ariaDescribedby() {\n const ariaDescribedby = [];\n if (this.helperText.length > 0) {\n ariaDescribedby.push(\"\".concat(this.inputName, \"-helper-text\"));\n }\n if (this.$attrs[\"aria-describedby\"]) {\n ariaDescribedby.push(this.$attrs[\"aria-describedby\"]);\n }\n return ariaDescribedby.join(\" \") || null;\n }\n },\n methods: {\n /**\n * Focus the input element\n *\n * @public\n */\n focus() {\n this.$refs.input.focus();\n },\n /**\n * Select all the text in the input\n *\n * @public\n */\n select() {\n this.$refs.input.select();\n },\n handleInput(event) {\n const newValue = this.type === \"number\" && typeof this.model === \"number\" ? parseFloat(event.target.value, 10) : event.target.value;\n this.model = newValue;\n },\n handleTrailingButtonClick(event) {\n this.$emit(\"trailing-button-click\", event);\n }\n }\n};\nvar _sfc_render = function render() {\n var _a;\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"input-field\", class: {\n \"input-field--disabled\": _vm.disabled,\n \"input-field--error\": _vm.error,\n \"input-field--label-outside\": _vm.labelOutside || !_vm.isValidLabel,\n \"input-field--leading-icon\": !!_vm.$scopedSlots.icon || !!_vm.$scopedSlots.default || !!_vm.$slots.default,\n \"input-field--success\": _vm.success,\n \"input-field--trailing-icon\": _vm.showTrailingButton || _vm.hasTrailingIcon,\n \"input-field--pill\": _vm.pill,\n \"input-field--legacy\": _vm.isLegacy32\n } }, [_c(\"div\", { staticClass: \"input-field__main-wrapper\" }, [_c(\"input\", _vm._g(_vm._b({ ref: \"input\", staticClass: \"input-field__input\", class: [\n _vm.inputClass,\n {\n \"input-field__input--success\": _vm.success,\n \"input-field__input--error\": _vm.error\n }\n ], attrs: { \"id\": _vm.computedId, \"type\": _vm.type, \"disabled\": _vm.disabled, \"placeholder\": _vm.computedPlaceholder, \"aria-describedby\": _vm.ariaDescribedby, \"aria-live\": \"polite\" }, domProps: { \"value\": (_a = _vm.model) == null ? void 0 : _a.toString() }, on: { \"input\": _vm.handleInput } }, \"input\", _vm.$attrs, false), _vm.$listeners)), !_vm.labelOutside && _vm.isValidLabel ? _c(\"label\", { staticClass: \"input-field__label\", attrs: { \"for\": _vm.computedId } }, [_vm._v(\" \" + _vm._s(_vm.label) + \" \")]) : _vm._e(), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !!_vm.$scopedSlots.icon || !!_vm.$scopedSlots.default || !!_vm.$slots.default, expression: \"!!$scopedSlots.icon || !!$scopedSlots.default || !!$slots.default\" }], staticClass: \"input-field__icon input-field__icon--leading\" }, [_vm._t(\"icon\", function() {\n return [_vm._t(\"default\")];\n })], 2), _vm.showTrailingButton ? _c(\"NcButton\", { staticClass: \"input-field__trailing-button\", attrs: { \"aria-label\": _vm.trailingButtonLabel, \"disabled\": _vm.disabled, \"variant\": \"tertiary-no-background\" }, on: { \"click\": _vm.handleTrailingButtonClick }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm._t(\"trailing-button-icon\")];\n }, proxy: true }], null, true) }) : _vm.success || _vm.error ? _c(\"div\", { staticClass: \"input-field__icon input-field__icon--trailing\" }, [_vm.success ? _c(\"Check\", { staticStyle: { \"color\": \"var(--color-success-text)\" }, attrs: { \"size\": 20 } }) : _vm.error ? _c(\"AlertCircle\", { staticStyle: { \"color\": \"var(--color-error-text)\" }, attrs: { \"size\": 20 } }) : _vm._e()], 1) : _vm._e()], 1), _vm.helperText.length > 0 ? _c(\"p\", { staticClass: \"input-field__helper-text-message\", class: {\n \"input-field__helper-text-message--error\": _vm.error,\n \"input-field__helper-text-message--success\": _vm.success\n }, attrs: { \"id\": \"\".concat(_vm.inputName, \"-helper-text\") } }, [_vm.success ? _c(\"Check\", { staticClass: \"input-field__helper-text-message__icon\", attrs: { \"size\": 18 } }) : _vm.error ? _c(\"AlertCircle\", { staticClass: \"input-field__helper-text-message__icon\", attrs: { \"size\": 18 } }) : _vm._e(), _vm._v(\" \" + _vm._s(_vm.helperText) + \" \")], 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 \"770f8cf7\"\n);\nconst NcInputField = __component__.exports;\nexport {\n NcInputField as N\n};\n//# sourceMappingURL=NcInputField-1ujONIvp.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { b as mdiUndo, c as mdiClose, d as mdiArrowRight } from \"./mdi-CKSXwCsV.mjs\";\nimport { N as NcInputField } from \"./NcInputField-1ujONIvp.mjs\";\nimport { u as useModelMigration } from \"./useModelMigration-DBUi8saj.mjs\";\nimport { r as register, b as t50, c as t17, a as t } from \"./_l10n-DSLCwJSN.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BCVwmZN2.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t17, t50);\nconst NcInputFieldProps = new Set(Object.keys(NcInputField.props));\nconst _sfc_main = {\n name: \"NcTextField\",\n components: {\n NcIconSvgWrapper,\n NcInputField\n },\n // Allow forwarding all attributes\n inheritAttrs: false,\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: __spreadProps(__spreadValues({\n /**\n * Any [NcInputField](#/Components/NcFields?id=ncinputfield) props\n */\n // Not an actual prop but needed to show in vue-styleguidist docs\n // eslint-disable-next-line\n \" \": {}\n }, NcInputField.props), {\n /**\n * The `aria-label` to set on the trailing button\n * If no explicit value is set it will default to the one matching the `trailingButtonIcon`:\n *\n * @default 'Clear text'|'Save changes'|'Undo changes'\n */\n trailingButtonLabel: {\n type: String,\n default: \"\"\n },\n // Custom props\n /**\n * Specifies which material design icon should be used for the trailing\n * button.\n *\n * The `'arrowRight'` value is deprecated and will be removed in the next major version.\n * Use `'arrowEnd'` instead.\n *\n * @type {'close'|'arrowEnd'|'arrowRight'|'undo'}\n */\n trailingButtonIcon: {\n type: String,\n default: \"close\",\n validator: (value) => [\n \"close\",\n \"arrowEnd\",\n \"arrowRight\",\n \"undo\"\n ].includes(value)\n }\n }),\n emits: [\n /**\n * Removed in v9 - use `update:modelValue` (`v-model`) instead\n *\n * @deprecated\n */\n \"update:value\",\n \"update:modelValue\",\n /** Same as update:modelValue for Vue 2 compatibility */\n \"update:model-value\"\n ],\n setup() {\n const model = useModelMigration(\"value\", \"update:value\");\n return {\n model,\n mdiArrowRight,\n mdiClose,\n mdiUndo\n };\n },\n computed: {\n /**\n * Is the trailing button icon directional.\n * Meaning the icon needs to be flipped on RTL text flow.\n */\n isArrow() {\n return this.trailingButtonIcon === \"arrowEnd\" || this.trailingButtonIcon === \"arrowRight\";\n },\n propsAndAttrsToForward() {\n const predefinedLabels = {\n arrowEnd: t(\"Save changes\"),\n arrowRight: t(\"Save changes\"),\n close: t(\"Clear text\"),\n undo: t(\"Undo changes\")\n };\n return __spreadProps(__spreadValues(__spreadValues({}, this.$attrs), Object.fromEntries(Object.entries(this.$props).filter(([key]) => NcInputFieldProps.has(key)))), {\n // Adjust aria-label for predefined trailing buttons\n trailingButtonLabel: this.trailingButtonLabel || predefinedLabels[this.trailingButtonIcon]\n });\n }\n },\n methods: {\n /**\n * Focus the input element\n *\n * @public\n */\n focus() {\n this.$refs.inputField.focus();\n },\n /**\n * Select all the text in the input\n *\n * @public\n */\n select() {\n this.$refs.inputField.select();\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcInputField\", _vm._g(_vm._b({ ref: \"inputField\", scopedSlots: _vm._u([!!_vm.$scopedSlots.icon || !!_vm.$slots.default || !!_vm.$scopedSlots.default ? { key: \"icon\", fn: function() {\n return [_vm._t(\"icon\", function() {\n return [_vm._t(\"default\")];\n })];\n }, proxy: true } : null, _vm.type !== \"search\" ? { key: \"trailing-button-icon\", fn: function() {\n return [_vm.isArrow ? _c(\"NcIconSvgWrapper\", { attrs: { \"directional\": \"\", \"path\": _vm.mdiArrowRight } }) : _c(\"NcIconSvgWrapper\", { attrs: { \"path\": _vm.trailingButtonIcon === \"undo\" ? _vm.mdiUndo : _vm.mdiClose } })];\n }, proxy: true } : null], null, true) }, \"NcInputField\", _vm.propsAndAttrsToForward, false), _vm.$listeners));\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 NcTextField = __component__.exports;\nexport {\n NcTextField as N\n};\n//# sourceMappingURL=NcTextField-BE9R1pLt.mjs.map\n","\n\n\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ t('guests', 'Cancel') }}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{{ t('guests', 'Convert') }}\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { User } from './types.ts'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { showSuccess, spawnDialog } from '@nextcloud/dialogs'\n\nimport SvgAccountArrowRight from '@mdi/svg/svg/account-arrow-right.svg?raw'\n\nimport TransferGuestDialog from './components/TransferGuestDialog.vue'\n\nconst transferGuest = (_event: MouseEvent, user: User): void => {\n\tconst onClose = (userId: null | string) => {\n\t\tif (userId === null) {\n\t\t\treturn\n\t\t}\n\t\tshowSuccess(t('guests', 'Guest will be converted to a regular account with the account name \"{userId}\" soon', { userId }))\n\t}\n\n\tspawnDialog(TransferGuestDialog, {\n\t\tuser,\n\t\t// @ts-expect-error callback parameters are known\n\t}, onClose)\n}\n\nconst enabled = (user: User) => user?.backend === 'Guests'\n\nconst registerAction = () => {\n\twindow.OCA.Settings.UserList.registerAction(\n\t\tSvgAccountArrowRight,\n\t\tt('guests', 'Convert guest to regular account'),\n\t\ttransferGuest,\n\t\tenabled,\n\t)\n}\n\nsubscribe('settings:user-management:loaded', registerAction)\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","spawnDialog","dialog","props","optionsOrOnClose","onClose","container","element","vm","Vue","h","rest","v","toRaw","_sfc_main","defineComponent","NcDialogButton","NcModal","arr","emit","slots","wrapper","ref","dialogWidth","useElementSize","isNavigationCollapsed","computed","hasNavigation","navigationId","GenRandomId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogElement","dialogTagName","dialogListeners","event","showModal","handleButtonClose","button","result","handleClosing","handleClosed","modalProps","_sfc_render","_vm","_c","$event","idx","_","_sfc_staticRenderFns","__component__","normalizeComponent","NcDialog","spawnDialog$1","SvgAccountArrowRight","AlertCircle","Check","NcButton","model","useModelMigration","isLegacy32","isValidLabel","logger","ariaDescribedby","newValue","_a","NcInputField","__defProps","__getOwnPropDescs","__spreadProps","register","t17","t50","NcInputFieldProps","NcIconSvgWrapper","mdiArrowRight","mdiClose","mdiUndo","predefinedLabels","t","NcTextField","generateMessage","source","target","status","NcLoadingIcon","NcNoteCard","targetUserId","data","axios","generateOcsUrl","error","showError","transferGuest","_event","user","TransferGuestDialog","userId","showSuccess","enabled","registerAction","subscribe"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]}