{"version":3,"file":"5771-5771.js?v=a4e2a98efcfb7393c5bd","mappings":"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","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/PublicAuthPrompt-BSFsDqYB.mjs"],"sourcesContent":["import { defineComponent } from \"vue\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { setGuestNickname } from \"@nextcloud/auth\";\nimport { showError } from \"@nextcloud/dialogs\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcNoteCard from \"@nextcloud/vue/components/NcNoteCard\";\nimport NcTextField from \"@nextcloud/vue/components/NcTextField\";\nimport { t, n as normalizeComponent } from \"./_plugin-vue2_normalizer-jrlE7CJU.mjs\";\nimport { validateFilename, InvalidFilenameError, InvalidFilenameErrorReason } from \"@nextcloud/files\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction getGuestNameValidity(name) {\n if (name.trim() === \"\") {\n return t(\"Names must not be empty.\");\n }\n if (name.startsWith(\".\")) {\n return t(\"Names must not start with a dot.\");\n }\n try {\n validateFilename(name);\n return \"\";\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('\"{char}\" is not allowed inside a name.', { char: error.segment });\n case InvalidFilenameErrorReason.ReservedName:\n return t('\"{segment}\" is a reserved name and not allowed.', { segment: error.segment });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('\"{extension}\" is not an allowed name.', { extension: error.segment });\n }\n return t('Names must not end with \"{extension}\".', { extension: error.segment });\n default:\n return t(\"Invalid name.\");\n }\n }\n}\nconst storage = getBuilder(\"public\").build();\nconst _sfc_main = defineComponent({\n name: \"PublicAuthPrompt\",\n components: {\n NcDialog,\n NcNoteCard,\n NcTextField\n },\n props: {\n /**\n * Preselected nickname\n * @default '' No name preselected by default\n */\n nickname: {\n type: String,\n default: \"\"\n },\n /**\n * Dialog title\n */\n title: {\n type: String,\n default: t(\"Guest identification\")\n },\n /**\n * Dialog text under the dialog title\n * e.g 'Enter your name to access the file'\n * @default '' Not shown by default\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * Dialog notice\n * @default 'You are currently not identified.'\n */\n notice: {\n type: String,\n default: t(\"You are currently not identified.\")\n },\n /**\n * Dialog submit button label\n * @default 'Submit name'\n */\n submitLabel: {\n type: String,\n default: t(\"Submit name\")\n },\n /**\n * Whether the dialog is cancellable\n * @default false\n */\n cancellable: {\n type: Boolean,\n default: false\n }\n },\n setup() {\n return {\n t\n };\n },\n emits: [\"close\"],\n data() {\n return {\n name: \"\"\n };\n },\n computed: {\n dialogButtons() {\n const cancelButton = {\n label: t(\"Cancel\"),\n variant: \"tertiary\",\n callback: () => this.$emit(\"close\")\n };\n const submitButton = {\n label: this.submitLabel,\n type: \"submit\",\n variant: \"primary\"\n };\n if (this.cancellable) {\n return [cancelButton, submitButton];\n }\n return [submitButton];\n }\n },\n watch: {\n /** Reset name to pre-selected nickname (e.g. Talk / Collabora ) */\n nickname: {\n handler() {\n this.name = this.nickname;\n },\n immediate: true\n },\n name() {\n const newName = this.name.trim?.() || \"\";\n const input = this.$refs.input?.$el.querySelector(\"input\");\n if (!input) {\n return;\n }\n const validity = getGuestNameValidity(newName);\n input.setCustomValidity(validity);\n input.reportValidity();\n }\n },\n methods: {\n onSubmit() {\n const input = this.$refs.input;\n const nickname = this.name.trim();\n if (nickname === \"\") {\n input.setCustomValidity(t(\"You cannot leave the name empty.\"));\n input.reportValidity();\n input.focus();\n return;\n }\n if (nickname.length < 2) {\n input.setCustomValidity(t(\"Please enter a name with at least 2 characters.\"));\n input.reportValidity();\n input.focus();\n return;\n }\n try {\n setGuestNickname(nickname);\n } catch (e) {\n showError(t(\"Failed to set nickname.\"));\n console.error(\"Failed to set nickname\", e);\n input.focus();\n return;\n }\n storage.setItem(\"public-auth-prompt-shown\", \"true\");\n this.$emit(\"close\", this.name);\n }\n }\n});\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { staticClass: \"public-auth-prompt\", attrs: { \"buttons\": _vm.dialogButtons, \"data-cy-public-auth-prompt-dialog\": \"\", \"is-form\": \"\", \"no-close\": \"\", \"name\": _vm.title }, on: { \"submit\": _vm.onSubmit } }, [_vm.text ? _c(\"p\", { staticClass: \"public-auth-prompt__text\" }, [_vm._v(\" \" + _vm._s(_vm.text) + \" \")]) : _vm._e(), _c(\"NcNoteCard\", { staticClass: \"public-auth-prompt__header\", attrs: { \"text\": _vm.notice, \"type\": \"info\" } }), _c(\"NcTextField\", { ref: \"input\", staticClass: \"public-auth-prompt__input\", attrs: { \"data-cy-public-auth-prompt-dialog-name\": \"\", \"label\": _vm.t(\"Name\"), \"placeholder\": _vm.t(\"Enter your name\"), \"required\": !_vm.cancellable, \"minlength\": \"2\", \"name\": \"name\" }, model: { value: _vm.name, callback: function($$v) {\n _vm.name = $$v;\n }, expression: \"name\" } })], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"143ac1fb\"\n);\nconst PublicAuthPrompt = __component__.exports;\nexport {\n PublicAuthPrompt as default\n};\n//# sourceMappingURL=PublicAuthPrompt-BSFsDqYB.mjs.map\n"],"names":["storage","build","_sfc_main","name","components","NcDialog","NcNoteCard","NcTextField","props","nickname","type","String","default","title","t","text","notice","submitLabel","cancellable","Boolean","setup","emits","data","computed","dialogButtons","cancelButton","label","variant","callback","this","$emit","submitButton","watch","handler","immediate","newName","trim","input","$refs","$el","querySelector","validity","startsWith","error","reason","Character","char","segment","ReservedName","Extension","match","extension","getGuestNameValidity","setCustomValidity","reportValidity","methods","onSubmit","focus","length","e","console","setItem","_sfc_render","_vm","_c","_self","_setupProxy","staticClass","attrs","on","_v","_s","_e","ref","model","value","$$v","expression","_sfc_staticRenderFns","PublicAuthPrompt","n","exports"],"sourceRoot":""}