@nextcloud/vue 8.31.0 → 8.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/Components/NcActionButton.cjs +1 -1
- package/dist/Components/NcActionButton.mjs +1 -1
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionCheckbox.cjs +1 -1
- package/dist/Components/NcActionCheckbox.mjs +1 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionLink.cjs +3 -3
- package/dist/Components/NcActionLink.cjs.map +1 -1
- package/dist/Components/NcActionLink.mjs +3 -3
- package/dist/Components/NcActionLink.mjs.map +1 -1
- package/dist/Components/NcActionRadio.cjs +1 -1
- package/dist/Components/NcActionRadio.mjs +1 -1
- package/dist/Components/NcActionRouter.cjs +2 -2
- package/dist/Components/NcActionRouter.mjs +2 -2
- package/dist/Components/NcActionText.cjs +2 -2
- package/dist/Components/NcActionText.mjs +2 -2
- package/dist/Components/NcActionTextEditable.cjs +1 -1
- package/dist/Components/NcActionTextEditable.mjs +1 -1
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.cjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/NcAppNavigation.cjs +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationNew.cjs +1 -1
- package/dist/Components/NcAppNavigationNew.mjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSearch.cjs +1 -1
- package/dist/Components/NcAppNavigationSearch.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSettingsSection.cjs +2 -63
- package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +2 -63
- package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAppSidebarTab.cjs +3 -2
- package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +3 -2
- package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
- package/dist/Components/NcAssistantButton.cjs +1 -1
- package/dist/Components/NcAssistantButton.mjs +1 -1
- package/dist/Components/NcAssistantIcon.cjs +1 -1
- package/dist/Components/NcAssistantIcon.mjs +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcButton.cjs +1 -1
- package/dist/Components/NcButton.mjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcChip.cjs +14 -8
- package/dist/Components/NcChip.cjs.map +1 -1
- package/dist/Components/NcChip.mjs +14 -8
- package/dist/Components/NcChip.mjs.map +1 -1
- package/dist/Components/NcCollectionList.cjs +1 -1
- package/dist/Components/NcCollectionList.mjs +1 -1
- package/dist/Components/NcColorPicker.cjs +1 -1
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.cjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcCounterBubble.cjs +1 -1
- package/dist/Components/NcCounterBubble.mjs +1 -1
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +32 -19
- package/dist/Components/NcDateTimePicker.cjs.map +1 -1
- package/dist/Components/NcDateTimePicker.mjs +32 -19
- package/dist/Components/NcDateTimePicker.mjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.cjs +32 -14
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +32 -14
- package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
- package/dist/Components/NcDialog.cjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.cjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEllipsisedOption.cjs +1 -1
- package/dist/Components/NcEllipsisedOption.mjs +1 -1
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcEmptyContent.cjs +2 -1
- package/dist/Components/NcEmptyContent.cjs.map +1 -1
- package/dist/Components/NcEmptyContent.mjs +2 -1
- package/dist/Components/NcEmptyContent.mjs.map +1 -1
- package/dist/Components/NcHeaderButton.cjs +1 -1
- package/dist/Components/NcHeaderButton.mjs +1 -1
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcHighlight.cjs +1 -1
- package/dist/Components/NcHighlight.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.cjs +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +1 -1
- package/dist/Components/NcInputField.cjs +1 -1
- package/dist/Components/NcInputField.mjs +1 -1
- package/dist/Components/NcKbd.cjs +1 -1
- package/dist/Components/NcKbd.mjs +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcModal.cjs +33 -18
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +33 -18
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.cjs +2 -2
- package/dist/Components/NcNoteCard.mjs +2 -2
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcPopover.cjs +1 -1
- package/dist/Components/NcPopover.mjs +1 -1
- package/dist/Components/NcProgressBar.cjs +1 -1
- package/dist/Components/NcProgressBar.mjs +1 -1
- package/dist/Components/NcRadioGroup.cjs +1 -1
- package/dist/Components/NcRadioGroup.mjs +1 -1
- package/dist/Components/NcRadioGroupButton.cjs +1 -1
- package/dist/Components/NcRadioGroupButton.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.cjs +2 -2
- package/dist/Components/NcRichContenteditable.mjs +2 -2
- package/dist/Components/NcRichText.cjs +3 -3
- package/dist/Components/NcRichText.mjs +4 -4
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSelectUsers.cjs +1 -1
- package/dist/Components/NcSelectUsers.mjs +1 -1
- package/dist/Components/NcSettingsInputText.cjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.cjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextArea.cjs +1 -1
- package/dist/Components/NcTextArea.mjs +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcThemeProvider.cjs +1 -1
- package/dist/Components/NcThemeProvider.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Components/NcVNodes.cjs +2 -1
- package/dist/Components/NcVNodes.cjs.map +1 -1
- package/dist/Components/NcVNodes.mjs +2 -1
- package/dist/Components/NcVNodes.mjs.map +1 -1
- package/dist/Composables/useFormatDateTime.cjs +27 -12
- package/dist/Composables/useFormatDateTime.cjs.map +1 -1
- package/dist/Composables/useFormatDateTime.mjs +27 -12
- package/dist/Composables/useFormatDateTime.mjs.map +1 -1
- package/dist/Composables/useHotKey.cjs +2 -1
- package/dist/Composables/useHotKey.cjs.map +1 -1
- package/dist/Composables/useHotKey.mjs +2 -1
- package/dist/Composables/useHotKey.mjs.map +1 -1
- package/dist/Composables/useIsDarkTheme.cjs +5 -2
- package/dist/Composables/useIsDarkTheme.cjs.map +1 -1
- package/dist/Composables/useIsDarkTheme.mjs +5 -2
- package/dist/Composables/useIsDarkTheme.mjs.map +1 -1
- package/dist/Composables/useIsMobile.cjs.map +1 -1
- package/dist/Composables/useIsMobile.mjs.map +1 -1
- package/dist/Directives/Linkify.cjs +2 -1
- package/dist/Directives/Linkify.cjs.map +1 -1
- package/dist/Directives/Linkify.mjs +2 -1
- package/dist/Directives/Linkify.mjs.map +1 -1
- package/dist/Functions/contactsMenu.cjs +3 -2
- package/dist/Functions/contactsMenu.cjs.map +1 -1
- package/dist/Functions/contactsMenu.mjs +3 -2
- package/dist/Functions/contactsMenu.mjs.map +1 -1
- package/dist/Functions/dialog.cjs +20 -5
- package/dist/Functions/dialog.cjs.map +1 -1
- package/dist/Functions/dialog.mjs +20 -5
- package/dist/Functions/dialog.mjs.map +1 -1
- package/dist/Functions/emoji.cjs +1 -1
- package/dist/Functions/emoji.mjs +1 -1
- package/dist/Functions/reference.cjs +2 -2
- package/dist/Functions/reference.mjs +2 -2
- package/dist/Functions/registerReference.cjs +1 -1
- package/dist/Functions/registerReference.mjs +1 -1
- package/dist/Functions/usernameToColor.cjs +2 -2
- package/dist/Functions/usernameToColor.cjs.map +1 -1
- package/dist/Functions/usernameToColor.mjs +2 -2
- package/dist/Functions/usernameToColor.mjs.map +1 -1
- package/dist/Mixins/isMobile.cjs.map +1 -1
- package/dist/Mixins/isMobile.mjs.map +1 -1
- package/dist/Mixins/richEditor.cjs +1 -1
- package/dist/Mixins/richEditor.mjs +1 -1
- package/dist/assets/{NcActionInput-DXZaAilC.css → NcActionInput-DsGwr3wt.css} +65 -65
- package/dist/assets/{NcAppContent-DerHKU6P.css → NcAppContent-BpjG38I8.css} +23 -23
- package/dist/assets/{NcAppNavigation-R4E_wTZ-.css → NcAppNavigation-Bg4Oe7WC.css} +12 -12
- package/dist/assets/{NcAppNavigationItem-Kua1hP7u.css → NcAppNavigationItem-UaB3qdsS.css} +36 -36
- package/dist/assets/{NcAppSettingsDialog-DiJpVNeb.css → NcAppSettingsDialog-DH3DIIwL.css} +10 -10
- package/dist/assets/{NcAppSettingsSection-IzrCzLDw.css → NcAppSettingsSection-Dq0eTGEp.css} +3 -3
- package/dist/assets/{NcAppSidebar-CJYtNcF0.css → NcAppSidebar-Bd2cj1W-.css} +44 -44
- package/dist/assets/{NcAvatar-BdAXbXdR.css → NcAvatar-Cm4kVIfS.css} +24 -24
- package/dist/assets/{NcButton-D8AOCliw.css → NcButton-uQUvp7DS.css} +46 -46
- package/dist/assets/{NcCollectionList-DInDhsAS.css → NcCollectionList-hRgvNUMR.css} +15 -15
- package/dist/assets/{NcColorPicker-CGI9ElwB.css → NcColorPicker-CCqpXoam.css} +43 -35
- package/dist/assets/{NcContent-BedDNXST.css → NcContent-IIXgAj_u.css} +10 -10
- package/dist/assets/{NcDateTimePicker-4Zw7r2r4.css → NcDateTimePicker-C6sMtYzL.css} +13 -13
- package/dist/assets/{NcEmojiPicker-CrjOSMLF.css → NcEmojiPicker-B-iLLj37.css} +122 -122
- package/dist/assets/{NcModal-BzkYPomo.css → NcModal-4ZPVUmG2.css} +62 -62
- package/dist/assets/{NcRadioGroupButton-B1hPj4B8.css → NcRadioGroupButton-6mf16D0h.css} +16 -15
- package/dist/assets/{NcRelatedResourcesPanel-d2OxhjiL.css → NcRelatedResourcesPanel-BgMc8bue.css} +17 -17
- package/dist/assets/{NcRichContenteditable-BoM95AVW.css → NcRichContenteditable-Ds_cptgr.css} +11 -11
- package/dist/assets/{NcRichText-BDx2fupZ.css → NcRichText-CVy4zTPr.css} +2 -2
- package/dist/assets/{referencePickerModal-CTpc6_U6.css → referencePickerModal-CGtNx7ew.css} +6 -6
- package/dist/chunks/{NcActionButton-CVW8aRkE.mjs → NcActionButton-CZsSFAT4.mjs} +5 -5
- package/dist/chunks/{NcActionButton-CVW8aRkE.mjs.map → NcActionButton-CZsSFAT4.mjs.map} +1 -1
- package/dist/chunks/{NcActionButton-CFXzNoFT.cjs → NcActionButton-lJ0IA3IS.cjs} +5 -5
- package/dist/chunks/{NcActionButton-CFXzNoFT.cjs.map → NcActionButton-lJ0IA3IS.cjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-BOr5Of3k.mjs → NcActionButtonGroup-CIvAeDpU.mjs} +3 -3
- package/dist/chunks/{NcActionButtonGroup-BOr5Of3k.mjs.map → NcActionButtonGroup-CIvAeDpU.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-Bwuy2WZQ.cjs → NcActionButtonGroup-CQZL14Nz.cjs} +3 -3
- package/dist/chunks/{NcActionButtonGroup-Bwuy2WZQ.cjs.map → NcActionButtonGroup-CQZL14Nz.cjs.map} +1 -1
- package/dist/chunks/{NcActionCheckbox-C05ls65i.mjs → NcActionCheckbox-BAuN4ZMC.mjs} +2 -2
- package/dist/chunks/{NcActionCheckbox-C05ls65i.mjs.map → NcActionCheckbox-BAuN4ZMC.mjs.map} +1 -1
- package/dist/chunks/{NcActionCheckbox-Dg_1Ovt0.cjs → NcActionCheckbox-BvMmq0jL.cjs} +2 -2
- package/dist/chunks/{NcActionCheckbox-Dg_1Ovt0.cjs.map → NcActionCheckbox-BvMmq0jL.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-CoG-fZq9.mjs → NcActionInput-CfznemNH.mjs} +9 -9
- package/dist/chunks/{NcActionInput-CoG-fZq9.mjs.map → NcActionInput-CfznemNH.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-iIJpNS_Q.cjs → NcActionInput-DfjLV0Gg.cjs} +9 -9
- package/dist/chunks/{NcActionInput-iIJpNS_Q.cjs.map → NcActionInput-DfjLV0Gg.cjs.map} +1 -1
- package/dist/chunks/{NcActionRadio-Bpbs2dPm.mjs → NcActionRadio-Bg5VuF7I.mjs} +2 -2
- package/dist/chunks/{NcActionRadio-Bpbs2dPm.mjs.map → NcActionRadio-Bg5VuF7I.mjs.map} +1 -1
- package/dist/chunks/{NcActionRadio-Dtrwffyh.cjs → NcActionRadio-CBh6AlC4.cjs} +2 -2
- package/dist/chunks/{NcActionRadio-Dtrwffyh.cjs.map → NcActionRadio-CBh6AlC4.cjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-BpahzGpr.cjs → NcActionTextEditable-BhucWrOO.cjs} +6 -6
- package/dist/chunks/{NcActionTextEditable-BpahzGpr.cjs.map → NcActionTextEditable-BhucWrOO.cjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-DRwDJjPd.mjs → NcActionTextEditable-CSP4OjpU.mjs} +6 -6
- package/dist/chunks/{NcActionTextEditable-DRwDJjPd.mjs.map → NcActionTextEditable-CSP4OjpU.mjs.map} +1 -1
- package/dist/chunks/{NcActions-C832pWHO.mjs → NcActions-A918mfXE.mjs} +82 -64
- package/dist/chunks/{NcActions-C832pWHO.mjs.map → NcActions-A918mfXE.mjs.map} +1 -1
- package/dist/chunks/{NcActions-B7oXbiVt.cjs → NcActions-D3N_As6c.cjs} +82 -64
- package/dist/chunks/{NcActions-B7oXbiVt.cjs.map → NcActions-D3N_As6c.cjs.map} +1 -1
- package/dist/chunks/{NcAppContent-Djy38ou2.cjs → NcAppContent-CCyPMvUa.cjs} +27 -31
- package/dist/chunks/NcAppContent-CCyPMvUa.cjs.map +1 -0
- package/dist/chunks/{NcAppContent-C9NGJE6n.mjs → NcAppContent-DFlcxER-.mjs} +27 -31
- package/dist/chunks/NcAppContent-DFlcxER-.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-C0Oc0gQ6.cjs → NcAppNavigation-CCHYn0D6.cjs} +7 -6
- package/dist/chunks/{NcAppNavigation-C0Oc0gQ6.cjs.map → NcAppNavigation-CCHYn0D6.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-DjtmN3dS.mjs → NcAppNavigation-CLF6-i2t.mjs} +7 -6
- package/dist/chunks/{NcAppNavigation-DjtmN3dS.mjs.map → NcAppNavigation-CLF6-i2t.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-CsoHaLXg.mjs → NcAppNavigationCaption-CsG8P-1P.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationCaption-CsoHaLXg.mjs.map → NcAppNavigationCaption-CsG8P-1P.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-D4-hEmCi.cjs → NcAppNavigationCaption-DhW300oH.cjs} +3 -3
- package/dist/chunks/{NcAppNavigationCaption-D4-hEmCi.cjs.map → NcAppNavigationCaption-DhW300oH.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-DvVYHshm.mjs → NcAppNavigationItem-CwuKVEUN.mjs} +9 -9
- package/dist/chunks/{NcAppNavigationItem-DvVYHshm.mjs.map → NcAppNavigationItem-CwuKVEUN.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-ZOXUMmX5.cjs → NcAppNavigationItem-HZVy5JEa.cjs} +9 -9
- package/dist/chunks/{NcAppNavigationItem-ZOXUMmX5.cjs.map → NcAppNavigationItem-HZVy5JEa.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-AiFYSCW1.mjs → NcAppNavigationNew-DbqusDUV.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-AiFYSCW1.mjs.map → NcAppNavigationNew-DbqusDUV.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-BqNIa8N9.cjs → NcAppNavigationNew-T56pahiu.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationNew-BqNIa8N9.cjs.map → NcAppNavigationNew-T56pahiu.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-CdlWkGU3.mjs → NcAppNavigationNewItem-BsnZWCLW.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-CdlWkGU3.mjs.map → NcAppNavigationNewItem-BsnZWCLW.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-BuEkCd2H.cjs → NcAppNavigationNewItem-DMRZwa_y.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-BuEkCd2H.cjs.map → NcAppNavigationNewItem-DMRZwa_y.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-BXjB3FEJ.cjs → NcAppNavigationSearch-BlG1xMok.cjs} +9 -5
- package/dist/chunks/{NcAppNavigationSearch-BXjB3FEJ.cjs.map → NcAppNavigationSearch-BlG1xMok.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-CsIzwF6F.mjs → NcAppNavigationSearch-DCMN2cWp.mjs} +9 -5
- package/dist/chunks/{NcAppNavigationSearch-CsIzwF6F.mjs.map → NcAppNavigationSearch-DCMN2cWp.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-CkFZMLtH.cjs → NcAppNavigationSettings-DlIDzhxh.cjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-CkFZMLtH.cjs.map → NcAppNavigationSettings-DlIDzhxh.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-Dq2O3kRz.mjs → NcAppNavigationSettings-n8OaxTbE.mjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-Dq2O3kRz.mjs.map → NcAppNavigationSettings-n8OaxTbE.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-DlWpnYdz.mjs → NcAppNavigationToggle-ClYKr8Zn.mjs} +14 -13
- package/dist/chunks/{NcAppNavigationToggle-DlWpnYdz.mjs.map → NcAppNavigationToggle-ClYKr8Zn.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-C2vtZ3uV.cjs → NcAppNavigationToggle-Cn1UvxNP.cjs} +14 -13
- package/dist/chunks/{NcAppNavigationToggle-C2vtZ3uV.cjs.map → NcAppNavigationToggle-Cn1UvxNP.cjs.map} +1 -1
- package/dist/chunks/NcAppSettingsDialog-Cpjr8Tca.mjs +132 -0
- package/dist/chunks/NcAppSettingsDialog-Cpjr8Tca.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsDialog-R6Y-tl6d.cjs +134 -0
- package/dist/chunks/NcAppSettingsDialog-R6Y-tl6d.cjs.map +1 -0
- package/dist/chunks/NcAppSettingsSection-BNVlt4g0.mjs +88 -0
- package/dist/chunks/NcAppSettingsSection-BNVlt4g0.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsSection-CTqViPnP.cjs +87 -0
- package/dist/chunks/NcAppSettingsSection-CTqViPnP.cjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-Bda_fc-F.mjs → NcAppSidebar-CVcOP4bk.mjs} +20 -17
- package/dist/chunks/{NcAppSidebar-Bda_fc-F.mjs.map → NcAppSidebar-CVcOP4bk.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-Cx2ZxU4N.cjs → NcAppSidebar-Ddt82bsA.cjs} +20 -17
- package/dist/chunks/{NcAppSidebar-Cx2ZxU4N.cjs.map → NcAppSidebar-Ddt82bsA.cjs.map} +1 -1
- package/dist/chunks/{NcAssistantButton-zriu0Kiz.cjs → NcAssistantButton-WQvWhoAr.cjs} +5 -5
- package/dist/chunks/{NcAssistantButton-zriu0Kiz.cjs.map → NcAssistantButton-WQvWhoAr.cjs.map} +1 -1
- package/dist/chunks/{NcAssistantButton-Dk28Wilk.mjs → NcAssistantButton-lDdWOemf.mjs} +5 -5
- package/dist/chunks/{NcAssistantButton-Dk28Wilk.mjs.map → NcAssistantButton-lDdWOemf.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-CtEF1hjA.mjs → NcAssistantIcon-BTjYuSQ9.mjs} +5 -5
- package/dist/chunks/{NcAssistantIcon-CtEF1hjA.mjs.map → NcAssistantIcon-BTjYuSQ9.mjs.map} +1 -1
- package/dist/chunks/{NcAssistantIcon-B-Udgta_.cjs → NcAssistantIcon-RDQ8YhZE.cjs} +5 -5
- package/dist/chunks/{NcAssistantIcon-B-Udgta_.cjs.map → NcAssistantIcon-RDQ8YhZE.cjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CuYtFEdJ.mjs → NcAvatar-Cupl4prm.mjs} +31 -29
- package/dist/chunks/NcAvatar-Cupl4prm.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-bd-5zXWN.cjs → NcAvatar-D_0Aw88L.cjs} +31 -29
- package/dist/chunks/NcAvatar-D_0Aw88L.cjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-ChxXdE2m.cjs → NcBreadcrumb-FbePEaGS.cjs} +22 -6
- package/dist/chunks/{NcBreadcrumb-ChxXdE2m.cjs.map → NcBreadcrumb-FbePEaGS.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-D1106x4x.mjs → NcBreadcrumb-VJGW992x.mjs} +22 -6
- package/dist/chunks/{NcBreadcrumb-D1106x4x.mjs.map → NcBreadcrumb-VJGW992x.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-XAvQ1MIp.cjs → NcBreadcrumbs-CrNBCyUa.cjs} +47 -29
- package/dist/chunks/{NcBreadcrumbs-C9Zo0nca.mjs.map → NcBreadcrumbs-CrNBCyUa.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-C9Zo0nca.mjs → NcBreadcrumbs-DJSAcn8x.mjs} +47 -29
- package/dist/chunks/{NcBreadcrumbs-XAvQ1MIp.cjs.map → NcBreadcrumbs-DJSAcn8x.mjs.map} +1 -1
- package/dist/chunks/{NcButton-CWPBzbcC.mjs → NcButton-D3CaJu1f.mjs} +38 -22
- package/dist/chunks/{NcButton-CWPBzbcC.mjs.map → NcButton-D3CaJu1f.mjs.map} +1 -1
- package/dist/chunks/{NcButton-DOsCAjiE.cjs → NcButton-DK7bNZIL.cjs} +38 -22
- package/dist/chunks/{NcButton-DOsCAjiE.cjs.map → NcButton-DK7bNZIL.cjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-yVj7slxL.cjs → NcCheckboxRadioSwitch-CDFUoj2J.cjs} +8 -8
- package/dist/chunks/{NcCheckboxRadioSwitch-yVj7slxL.cjs.map → NcCheckboxRadioSwitch-CDFUoj2J.cjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-CLnWsBwK.mjs → NcCheckboxRadioSwitch-ezquUuPz.mjs} +8 -8
- package/dist/chunks/{NcCheckboxRadioSwitch-CLnWsBwK.mjs.map → NcCheckboxRadioSwitch-ezquUuPz.mjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-5_ghrfiE.mjs → NcCollectionList-w-7M5HGN.mjs} +17 -16
- package/dist/chunks/{NcCollectionList-5_ghrfiE.mjs.map → NcCollectionList-w-7M5HGN.mjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-DZh_7a3g.cjs → NcCollectionList-zAI6Ysc0.cjs} +17 -16
- package/dist/chunks/{NcCollectionList-DZh_7a3g.cjs.map → NcCollectionList-zAI6Ysc0.cjs.map} +1 -1
- package/dist/chunks/NcColorPicker-DpLU-oKM.mjs +157 -0
- package/dist/chunks/NcColorPicker-DpLU-oKM.mjs.map +1 -0
- package/dist/chunks/NcColorPicker-F-UP8OaJ.cjs +156 -0
- package/dist/chunks/NcColorPicker-F-UP8OaJ.cjs.map +1 -0
- package/dist/chunks/{NcContent-CGBJ782F.mjs → NcContent-C0_AA_wt.mjs} +7 -7
- package/dist/chunks/{NcContent-CGBJ782F.mjs.map → NcContent-C0_AA_wt.mjs.map} +1 -1
- package/dist/chunks/{NcContent-I3cwZc0Z.cjs → NcContent-DITvuNbF.cjs} +7 -7
- package/dist/chunks/{NcContent-I3cwZc0Z.cjs.map → NcContent-DITvuNbF.cjs.map} +1 -1
- package/dist/chunks/{NcCounterBubble-oxV8oMlX.mjs → NcCounterBubble-BKPpoBiy.mjs} +6 -4
- package/dist/chunks/{NcCounterBubble-oxV8oMlX.mjs.map → NcCounterBubble-BKPpoBiy.mjs.map} +1 -1
- package/dist/chunks/{NcCounterBubble-hyvazclA.cjs → NcCounterBubble-B_H3NCef.cjs} +6 -4
- package/dist/chunks/{NcCounterBubble-hyvazclA.cjs.map → NcCounterBubble-B_H3NCef.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DKUU16oT.cjs → NcDashboardWidget--n1nzfhg.cjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-DKUU16oT.cjs.map → NcDashboardWidget--n1nzfhg.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-_Bi63nDZ.mjs → NcDashboardWidget-CEL-DhKX.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-_Bi63nDZ.mjs.map → NcDashboardWidget-CEL-DhKX.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-D4q57Lg_.mjs → NcDashboardWidgetItem-DeQtScn8.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-D4q57Lg_.mjs.map → NcDashboardWidgetItem-DeQtScn8.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BhGOOhKF.cjs → NcDashboardWidgetItem-loanO02A.cjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-BhGOOhKF.cjs.map → NcDashboardWidgetItem-loanO02A.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-Du-BeUCp.mjs → NcDialog-BM_wTqUn.mjs} +3 -3
- package/dist/chunks/{NcDialog-Du-BeUCp.mjs.map → NcDialog-BM_wTqUn.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-B2tW1DtP.cjs → NcDialog-CG2sufkb.cjs} +3 -3
- package/dist/chunks/{NcDialog-B2tW1DtP.cjs.map → NcDialog-CG2sufkb.cjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-DtGSMhif.mjs → NcDialogButton-Cr0wVMne.mjs} +6 -5
- package/dist/chunks/{NcDialogButton-DtGSMhif.mjs.map → NcDialogButton-Cr0wVMne.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-BB84DliS.cjs → NcDialogButton-DkfxsIhv.cjs} +6 -5
- package/dist/chunks/{NcDialogButton-BB84DliS.cjs.map → NcDialogButton-DkfxsIhv.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-B2SLfIBu.mjs → NcEmojiPicker-BV_iVlIv.mjs} +14 -13
- package/dist/chunks/NcEmojiPicker-BV_iVlIv.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-q_n1Rd8U.cjs → NcEmojiPicker-fgsuVz7X.cjs} +20 -19
- package/dist/chunks/NcEmojiPicker-fgsuVz7X.cjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-AKzxd51V.cjs → NcHeaderButton-CNQVz4QP.cjs} +2 -2
- package/dist/chunks/{NcHeaderButton-AKzxd51V.cjs.map → NcHeaderButton-CNQVz4QP.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderButton-BORaK-yT.mjs → NcHeaderButton-TJML067P.mjs} +2 -2
- package/dist/chunks/{NcHeaderButton-BORaK-yT.mjs.map → NcHeaderButton-TJML067P.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CBP4SYca.cjs → NcHeaderMenu-BzyFhg55.cjs} +10 -8
- package/dist/chunks/{NcHeaderMenu-CBP4SYca.cjs.map → NcHeaderMenu-BzyFhg55.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-CkD6cjnH.mjs → NcHeaderMenu-D5ddiKnF.mjs} +10 -8
- package/dist/chunks/{NcHeaderMenu-CkD6cjnH.mjs.map → NcHeaderMenu-D5ddiKnF.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-BreCg8pX.mjs → NcIconSvgWrapper-BCVwmZN2.mjs} +2 -2
- package/dist/chunks/{NcIconSvgWrapper-BreCg8pX.mjs.map → NcIconSvgWrapper-BCVwmZN2.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-D-aKMbf3.cjs → NcIconSvgWrapper-DoVPfeNg.cjs} +2 -2
- package/dist/chunks/{NcIconSvgWrapper-D-aKMbf3.cjs.map → NcIconSvgWrapper-DoVPfeNg.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-21vM2JHp.mjs → NcInputConfirmCancel-C8WnMK2V.mjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-21vM2JHp.mjs.map → NcInputConfirmCancel-C8WnMK2V.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-BqZm3WBG.cjs → NcInputConfirmCancel-DVVTaxWi.cjs} +3 -3
- package/dist/chunks/{NcInputConfirmCancel-BqZm3WBG.cjs.map → NcInputConfirmCancel-DVVTaxWi.cjs.map} +1 -1
- package/dist/chunks/{NcInputField-kKgY_2GV.mjs → NcInputField-1ujONIvp.mjs} +8 -7
- package/dist/chunks/{NcInputField-kKgY_2GV.mjs.map → NcInputField-1ujONIvp.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-Dry3uU_8.cjs → NcInputField-LBv3nCrt.cjs} +8 -7
- package/dist/chunks/{NcInputField-Dry3uU_8.cjs.map → NcInputField-LBv3nCrt.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-D_-a7WR9.cjs → NcListItem-DFEvD1TA.cjs} +9 -7
- package/dist/chunks/{NcListItem-D_-a7WR9.cjs.map → NcListItem-DFEvD1TA.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-B3ETbT9w.mjs → NcListItem-DNMfT12A.mjs} +9 -7
- package/dist/chunks/{NcListItem-B3ETbT9w.mjs.map → NcListItem-DNMfT12A.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-CYR8eKOU.cjs → NcListItemIcon-OzD38-2R.cjs} +6 -5
- package/dist/chunks/{NcListItemIcon-CYR8eKOU.cjs.map → NcListItemIcon-OzD38-2R.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-bQZej-L0.mjs → NcListItemIcon-PNp6Wael.mjs} +6 -5
- package/dist/chunks/{NcListItemIcon-bQZej-L0.mjs.map → NcListItemIcon-PNp6Wael.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-9LYKS0t_.mjs → NcPasswordField-D2iDTTpp.mjs} +29 -16
- package/dist/chunks/{NcPasswordField-9LYKS0t_.mjs.map → NcPasswordField-D2iDTTpp.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-DPGGwGEl.cjs → NcPasswordField-lqTDeja4.cjs} +29 -16
- package/dist/chunks/{NcPasswordField-DPGGwGEl.cjs.map → NcPasswordField-lqTDeja4.cjs.map} +1 -1
- package/dist/chunks/{NcPopover-DkX3Esbr.cjs → NcPopover-DrXnNOgM.cjs} +14 -10
- package/dist/chunks/{NcPopover-DMUA5d7U.mjs.map → NcPopover-DrXnNOgM.cjs.map} +1 -1
- package/dist/chunks/{NcPopover-DMUA5d7U.mjs → NcPopover-nzbq2IjT.mjs} +14 -10
- package/dist/chunks/{NcPopover-DkX3Esbr.cjs.map → NcPopover-nzbq2IjT.mjs.map} +1 -1
- package/dist/chunks/{NcProgressBar-D7zYeXBH.mjs → NcProgressBar-BwnuvxiZ.mjs} +2 -2
- package/dist/chunks/{NcProgressBar-D7zYeXBH.mjs.map → NcProgressBar-BwnuvxiZ.mjs.map} +1 -1
- package/dist/chunks/{NcProgressBar-DvxA9bq5.cjs → NcProgressBar-D10gQgAY.cjs} +2 -2
- package/dist/chunks/{NcProgressBar-DvxA9bq5.cjs.map → NcProgressBar-D10gQgAY.cjs.map} +1 -1
- package/dist/chunks/{NcRadioGroup-BZ-humrK.cjs → NcRadioGroup-DsnIVQZJ.cjs} +23 -5
- package/dist/chunks/{NcRadioGroup-VKZJ0Vnh.mjs.map → NcRadioGroup-DsnIVQZJ.cjs.map} +1 -1
- package/dist/chunks/{NcRadioGroup-VKZJ0Vnh.mjs → NcRadioGroup-sZaH_3Y0.mjs} +23 -5
- package/dist/chunks/{NcRadioGroup-BZ-humrK.cjs.map → NcRadioGroup-sZaH_3Y0.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroupButton-QLL4wM7A.mjs → NcRadioGroupButton-B6m10k9G.mjs} +9 -9
- package/dist/chunks/{NcRadioGroupButton-QLL4wM7A.mjs.map → NcRadioGroupButton-B6m10k9G.mjs.map} +1 -1
- package/dist/chunks/{NcRadioGroupButton-7UZaDiJ2.cjs → NcRadioGroupButton-CDf_01-t.cjs} +9 -9
- package/dist/chunks/{NcRadioGroupButton-7UZaDiJ2.cjs.map → NcRadioGroupButton-CDf_01-t.cjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-jvOEQWWO.mjs → NcRelatedResourcesPanel-Q6jZk-Pm.mjs} +49 -40
- package/dist/chunks/NcRelatedResourcesPanel-Q6jZk-Pm.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-jHQ2bRko.cjs → NcRelatedResourcesPanel-bfv-6W_Z.cjs} +50 -41
- package/dist/chunks/NcRelatedResourcesPanel-bfv-6W_Z.cjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-iQhj1-AH.mjs → NcRichContenteditable-8_poOeSx.mjs} +54 -31
- package/dist/chunks/{NcRichContenteditable-BILbjzSU.cjs.map → NcRichContenteditable-8_poOeSx.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-BILbjzSU.cjs → NcRichContenteditable-CtLNSs0S.cjs} +54 -31
- package/dist/chunks/{NcRichContenteditable-iQhj1-AH.mjs.map → NcRichContenteditable-CtLNSs0S.cjs.map} +1 -1
- package/dist/chunks/{NcRichText-DYcfsH5s.cjs → NcRichText-CEsiozf5.cjs} +112 -121
- package/dist/chunks/NcRichText-CEsiozf5.cjs.map +1 -0
- package/dist/chunks/{NcRichText-B7M7rNqC.mjs → NcRichText-Dnx5x9WS.mjs} +114 -121
- package/dist/chunks/NcRichText-Dnx5x9WS.mjs.map +1 -0
- package/dist/chunks/{NcSelect-PvjbF3jF.mjs → NcSelect-TjZw7TJ_.mjs} +41 -24
- package/dist/chunks/{NcSelect-PvjbF3jF.mjs.map → NcSelect-TjZw7TJ_.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-s3_u0qvy.cjs → NcSelect-bo6wla87.cjs} +41 -24
- package/dist/chunks/{NcSelect-s3_u0qvy.cjs.map → NcSelect-bo6wla87.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-DYUCDZ_e.mjs → NcSelectTags-CytnLDOw.mjs} +52 -31
- package/dist/chunks/NcSelectTags-CytnLDOw.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-e4Gjcx_7.cjs → NcSelectTags-D2OSaAfO.cjs} +52 -31
- package/dist/chunks/NcSelectTags-D2OSaAfO.cjs.map +1 -0
- package/dist/chunks/{NcSelectUsers-CMF_h9c0.mjs → NcSelectUsers-Bm0877Tm.mjs} +7 -6
- package/dist/chunks/{NcSelectUsers-CMF_h9c0.mjs.map → NcSelectUsers-Bm0877Tm.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-Bmwhu14K.cjs → NcSelectUsers-wcRyExkC.cjs} +7 -6
- package/dist/chunks/{NcSelectUsers-Bmwhu14K.cjs.map → NcSelectUsers-wcRyExkC.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-BQVh24zT.mjs → NcSettingsInputText-DPAtsY2T.mjs} +3 -3
- package/dist/chunks/{NcSettingsInputText-BQVh24zT.mjs.map → NcSettingsInputText-DPAtsY2T.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-DWihH7ke.cjs → NcSettingsInputText-DaFMiOS6.cjs} +3 -3
- package/dist/chunks/{NcSettingsInputText-DWihH7ke.cjs.map → NcSettingsInputText-DaFMiOS6.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-evNvfEg2.mjs → NcSettingsSection-CX5q924g.mjs} +4 -3
- package/dist/chunks/{NcSettingsSection-evNvfEg2.mjs.map → NcSettingsSection-CX5q924g.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-Dgc7SEuu.cjs → NcSettingsSection-r4NOxKIz.cjs} +4 -3
- package/dist/chunks/{NcSettingsSection-Dgc7SEuu.cjs.map → NcSettingsSection-r4NOxKIz.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-C-YAk1f8.mjs → NcSettingsSelectGroup-CR4XLrgs.mjs} +25 -9
- package/dist/chunks/{NcSettingsSelectGroup-C-YAk1f8.mjs.map → NcSettingsSelectGroup-CR4XLrgs.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-X1pBwmAZ.cjs → NcSettingsSelectGroup-DYYAPkgp.cjs} +25 -9
- package/dist/chunks/{NcSettingsSelectGroup-X1pBwmAZ.cjs.map → NcSettingsSelectGroup-DYYAPkgp.cjs.map} +1 -1
- package/dist/chunks/{NcTextArea-DHmD6-6s.mjs → NcTextArea-If_ygOSv.mjs} +5 -5
- package/dist/chunks/{NcTextArea-DHmD6-6s.mjs.map → NcTextArea-If_ygOSv.mjs.map} +1 -1
- package/dist/chunks/{NcTextArea-DkVtHTpD.cjs → NcTextArea-iDhGI-Ko.cjs} +5 -5
- package/dist/chunks/{NcTextArea-DkVtHTpD.cjs.map → NcTextArea-iDhGI-Ko.cjs.map} +1 -1
- package/dist/chunks/{NcTextField-D_IMz2MR.mjs → NcTextField-BE9R1pLt.mjs} +31 -17
- package/dist/chunks/{NcTextField-D_IMz2MR.mjs.map → NcTextField-BE9R1pLt.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-Cp3tulze.cjs → NcTextField-OPiMgNR7.cjs} +31 -17
- package/dist/chunks/{NcTextField-Cp3tulze.cjs.map → NcTextField-OPiMgNR7.cjs.map} +1 -1
- package/dist/chunks/{NcThemeProvider-BqGPTeWg.cjs → NcThemeProvider-DbNRSwkX.cjs} +2 -2
- package/dist/chunks/{NcThemeProvider-BqGPTeWg.cjs.map → NcThemeProvider-DbNRSwkX.cjs.map} +1 -1
- package/dist/chunks/{NcThemeProvider-25ResoIv.mjs → NcThemeProvider-E_S5rhIQ.mjs} +2 -2
- package/dist/chunks/{NcThemeProvider-25ResoIv.mjs.map → NcThemeProvider-E_S5rhIQ.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-Cu1FrSIX.mjs → NcTimezonePicker-D4y736xC.mjs} +5 -5
- package/dist/chunks/{NcTimezonePicker-Cu1FrSIX.mjs.map → NcTimezonePicker-D4y736xC.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-Co7jDP7N.cjs → NcTimezonePicker-DPpWz5fa.cjs} +5 -5
- package/dist/chunks/{NcTimezonePicker-Co7jDP7N.cjs.map → NcTimezonePicker-DPpWz5fa.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-Be2B8iJY.mjs → NcUserBubble-8Mts76ii.mjs} +7 -6
- package/dist/chunks/{NcUserBubble-Be2B8iJY.mjs.map → NcUserBubble-8Mts76ii.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-CdX6H9-M.cjs → NcUserBubble-Bb9WBP1S.cjs} +7 -6
- package/dist/chunks/{NcUserBubble-CdX6H9-M.cjs.map → NcUserBubble-Bb9WBP1S.cjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-C83nB_8T.mjs → NcUserStatusIcon-BWxo_etm.mjs} +11 -8
- package/dist/chunks/{NcUserStatusIcon-C83nB_8T.mjs.map → NcUserStatusIcon-BWxo_etm.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-DhZabBIY.cjs → NcUserStatusIcon-DV2H-KfR.cjs} +11 -8
- package/dist/chunks/{NcUserStatusIcon-DhZabBIY.cjs.map → NcUserStatusIcon-DV2H-KfR.cjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-9wtS_FpN.cjs → ScopeComponent-CDX-s-IV.cjs} +2 -2
- package/dist/chunks/{ScopeComponent-9wtS_FpN.cjs.map → ScopeComponent-CDX-s-IV.cjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-305QOaqN.mjs → ScopeComponent-DsONbC6w.mjs} +2 -2
- package/dist/chunks/{ScopeComponent-305QOaqN.mjs.map → ScopeComponent-DsONbC6w.mjs.map} +1 -1
- package/dist/chunks/{_l10n-DM-VRK9x.cjs → _l10n-9b4TMo5Q.cjs} +2 -6
- package/dist/chunks/{_l10n-DM-VRK9x.cjs.map → _l10n-9b4TMo5Q.cjs.map} +1 -1
- package/dist/chunks/{_l10n-BEfeU7gr.mjs → _l10n-DSLCwJSN.mjs} +41 -45
- package/dist/chunks/_l10n-DSLCwJSN.mjs.map +1 -0
- package/dist/chunks/{actionText-D2-z0ud3.cjs → actionText-D_3-6fCH.cjs} +2 -2
- package/dist/chunks/{actionText-D2-z0ud3.cjs.map → actionText-D_3-6fCH.cjs.map} +1 -1
- package/dist/chunks/{actionText-BMig9Egt.mjs → actionText-ZM1k96ts.mjs} +2 -2
- package/dist/chunks/{actionText-BMig9Egt.mjs.map → actionText-ZM1k96ts.mjs.map} +1 -1
- package/dist/chunks/{GenColors-DIH749TS.mjs → colors-BMiIMYXK.mjs} +42 -48
- package/dist/chunks/colors-BMiIMYXK.mjs.map +1 -0
- package/dist/chunks/{GenColors-BVouTbTJ.cjs → colors-DcbJ13is.cjs} +41 -47
- package/dist/chunks/colors-DcbJ13is.cjs.map +1 -0
- package/dist/chunks/createElementId-5skgwxOP.mjs +9 -0
- package/dist/chunks/{createElementId-DhjFt1I9.mjs.map → createElementId-5skgwxOP.mjs.map} +1 -1
- package/dist/chunks/createElementId-DaJhnLzq.cjs +8 -0
- package/dist/chunks/{createElementId-lalylSCf.cjs.map → createElementId-DaJhnLzq.cjs.map} +1 -1
- package/dist/chunks/{customPickerElements-DLFtgReB.mjs → customPickerElements-BPROmh4T.mjs} +43 -21
- package/dist/chunks/{customPickerElements-DLFtgReB.mjs.map → customPickerElements-BPROmh4T.mjs.map} +1 -1
- package/dist/chunks/{customPickerElements-GyIIOHiQ.cjs → customPickerElements-DBEOrbce.cjs} +43 -21
- package/dist/chunks/{customPickerElements-GyIIOHiQ.cjs.map → customPickerElements-DBEOrbce.cjs.map} +1 -1
- package/dist/chunks/{emoji-VgSjNTd5.cjs → emoji-BCCCB3t3.cjs} +4 -3
- package/dist/chunks/{emoji-VgSjNTd5.cjs.map → emoji-BCCCB3t3.cjs.map} +1 -1
- package/dist/chunks/{emoji-BY_D0V5K.mjs → emoji-V6ytyzoR.mjs} +4 -3
- package/dist/chunks/{emoji-BY_D0V5K.mjs.map → emoji-V6ytyzoR.mjs.map} +1 -1
- package/dist/chunks/{focusTrap-HJQ4pqHV.mjs → focusTrap-BibOtksr.mjs} +3 -2
- package/dist/chunks/{focusTrap-DUTqW_IG.cjs.map → focusTrap-BibOtksr.mjs.map} +1 -1
- package/dist/chunks/{focusTrap-DUTqW_IG.cjs → focusTrap-DhhUL4JZ.cjs} +3 -2
- package/dist/chunks/{focusTrap-HJQ4pqHV.mjs.map → focusTrap-DhhUL4JZ.cjs.map} +1 -1
- package/dist/chunks/getAvatarUrl-C8Q41hfR.mjs +16 -0
- package/dist/chunks/{getAvatarUrl-IhLacDEr.mjs.map → getAvatarUrl-C8Q41hfR.mjs.map} +1 -1
- package/dist/chunks/getAvatarUrl-DwWyuiUZ.cjs +15 -0
- package/dist/chunks/{getAvatarUrl-Du9Y3cPO.cjs.map → getAvatarUrl-DwWyuiUZ.cjs.map} +1 -1
- package/dist/chunks/{index-TmAR7I2T.mjs → index-BsEMR4S4.mjs} +9 -9
- package/dist/chunks/{index-TmAR7I2T.mjs.map → index-BsEMR4S4.mjs.map} +1 -1
- package/dist/chunks/{index-Dr9k4hIP.cjs → index-CmwBGDjr.cjs} +22 -4
- package/dist/chunks/{index-CxTT94_h.mjs.map → index-CmwBGDjr.cjs.map} +1 -1
- package/dist/chunks/{index-CgkN1xho.cjs → index-D_jGr37E.cjs} +9 -9
- package/dist/chunks/{index-CgkN1xho.cjs.map → index-D_jGr37E.cjs.map} +1 -1
- package/dist/chunks/{index-CxTT94_h.mjs → index-JArK0Dbx.mjs} +22 -4
- package/dist/chunks/{index-Dr9k4hIP.cjs.map → index-JArK0Dbx.mjs.map} +1 -1
- package/dist/chunks/legacy-DUgfmdiS.cjs +6 -0
- package/dist/chunks/{legacy-MK4GvP26.mjs.map → legacy-DUgfmdiS.cjs.map} +1 -1
- package/dist/chunks/legacy-NU_qxPFK.mjs +7 -0
- package/dist/chunks/{legacy-KBXhWdRy.cjs.map → legacy-NU_qxPFK.mjs.map} +1 -1
- package/dist/chunks/{mdi-DXu6GWVJ.mjs → mdi-CKSXwCsV.mjs} +8 -6
- package/dist/chunks/{mdi-DXu6GWVJ.mjs.map → mdi-CKSXwCsV.mjs.map} +1 -1
- package/dist/chunks/{mdi-BBwE-MZC.cjs → mdi-Nhb6SBw8.cjs} +3 -1
- package/dist/chunks/{mdi-BBwE-MZC.cjs.map → mdi-Nhb6SBw8.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-BcAnnsxZ.cjs → referencePickerModal-CusxgEsK.cjs} +66 -35
- package/dist/chunks/referencePickerModal-CusxgEsK.cjs.map +1 -0
- package/dist/chunks/{referencePickerModal-CN4C9eDc.mjs → referencePickerModal-DpJUQ5fq.mjs} +66 -35
- package/dist/chunks/referencePickerModal-DpJUQ5fq.mjs.map +1 -0
- package/dist/chunks/useAppSettingsDialog-CPqmms-u.cjs +9 -0
- package/dist/chunks/useAppSettingsDialog-CPqmms-u.cjs.map +1 -0
- package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs +10 -0
- package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +1 -0
- package/dist/chunks/{useModelMigration-EhAWvqDD.mjs → useModelMigration-DBUi8saj.mjs} +2 -2
- package/dist/chunks/useModelMigration-DBUi8saj.mjs.map +1 -0
- package/dist/chunks/{useModelMigration-D5zhrNXr.cjs → useModelMigration-HPf30klj.cjs} +2 -2
- package/dist/chunks/useModelMigration-HPf30klj.cjs.map +1 -0
- package/dist/chunks/{useTrapStackControl-BnLfCgGU.mjs → useTrapStackControl-2gEo3rvr.mjs} +2 -2
- package/dist/chunks/{useTrapStackControl-BnLfCgGU.mjs.map → useTrapStackControl-2gEo3rvr.mjs.map} +1 -1
- package/dist/chunks/{useTrapStackControl-XYABY64G.cjs → useTrapStackControl-dthvITlQ.cjs} +2 -2
- package/dist/chunks/{useTrapStackControl-XYABY64G.cjs.map → useTrapStackControl-dthvITlQ.cjs.map} +1 -1
- package/dist/components/NcAppSettingsDialog/index.d.ts +5 -0
- package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +24 -0
- package/dist/components/NcColorPicker/index.d.ts +5 -0
- package/dist/composables/index.d.ts +9 -0
- package/dist/composables/useHotKey/index.d.ts +4 -2
- package/dist/composables/useIsMobile/index.d.ts +23 -0
- package/dist/composables/useModelMigration.d.ts +1 -1
- package/dist/index.cjs +67 -67
- package/dist/index.mjs +67 -67
- package/dist/utils/colors.d.ts +36 -0
- package/package.json +10 -10
- package/dist/chunks/GenColors-BVouTbTJ.cjs.map +0 -1
- package/dist/chunks/GenColors-DIH749TS.mjs.map +0 -1
- package/dist/chunks/NcAppContent-C9NGJE6n.mjs.map +0 -1
- package/dist/chunks/NcAppContent-Djy38ou2.cjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-DVFw09eD.mjs +0 -223
- package/dist/chunks/NcAppSettingsDialog-DVFw09eD.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-DalEoC9H.cjs +0 -225
- package/dist/chunks/NcAppSettingsDialog-DalEoC9H.cjs.map +0 -1
- package/dist/chunks/NcAvatar-CuYtFEdJ.mjs.map +0 -1
- package/dist/chunks/NcAvatar-bd-5zXWN.cjs.map +0 -1
- package/dist/chunks/NcColorPicker-Cae6XNoK.mjs +0 -255
- package/dist/chunks/NcColorPicker-Cae6XNoK.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-D-E2dT4Q.cjs +0 -254
- package/dist/chunks/NcColorPicker-D-E2dT4Q.cjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-B2SLfIBu.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-q_n1Rd8U.cjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-jHQ2bRko.cjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-jvOEQWWO.mjs.map +0 -1
- package/dist/chunks/NcRichText-B7M7rNqC.mjs.map +0 -1
- package/dist/chunks/NcRichText-DYcfsH5s.cjs.map +0 -1
- package/dist/chunks/NcSelectTags-DYUCDZ_e.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-e4Gjcx_7.cjs.map +0 -1
- package/dist/chunks/_l10n-BEfeU7gr.mjs.map +0 -1
- package/dist/chunks/createElementId-DhjFt1I9.mjs +0 -8
- package/dist/chunks/createElementId-lalylSCf.cjs +0 -7
- package/dist/chunks/getAvatarUrl-Du9Y3cPO.cjs +0 -14
- package/dist/chunks/getAvatarUrl-IhLacDEr.mjs +0 -15
- package/dist/chunks/legacy-KBXhWdRy.cjs +0 -5
- package/dist/chunks/legacy-MK4GvP26.mjs +0 -6
- package/dist/chunks/referencePickerModal-BcAnnsxZ.cjs.map +0 -1
- package/dist/chunks/referencePickerModal-CN4C9eDc.mjs.map +0 -1
- package/dist/chunks/useModelMigration-D5zhrNXr.cjs.map +0 -1
- package/dist/chunks/useModelMigration-EhAWvqDD.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSelectUsers-CMF_h9c0.mjs","sources":["../../src/components/NcSelectUsers/NcSelectUsers.vue"],"sourcesContent":["<!--\n\t- SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n\t- SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Nextcloud user picker\n\n#### Examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelectUsers v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport svgAccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport svgEmail from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tkeepOpen: true,\n\t\t\tmultiple: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport NcListItemIcon from '../NcListItemIcon/NcListItemIcon.vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.js'\nimport createElementId from '../../utils/GenRandomId.js'\n\nconst props = defineProps({\n\t/**\n\t * `aria-label` for the clear input button\n\t */\n\tariaLabelClearSelected: {\n\t\ttype: String,\n\t\tdefault: t('Clear selected'),\n\t},\n\n\t/**\n\t * `aria-label` for the listbox element\n\t */\n\tariaLabelListbox: {\n\t\ttype: String,\n\t\tdefault: t('Options'),\n\t},\n\n\t/**\n\t * Allows to customize the `aria-label` for the deselect-option button\n\t * The default is \"Deselect \" + optionLabel\n\t *\n\t * @type {(optionLabel: string) => string}\n\t */\n\tariaLabelDeselectOption: {\n\t\ttype: Function,\n\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t},\n\n\t/**\n\t * Keep the dropdown open after selecting an entry.\n\t */\n\tkeepOpen: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable the component\n\t */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Callback to determine if the provided option should match the current search text.\n\t * Used to determine if the option should be displayed.\n\t *\n\t * By default it filters by the `displayName` and `subname` properties of the user\n\t * option object unless this prop is set explicitly\n\t */\n\tfilterBy: {\n\t\ttype: Function,\n\t\tdefault: null,\n\t},\n\n\t/**\n\t * Input element id\n\t */\n\tinputId: {\n\t\ttype: String,\n\t\tdefault: () => createElementId(),\n\t},\n\n\t/**\n\t * Visible label for the input element\n\t *\n\t * @default 'Select account'\n\t */\n\tinputLabel: {\n\t\ttype: String,\n\t\tdefault: t('Select account'),\n\t},\n\n\t/**\n\t * Pass true if you are using an external label.\n\t * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n\t */\n\tlabelOutside: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Show a loading icon.\n\t *\n\t * @default false\n\t */\n\tloading: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Allow selection of multiple options\n\t *\n\t * @default false\n\t */\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable automatic wrapping when selected options overflow the width.\n\t *\n\t * @default false\n\t */\n\tnoWrap: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Array of users.\n\t *\n\t * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n\t */\n\toptions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t},\n\n\t/**\n\t * Placeholder text.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\n\t/**\n\t * Enable if a value is required for native form validation\n\t */\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Currently selected value\n\t *\n\t * The `v-model` directive may be used for two-way data binding\n\t */\n\tmodelValue: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n\nconst emit = defineEmits(['search', 'update:modelValue'])\n\nconst search = ref('')\nwatch(search, () => {\n\t/**\n\t * Emitted when the user enters some query.\n\t * This can be used to asynchronously fetch more options.\n\t */\n\temit('search', search.value)\n})\n\n// Avatar size so the component has the same size as Nc*Field\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\nconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\nconst avatarSize = clickableArea - 2 * gridBaseLine\n\n/**\n * Filter function to search users.\n *\n * @param {{subname: string}} option - The option to check\n * @param {string} label - The label of the option\n * @param {string} search - The current search string\n */\nfunction localFilterBy(option, label, search) {\n\tif (props.filterBy) {\n\t\treturn props.filterBy\n\t}\n\n\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\tconst match = search.match(EMAIL_NOTATION)\n\tconst subname = option.subname?.toLocaleLowerCase() ?? ''\n\treturn (match && subname.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t|| (`${label} ${option.subname}`\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n}\n</script>\n\n<script>\n/** For backward compatibility with Vue 2 */\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tclass=\"nc-select-users\"\n\t\tv-bind=\"$props\"\n\t\t:filter-by=\"localFilterBy\"\n\t\tlabel=\"displayName\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"32\"\n\t\t\t\t:name=\"option.displayName\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption.displayName\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t</NcSelect>\n</template>\n\n<style scoped lang=\"css\">\n.nc-select-users :deep(.vs__selected) {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["search"],"mappings":";;;;;;;AA6WA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7CA,UAAM,SAAS,IAAI,EAAE;AACrB,UAAM,QAAQ,MAAM;AAKnB,WAAK,UAAU,OAAO,KAAK;AAAA,IAC5B,CAAC;AAGD,UAAM,gBAAgB,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,0BAA0B,CAAC;AACzH,UAAM,eAAe,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,yBAAyB,CAAC;AACvH,UAAM,aAAa,gBAAgB,IAAI;AASvC,aAAS,cAAc,QAAQ,OAAOA,SAAQ;AAC7C,UAAI,MAAM,UAAU;AACnB,eAAO,MAAM;AAAA,MACd;AAGA,YAAM,iBAAiB;AAEvB,YAAM,QAAQA,QAAO,MAAM,cAAc;AACzC,YAAM,UAAU,OAAO,SAAS,kBAAiB,KAAM;AACvD,aAAQ,SAAS,QAAQ,QAAQ,MAAM,CAAC,EAAE,kBAAiB,CAAE,IAAI,MAC5D,GAAG,KAAK,IAAI,OAAO,OAAO,GAC5B,kBAAiB,EACjB,QAAQA,QAAO,kBAAiB,CAAE,IAAI;AAAA,IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"NcSelectUsers-Bm0877Tm.mjs","sources":["../../src/components/NcSelectUsers/NcSelectUsers.vue"],"sourcesContent":["<!--\n\t- SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n\t- SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Nextcloud user picker\n\n#### Examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelectUsers v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport svgAccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport svgEmail from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tkeepOpen: true,\n\t\t\tmultiple: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport NcListItemIcon from '../NcListItemIcon/NcListItemIcon.vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.js'\nimport createElementId from '../../utils/GenRandomId.js'\n\nconst props = defineProps({\n\t/**\n\t * `aria-label` for the clear input button\n\t */\n\tariaLabelClearSelected: {\n\t\ttype: String,\n\t\tdefault: t('Clear selected'),\n\t},\n\n\t/**\n\t * `aria-label` for the listbox element\n\t */\n\tariaLabelListbox: {\n\t\ttype: String,\n\t\tdefault: t('Options'),\n\t},\n\n\t/**\n\t * Allows to customize the `aria-label` for the deselect-option button\n\t * The default is \"Deselect \" + optionLabel\n\t *\n\t * @type {(optionLabel: string) => string}\n\t */\n\tariaLabelDeselectOption: {\n\t\ttype: Function,\n\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t},\n\n\t/**\n\t * Keep the dropdown open after selecting an entry.\n\t */\n\tkeepOpen: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable the component\n\t */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Callback to determine if the provided option should match the current search text.\n\t * Used to determine if the option should be displayed.\n\t *\n\t * By default it filters by the `displayName` and `subname` properties of the user\n\t * option object unless this prop is set explicitly\n\t */\n\tfilterBy: {\n\t\ttype: Function,\n\t\tdefault: null,\n\t},\n\n\t/**\n\t * Input element id\n\t */\n\tinputId: {\n\t\ttype: String,\n\t\tdefault: () => createElementId(),\n\t},\n\n\t/**\n\t * Visible label for the input element\n\t *\n\t * @default 'Select account'\n\t */\n\tinputLabel: {\n\t\ttype: String,\n\t\tdefault: t('Select account'),\n\t},\n\n\t/**\n\t * Pass true if you are using an external label.\n\t * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n\t */\n\tlabelOutside: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Show a loading icon.\n\t *\n\t * @default false\n\t */\n\tloading: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Allow selection of multiple options\n\t *\n\t * @default false\n\t */\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable automatic wrapping when selected options overflow the width.\n\t *\n\t * @default false\n\t */\n\tnoWrap: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Array of users.\n\t *\n\t * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n\t */\n\toptions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t},\n\n\t/**\n\t * Placeholder text.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\n\t/**\n\t * Enable if a value is required for native form validation\n\t */\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Currently selected value\n\t *\n\t * The `v-model` directive may be used for two-way data binding\n\t */\n\tmodelValue: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n\nconst emit = defineEmits(['search', 'update:modelValue'])\n\nconst search = ref('')\nwatch(search, () => {\n\t/**\n\t * Emitted when the user enters some query.\n\t * This can be used to asynchronously fetch more options.\n\t */\n\temit('search', search.value)\n})\n\n// Avatar size so the component has the same size as Nc*Field\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\nconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\nconst avatarSize = clickableArea - 2 * gridBaseLine\n\n/**\n * Filter function to search users.\n *\n * @param {{subname: string}} option - The option to check\n * @param {string} label - The label of the option\n * @param {string} search - The current search string\n */\nfunction localFilterBy(option, label, search) {\n\tif (props.filterBy) {\n\t\treturn props.filterBy\n\t}\n\n\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\tconst match = search.match(EMAIL_NOTATION)\n\tconst subname = option.subname?.toLocaleLowerCase() ?? ''\n\treturn (match && subname.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t|| (`${label} ${option.subname}`\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n}\n</script>\n\n<script>\n/** For backward compatibility with Vue 2 */\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tclass=\"nc-select-users\"\n\t\tv-bind=\"$props\"\n\t\t:filter-by=\"localFilterBy\"\n\t\tlabel=\"displayName\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"32\"\n\t\t\t\t:name=\"option.displayName\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption.displayName\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t</NcSelect>\n</template>\n\n<style scoped lang=\"css\">\n.nc-select-users :deep(.vs__selected) {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["search"],"mappings":";;;;;;;AA6WA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7CA,UAAM,SAAS,IAAI,EAAE;AACrB,UAAM,QAAQ,MAAM;AAKnB,WAAK,UAAU,OAAO,KAAK;AAAA,IAC5B,CAAC;AAGD,UAAM,gBAAgB,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,0BAA0B,CAAC;AACzH,UAAM,eAAe,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,yBAAyB,CAAC;AACvH,UAAM,aAAa,gBAAgB,IAAI;AASvC,aAAS,cAAc,QAAQ,OAAOA,SAAQ;;AAC7C,UAAI,MAAM,UAAU;AACnB,eAAO,MAAM;AAAA,MACd;AAGA,YAAM,iBAAiB;AAEvB,YAAM,QAAQA,QAAO,MAAM,cAAc;AACzC,YAAM,WAAU,kBAAO,YAAP,mBAAgB,wBAAhB,YAAuC;AACvD,aAAQ,SAAS,QAAQ,QAAQ,MAAM,CAAC,EAAE,kBAAiB,CAAE,IAAI,MAC5D,GAAG,cAAK,KAAI,cAAO,SACrB,kBAAiB,EACjB,QAAQA,QAAO,kBAAiB,CAAE,IAAI;AAAA,IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require('../assets/NcSelectUsers-CfOSPgtz.css');
|
|
2
2
|
"use strict";
|
|
3
3
|
const Vue = require("vue");
|
|
4
|
-
const NcListItemIcon = require("./NcListItemIcon-
|
|
5
|
-
const NcSelect = require("./NcSelect-
|
|
6
|
-
const _l10n = require("./_l10n-
|
|
4
|
+
const NcListItemIcon = require("./NcListItemIcon-OzD38-2R.cjs");
|
|
5
|
+
const NcSelect = require("./NcSelect-bo6wla87.cjs");
|
|
6
|
+
const _l10n = require("./_l10n-9b4TMo5Q.cjs");
|
|
7
7
|
const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
|
|
8
8
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
9
9
|
_l10n.register(_l10n.t16, _l10n.t44);
|
|
@@ -160,13 +160,14 @@ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
|
|
|
160
160
|
const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline"));
|
|
161
161
|
const avatarSize = clickableArea - 2 * gridBaseLine;
|
|
162
162
|
function localFilterBy(option, label, search2) {
|
|
163
|
+
var _a, _b;
|
|
163
164
|
if (props.filterBy) {
|
|
164
165
|
return props.filterBy;
|
|
165
166
|
}
|
|
166
167
|
const EMAIL_NOTATION = /[^<]*<([^>]+)/;
|
|
167
168
|
const match = search2.match(EMAIL_NOTATION);
|
|
168
|
-
const subname = option.subname
|
|
169
|
-
return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 ||
|
|
169
|
+
const subname = (_b = (_a = option.subname) == null ? void 0 : _a.toLocaleLowerCase()) != null ? _b : "";
|
|
170
|
+
return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || "".concat(label, " ").concat(option.subname).toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;
|
|
170
171
|
}
|
|
171
172
|
return { __sfc: true, props, emit, search, clickableArea, gridBaseLine, avatarSize, localFilterBy, NcListItemIcon: NcListItemIcon.NcListItemIcon, NcSelect: NcSelect.NcSelect };
|
|
172
173
|
}
|
|
@@ -194,4 +195,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
194
195
|
);
|
|
195
196
|
const NcSelectUsers = __component__.exports;
|
|
196
197
|
exports.NcSelectUsers = NcSelectUsers;
|
|
197
|
-
//# sourceMappingURL=NcSelectUsers-
|
|
198
|
+
//# sourceMappingURL=NcSelectUsers-wcRyExkC.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSelectUsers-Bmwhu14K.cjs","sources":["../../src/components/NcSelectUsers/NcSelectUsers.vue"],"sourcesContent":["<!--\n\t- SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n\t- SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Nextcloud user picker\n\n#### Examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelectUsers v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport svgAccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport svgEmail from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tkeepOpen: true,\n\t\t\tmultiple: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport NcListItemIcon from '../NcListItemIcon/NcListItemIcon.vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.js'\nimport createElementId from '../../utils/GenRandomId.js'\n\nconst props = defineProps({\n\t/**\n\t * `aria-label` for the clear input button\n\t */\n\tariaLabelClearSelected: {\n\t\ttype: String,\n\t\tdefault: t('Clear selected'),\n\t},\n\n\t/**\n\t * `aria-label` for the listbox element\n\t */\n\tariaLabelListbox: {\n\t\ttype: String,\n\t\tdefault: t('Options'),\n\t},\n\n\t/**\n\t * Allows to customize the `aria-label` for the deselect-option button\n\t * The default is \"Deselect \" + optionLabel\n\t *\n\t * @type {(optionLabel: string) => string}\n\t */\n\tariaLabelDeselectOption: {\n\t\ttype: Function,\n\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t},\n\n\t/**\n\t * Keep the dropdown open after selecting an entry.\n\t */\n\tkeepOpen: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable the component\n\t */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Callback to determine if the provided option should match the current search text.\n\t * Used to determine if the option should be displayed.\n\t *\n\t * By default it filters by the `displayName` and `subname` properties of the user\n\t * option object unless this prop is set explicitly\n\t */\n\tfilterBy: {\n\t\ttype: Function,\n\t\tdefault: null,\n\t},\n\n\t/**\n\t * Input element id\n\t */\n\tinputId: {\n\t\ttype: String,\n\t\tdefault: () => createElementId(),\n\t},\n\n\t/**\n\t * Visible label for the input element\n\t *\n\t * @default 'Select account'\n\t */\n\tinputLabel: {\n\t\ttype: String,\n\t\tdefault: t('Select account'),\n\t},\n\n\t/**\n\t * Pass true if you are using an external label.\n\t * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n\t */\n\tlabelOutside: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Show a loading icon.\n\t *\n\t * @default false\n\t */\n\tloading: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Allow selection of multiple options\n\t *\n\t * @default false\n\t */\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable automatic wrapping when selected options overflow the width.\n\t *\n\t * @default false\n\t */\n\tnoWrap: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Array of users.\n\t *\n\t * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n\t */\n\toptions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t},\n\n\t/**\n\t * Placeholder text.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\n\t/**\n\t * Enable if a value is required for native form validation\n\t */\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Currently selected value\n\t *\n\t * The `v-model` directive may be used for two-way data binding\n\t */\n\tmodelValue: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n\nconst emit = defineEmits(['search', 'update:modelValue'])\n\nconst search = ref('')\nwatch(search, () => {\n\t/**\n\t * Emitted when the user enters some query.\n\t * This can be used to asynchronously fetch more options.\n\t */\n\temit('search', search.value)\n})\n\n// Avatar size so the component has the same size as Nc*Field\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\nconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\nconst avatarSize = clickableArea - 2 * gridBaseLine\n\n/**\n * Filter function to search users.\n *\n * @param {{subname: string}} option - The option to check\n * @param {string} label - The label of the option\n * @param {string} search - The current search string\n */\nfunction localFilterBy(option, label, search) {\n\tif (props.filterBy) {\n\t\treturn props.filterBy\n\t}\n\n\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\tconst match = search.match(EMAIL_NOTATION)\n\tconst subname = option.subname?.toLocaleLowerCase() ?? ''\n\treturn (match && subname.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t|| (`${label} ${option.subname}`\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n}\n</script>\n\n<script>\n/** For backward compatibility with Vue 2 */\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tclass=\"nc-select-users\"\n\t\tv-bind=\"$props\"\n\t\t:filter-by=\"localFilterBy\"\n\t\tlabel=\"displayName\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"32\"\n\t\t\t\t:name=\"option.displayName\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption.displayName\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t</NcSelect>\n</template>\n\n<style scoped lang=\"css\">\n.nc-select-users :deep(.vs__selected) {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["ref","watch","search"],"mappings":";;;;;;;;AA6WA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7CA,UAAM,SAASA,IAAAA,IAAI,EAAE;AACrBC,QAAAA,MAAM,QAAQ,MAAM;AAKnB,WAAK,UAAU,OAAO,KAAK;AAAA,IAC5B,CAAC;AAGD,UAAM,gBAAgB,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,0BAA0B,CAAC;AACzH,UAAM,eAAe,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,yBAAyB,CAAC;AACvH,UAAM,aAAa,gBAAgB,IAAI;AASvC,aAAS,cAAc,QAAQ,OAAOC,SAAQ;AAC7C,UAAI,MAAM,UAAU;AACnB,eAAO,MAAM;AAAA,MACd;AAGA,YAAM,iBAAiB;AAEvB,YAAM,QAAQA,QAAO,MAAM,cAAc;AACzC,YAAM,UAAU,OAAO,SAAS,kBAAiB,KAAM;AACvD,aAAQ,SAAS,QAAQ,QAAQ,MAAM,CAAC,EAAE,kBAAiB,CAAE,IAAI,MAC5D,GAAG,KAAK,IAAI,OAAO,OAAO,GAC5B,kBAAiB,EACjB,QAAQA,QAAO,kBAAiB,CAAE,IAAI;AAAA,IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"NcSelectUsers-wcRyExkC.cjs","sources":["../../src/components/NcSelectUsers/NcSelectUsers.vue"],"sourcesContent":["<!--\n\t- SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n\t- SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Nextcloud user picker\n\n#### Examples\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<div v-for=\"{ props } in selectArray\"\n\t\t\tclass=\"container\">\n\t\t\t<NcSelectUsers v-bind=\"props\"\n\t\t\t\tv-model=\"props.value\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport svgAccountGroup from '@mdi/svg/svg/account-group.svg?raw'\nimport svgEmail from '@mdi/svg/svg/email.svg?raw'\n\nconst selectArray = [\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'User select',\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t\t// Example of how to show the user status within the option\n\t\t\t\t\tuser: '0-john',\n\t\t\t\t\tpreloadedUserStatus: {\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t\tmessage: 'I am online',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\n\t{\n\t\tprops: {\n\t\t\tinputLabel: 'Multiple user select (stay open on select)',\n\t\t\tkeepOpen: true,\n\t\t\tmultiple: true,\n\t\t\toptions: [\n\t\t\t\t{\n\t\t\t\t\tid: '0-john',\n\t\t\t\t\tdisplayName: 'John',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'john@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-emma',\n\t\t\t\t\tdisplayName: 'Emma',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'emma@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-olivia',\n\t\t\t\t\tdisplayName: 'Olivia',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'olivia@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-noah',\n\t\t\t\t\tdisplayName: 'Noah',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'noah@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '0-oliver',\n\t\t\t\t\tdisplayName: 'Oliver',\n\t\t\t\t\tisNoUser: false,\n\t\t\t\t\tsubname: 'oliver@example.org',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '1-admin',\n\t\t\t\t\tdisplayName: 'Admin',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\ticonSvg: svgAccountGroup,\n\t\t\t\t\ticonName: 'Group icon',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: '2-org@example.org',\n\t\t\t\t\tdisplayName: 'Organization',\n\t\t\t\t\tisNoUser: true,\n\t\t\t\t\tsubname: 'org@example.org',\n\t\t\t\t\ticonSvg: svgEmail,\n\t\t\t\t\ticonName: 'Email icon',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n]\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tselectArray,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(1, 500px);\n\tgap: 10px;\n}\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px 0;\n}\n</style>\n```\n</docs>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport NcListItemIcon from '../NcListItemIcon/NcListItemIcon.vue'\nimport NcSelect from '../NcSelect/NcSelect.vue'\nimport { t } from '../../l10n.js'\nimport createElementId from '../../utils/GenRandomId.js'\n\nconst props = defineProps({\n\t/**\n\t * `aria-label` for the clear input button\n\t */\n\tariaLabelClearSelected: {\n\t\ttype: String,\n\t\tdefault: t('Clear selected'),\n\t},\n\n\t/**\n\t * `aria-label` for the listbox element\n\t */\n\tariaLabelListbox: {\n\t\ttype: String,\n\t\tdefault: t('Options'),\n\t},\n\n\t/**\n\t * Allows to customize the `aria-label` for the deselect-option button\n\t * The default is \"Deselect \" + optionLabel\n\t *\n\t * @type {(optionLabel: string) => string}\n\t */\n\tariaLabelDeselectOption: {\n\t\ttype: Function,\n\t\tdefault: (optionLabel) => t('Deselect {option}', { option: optionLabel }),\n\t},\n\n\t/**\n\t * Keep the dropdown open after selecting an entry.\n\t */\n\tkeepOpen: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable the component\n\t */\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Callback to determine if the provided option should match the current search text.\n\t * Used to determine if the option should be displayed.\n\t *\n\t * By default it filters by the `displayName` and `subname` properties of the user\n\t * option object unless this prop is set explicitly\n\t */\n\tfilterBy: {\n\t\ttype: Function,\n\t\tdefault: null,\n\t},\n\n\t/**\n\t * Input element id\n\t */\n\tinputId: {\n\t\ttype: String,\n\t\tdefault: () => createElementId(),\n\t},\n\n\t/**\n\t * Visible label for the input element\n\t *\n\t * @default 'Select account'\n\t */\n\tinputLabel: {\n\t\ttype: String,\n\t\tdefault: t('Select account'),\n\t},\n\n\t/**\n\t * Pass true if you are using an external label.\n\t * In this case make sure you set the `for` attribute of your `<label>` to the `inputId` of this component.\n\t */\n\tlabelOutside: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Show a loading icon.\n\t *\n\t * @default false\n\t */\n\tloading: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Allow selection of multiple options\n\t *\n\t * @default false\n\t */\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Disable automatic wrapping when selected options overflow the width.\n\t *\n\t * @default false\n\t */\n\tnoWrap: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Array of users.\n\t *\n\t * @type {{displayName: string, user: string, subname?: string, iconSvg?: string, iconName?: string, isGuest?: boolean, isNoUser?: boolean}[]}\n\t */\n\toptions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t},\n\n\t/**\n\t * Placeholder text.\n\t */\n\tplaceholder: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\n\t/**\n\t * Enable if a value is required for native form validation\n\t */\n\trequired: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\n\t/**\n\t * Currently selected value\n\t *\n\t * The `v-model` directive may be used for two-way data binding\n\t */\n\tmodelValue: {\n\t\ttype: Object,\n\t\tdefault: null,\n\t},\n})\n\nconst emit = defineEmits(['search', 'update:modelValue'])\n\nconst search = ref('')\nwatch(search, () => {\n\t/**\n\t * Emitted when the user enters some query.\n\t * This can be used to asynchronously fetch more options.\n\t */\n\temit('search', search.value)\n})\n\n// Avatar size so the component has the same size as Nc*Field\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-clickable-area'))\nconst gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue('--default-grid-baseline'))\nconst avatarSize = clickableArea - 2 * gridBaseLine\n\n/**\n * Filter function to search users.\n *\n * @param {{subname: string}} option - The option to check\n * @param {string} label - The label of the option\n * @param {string} search - The current search string\n */\nfunction localFilterBy(option, label, search) {\n\tif (props.filterBy) {\n\t\treturn props.filterBy\n\t}\n\n\t// Match the email notation like \"Jane <j.doe@example.com>\" with the email address as matching group\n\tconst EMAIL_NOTATION = /[^<]*<([^>]+)/\n\n\tconst match = search.match(EMAIL_NOTATION)\n\tconst subname = option.subname?.toLocaleLowerCase() ?? ''\n\treturn (match && subname.indexOf(match[1].toLocaleLowerCase()) > -1)\n\t\t|| (`${label} ${option.subname}`\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf(search.toLocaleLowerCase()) > -1)\n}\n</script>\n\n<script>\n/** For backward compatibility with Vue 2 */\nexport default {\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n}\n</script>\n\n<template>\n\t<NcSelect\n\t\tclass=\"nc-select-users\"\n\t\tv-bind=\"$props\"\n\t\t:filter-by=\"localFilterBy\"\n\t\tlabel=\"displayName\"\n\t\t@search=\"search = $event\"\n\t\t@update:model-value=\"$emit('update:modelValue', $event)\">\n\t\t<template #option=\"option\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"option\"\n\t\t\t\t:avatar-size=\"32\"\n\t\t\t\t:name=\"option.displayName\"\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t\t<template #selected-option=\"selectedOption\">\n\t\t\t<NcListItemIcon\n\t\t\t\tv-bind=\"selectedOption\"\n\t\t\t\t:avatar-size=\"avatarSize\"\n\t\t\t\t:name=\"selectedOption.displayName\"\n\t\t\t\tno-margin\n\t\t\t\t:search=\"search\" />\n\t\t</template>\n\t</NcSelect>\n</template>\n\n<style scoped lang=\"css\">\n.nc-select-users :deep(.vs__selected) {\n\tpadding-inline: 0 5px !important;\n}\n</style>\n"],"names":["ref","watch","search"],"mappings":";;;;;;;;AA6WA,MAAA,cAAe;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA7CA,UAAM,SAASA,IAAAA,IAAI,EAAE;AACrBC,QAAAA,MAAM,QAAQ,MAAM;AAKnB,WAAK,UAAU,OAAO,KAAK;AAAA,IAC5B,CAAC;AAGD,UAAM,gBAAgB,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,0BAA0B,CAAC;AACzH,UAAM,eAAe,OAAO,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,yBAAyB,CAAC;AACvH,UAAM,aAAa,gBAAgB,IAAI;AASvC,aAAS,cAAc,QAAQ,OAAOC,SAAQ;;AAC7C,UAAI,MAAM,UAAU;AACnB,eAAO,MAAM;AAAA,MACd;AAGA,YAAM,iBAAiB;AAEvB,YAAM,QAAQA,QAAO,MAAM,cAAc;AACzC,YAAM,WAAU,kBAAO,YAAP,mBAAgB,wBAAhB,YAAuC;AACvD,aAAQ,SAAS,QAAQ,QAAQ,MAAM,CAAC,EAAE,kBAAiB,CAAE,IAAI,MAC5D,GAAG,cAAK,KAAI,cAAO,SACrB,kBAAiB,EACjB,QAAQA,QAAO,kBAAiB,CAAE,IAAI;AAAA,IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assets/NcSettingsInputText-18lfGViv.css';
|
|
2
|
-
import { u as useModelMigration } from "./useModelMigration-
|
|
3
|
-
import { r as register, i as t48, a as t } from "./_l10n-
|
|
2
|
+
import { u as useModelMigration } from "./useModelMigration-DBUi8saj.mjs";
|
|
3
|
+
import { r as register, i as t48, a as t } from "./_l10n-DSLCwJSN.mjs";
|
|
4
4
|
import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
|
|
5
5
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
6
6
|
register(t48);
|
|
@@ -131,4 +131,4 @@ const NcSettingsInputText = __component__.exports;
|
|
|
131
131
|
export {
|
|
132
132
|
NcSettingsInputText as N
|
|
133
133
|
};
|
|
134
|
-
//# sourceMappingURL=NcSettingsInputText-
|
|
134
|
+
//# sourceMappingURL=NcSettingsInputText-DPAtsY2T.mjs.map
|
package/dist/chunks/{NcSettingsInputText-BQVh24zT.mjs.map → NcSettingsInputText-DPAtsY2T.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsInputText-
|
|
1
|
+
{"version":3,"file":"NcSettingsInputText-DPAtsY2T.mjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n⚠️ This component is deprecated and might be removed in a future version ⚠️\n\n```vue\n<template>\n\t<div>\n\t\t<NcSettingsInputText v-model=\"value\" label=\"Label\" hint=\"Hint\" />\n\t\t<NcSettingsInputText label=\"Label\" model-value=\"Value\" hint=\"Hint\" disabled />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: ''\n\t\t}\n\t},\n}\n</script>\n```\n\n</docs>\n\n<template>\n\t<form\n\t\tref=\"form\"\n\t\t:disabled=\"disabled\"\n\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<label :for=\"id\" class=\"action-input__label\">{{ label }}</label>\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"model\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@change=\"onChange\">\n\t\t\t<input\n\t\t\t\t:id=\"idSubmit\"\n\t\t\t\t:value=\"submitTranslated\"\n\t\t\t\ttype=\"submit\"\n\t\t\t\tclass=\"action-input__submit\">\n\t\t\t<p v-if=\"hint\" class=\"hint\">\n\t\t\t\t{{ hint }}\n\t\t\t</p>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\n/**\n * @deprecated - This component is nolonger used and might be removed in a future version\n */\nexport default {\n\tname: 'NcSettingsInputText',\n\n\tmodel: {\n\t\tprop: 'value',\n\t\tevent: 'update:value',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * label of the select group element\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * hint of the select group input\n\t\t */\n\t\thint: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'settings-input-text-' + GenRandomId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\t'update:value',\n\t\t/**\n\t\t * Emitted when the inputs value changes\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\t'update:modelValue',\n\t\t/* Same as update:modelValue for Vue 2 compatibility */\n\t\t'update:model-value',\n\t\t'input',\n\t\t'submit',\n\t\t'change',\n\t],\n\n\tsetup() {\n\t\tconst model = useModelMigration('value', 'update:value')\n\t\treturn {\n\t\t\tmodel,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsubmitTranslated: t('Submit'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tidSubmit() {\n\t\t\treturn this.id + '-submit'\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\tthis.model = event.target.value\n\t\t},\n\n\t\tonSubmit(event) {\n\t\t\tif (!this.disabled) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on submit of the input field\n\t\t\t\t *\n\t\t\t\t * @type {Event}\n\t\t\t\t */\n\t\t\t\tthis.$emit('submit', event)\n\t\t\t}\n\t\t},\n\n\t\tonChange(event) {\n\t\t\t/**\n\t\t\t * Emitted on change of the input field\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('change', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n\t.input-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\twidth: 100%;\n\t\tmax-width: 400px;\n\n\t\t& .action-input__label {\n\t\t\tmargin-right: 12px;\n\t\t}\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t.hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmargin-left: 8px;\n\t\t}\n\t}\n\n</style>\n"],"names":[],"mappings":";;;;;AAgEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,yBAAA,YAAA;AAAA,MACA,WAAA,CAAA,OAAA,GAAA,KAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,UAAA,QAAA,kBAAA,SAAA,cAAA;AACA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,kBAAA,EAAA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,KAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,QAAA,OAAA;AACA,WAAA,MAAA,SAAA,KAAA;AACA,WAAA,QAAA,MAAA,OAAA;AAAA,IACA;AAAA,IAEA,SAAA,OAAA;AACA,UAAA,CAAA,KAAA,UAAA;AAMA,aAAA,MAAA,UAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,SAAA,OAAA;AAMA,WAAA,MAAA,UAAA,KAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require('../assets/NcSettingsInputText-18lfGViv.css');
|
|
2
2
|
"use strict";
|
|
3
|
-
const useModelMigration = require("./useModelMigration-
|
|
4
|
-
const _l10n = require("./_l10n-
|
|
3
|
+
const useModelMigration = require("./useModelMigration-HPf30klj.cjs");
|
|
4
|
+
const _l10n = require("./_l10n-9b4TMo5Q.cjs");
|
|
5
5
|
const GenRandomId = require("./GenRandomId-D7iOvpZS.cjs");
|
|
6
6
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
7
7
|
_l10n.register(_l10n.t48);
|
|
@@ -130,4 +130,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
130
130
|
);
|
|
131
131
|
const NcSettingsInputText = __component__.exports;
|
|
132
132
|
exports.NcSettingsInputText = NcSettingsInputText;
|
|
133
|
-
//# sourceMappingURL=NcSettingsInputText-
|
|
133
|
+
//# sourceMappingURL=NcSettingsInputText-DaFMiOS6.cjs.map
|
package/dist/chunks/{NcSettingsInputText-DWihH7ke.cjs.map → NcSettingsInputText-DaFMiOS6.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsInputText-
|
|
1
|
+
{"version":3,"file":"NcSettingsInputText-DaFMiOS6.cjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n⚠️ This component is deprecated and might be removed in a future version ⚠️\n\n```vue\n<template>\n\t<div>\n\t\t<NcSettingsInputText v-model=\"value\" label=\"Label\" hint=\"Hint\" />\n\t\t<NcSettingsInputText label=\"Label\" model-value=\"Value\" hint=\"Hint\" disabled />\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tvalue: ''\n\t\t}\n\t},\n}\n</script>\n```\n\n</docs>\n\n<template>\n\t<form\n\t\tref=\"form\"\n\t\t:disabled=\"disabled\"\n\t\t@submit.prevent.stop=\"onSubmit\">\n\t\t<div class=\"input-wrapper\">\n\t\t\t<label :for=\"id\" class=\"action-input__label\">{{ label }}</label>\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"model\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@input=\"onInput\"\n\t\t\t\t@change=\"onChange\">\n\t\t\t<input\n\t\t\t\t:id=\"idSubmit\"\n\t\t\t\t:value=\"submitTranslated\"\n\t\t\t\ttype=\"submit\"\n\t\t\t\tclass=\"action-input__submit\">\n\t\t\t<p v-if=\"hint\" class=\"hint\">\n\t\t\t\t{{ hint }}\n\t\t\t</p>\n\t\t</div>\n\t</form>\n</template>\n\n<script>\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\n/**\n * @deprecated - This component is nolonger used and might be removed in a future version\n */\nexport default {\n\tname: 'NcSettingsInputText',\n\n\tmodel: {\n\t\tprop: 'value',\n\t\tevent: 'update:value',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * label of the select group element\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * hint of the select group input\n\t\t */\n\t\thint: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'settings-input-text-' + GenRandomId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\t'update:value',\n\t\t/**\n\t\t * Emitted when the inputs value changes\n\t\t *\n\t\t * @type {string}\n\t\t */\n\t\t'update:modelValue',\n\t\t/* Same as update:modelValue for Vue 2 compatibility */\n\t\t'update:model-value',\n\t\t'input',\n\t\t'submit',\n\t\t'change',\n\t],\n\n\tsetup() {\n\t\tconst model = useModelMigration('value', 'update:value')\n\t\treturn {\n\t\t\tmodel,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tsubmitTranslated: t('Submit'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {string}\n\t\t */\n\t\tidSubmit() {\n\t\t\treturn this.id + '-submit'\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\tthis.model = event.target.value\n\t\t},\n\n\t\tonSubmit(event) {\n\t\t\tif (!this.disabled) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on submit of the input field\n\t\t\t\t *\n\t\t\t\t * @type {Event}\n\t\t\t\t */\n\t\t\t\tthis.$emit('submit', event)\n\t\t\t}\n\t\t},\n\n\t\tonChange(event) {\n\t\t\t/**\n\t\t\t * Emitted on change of the input field\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('change', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n\t.input-wrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\twidth: 100%;\n\t\tmax-width: 400px;\n\n\t\t& .action-input__label {\n\t\t\tmargin-right: 12px;\n\t\t}\n\n\t\t// if disabled, change cursor\n\t\t&:disabled {\n\t\t\tcursor: default;\n\t\t}\n\n\t\t.hint {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tmargin-left: 8px;\n\t\t}\n\t}\n\n</style>\n"],"names":["GenRandomId","useModelMigration","t"],"mappings":";;;;;;AAgEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,yBAAAA,wBAAA;AAAA,MACA,WAAA,CAAA,OAAA,GAAA,KAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,UAAA,QAAAC,oCAAA,SAAA,cAAA;AACA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,kBAAAC,MAAAA,EAAA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,KAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,QAAA,OAAA;AACA,WAAA,MAAA,SAAA,KAAA;AACA,WAAA,QAAA,MAAA,OAAA;AAAA,IACA;AAAA,IAEA,SAAA,OAAA;AACA,UAAA,CAAA,KAAA,UAAA;AAMA,aAAA,MAAA,UAAA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,SAAA,OAAA;AAMA,WAAA,MAAA,UAAA,KAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import '../assets/NcSettingsSection-D_qeKnRb.css';
|
|
2
|
+
var _a;
|
|
2
3
|
import { loadState } from "@nextcloud/initial-state";
|
|
3
4
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
4
|
-
import { r as register,
|
|
5
|
+
import { r as register, u as t24, a as t } from "./_l10n-DSLCwJSN.mjs";
|
|
5
6
|
const _sfc_main$1 = {
|
|
6
7
|
name: "HelpCircleIcon",
|
|
7
8
|
emits: ["click"],
|
|
@@ -36,7 +37,7 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
|
|
|
36
37
|
);
|
|
37
38
|
const HelpCircle = __component__$1.exports;
|
|
38
39
|
register(t24);
|
|
39
|
-
const [major] = loadState("core", "config", { version: "30.0" }).version.split(".", 2)
|
|
40
|
+
const [major] = (_a = loadState("core", "config", { version: "30.0" }).version.split(".", 2)) != null ? _a : [];
|
|
40
41
|
const isLegacy = major && Number.parseInt(major) < 30;
|
|
41
42
|
const _sfc_main = {
|
|
42
43
|
name: "NcSettingsSection",
|
|
@@ -116,4 +117,4 @@ const NcSettingsSection = __component__.exports;
|
|
|
116
117
|
export {
|
|
117
118
|
NcSettingsSection as N
|
|
118
119
|
};
|
|
119
|
-
//# sourceMappingURL=NcSettingsSection-
|
|
120
|
+
//# sourceMappingURL=NcSettingsSection-CX5q924g.mjs.map
|
package/dist/chunks/{NcSettingsSection-evNvfEg2.mjs.map → NcSettingsSection-CX5q924g.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSection-
|
|
1
|
+
{"version":3,"file":"NcSettingsSection-CX5q924g.mjs","sources":["../../node_modules/vue-material-design-icons/HelpCircle.vue","../../src/components/NcSettingsSection/NcSettingsSection.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon help-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"HelpCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component is to be used in the settings section of nextcloud.\n\n### Examples\n\n```vue\n<template>\n\t<div>\n\t\t<NcSettingsSection name=\"Two-factor authentication\"\n\t\t\tdescription=\"Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/19/go.php?to=admin-2fa\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnforce two-factor authentication\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"Server-side encryption\"\n\t\t\tdescription=\"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnable server-side encryption\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"OAuth 2.0 clients\"\n\t\t\tdescription=\"OAuth 2.0 allows external services to request access to Nextcloud.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/oauth2.html\">\n\n\t\t\tAny content here\n\n\t\t</NcSettingsSection>\n\t</div>\n</template>\n```\n</docs>\n\n<template>\n\t<div class=\"settings-section\" :class=\"{ 'settings-section--limit-width': forceLimitWidth }\">\n\t\t<h2 class=\"settings-section__name\">\n\t\t\t{{ name }}\n\t\t\t<a\n\t\t\t\tv-if=\"hasDocUrl\"\n\t\t\t\t:href=\"docUrl\"\n\t\t\t\tclass=\"settings-section__info\"\n\t\t\t\t:title=\"docNameTranslated\"\n\t\t\t\t:aria-label=\"docNameTranslated\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer nofollow\">\n\t\t\t\t<HelpCircle :size=\"20\" />\n\t\t\t</a>\n\t\t</h2>\n\t\t<p\n\t\t\tv-if=\"hasDescription\"\n\t\t\tclass=\"settings-section__desc\">\n\t\t\t{{ description }}\n\t\t</p>\n\t\t<slot />\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport HelpCircle from 'vue-material-design-icons/HelpCircle.vue'\nimport { t } from '../../l10n.js'\n\n// Overwrite this on Nextcloud 30+ to always limit the width\nconst [major] = loadState('core', 'config', { version: '30.0' }).version.split('.', 2) ?? []\nconst isLegacy = major && Number.parseInt(major) < 30\n\nexport default {\n\tname: 'NcSettingsSection',\n\n\tcomponents: {\n\t\tHelpCircle,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The name of the settings section.\n\t\t * This is used for the headline and needs to be set.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Further informational description of the section.\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The URL for the documentation about this section\n\t\t */\n\t\tdocUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Limit the width of the setting's content\n\t\t *\n\t\t * Setting this to false allows unrestricted (width) settings content.\n\t\t * Note that the name and description have always a width limit.\n\t\t *\n\t\t * @deprecated Will be removed with next version and will not be used on Nextcloud 30+ (always forced to true)\n\t\t */\n\t\tlimitWidth: {\n\t\t\ttype: Boolean,\n\t\t\t// eslint-disable-next-line vue/no-boolean-default\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdocNameTranslated: t('External documentation for {name}', {\n\t\t\t\tname: this.name,\n\t\t\t}),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tforceLimitWidth() {\n\t\t\treturn this.limitWidth || !isLegacy\n\t\t},\n\n\t\thasDescription() {\n\t\t\treturn this.description.length > 0\n\t\t},\n\n\t\thasDocUrl() {\n\t\t\treturn this.docUrl.length > 0\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n$maxWidth: 900px;\n\n.settings-section {\n\tdisplay: block;\n\tmargin-bottom: auto;\n\tpadding: 30px;\n\n\t&:not(:last-child) {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&--limit-width > * {\n\t\tmax-width: $maxWidth;\n\t}\n\n\t&__name {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 20px;\n\t\tfont-weight: bold;\n\t\tmax-width: $maxWidth;\n\t\tmargin-top: 0; // Remove default heading margin\n\t}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: calc($icon-margin * -1);\n\t\tmargin-inline-start: 0;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&:hover, &:focus, &:active {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__desc {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmax-width: $maxWidth;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main"],"mappings":";;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;ACoCA,MAAA,CAAA,KAAA,KAAA,eAAA,QAAA,UAAA,EAAA,SAAA,OAAA,CAAA,EAAA,QAAA,MAAA,KAAA,CAAA,MAAA,YAAA,CAAA;AACA,MAAA,WAAA,SAAA,OAAA,SAAA,KAAA,IAAA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,YAAA;AAAA,MACA,MAAA;AAAA;AAAA,MAEA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAA,EAAA,qCAAA;AAAA,QACA,MAAA,KAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,kBAAA;AACA,aAAA,KAAA,cAAA,CAAA;AAAA,IACA;AAAA,IAEA,iBAAA;AACA,aAAA,KAAA,YAAA,SAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,OAAA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
require('../assets/NcSettingsSection-D_qeKnRb.css');
|
|
2
2
|
"use strict";
|
|
3
|
+
var _a;
|
|
3
4
|
const initialState = require("@nextcloud/initial-state");
|
|
4
5
|
const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
|
|
5
|
-
const _l10n = require("./_l10n-
|
|
6
|
+
const _l10n = require("./_l10n-9b4TMo5Q.cjs");
|
|
6
7
|
const _sfc_main$1 = {
|
|
7
8
|
name: "HelpCircleIcon",
|
|
8
9
|
emits: ["click"],
|
|
@@ -37,7 +38,7 @@ var __component__$1 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
37
38
|
);
|
|
38
39
|
const HelpCircle = __component__$1.exports;
|
|
39
40
|
_l10n.register(_l10n.t24);
|
|
40
|
-
const [major] = initialState.loadState("core", "config", { version: "30.0" }).version.split(".", 2)
|
|
41
|
+
const [major] = (_a = initialState.loadState("core", "config", { version: "30.0" }).version.split(".", 2)) != null ? _a : [];
|
|
41
42
|
const isLegacy = major && Number.parseInt(major) < 30;
|
|
42
43
|
const _sfc_main = {
|
|
43
44
|
name: "NcSettingsSection",
|
|
@@ -115,4 +116,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
|
|
|
115
116
|
);
|
|
116
117
|
const NcSettingsSection = __component__.exports;
|
|
117
118
|
exports.NcSettingsSection = NcSettingsSection;
|
|
118
|
-
//# sourceMappingURL=NcSettingsSection-
|
|
119
|
+
//# sourceMappingURL=NcSettingsSection-r4NOxKIz.cjs.map
|
package/dist/chunks/{NcSettingsSection-Dgc7SEuu.cjs.map → NcSettingsSection-r4NOxKIz.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSection-
|
|
1
|
+
{"version":3,"file":"NcSettingsSection-r4NOxKIz.cjs","sources":["../../node_modules/vue-material-design-icons/HelpCircle.vue","../../src/components/NcSettingsSection/NcSettingsSection.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon help-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15.07,11.25L14.17,12.17C13.45,12.89 13,13.5 13,15H11V14.5C11,13.39 11.45,12.39 12.17,11.67L13.41,10.41C13.78,10.05 14,9.55 14,9C14,7.89 13.1,7 12,7A2,2 0 0,0 10,9H8A4,4 0 0,1 12,5A4,4 0 0,1 16,9C16,9.88 15.64,10.67 15.07,11.25M13,19H11V17H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"HelpCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component is to be used in the settings section of nextcloud.\n\n### Examples\n\n```vue\n<template>\n\t<div>\n\t\t<NcSettingsSection name=\"Two-factor authentication\"\n\t\t\tdescription=\"Two-factor authentication can be enforced for all accounts and specific groups. If they do not have a two-factor provider configured, they will be unable to log into the system.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/19/go.php?to=admin-2fa\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnforce two-factor authentication\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"Server-side encryption\"\n\t\t\tdescription=\"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed.\">\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\">\n\t\t\t\tEnable server-side encryption\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcSettingsSection>\n\n\t\t<NcSettingsSection name=\"OAuth 2.0 clients\"\n\t\t\tdescription=\"OAuth 2.0 allows external services to request access to Nextcloud.\"\n\t\t\tdoc-url=\"https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/oauth2.html\">\n\n\t\t\tAny content here\n\n\t\t</NcSettingsSection>\n\t</div>\n</template>\n```\n</docs>\n\n<template>\n\t<div class=\"settings-section\" :class=\"{ 'settings-section--limit-width': forceLimitWidth }\">\n\t\t<h2 class=\"settings-section__name\">\n\t\t\t{{ name }}\n\t\t\t<a\n\t\t\t\tv-if=\"hasDocUrl\"\n\t\t\t\t:href=\"docUrl\"\n\t\t\t\tclass=\"settings-section__info\"\n\t\t\t\t:title=\"docNameTranslated\"\n\t\t\t\t:aria-label=\"docNameTranslated\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noreferrer nofollow\">\n\t\t\t\t<HelpCircle :size=\"20\" />\n\t\t\t</a>\n\t\t</h2>\n\t\t<p\n\t\t\tv-if=\"hasDescription\"\n\t\t\tclass=\"settings-section__desc\">\n\t\t\t{{ description }}\n\t\t</p>\n\t\t<slot />\n\t</div>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport HelpCircle from 'vue-material-design-icons/HelpCircle.vue'\nimport { t } from '../../l10n.js'\n\n// Overwrite this on Nextcloud 30+ to always limit the width\nconst [major] = loadState('core', 'config', { version: '30.0' }).version.split('.', 2) ?? []\nconst isLegacy = major && Number.parseInt(major) < 30\n\nexport default {\n\tname: 'NcSettingsSection',\n\n\tcomponents: {\n\t\tHelpCircle,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The name of the settings section.\n\t\t * This is used for the headline and needs to be set.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Further informational description of the section.\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The URL for the documentation about this section\n\t\t */\n\t\tdocUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Limit the width of the setting's content\n\t\t *\n\t\t * Setting this to false allows unrestricted (width) settings content.\n\t\t * Note that the name and description have always a width limit.\n\t\t *\n\t\t * @deprecated Will be removed with next version and will not be used on Nextcloud 30+ (always forced to true)\n\t\t */\n\t\tlimitWidth: {\n\t\t\ttype: Boolean,\n\t\t\t// eslint-disable-next-line vue/no-boolean-default\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdocNameTranslated: t('External documentation for {name}', {\n\t\t\t\tname: this.name,\n\t\t\t}),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tforceLimitWidth() {\n\t\t\treturn this.limitWidth || !isLegacy\n\t\t},\n\n\t\thasDescription() {\n\t\t\treturn this.description.length > 0\n\t\t},\n\n\t\thasDocUrl() {\n\t\t\treturn this.docUrl.length > 0\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n$maxWidth: 900px;\n\n.settings-section {\n\tdisplay: block;\n\tmargin-bottom: auto;\n\tpadding: 30px;\n\n\t&:not(:last-child) {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&--limit-width > * {\n\t\tmax-width: $maxWidth;\n\t}\n\n\t&__name {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tfont-size: 20px;\n\t\tfont-weight: bold;\n\t\tmax-width: $maxWidth;\n\t\tmargin-top: 0; // Remove default heading margin\n\t}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: calc($icon-margin * -1);\n\t\tmargin-inline-start: 0;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&:hover, &:focus, &:active {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__desc {\n\t\tmargin-top: -.2em;\n\t\tmargin-bottom: 1em;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmax-width: $maxWidth;\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","loadState","t"],"mappings":";;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;ACoCA,MAAA,CAAA,KAAA,KAAAC,kBAAAA,UAAA,QAAA,UAAA,EAAA,SAAA,OAAA,CAAA,EAAA,QAAA,MAAA,KAAA,CAAA,MAAAA,YAAA,CAAA;AACA,MAAA,WAAA,SAAA,OAAA,SAAA,KAAA,IAAA;AAEA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,YAAA;AAAA,MACA,MAAA;AAAA;AAAA,MAEA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAAC,MAAAA,EAAA,qCAAA;AAAA,QACA,MAAA,KAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,kBAAA;AACA,aAAA,KAAA,cAAA,CAAA;AAAA,IACA;AAAA,IAEA,iBAAA;AACA,aAAA,KAAA,YAAA,SAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,OAAA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|
package/dist/chunks/{NcSettingsSelectGroup-C-YAk1f8.mjs → NcSettingsSelectGroup-CR4XLrgs.mjs}
RENAMED
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import '../assets/NcSettingsSelectGroup-B9FlWQVH.css';
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __spreadValues = (a, b) => {
|
|
8
|
+
for (var prop in b || (b = {}))
|
|
9
|
+
if (__hasOwnProp.call(b, prop))
|
|
10
|
+
__defNormalProp(a, prop, b[prop]);
|
|
11
|
+
if (__getOwnPropSymbols)
|
|
12
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
+
if (__propIsEnum.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
}
|
|
16
|
+
return a;
|
|
17
|
+
};
|
|
2
18
|
import axios from "@nextcloud/axios";
|
|
3
19
|
import { generateOcsUrl } from "@nextcloud/router";
|
|
4
20
|
import debounce from "debounce";
|
|
5
|
-
import { N as NcSelect } from "./NcSelect-
|
|
6
|
-
import { u as useModelMigration } from "./useModelMigration-
|
|
7
|
-
import { r as register, h as t49, a as t } from "./_l10n-
|
|
21
|
+
import { N as NcSelect } from "./NcSelect-TjZw7TJ_.mjs";
|
|
22
|
+
import { u as useModelMigration } from "./useModelMigration-DBUi8saj.mjs";
|
|
23
|
+
import { r as register, h as t49, a as t } from "./_l10n-DSLCwJSN.mjs";
|
|
8
24
|
import { G as GenRandomId } from "./GenRandomId-F5ebeBB_.mjs";
|
|
9
25
|
import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
10
26
|
register(t49);
|
|
@@ -152,11 +168,11 @@ const _sfc_main = {
|
|
|
152
168
|
* Load groups matching the empty query to reduce API calls
|
|
153
169
|
*/
|
|
154
170
|
async mounted() {
|
|
155
|
-
const storageName =
|
|
171
|
+
const storageName = "".concat(appName, ":").concat(appVersion, "/initialGroups");
|
|
156
172
|
let savedGroups = window.sessionStorage.getItem(storageName);
|
|
157
173
|
if (savedGroups) {
|
|
158
174
|
savedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]));
|
|
159
|
-
this.groups = {
|
|
175
|
+
this.groups = __spreadValues(__spreadValues({}, this.groups), savedGroups);
|
|
160
176
|
} else {
|
|
161
177
|
await this.loadGroup("");
|
|
162
178
|
window.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)));
|
|
@@ -182,7 +198,7 @@ const _sfc_main = {
|
|
|
182
198
|
async loadGroup(query) {
|
|
183
199
|
try {
|
|
184
200
|
query = typeof query === "string" ? encodeURI(query) : "";
|
|
185
|
-
const response = await axios.get(generateOcsUrl(
|
|
201
|
+
const response = await axios.get(generateOcsUrl("cloud/groups/details?search=".concat(query, "&limit=10"), 2));
|
|
186
202
|
if (this.errorMessage !== "") {
|
|
187
203
|
window.setTimeout(() => {
|
|
188
204
|
this.errorMessage = "";
|
|
@@ -190,7 +206,7 @@ const _sfc_main = {
|
|
|
190
206
|
}
|
|
191
207
|
if (Object.keys(response.data.ocs.data.groups).length > 0) {
|
|
192
208
|
const newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]));
|
|
193
|
-
this.groups = {
|
|
209
|
+
this.groups = __spreadValues(__spreadValues({}, this.groups), newGroups);
|
|
194
210
|
return true;
|
|
195
211
|
}
|
|
196
212
|
} catch (error) {
|
|
@@ -207,7 +223,7 @@ const _sfc_main = {
|
|
|
207
223
|
* @param {string} search The current search string
|
|
208
224
|
*/
|
|
209
225
|
filterGroups(option, label, search) {
|
|
210
|
-
return
|
|
226
|
+
return "".concat(label || "", " ").concat(option.id).toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1;
|
|
211
227
|
},
|
|
212
228
|
/**
|
|
213
229
|
* Debounce the group search (reduce API calls)
|
|
@@ -234,4 +250,4 @@ const NcSettingsSelectGroup = __component__.exports;
|
|
|
234
250
|
export {
|
|
235
251
|
NcSettingsSelectGroup as N
|
|
236
252
|
};
|
|
237
|
-
//# sourceMappingURL=NcSettingsSelectGroup-
|
|
253
|
+
//# sourceMappingURL=NcSettingsSelectGroup-CR4XLrgs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSelectGroup-C-YAk1f8.mjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n```vue\n<template>\n\t<section>\n\t\t<NcSettingsSelectGroup v-model=\"groups\" placeholder=\"Select user groups\" label=\"The hidden label\" />\n\t\t<NcSettingsSelectGroup v-model=\"otherGroups\" :disabled=\"true\" label=\"Also a fallback for the placeholder\" />\n\t\t<div>You have selected: <code>{{ groups }}</code> and <code>{{ otherGroups }}</code></div>\n\t</section>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tgroups: [],\n\t\t\totherGroups: ['admin']\n\t\t}\n\t}\n}\n</script>\n<style scoped>\nsection * {\n\tpadding: 6px 0px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<label v-if=\"label\" :for=\"id\" class=\"hidden-visually\">{{ label }}</label>\n\t\t<NcSelect\n\t\t\t:value=\"inputValue\"\n\t\t\t:options=\"groupsArray\"\n\t\t\t:placeholder=\"placeholder || label\"\n\t\t\t:filter-by=\"filterGroups\"\n\t\t\t:input-id=\"id\"\n\t\t\t:limit=\"5\"\n\t\t\tlabel=\"displayname\"\n\t\t\t:multiple=\"true\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t@update:model-value=\"update\"\n\t\t\t@search=\"onSearch\" />\n\t\t<div v-show=\"hasError\" class=\"select-group-error\">\n\t\t\t{{ errorMessage }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport NcSelect from '../../components/NcSelect/index.js'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The text of the label element of the select group input\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Placeholder for the input element\n\t\t * For backwards compatibility it falls back to the `label` value\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'action-' + GenRandomId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: Array,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\t'input',\n\t\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t'update:modelValue',\n\t\t/** Same as update:modelValue for Vue 2 compatibility */\n\t\t'update:model-value',\n\t\t'error',\n\t],\n\n\tsetup() {\n\t\tconst model = useModelMigration('value', 'input')\n\t\treturn {\n\t\t\tmodel,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/** Temporary store to cache groups */\n\t\t\tgroups: {},\n\t\t\trandId: GenRandomId(),\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * If the error message should be shown\n\t\t */\n\t\thasError() {\n\t\t\treturn this.errorMessage !== ''\n\t\t},\n\n\t\t/**\n\t\t * Validate input value and only return valid strings (group IDs)\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tfilteredValue() {\n\t\t\treturn this.model.filter((group) => group !== '' && typeof group === 'string')\n\t\t},\n\n\t\t/**\n\t\t * value property converted to an array of group objects used as input for the NcSelect\n\t\t */\n\t\tinputValue() {\n\t\t\treturn this.filteredValue.map((id) => {\n\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.groups[id]\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Convert groups object to array of groups required for NcSelect.options\n\t\t * Filter out currently selected values\n\t\t *\n\t\t * @return {object[]}\n\t\t */\n\t\tgroupsArray() {\n\t\t\treturn Object.values(this.groups).filter((g) => !this.model.includes(g.id))\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * If the value is changed, check that all groups are loaded so we show the correct display name\n\t\t */\n\t\tvalue: {\n\t\t\thandler() {\n\t\t\t\tconst loadedGroupIds = Object.keys(this.groups)\n\t\t\t\tconst missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group))\n\t\t\t\tmissing.forEach((groupId) => {\n\t\t\t\t\tthis.loadGroup(groupId)\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t// Run the watch handler also when the component is initially mounted\n\t\t\timmediate: true,\n\t\t},\n\t},\n\n\t/**\n\t * Load groups matching the empty query to reduce API calls\n\t */\n\tasync mounted() {\n\t\t// version scoped to prevent issues with different library versions\n\t\tconst storageName = `${appName}:${appVersion}/initialGroups`\n\n\t\tlet savedGroups = window.sessionStorage.getItem(storageName)\n\t\tif (savedGroups) {\n\t\t\tsavedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]))\n\t\t\tthis.groups = { ...this.groups, ...savedGroups }\n\t\t} else {\n\t\t\tawait this.loadGroup('')\n\t\t\twindow.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)))\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Called when a new group is selected or previous group is deselected to emit the update event\n\t\t *\n\t\t * @param {object[]} updatedValue Array of selected groups\n\t\t */\n\t\tupdate(updatedValue) {\n\t\t\tconst value = updatedValue.map((element) => element.id)\n\t\t\tthis.model = value\n\t\t},\n\n\t\t/**\n\t\t * Use provisioning API to search for given group and save it in the groups object\n\t\t *\n\t\t * @param {string} query The query like parts of the id oder display name\n\t\t * @return {boolean}\n\t\t */\n\t\tasync loadGroup(query) {\n\t\t\ttry {\n\t\t\t\tquery = typeof query === 'string' ? encodeURI(query) : ''\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2))\n\n\t\t\t\t// No network error, so reset any error after 5 seconds\n\t\t\t\tif (this.errorMessage !== '') {\n\t\t\t\t\twindow.setTimeout(() => {\n\t\t\t\t\t\tthis.errorMessage = ''\n\t\t\t\t\t}, 5000)\n\t\t\t\t}\n\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tconst newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]))\n\t\t\t\t\tthis.groups = { ...this.groups, ...newGroups }\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t/** Emitted if groups could not be queried.<br />**Payload:** `error` (`object`) - The Axios error */\n\t\t\t\tthis.$emit('error', error)\n\t\t\t\tthis.errorMessage = t('Unable to search the group')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * Custom filter function for `NcSelect` to filter by ID *and* display name\n\t\t *\n\t\t * @param {object} option One of the groups\n\t\t * @param {string} label The label property of the group\n\t\t * @param {string} search The current search string\n\t\t */\n\t\tfilterGroups(option, label, search) {\n\t\t\treturn `${label || ''} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n\t\t},\n\n\t\t/**\n\t\t * Debounce the group search (reduce API calls)\n\t\t */\n\t\tonSearch: debounce(function(query) {\n\t\t\tthis.loadGroup(query)\n\t\t}, 200),\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.select-group-error {\n\tcolor: var(--color-text-error, var(--color-error));\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;AA+DA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,IAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,YAAA,YAAA;AAAA,MACA,WAAA,CAAA,OAAA,GAAA,KAAA,MAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,QAAA;AACA,UAAA,QAAA,kBAAA,SAAA,OAAA;AACA,WAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA;AAAA,MAEA,QAAA,CAAA;AAAA,MACA,QAAA,YAAA;AAAA,MACA,cAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,KAAA,iBAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,gBAAA;AACA,aAAA,KAAA,MAAA,OAAA,CAAA,UAAA,UAAA,MAAA,OAAA,UAAA,QAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,aAAA;AACA,aAAA,KAAA,cAAA,IAAA,CAAA,OAAA;AACA,YAAA,OAAA,KAAA,OAAA,EAAA,MAAA,aAAA;AACA,iBAAA;AAAA,YACA;AAAA,YACA,aAAA;AAAA,UACA;AAAA,QACA;AACA,eAAA,KAAA,OAAA,EAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,cAAA;AACA,aAAA,OAAA,OAAA,KAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,KAAA,MAAA,SAAA,EAAA,EAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,OAAA;AAAA,MACA,UAAA;AACA,cAAA,iBAAA,OAAA,KAAA,KAAA,MAAA;AACA,cAAA,UAAA,KAAA,cAAA,OAAA,CAAA,UAAA,CAAA,eAAA,SAAA,KAAA,CAAA;AACA,gBAAA,QAAA,CAAA,YAAA;AACA,eAAA,UAAA,OAAA;AAAA,QACA,CAAA;AAAA,MACA;AAAA;AAAA,MAGA,WAAA;AAAA,IACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAA,UAAA;AAEA,UAAA,cAAA,GAAA,OAAA,IAAA,UAAA;AAEA,QAAA,cAAA,OAAA,eAAA,QAAA,WAAA;AACA,QAAA,aAAA;AACA,oBAAA,OAAA,YAAA,KAAA,MAAA,WAAA,EAAA,IAAA,CAAA,UAAA,CAAA,MAAA,IAAA,KAAA,CAAA,CAAA;AACA,WAAA,SAAA,EAAA,GAAA,KAAA,QAAA,GAAA,YAAA;AAAA,IACA,OAAA;AACA,YAAA,KAAA,UAAA,EAAA;AACA,aAAA,eAAA,QAAA,aAAA,KAAA,UAAA,OAAA,OAAA,KAAA,MAAA,CAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,OAAA,cAAA;AACA,YAAA,QAAA,aAAA,IAAA,CAAA,YAAA,QAAA,EAAA;AACA,WAAA,QAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,MAAA,UAAA,OAAA;AACA,UAAA;AACA,gBAAA,OAAA,UAAA,WAAA,UAAA,KAAA,IAAA;AACA,cAAA,WAAA,MAAA,MAAA,IAAA,eAAA,+BAAA,KAAA,aAAA,CAAA,CAAA;AAGA,YAAA,KAAA,iBAAA,IAAA;AACA,iBAAA,WAAA,MAAA;AACA,iBAAA,eAAA;AAAA,UACA,GAAA,GAAA;AAAA,QACA;AAEA,YAAA,OAAA,KAAA,SAAA,KAAA,IAAA,KAAA,MAAA,EAAA,SAAA,GAAA;AACA,gBAAA,YAAA,OAAA,YAAA,SAAA,KAAA,IAAA,KAAA,OAAA,IAAA,CAAA,YAAA,CAAA,QAAA,IAAA,OAAA,CAAA,CAAA;AACA,eAAA,SAAA,EAAA,GAAA,KAAA,QAAA,GAAA,UAAA;AACA,iBAAA;AAAA,QACA;AAAA,MACA,SAAA,OAAA;AAEA,aAAA,MAAA,SAAA,KAAA;AACA,aAAA,eAAA,EAAA,4BAAA;AAAA,MACA;AACA,aAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,aAAA,QAAA,OAAA,QAAA;AACA,aAAA,GAAA,SAAA,EAAA,IAAA,OAAA,EAAA,GAAA,kBAAA,EAAA,QAAA,OAAA,kBAAA,CAAA,IAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,UAAA,SAAA,SAAA,OAAA;AACA,WAAA,UAAA,KAAA;AAAA,IACA,GAAA,GAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"NcSettingsSelectGroup-CR4XLrgs.mjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n```vue\n<template>\n\t<section>\n\t\t<NcSettingsSelectGroup v-model=\"groups\" placeholder=\"Select user groups\" label=\"The hidden label\" />\n\t\t<NcSettingsSelectGroup v-model=\"otherGroups\" :disabled=\"true\" label=\"Also a fallback for the placeholder\" />\n\t\t<div>You have selected: <code>{{ groups }}</code> and <code>{{ otherGroups }}</code></div>\n\t</section>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tgroups: [],\n\t\t\totherGroups: ['admin']\n\t\t}\n\t}\n}\n</script>\n<style scoped>\nsection * {\n\tpadding: 6px 0px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<div>\n\t\t<label v-if=\"label\" :for=\"id\" class=\"hidden-visually\">{{ label }}</label>\n\t\t<NcSelect\n\t\t\t:value=\"inputValue\"\n\t\t\t:options=\"groupsArray\"\n\t\t\t:placeholder=\"placeholder || label\"\n\t\t\t:filter-by=\"filterGroups\"\n\t\t\t:input-id=\"id\"\n\t\t\t:limit=\"5\"\n\t\t\tlabel=\"displayname\"\n\t\t\t:multiple=\"true\"\n\t\t\t:close-on-select=\"false\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t@update:model-value=\"update\"\n\t\t\t@search=\"onSearch\" />\n\t\t<div v-show=\"hasError\" class=\"select-group-error\">\n\t\t\t{{ errorMessage }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport debounce from 'debounce'\nimport NcSelect from '../../components/NcSelect/index.js'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\n\t},\n\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The text of the label element of the select group input\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Placeholder for the input element\n\t\t * For backwards compatibility it falls back to the `label` value\n\t\t */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the select group element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'action-' + GenRandomId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: Array,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the settings select group input\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t *\n\t\t * @deprecated\n\t\t */\n\t\t'input',\n\t\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t'update:modelValue',\n\t\t/** Same as update:modelValue for Vue 2 compatibility */\n\t\t'update:model-value',\n\t\t'error',\n\t],\n\n\tsetup() {\n\t\tconst model = useModelMigration('value', 'input')\n\t\treturn {\n\t\t\tmodel,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/** Temporary store to cache groups */\n\t\t\tgroups: {},\n\t\t\trandId: GenRandomId(),\n\t\t\terrorMessage: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * If the error message should be shown\n\t\t */\n\t\thasError() {\n\t\t\treturn this.errorMessage !== ''\n\t\t},\n\n\t\t/**\n\t\t * Validate input value and only return valid strings (group IDs)\n\t\t *\n\t\t * @return {string[]}\n\t\t */\n\t\tfilteredValue() {\n\t\t\treturn this.model.filter((group) => group !== '' && typeof group === 'string')\n\t\t},\n\n\t\t/**\n\t\t * value property converted to an array of group objects used as input for the NcSelect\n\t\t */\n\t\tinputValue() {\n\t\t\treturn this.filteredValue.map((id) => {\n\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this.groups[id]\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Convert groups object to array of groups required for NcSelect.options\n\t\t * Filter out currently selected values\n\t\t *\n\t\t * @return {object[]}\n\t\t */\n\t\tgroupsArray() {\n\t\t\treturn Object.values(this.groups).filter((g) => !this.model.includes(g.id))\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * If the value is changed, check that all groups are loaded so we show the correct display name\n\t\t */\n\t\tvalue: {\n\t\t\thandler() {\n\t\t\t\tconst loadedGroupIds = Object.keys(this.groups)\n\t\t\t\tconst missing = this.filteredValue.filter((group) => !loadedGroupIds.includes(group))\n\t\t\t\tmissing.forEach((groupId) => {\n\t\t\t\t\tthis.loadGroup(groupId)\n\t\t\t\t})\n\t\t\t},\n\n\t\t\t// Run the watch handler also when the component is initially mounted\n\t\t\timmediate: true,\n\t\t},\n\t},\n\n\t/**\n\t * Load groups matching the empty query to reduce API calls\n\t */\n\tasync mounted() {\n\t\t// version scoped to prevent issues with different library versions\n\t\tconst storageName = `${appName}:${appVersion}/initialGroups`\n\n\t\tlet savedGroups = window.sessionStorage.getItem(storageName)\n\t\tif (savedGroups) {\n\t\t\tsavedGroups = Object.fromEntries(JSON.parse(savedGroups).map((group) => [group.id, group]))\n\t\t\tthis.groups = { ...this.groups, ...savedGroups }\n\t\t} else {\n\t\t\tawait this.loadGroup('')\n\t\t\twindow.sessionStorage.setItem(storageName, JSON.stringify(Object.values(this.groups)))\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Called when a new group is selected or previous group is deselected to emit the update event\n\t\t *\n\t\t * @param {object[]} updatedValue Array of selected groups\n\t\t */\n\t\tupdate(updatedValue) {\n\t\t\tconst value = updatedValue.map((element) => element.id)\n\t\t\tthis.model = value\n\t\t},\n\n\t\t/**\n\t\t * Use provisioning API to search for given group and save it in the groups object\n\t\t *\n\t\t * @param {string} query The query like parts of the id oder display name\n\t\t * @return {boolean}\n\t\t */\n\t\tasync loadGroup(query) {\n\t\t\ttry {\n\t\t\t\tquery = typeof query === 'string' ? encodeURI(query) : ''\n\t\t\t\tconst response = await axios.get(generateOcsUrl(`cloud/groups/details?search=${query}&limit=10`, 2))\n\n\t\t\t\t// No network error, so reset any error after 5 seconds\n\t\t\t\tif (this.errorMessage !== '') {\n\t\t\t\t\twindow.setTimeout(() => {\n\t\t\t\t\t\tthis.errorMessage = ''\n\t\t\t\t\t}, 5000)\n\t\t\t\t}\n\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tconst newGroups = Object.fromEntries(response.data.ocs.data.groups.map((element) => [element.id, element]))\n\t\t\t\t\tthis.groups = { ...this.groups, ...newGroups }\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t/** Emitted if groups could not be queried.<br />**Payload:** `error` (`object`) - The Axios error */\n\t\t\t\tthis.$emit('error', error)\n\t\t\t\tthis.errorMessage = t('Unable to search the group')\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * Custom filter function for `NcSelect` to filter by ID *and* display name\n\t\t *\n\t\t * @param {object} option One of the groups\n\t\t * @param {string} label The label property of the group\n\t\t * @param {string} search The current search string\n\t\t */\n\t\tfilterGroups(option, label, search) {\n\t\t\treturn `${label || ''} ${option.id}`.toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) > -1\n\t\t},\n\n\t\t/**\n\t\t * Debounce the group search (reduce API calls)\n\t\t */\n\t\tonSearch: debounce(function(query) {\n\t\t\tthis.loadGroup(query)\n\t\t}, 200),\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.select-group-error {\n\tcolor: var(--color-text-error, var(--color-error));\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":[],"mappings":"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"}
|