nextcloud/dist/ProfilesCustomPicker-D0VTmaly.chunk.mjs.map
nextcloud-command 77267c30db chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-04-21 08:55:14 +00:00

1 line
No EOL
9.5 KiB
Text
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"ProfilesCustomPicker-D0VTmaly.chunk.mjs","sources":["../build/frontend/apps/profile/src/components/ProfilesCustomPicker.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"profile-picker\">\n\t\t<div class=\"profile-picker__heading\">\n\t\t\t<h2>\n\t\t\t\t{{ t('profile', 'Profile picker') }}\n\t\t\t</h2>\n\t\t\t<div class=\"input-wrapper\">\n\t\t\t\t<NcSelect\n\t\t\t\t\tref=\"profiles-search-input\"\n\t\t\t\t\tv-model=\"selectedProfile\"\n\t\t\t\t\tinputId=\"profiles-search\"\n\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t:filterable=\"false\"\n\t\t\t\t\t:placeholder=\"t('profile', 'Search for a user profile')\"\n\t\t\t\t\t:clearSearchOnBlur=\"() => false\"\n\t\t\t\t\t:multiple=\"false\"\n\t\t\t\t\t:options=\"options\"\n\t\t\t\t\tlabel=\"displayName\"\n\t\t\t\t\t@search=\"searchForProfile\"\n\t\t\t\t\t@option:selecting=\"resolveResult\">\n\t\t\t\t\t<template #no-options=\"{ search }\">\n\t\t\t\t\t\t{{ search ? noResultText : t('profile', 'Search for a user profile. Start typing') }}\n\t\t\t\t\t</template>\n\t\t\t\t</NcSelect>\n\t\t\t</div>\n\t\t\t<NcEmptyContent class=\"empty-content\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<AccountOutline :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</div>\n\t\t<div class=\"profile-picker__footer\">\n\t\t\t<NcButton\n\t\t\t\tv-if=\"selectedProfile !== null\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\t:aria-label=\"t('profile', 'Insert selected user profile link')\"\n\t\t\t\t:disabled=\"loading || selectedProfile === null\"\n\t\t\t\t@click=\"submit\">\n\t\t\t\t{{ t('profile', 'Insert') }}\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ArrowRightIcon />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcSelect from '@nextcloud/vue/components/NcSelect'\nimport AccountOutline from 'vue-material-design-icons/AccountOutline.vue'\nimport ArrowRightIcon from 'vue-material-design-icons/ArrowRight.vue'\nimport { logger } from '../services/logger.ts'\n\nexport default {\n\tname: 'ProfilesCustomPicker',\n\n\tcomponents: {\n\t\tNcSelect,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t\tAccountOutline,\n\t\tArrowRightIcon,\n\t},\n\n\tprops: {\n\t\tproviderId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\taccessible: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: ['submit'],\n\n\tdata() {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tloading: false,\n\t\t\tresultUrl: null,\n\t\t\treference: null,\n\t\t\tprofiles: [],\n\t\t\tselectedProfile: null,\n\t\t\tabortController: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\toptions() {\n\t\t\tif (this.searchQuery !== '') {\n\t\t\t\treturn this.profiles\n\t\t\t}\n\t\t\treturn []\n\t\t},\n\n\t\tnoResultText() {\n\t\t\treturn this.loading ? t('profile', 'Searching …') : t('profile', 'Not found')\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.focusOnInput()\n\t},\n\n\tmethods: {\n\t\tfocusOnInput() {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.$refs['profiles-search-input'].$el.getElementsByTagName('input')[0]?.focus()\n\t\t\t})\n\t\t},\n\n\t\tasync searchForProfile(query) {\n\t\t\tif (query.trim() === '' || query.trim().length < 3) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.searchQuery = query.trim()\n\t\t\tthis.loading = true\n\t\t\tawait this.debounceFindProfiles(query)\n\t\t},\n\n\t\tdebounceFindProfiles: debounce(function(...args) {\n\t\t\tthis.findProfiles(...args)\n\t\t}, 300),\n\n\t\tasync findProfiles(query) {\n\t\t\tconst url = generateOcsUrl('core/autocomplete/get?search={searchQuery}&itemType=%20&itemId=%20&shareTypes[]=0&limit=20', { searchQuery: query })\n\t\t\ttry {\n\t\t\t\tconst res = await axios.get(url)\n\t\t\t\tthis.profiles = res.data.ocs.data.map((userAutocomplete) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tuser: userAutocomplete.id,\n\t\t\t\t\t\tdisplayName: userAutocomplete.label,\n\t\t\t\t\t\ticon: userAutocomplete.icon,\n\t\t\t\t\t\tsubtitle: userAutocomplete.subline,\n\t\t\t\t\t\tisNoUser: userAutocomplete.source.startsWith('users'),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('profile_picker: error while searching for users', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\tsubmit() {\n\t\t\tthis.resultUrl = window.location.origin + generateUrl(`/u/${this.selectedProfile.user.trim().toLowerCase()}`, null, { noRewrite: true })\n\t\t\tthis.$emit('submit', this.resultUrl)\n\t\t\tthis.$el.dispatchEvent(new CustomEvent('submit', { detail: this.resultUrl, bubbles: true }))\n\t\t},\n\n\t\tasync resolveResult(selectedItem) {\n\t\t\tthis.loading = true\n\t\t\tthis.abortController = new AbortController()\n\t\t\tthis.selectedProfile = selectedItem\n\t\t\tthis.resultUrl = window.location.origin + generateUrl(`/u/${this.selectedProfile.user.trim().toLowerCase()}`, null, { noRewrite: true })\n\t\t\ttry {\n\t\t\t\tconst res = await axios.get(generateOcsUrl('references/resolve', 2) + '?reference=' + encodeURIComponent(this.resultUrl), {\n\t\t\t\t\tsignal: this.abortController.signal,\n\t\t\t\t})\n\t\t\t\tthis.reference = res.data.ocs.data.references[this.resultUrl]\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('profile_picker: error resolving the user profile link', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\tclearSelection() {\n\t\t\tthis.selectedProfile = null\n\t\t\tthis.resultUrl = null\n\t\t\tthis.reference = null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.profile-picker {\n\twidth: 100%;\n\tmin-height: 450px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 12px 16px 16px 16px;\n\n\t&__heading, .select {\n\t\twidth: 100%;\n\n\t\th2 {\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t&__footer {\n\t\twidth: 100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: end;\n\t\tmargin-top: 12px;\n\n\t\t> * {\n\t\t\tmargin-left: 4px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcSelect","NcButton","NcEmptyContent","AccountOutline","ArrowRightIcon","query","debounce","args","url","generateOcsUrl","res","axios","userAutocomplete","error","logger","generateUrl","selectedItem","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_ctx","_createVNode","_component_NcSelect","$data","$event","$options","_withCtx","search","_component_NcEmptyContent","_component_AccountOutline","_createBlock","_component_NcButton","_component_ArrowRightIcon","_createTextVNode","_toDisplayString"],"mappings":"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"}