@nextcloud/vue 8.4.0 → 8.5.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 +51 -0
- package/dist/Components/NcActionButton.cjs +85 -23
- package/dist/Components/NcActionButton.cjs.map +1 -1
- package/dist/Components/NcActionButton.mjs +88 -24
- package/dist/Components/NcActionButton.mjs.map +1 -1
- package/dist/Components/NcActionButtonGroup.cjs +3 -45
- package/dist/Components/NcActionButtonGroup.cjs.map +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +2 -48
- package/dist/Components/NcActionButtonGroup.mjs.map +1 -1
- package/dist/Components/NcActionCaption.cjs +8 -9
- package/dist/Components/NcActionCaption.cjs.map +1 -1
- package/dist/Components/NcActionCaption.mjs +8 -8
- package/dist/Components/NcActionCheckbox.cjs +4 -5
- package/dist/Components/NcActionCheckbox.cjs.map +1 -1
- package/dist/Components/NcActionCheckbox.mjs +13 -13
- package/dist/Components/NcActionInput.cjs +3 -234
- package/dist/Components/NcActionInput.cjs.map +1 -1
- package/dist/Components/NcActionInput.mjs +2 -242
- package/dist/Components/NcActionInput.mjs.map +1 -1
- package/dist/Components/NcActionLink.cjs +2 -3
- package/dist/Components/NcActionLink.cjs.map +1 -1
- package/dist/Components/NcActionLink.mjs +3 -3
- package/dist/Components/NcActionRadio.cjs +12 -13
- package/dist/Components/NcActionRadio.cjs.map +1 -1
- package/dist/Components/NcActionRadio.mjs +11 -11
- package/dist/Components/NcActionRouter.cjs +5 -6
- package/dist/Components/NcActionRouter.cjs.map +1 -1
- package/dist/Components/NcActionRouter.mjs +6 -6
- package/dist/Components/NcActionSeparator.cjs +6 -7
- package/dist/Components/NcActionSeparator.cjs.map +1 -1
- package/dist/Components/NcActionSeparator.mjs +9 -9
- package/dist/Components/NcActionText.cjs +7 -8
- package/dist/Components/NcActionText.cjs.map +1 -1
- package/dist/Components/NcActionText.mjs +10 -10
- package/dist/Components/NcActionTextEditable.cjs +4 -5
- package/dist/Components/NcActionTextEditable.cjs.map +1 -1
- package/dist/Components/NcActionTextEditable.mjs +5 -5
- package/dist/Components/NcActions.cjs +3 -483
- package/dist/Components/NcActions.cjs.map +1 -1
- package/dist/Components/NcActions.mjs +2 -489
- package/dist/Components/NcActions.mjs.map +1 -1
- package/dist/Components/NcAppContent.cjs +3 -222
- package/dist/Components/NcAppContent.cjs.map +1 -1
- package/dist/Components/NcAppContent.mjs +2 -230
- package/dist/Components/NcAppContent.mjs.map +1 -1
- package/dist/Components/NcAppContentDetails.cjs +1 -1
- package/dist/Components/NcAppContentDetails.mjs +1 -1
- package/dist/Components/NcAppContentList.cjs +1 -1
- package/dist/Components/NcAppContentList.mjs +1 -1
- package/dist/Components/NcAppNavigation.cjs +3 -101
- package/dist/Components/NcAppNavigation.cjs.map +1 -1
- package/dist/Components/NcAppNavigation.mjs +2 -106
- package/dist/Components/NcAppNavigation.mjs.map +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +3 -44
- package/dist/Components/NcAppNavigationCaption.cjs.map +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +2 -45
- package/dist/Components/NcAppNavigationCaption.mjs.map +1 -1
- package/dist/Components/NcAppNavigationIconBullet.cjs +5 -6
- package/dist/Components/NcAppNavigationIconBullet.cjs.map +1 -1
- package/dist/Components/NcAppNavigationIconBullet.mjs +8 -8
- package/dist/Components/NcAppNavigationItem.cjs +3 -498
- package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +2 -508
- package/dist/Components/NcAppNavigationItem.mjs.map +1 -1
- package/dist/Components/NcAppNavigationNew.cjs +14 -15
- package/dist/Components/NcAppNavigationNew.cjs.map +1 -1
- package/dist/Components/NcAppNavigationNew.mjs +6 -6
- package/dist/Components/NcAppNavigationNewItem.cjs +3 -87
- package/dist/Components/NcAppNavigationNewItem.cjs.map +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +2 -89
- package/dist/Components/NcAppNavigationNewItem.mjs.map +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +3 -102
- package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +2 -103
- package/dist/Components/NcAppNavigationSettings.mjs.map +1 -1
- package/dist/Components/NcAppNavigationSpacer.cjs +10 -11
- package/dist/Components/NcAppNavigationSpacer.cjs.map +1 -1
- package/dist/Components/NcAppNavigationSpacer.mjs +10 -10
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +3 -182
- package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +2 -188
- package/dist/Components/NcAppSettingsDialog.mjs.map +1 -1
- package/dist/Components/NcAppSettingsSection.cjs +7 -11
- package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +7 -10
- package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
- package/dist/Components/NcAppSidebar.cjs +3 -552
- package/dist/Components/NcAppSidebar.cjs.map +1 -1
- package/dist/Components/NcAppSidebar.mjs +2 -567
- package/dist/Components/NcAppSidebar.mjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.cjs +5 -7
- package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +3 -4
- package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
- package/dist/Components/NcAvatar.cjs +2 -2
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +3 -176
- package/dist/Components/NcBreadcrumb.cjs.map +1 -1
- package/dist/Components/NcBreadcrumb.mjs +2 -179
- package/dist/Components/NcBreadcrumb.mjs.map +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +3 -411
- package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +2 -420
- package/dist/Components/NcBreadcrumbs.mjs.map +1 -1
- package/dist/Components/NcButton.cjs +37 -28
- package/dist/Components/NcButton.cjs.map +1 -1
- package/dist/Components/NcButton.mjs +37 -27
- package/dist/Components/NcButton.mjs.map +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +3 -600
- package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +2 -604
- package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
- package/dist/Components/NcColorPicker.cjs +3 -158
- package/dist/Components/NcColorPicker.cjs.map +1 -1
- package/dist/Components/NcColorPicker.mjs +2 -167
- package/dist/Components/NcColorPicker.mjs.map +1 -1
- package/dist/Components/NcContent.cjs +3 -25
- package/dist/Components/NcContent.cjs.map +1 -1
- package/dist/Components/NcContent.mjs +2 -25
- package/dist/Components/NcContent.mjs.map +1 -1
- package/dist/Components/NcCounterBubble.cjs +4 -5
- package/dist/Components/NcCounterBubble.cjs.map +1 -1
- package/dist/Components/NcCounterBubble.mjs +4 -4
- package/dist/Components/NcDashboardWidget.cjs +3 -134
- package/dist/Components/NcDashboardWidget.cjs.map +1 -1
- package/dist/Components/NcDashboardWidget.mjs +2 -139
- package/dist/Components/NcDashboardWidget.mjs.map +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +3 -138
- package/dist/Components/NcDashboardWidgetItem.cjs.map +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +2 -141
- package/dist/Components/NcDashboardWidgetItem.mjs.map +1 -1
- package/dist/Components/NcDateTime.cjs +2 -129
- package/dist/Components/NcDateTime.cjs.map +1 -1
- package/dist/Components/NcDateTime.mjs +2 -131
- package/dist/Components/NcDateTime.mjs.map +1 -1
- package/dist/Components/NcDateTimePicker.cjs +68 -50
- package/dist/Components/NcDateTimePicker.cjs.map +1 -1
- package/dist/Components/NcDateTimePicker.mjs +72 -53
- package/dist/Components/NcDateTimePicker.mjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.cjs +8 -9
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +7 -7
- package/dist/Components/NcDialog.cjs +3 -172
- package/dist/Components/NcDialog.cjs.map +1 -1
- package/dist/Components/NcDialog.mjs +2 -177
- package/dist/Components/NcDialog.mjs.map +1 -1
- package/dist/Components/NcDialogButton.cjs +2 -68
- package/dist/Components/NcDialogButton.cjs.map +1 -1
- package/dist/Components/NcDialogButton.mjs +2 -72
- package/dist/Components/NcDialogButton.mjs.map +1 -1
- package/dist/Components/NcEllipsisedOption.cjs +4 -5
- package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
- package/dist/Components/NcEllipsisedOption.mjs +14 -14
- package/dist/Components/NcEmojiPicker.cjs +3 -176
- package/dist/Components/NcEmojiPicker.cjs.map +1 -1
- package/dist/Components/NcEmojiPicker.mjs +2 -181
- package/dist/Components/NcEmojiPicker.mjs.map +1 -1
- package/dist/Components/NcEmptyContent.cjs +14 -16
- package/dist/Components/NcEmptyContent.cjs.map +1 -1
- package/dist/Components/NcEmptyContent.mjs +8 -9
- package/dist/Components/NcEmptyContent.mjs.map +1 -1
- package/dist/Components/NcGuestContent.cjs +8 -9
- package/dist/Components/NcGuestContent.cjs.map +1 -1
- package/dist/Components/NcGuestContent.mjs +7 -7
- package/dist/Components/NcHeaderMenu.cjs +3 -169
- package/dist/Components/NcHeaderMenu.cjs.map +1 -1
- package/dist/Components/NcHeaderMenu.mjs +2 -172
- package/dist/Components/NcHeaderMenu.mjs.map +1 -1
- package/dist/Components/NcHighlight.cjs +1 -1
- package/dist/Components/NcHighlight.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.cjs +3 -59
- package/dist/Components/NcIconSvgWrapper.cjs.map +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +2 -61
- package/dist/Components/NcIconSvgWrapper.mjs.map +1 -1
- package/dist/Components/NcInputField.cjs +7 -7
- package/dist/Components/NcInputField.cjs.map +1 -1
- package/dist/Components/NcInputField.mjs +10 -9
- package/dist/Components/NcInputField.mjs.map +1 -1
- package/dist/Components/NcListItem.cjs +3 -242
- package/dist/Components/NcListItem.cjs.map +1 -1
- package/dist/Components/NcListItem.mjs +2 -246
- package/dist/Components/NcListItem.mjs.map +1 -1
- package/dist/Components/NcListItemIcon.cjs +3 -160
- package/dist/Components/NcListItemIcon.cjs.map +1 -1
- package/dist/Components/NcListItemIcon.mjs +2 -162
- package/dist/Components/NcListItemIcon.mjs.map +1 -1
- package/dist/Components/NcLoadingIcon.cjs +9 -10
- package/dist/Components/NcLoadingIcon.cjs.map +1 -1
- package/dist/Components/NcLoadingIcon.mjs +10 -10
- package/dist/Components/NcModal.cjs +32 -24
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +37 -29
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.cjs +8 -9
- package/dist/Components/NcNoteCard.cjs.map +1 -1
- package/dist/Components/NcNoteCard.mjs +8 -9
- package/dist/Components/NcNoteCard.mjs.map +1 -1
- package/dist/Components/NcPasswordField.cjs +2 -228
- package/dist/Components/NcPasswordField.cjs.map +1 -1
- package/dist/Components/NcPasswordField.mjs +2 -236
- package/dist/Components/NcPasswordField.mjs.map +1 -1
- package/dist/Components/NcPopover.cjs +3 -125
- package/dist/Components/NcPopover.cjs.map +1 -1
- package/dist/Components/NcPopover.mjs +2 -128
- package/dist/Components/NcPopover.mjs.map +1 -1
- package/dist/Components/NcProgressBar.cjs +3 -57
- package/dist/Components/NcProgressBar.cjs.map +1 -1
- package/dist/Components/NcProgressBar.mjs +2 -57
- package/dist/Components/NcProgressBar.mjs.map +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +3 -203
- package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +2 -207
- package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
- package/dist/Components/NcRichContenteditable.cjs +5 -512
- package/dist/Components/NcRichContenteditable.cjs.map +1 -1
- package/dist/Components/NcRichContenteditable.mjs +5 -523
- package/dist/Components/NcRichContenteditable.mjs.map +1 -1
- package/dist/Components/NcRichText.cjs +1 -1
- package/dist/Components/NcRichText.mjs +3 -3
- package/dist/Components/NcSavingIndicatorIcon.cjs +2 -58
- package/dist/Components/NcSavingIndicatorIcon.cjs.map +1 -1
- package/dist/Components/NcSavingIndicatorIcon.mjs +2 -60
- package/dist/Components/NcSavingIndicatorIcon.mjs.map +1 -1
- package/dist/Components/NcSelect.cjs +3 -435
- package/dist/Components/NcSelect.cjs.map +1 -1
- package/dist/Components/NcSelect.mjs +2 -444
- package/dist/Components/NcSelect.mjs.map +1 -1
- package/dist/Components/NcSelectTags.cjs +2 -260
- package/dist/Components/NcSelectTags.cjs.map +1 -1
- package/dist/Components/NcSelectTags.mjs +2 -265
- package/dist/Components/NcSelectTags.mjs.map +1 -1
- package/dist/Components/NcSettingsInputText.cjs +3 -91
- package/dist/Components/NcSettingsInputText.cjs.map +1 -1
- package/dist/Components/NcSettingsInputText.mjs +2 -93
- package/dist/Components/NcSettingsInputText.mjs.map +1 -1
- package/dist/Components/NcSettingsSection.cjs +3 -96
- package/dist/Components/NcSettingsSection.cjs.map +1 -1
- package/dist/Components/NcSettingsSection.mjs +2 -97
- package/dist/Components/NcSettingsSection.mjs.map +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextArea.cjs +5 -6
- package/dist/Components/NcTextArea.cjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +7 -7
- package/dist/Components/NcTextField.cjs +2 -139
- package/dist/Components/NcTextField.cjs.map +1 -1
- package/dist/Components/NcTextField.mjs +2 -144
- package/dist/Components/NcTextField.mjs.map +1 -1
- package/dist/Components/NcTimezonePicker.cjs +2 -7198
- package/dist/Components/NcTimezonePicker.cjs.map +1 -1
- package/dist/Components/NcTimezonePicker.mjs +2 -7203
- package/dist/Components/NcTimezonePicker.mjs.map +1 -1
- package/dist/Components/NcUserBubble.cjs +3 -193
- package/dist/Components/NcUserBubble.cjs.map +1 -1
- package/dist/Components/NcUserBubble.mjs +2 -197
- package/dist/Components/NcUserBubble.mjs.map +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +3 -0
- package/dist/Components/NcUserStatusIcon.cjs.map +1 -0
- package/dist/Components/NcUserStatusIcon.mjs +4 -0
- package/dist/Components/NcUserStatusIcon.mjs.map +1 -0
- package/dist/Components/NcVNodes.cjs +10 -11
- package/dist/Components/NcVNodes.cjs.map +1 -1
- package/dist/Components/NcVNodes.mjs +11 -12
- package/dist/Components/NcVNodes.mjs.map +1 -1
- package/dist/Directives/Linkify.cjs +4 -5
- package/dist/Directives/Linkify.cjs.map +1 -1
- package/dist/Directives/Linkify.mjs +5 -6
- package/dist/Directives/Linkify.mjs.map +1 -1
- package/dist/Directives/Tooltip.cjs +1 -1
- package/dist/Directives/Tooltip.mjs +3 -3
- package/dist/Functions/usernameToColor.cjs +2 -38
- package/dist/Functions/usernameToColor.cjs.map +1 -1
- package/dist/Functions/usernameToColor.mjs +2 -39
- package/dist/Functions/usernameToColor.mjs.map +1 -1
- package/dist/Mixins/richEditor.cjs +2 -2
- package/dist/Mixins/richEditor.mjs +2 -2
- package/dist/assets/{index-7868494b.css → NcActionButton-YVkNHN_x.css} +17 -16
- package/dist/assets/{index-5fa0ac5a.css → NcActionButtonGroup-oXobVIqQ.css} +14 -0
- package/dist/assets/{index-e0e6bab6.css → NcActionCheckbox-6Pvlr1E7.css} +1 -1
- package/dist/assets/{index-9020d9ca.css → NcActionInput-4zSvDkWm.css} +67 -67
- package/dist/assets/{index-4ba699a1.css → NcActionLink-zdzQgwtH.css} +1 -1
- package/dist/assets/{index-542cf50a.css → NcActionRadio-eOr9Sp-D.css} +1 -1
- package/dist/assets/{index-7fac55ed.css → NcActionRouter-MFTD6tYI.css} +1 -1
- package/dist/assets/{index-00012a4c.css → NcActionText-GJYwsw_U.css} +1 -1
- package/dist/assets/{index-93ad846c.css → NcActionTextEditable-JrYuWEDd.css} +1 -1
- package/dist/assets/{index-b0bba2fc.css → NcActions-nAi2TA1m.css} +16 -11
- package/dist/assets/{index-4596132f.css → NcAppContent-SZz3PTd8.css} +0 -1
- package/dist/assets/{index-5784183b.css → NcAppNavigation-vjqOL-kR.css} +8 -8
- package/dist/assets/{index-fe84a063.css → NcAppNavigationCaption-l5yRGXZx.css} +6 -5
- package/dist/assets/{index-d8bc189c.css → NcAppNavigationItem-n-wauJE7.css} +5 -0
- package/dist/assets/{index-1a317434.css → NcAppNavigationNewItem-MQBvffq9.css} +5 -0
- package/dist/assets/{index-a9999048.css → NcAppSettingsDialog-8K8FduDk.css} +11 -11
- package/dist/assets/{index-3b654875.css → NcAvatar-Vg6Mi1TD.css} +27 -27
- package/dist/assets/{index-c20f9f7e.css → NcBreadcrumb-M3hqCbqS.css} +26 -33
- package/dist/assets/{index-f5162bbd.css → NcBreadcrumbs-KBV0Jccv.css} +7 -8
- package/dist/assets/{index-f091e784.css → NcButton-DTnreNJ5.css} +43 -43
- package/dist/assets/{index-7f77b8ae.css → NcCheckboxRadioSwitch-IKpLtz9k.css} +50 -47
- package/dist/assets/{index-13720a46.css → NcColorPicker-CNX9fj56.css} +24 -24
- package/dist/assets/{index-a9e4fe04.css → NcContent-LWR23l9i.css} +42 -4
- package/dist/assets/{index-a7fc7815.css → NcDateTimePicker-J_kGHwdu.css} +20 -20
- package/dist/assets/{index-86454928.css → NcDialog-2V180xdm.css} +13 -13
- package/dist/assets/{index-2a8e4ca1.css → NcEmojiPicker-lBXbC6Jd.css} +36 -26
- package/dist/assets/{index-aacb7cf8.css → NcHeaderMenu-P0OkK9WN.css} +16 -23
- package/dist/assets/NcIconSvgWrapper-arqrq5Bj.css +44 -0
- package/dist/assets/{index-2a1ec06b.css → NcInputField-Y-Qp3D_b.css} +40 -40
- package/dist/assets/{index-a3c23731.css → NcModal-QzDLeQrW.css} +63 -63
- package/dist/assets/{index-61b63a8f.css → NcProgressBar-w4-G5gQR.css} +19 -9
- package/dist/assets/{index-ab715d82.css → NcRelatedResourcesPanel-m3uf_nvH.css} +4 -4
- package/dist/assets/{index-dab51681.css → NcRichContenteditable-xiQ4y2Z6.css} +25 -25
- package/dist/assets/{index-f9bfa317.css → NcSelect-GsLmwj9w.css} +13 -2
- package/dist/assets/{index-76a58945.css → NcSettingsSection-PEWm0eeL.css} +13 -13
- package/dist/assets/{index-c221fe05.css → NcUserBubble-jjzI5imn.css} +9 -9
- package/dist/assets/{index-57b305d3.css → NcUserStatusIcon-62u43_6P.css} +7 -10
- package/dist/assets/{referencePickerModal-3a127978.css → referencePickerModal-VxSowpb5.css} +84 -57
- package/dist/chunks/{AlertCircleOutline-7085c10f.cjs → AlertCircleOutline-VgVvRWpm.cjs} +1 -1
- package/dist/chunks/{AlertCircleOutline-7085c10f.cjs.map → AlertCircleOutline-VgVvRWpm.cjs.map} +1 -1
- package/dist/chunks/{AlertCircleOutline-b73838e0.mjs → AlertCircleOutline-lwSRucNO.mjs} +1 -1
- package/dist/chunks/{AlertCircleOutline-b73838e0.mjs.map → AlertCircleOutline-lwSRucNO.mjs.map} +1 -1
- package/dist/chunks/{ArrowLeft-2f9b9323.cjs → ArrowLeft-3KC2k3tR.cjs} +1 -1
- package/dist/chunks/{ArrowLeft-2f9b9323.cjs.map → ArrowLeft-3KC2k3tR.cjs.map} +1 -1
- package/dist/chunks/{ArrowLeft-3779ba88.mjs → ArrowLeft-buaCjhfr.mjs} +1 -1
- package/dist/chunks/{ArrowLeft-3779ba88.mjs.map → ArrowLeft-buaCjhfr.mjs.map} +1 -1
- package/dist/chunks/{ArrowRight-74a9fcb2.mjs → ArrowRight-4p6gv-9o.mjs} +1 -1
- package/dist/chunks/{ArrowRight-74a9fcb2.mjs.map → ArrowRight-4p6gv-9o.mjs.map} +1 -1
- package/dist/chunks/{ArrowRight-7315f6c1.cjs → ArrowRight-uEMed4kl.cjs} +1 -1
- package/dist/chunks/{ArrowRight-7315f6c1.cjs.map → ArrowRight-uEMed4kl.cjs.map} +1 -1
- package/dist/chunks/{Check-be8cd6af.cjs → Check-5uKO4aXx.cjs} +1 -1
- package/dist/chunks/{Check-be8cd6af.cjs.map → Check-5uKO4aXx.cjs.map} +1 -1
- package/dist/chunks/{Check-2ea0a88a.mjs → Check-FObi_cEO.mjs} +1 -1
- package/dist/chunks/{Check-2ea0a88a.mjs.map → Check-FObi_cEO.mjs.map} +1 -1
- package/dist/chunks/{ChevronDown-a72d365d.mjs → ChevronDown-TbRvziNU.mjs} +1 -1
- package/dist/chunks/{ChevronDown-a72d365d.mjs.map → ChevronDown-TbRvziNU.mjs.map} +1 -1
- package/dist/chunks/{ChevronDown-dc32e51d.cjs → ChevronDown-rdCNNu7u.cjs} +1 -1
- package/dist/chunks/{ChevronDown-dc32e51d.cjs.map → ChevronDown-rdCNNu7u.cjs.map} +1 -1
- package/dist/chunks/{ChevronRight-1a6a6cf2.mjs → ChevronRight-XOmSMmxA.mjs} +1 -1
- package/dist/chunks/{ChevronRight-1a6a6cf2.mjs.map → ChevronRight-XOmSMmxA.mjs.map} +1 -1
- package/dist/chunks/{ChevronRight-a4c1e0d3.cjs → ChevronRight-bp7fT1r7.cjs} +1 -1
- package/dist/chunks/{ChevronRight-a4c1e0d3.cjs.map → ChevronRight-bp7fT1r7.cjs.map} +1 -1
- package/dist/chunks/{Close-271f72e2.mjs → Close-5Hzp7J3v.mjs} +1 -1
- package/dist/chunks/{Close-271f72e2.mjs.map → Close-5Hzp7J3v.mjs.map} +1 -1
- package/dist/chunks/{Close-98cb6f12.cjs → Close-QFLrdRdG.cjs} +1 -1
- package/dist/chunks/{Close-98cb6f12.cjs.map → Close-QFLrdRdG.cjs.map} +1 -1
- package/dist/chunks/{DotsHorizontal-0ee7d901.mjs → DotsHorizontal-NssXDZGM.mjs} +1 -1
- package/dist/chunks/{DotsHorizontal-0ee7d901.mjs.map → DotsHorizontal-NssXDZGM.mjs.map} +1 -1
- package/dist/chunks/{DotsHorizontal-ac96129a.cjs → DotsHorizontal-dlN1WvqM.cjs} +1 -1
- package/dist/chunks/{DotsHorizontal-ac96129a.cjs.map → DotsHorizontal-dlN1WvqM.cjs.map} +1 -1
- package/dist/chunks/{GenColors-7495e6f6.cjs → GenColors-6mrcK1J2.cjs} +23 -18
- package/dist/chunks/GenColors-6mrcK1J2.cjs.map +1 -0
- package/dist/chunks/{GenColors-5c054042.mjs → GenColors-ZwEj275X.mjs} +16 -11
- package/dist/chunks/GenColors-ZwEj275X.mjs.map +1 -0
- package/dist/chunks/{GenRandomId-c214d235.cjs.map → GenRandomId-ULxaMkkr.cjs.map} +1 -1
- package/dist/chunks/{GenRandomId-cb9ccebe.mjs.map → GenRandomId-VodkdWbp.mjs.map} +1 -1
- package/dist/chunks/{Linkify-39f20c9a.mjs.map → Linkify-V7PfCeZ8.mjs.map} +1 -1
- package/dist/chunks/{Linkify-40cdd635.cjs.map → Linkify-f3s3nAe_.cjs.map} +1 -1
- package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs +50 -0
- package/dist/chunks/NcActionButtonGroup-3W6tc8gZ.mjs.map +1 -0
- package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs +45 -0
- package/dist/chunks/NcActionButtonGroup-IEaXhYp3.cjs.map +1 -0
- package/dist/chunks/NcActionInput-bLRYLx45.cjs +234 -0
- package/dist/chunks/NcActionInput-bLRYLx45.cjs.map +1 -0
- package/dist/chunks/NcActionInput-v8cC8WD4.mjs +244 -0
- package/dist/chunks/NcActionInput-v8cC8WD4.mjs.map +1 -0
- package/dist/chunks/NcActions-7ytNFRBJ.cjs +493 -0
- package/dist/chunks/NcActions-7ytNFRBJ.cjs.map +1 -0
- package/dist/chunks/NcActions-CNDgnRLf.mjs +501 -0
- package/dist/chunks/NcActions-CNDgnRLf.mjs.map +1 -0
- package/dist/chunks/NcAppContent-XBosilQH.mjs +231 -0
- package/dist/chunks/NcAppContent-XBosilQH.mjs.map +1 -0
- package/dist/chunks/NcAppContent-f3dNUfhO.cjs +221 -0
- package/dist/chunks/NcAppContent-f3dNUfhO.cjs.map +1 -0
- package/dist/chunks/NcAppNavigation-oke9RxP6.cjs +113 -0
- package/dist/chunks/NcAppNavigation-oke9RxP6.cjs.map +1 -0
- package/dist/chunks/NcAppNavigation-qUXaV47L.mjs +122 -0
- package/dist/chunks/NcAppNavigation-qUXaV47L.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs +47 -0
- package/dist/chunks/NcAppNavigationCaption-M-KZKijE.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs +43 -0
- package/dist/chunks/NcAppNavigationCaption-hVmjPz-2.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs +508 -0
- package/dist/chunks/NcAppNavigationItem-GNnDmUq5.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs +496 -0
- package/dist/chunks/NcAppNavigationItem-YYoh37Ky.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs +86 -0
- package/dist/chunks/NcAppNavigationNewItem-3l4mRRsI.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs +91 -0
- package/dist/chunks/NcAppNavigationNewItem-pBHgj8Es.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs +102 -0
- package/dist/chunks/NcAppNavigationSettings-IkF_z_xt.cjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs +105 -0
- package/dist/chunks/NcAppNavigationSettings-c_S9UbSU.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationToggle-0bc638a8.mjs → NcAppNavigationToggle-S4YTmnky.mjs} +16 -17
- package/dist/chunks/{NcAppNavigationToggle-0bc638a8.mjs.map → NcAppNavigationToggle-S4YTmnky.mjs.map} +1 -1
- package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs +109 -0
- package/dist/chunks/{NcAppNavigationToggle-6d192bea.cjs.map → NcAppNavigationToggle-Tvz9copM.cjs.map} +1 -1
- package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs +184 -0
- package/dist/chunks/NcAppSettingsDialog-CQtmRXyZ.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs +176 -0
- package/dist/chunks/NcAppSettingsDialog-L6IvAL_I.cjs.map +1 -0
- package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs +547 -0
- package/dist/chunks/NcAppSidebar-GCbKi7Tk.cjs.map +1 -0
- package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs +565 -0
- package/dist/chunks/NcAppSidebar-nHbqU8Wl.mjs.map +1 -0
- package/dist/chunks/{index-309426ff.mjs → NcAvatar-1gX-bnpd.mjs} +67 -138
- package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +1 -0
- package/dist/chunks/{index-693e993c.cjs → NcAvatar-8NgbtiTN.cjs} +50 -121
- package/dist/chunks/NcAvatar-8NgbtiTN.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs +172 -0
- package/dist/chunks/NcBreadcrumb-3vNer4Fs.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs +179 -0
- package/dist/chunks/NcBreadcrumb-VlYks8Vu.mjs.map +1 -0
- package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs +407 -0
- package/dist/chunks/NcBreadcrumbs-GhYBmcix.cjs.map +1 -0
- package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs +418 -0
- package/dist/chunks/NcBreadcrumbs-UCJPNjZg.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs +607 -0
- package/dist/chunks/NcCheckboxRadioSwitch-3sa_9DpY.mjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs +603 -0
- package/dist/chunks/NcCheckboxRadioSwitch-s5C7ZGB_.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-2l55YbP4.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_835b7036_lang-4V3NxICZ.mjs.map +1 -0
- package/dist/chunks/NcColorPicker-4qA0UWdA.cjs +161 -0
- package/dist/chunks/NcColorPicker-4qA0UWdA.cjs.map +1 -0
- package/dist/chunks/NcColorPicker-aNJDKf-I.mjs +172 -0
- package/dist/chunks/NcColorPicker-aNJDKf-I.mjs.map +1 -0
- package/dist/chunks/NcContent-V1PRVhsU.mjs +131 -0
- package/dist/chunks/NcContent-V1PRVhsU.mjs.map +1 -0
- package/dist/chunks/NcContent-x5KPSopo.cjs +123 -0
- package/dist/chunks/NcContent-x5KPSopo.cjs.map +1 -0
- package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs +141 -0
- package/dist/chunks/NcDashboardWidget-pzCvVb_0.mjs.map +1 -0
- package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs +134 -0
- package/dist/chunks/NcDashboardWidget-w15LYpmC.cjs.map +1 -0
- package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs +143 -0
- package/dist/chunks/NcDashboardWidgetItem-FNmPTAuj.mjs.map +1 -0
- package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs +137 -0
- package/dist/chunks/NcDashboardWidgetItem-YJerQyu5.cjs.map +1 -0
- package/dist/chunks/NcDateTime-22ULCxg8.mjs +146 -0
- package/dist/chunks/NcDateTime-22ULCxg8.mjs.map +1 -0
- package/dist/chunks/NcDateTime-eHTrKYG4.cjs +142 -0
- package/dist/chunks/NcDateTime-eHTrKYG4.cjs.map +1 -0
- package/dist/chunks/NcDialog-KlvRL7k1.cjs +209 -0
- package/dist/chunks/NcDialog-KlvRL7k1.cjs.map +1 -0
- package/dist/chunks/NcDialog-b2LjzZB8.mjs +217 -0
- package/dist/chunks/NcDialog-b2LjzZB8.mjs.map +1 -0
- package/dist/chunks/NcDialogButton-37xKCh_l.cjs +68 -0
- package/dist/chunks/NcDialogButton-37xKCh_l.cjs.map +1 -0
- package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs +73 -0
- package/dist/chunks/NcDialogButton-O4JZ53Dj.mjs.map +1 -0
- package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs +249 -0
- package/dist/chunks/NcEmojiPicker-H_YmCt4L.mjs.map +1 -0
- package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs +238 -0
- package/dist/chunks/NcEmojiPicker-o1VRXxQO.cjs.map +1 -0
- package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs +183 -0
- package/dist/chunks/NcHeaderMenu-CIYGCufy.cjs.map +1 -0
- package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs +190 -0
- package/dist/chunks/NcHeaderMenu-CfEUQ0JV.mjs.map +1 -0
- package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs +85 -0
- package/dist/chunks/NcIconSvgWrapper-P-GkSjTH.mjs.map +1 -0
- package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs +80 -0
- package/dist/chunks/NcIconSvgWrapper-_lgitSfS.cjs.map +1 -0
- package/dist/chunks/NcInputConfirmCancel-YzEcukdc.cjs +91 -0
- package/dist/chunks/{NcInputConfirmCancel-b99898db.cjs.map → NcInputConfirmCancel-YzEcukdc.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-a08c5cb4.mjs → NcInputConfirmCancel-lUDtoN2O.mjs} +12 -12
- package/dist/chunks/{NcInputConfirmCancel-a08c5cb4.mjs.map → NcInputConfirmCancel-lUDtoN2O.mjs.map} +1 -1
- package/dist/chunks/NcListItem-AZpInn_s.mjs +248 -0
- package/dist/chunks/NcListItem-AZpInn_s.mjs.map +1 -0
- package/dist/chunks/NcListItem-bBx6_yWw.cjs +242 -0
- package/dist/chunks/NcListItem-bBx6_yWw.cjs.map +1 -0
- package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs +164 -0
- package/dist/chunks/NcListItemIcon-1ZcwsrMT.mjs.map +1 -0
- package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs +160 -0
- package/dist/chunks/NcListItemIcon-uPc7p1KY.cjs.map +1 -0
- package/dist/chunks/NcPasswordField-YvUbX2WS.cjs +229 -0
- package/dist/chunks/NcPasswordField-YvUbX2WS.cjs.map +1 -0
- package/dist/chunks/NcPasswordField-fNiTJMmG.mjs +238 -0
- package/dist/chunks/NcPasswordField-fNiTJMmG.mjs.map +1 -0
- package/dist/chunks/NcPopover-EXxv8Pzw.cjs +218 -0
- package/dist/chunks/NcPopover-EXxv8Pzw.cjs.map +1 -0
- package/dist/chunks/NcPopover-NyUZ2r7V.mjs +225 -0
- package/dist/chunks/NcPopover-NyUZ2r7V.mjs.map +1 -0
- package/dist/chunks/NcProgressBar-hQCFE5H3.mjs +99 -0
- package/dist/chunks/NcProgressBar-hQCFE5H3.mjs.map +1 -0
- package/dist/chunks/NcProgressBar-yrdD1jxU.cjs +95 -0
- package/dist/chunks/NcProgressBar-yrdD1jxU.cjs.map +1 -0
- package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs +199 -0
- package/dist/chunks/NcRelatedResourcesPanel-DCqlPqZc.cjs.map +1 -0
- package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs +205 -0
- package/dist/chunks/NcRelatedResourcesPanel-H2imJgxi.mjs.map +1 -0
- package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs +515 -0
- package/dist/chunks/NcRichContenteditable-EZp-vrCT.mjs.map +1 -0
- package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs +504 -0
- package/dist/chunks/NcRichContenteditable-lPa8fqWG.cjs.map +1 -0
- package/dist/chunks/{NcRichText-e4bf7767.mjs → NcRichText-7CHftQ4Z.mjs} +125 -81
- package/dist/chunks/NcRichText-7CHftQ4Z.mjs.map +1 -0
- package/dist/chunks/{NcRichText-f729896c.cjs → NcRichText-SPiEkcnt.cjs} +112 -71
- package/dist/chunks/NcRichText-SPiEkcnt.cjs.map +1 -0
- package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs +62 -0
- package/dist/chunks/NcSavingIndicatorIcon-IqoMFcDK.mjs.map +1 -0
- package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs +59 -0
- package/dist/chunks/NcSavingIndicatorIcon-wcQ0mBIL.cjs.map +1 -0
- package/dist/chunks/NcSelect-c9-eF29z.cjs +462 -0
- package/dist/chunks/NcSelect-c9-eF29z.cjs.map +1 -0
- package/dist/chunks/NcSelect-zx9IspDS.mjs +474 -0
- package/dist/chunks/NcSelect-zx9IspDS.mjs.map +1 -0
- package/dist/chunks/NcSelectTags-WGdCwmRr.mjs +267 -0
- package/dist/chunks/NcSelectTags-WGdCwmRr.mjs.map +1 -0
- package/dist/chunks/NcSelectTags-doFIXNxC.cjs +261 -0
- package/dist/chunks/NcSelectTags-doFIXNxC.cjs.map +1 -0
- package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs +95 -0
- package/dist/chunks/NcSettingsInputText-YMRo6B3V.mjs.map +1 -0
- package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs +91 -0
- package/dist/chunks/NcSettingsInputText-sJarpoq-.cjs.map +1 -0
- package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs +95 -0
- package/dist/chunks/NcSettingsSection-R_JKZdJk.cjs.map +1 -0
- package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs +98 -0
- package/dist/chunks/NcSettingsSection-zdWzOqxk.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSelectGroup-ecc8bc5a.mjs → NcSettingsSelectGroup-Ghgl6Y_d.mjs} +5 -5
- package/dist/chunks/{NcSettingsSelectGroup-ecc8bc5a.mjs.map → NcSettingsSelectGroup-Ghgl6Y_d.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-b065ffc8.cjs → NcSettingsSelectGroup-NhJyFPsw.cjs} +9 -9
- package/dist/chunks/{NcSettingsSelectGroup-b065ffc8.cjs.map → NcSettingsSelectGroup-NhJyFPsw.cjs.map} +1 -1
- package/dist/chunks/NcTextField-8ap5MAGr.cjs +140 -0
- package/dist/chunks/NcTextField-8ap5MAGr.cjs.map +1 -0
- package/dist/chunks/NcTextField-tIJ3fJ37.mjs +146 -0
- package/dist/chunks/NcTextField-tIJ3fJ37.mjs.map +1 -0
- package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs +7205 -0
- package/dist/chunks/NcTimezonePicker-Ue_mc4jo.mjs.map +1 -0
- package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs +7199 -0
- package/dist/chunks/NcTimezonePicker-ag-krDDP.cjs.map +1 -0
- package/dist/chunks/NcUserBubble-hfgJXqk2.cjs +191 -0
- package/dist/chunks/NcUserBubble-hfgJXqk2.cjs.map +1 -0
- package/dist/chunks/NcUserBubble-s30BQXdv.mjs +197 -0
- package/dist/chunks/NcUserBubble-s30BQXdv.mjs.map +1 -0
- package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs +174 -0
- package/dist/chunks/NcUserStatusIcon-H5b_e8YL.mjs.map +1 -0
- package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs +166 -0
- package/dist/chunks/NcUserStatusIcon-PevYJx6w.cjs.map +1 -0
- package/dist/chunks/{ScopeComponent-b039a43c.mjs → ScopeComponent-9XNLQCuu.mjs} +1 -1
- package/dist/chunks/{ScopeComponent-b039a43c.mjs.map → ScopeComponent-9XNLQCuu.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-06c558d3.cjs → ScopeComponent-_Cg8ogL-.cjs} +1 -1
- package/dist/chunks/{ScopeComponent-06c558d3.cjs.map → ScopeComponent-_Cg8ogL-.cjs.map} +1 -1
- package/dist/chunks/_l10n-juAR1Sua.cjs +64 -0
- package/dist/chunks/_l10n-juAR1Sua.cjs.map +1 -0
- package/dist/chunks/_l10n-tZEKUJRj.mjs +66 -0
- package/dist/chunks/_l10n-tZEKUJRj.mjs.map +1 -0
- package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +1 -0
- package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +1 -0
- package/dist/chunks/{actionGlobal-9e29e11b.cjs → actionGlobal-_f-PhW84.cjs} +3 -7
- package/dist/chunks/actionGlobal-_f-PhW84.cjs.map +1 -0
- package/dist/chunks/{actionGlobal-8c1c28c9.mjs → actionGlobal-ejpd0zqm.mjs} +3 -7
- package/dist/chunks/actionGlobal-ejpd0zqm.mjs.map +1 -0
- package/dist/chunks/{actionText-123f26b0.mjs → actionText-AoAs4kqP.mjs} +6 -2
- package/dist/chunks/{actionText-e450809c.cjs.map → actionText-AoAs4kqP.mjs.map} +1 -1
- package/dist/chunks/{actionText-e450809c.cjs → actionText-pGrMQtZ3.cjs} +6 -2
- package/dist/chunks/{actionText-123f26b0.mjs.map → actionText-pGrMQtZ3.cjs.map} +1 -1
- package/dist/chunks/emoji-mJIuLpNR.cjs +58 -0
- package/dist/chunks/emoji-mJIuLpNR.cjs.map +1 -0
- package/dist/chunks/emoji-tllD0Rvt.mjs +61 -0
- package/dist/chunks/emoji-tllD0Rvt.mjs.map +1 -0
- package/dist/chunks/{focusTrap-5d0f71d4.mjs.map → focusTrap-Py2bQ9-r.mjs.map} +1 -1
- package/dist/chunks/{focusTrap-14985831.cjs.map → focusTrap-n3H52LOw.cjs.map} +1 -1
- package/dist/chunks/{index-20a9ace9.mjs → index-2phCrsSH.mjs} +1 -1
- package/dist/chunks/{index-20a9ace9.mjs.map → index-2phCrsSH.mjs.map} +1 -1
- package/dist/chunks/{index-4398f925.cjs → index-AX_b-FPF.cjs} +2 -1
- package/dist/chunks/{index-4398f925.cjs.map → index-AX_b-FPF.cjs.map} +1 -1
- package/dist/chunks/{index-e894376a.cjs → index-FO4BaGaF.cjs} +1 -1
- package/dist/chunks/{index-e894376a.cjs.map → index-FO4BaGaF.cjs.map} +1 -1
- package/dist/chunks/{index-5f2a5f57.mjs → index-KrMGGc7j.mjs} +3 -2
- package/dist/chunks/{index-5f2a5f57.mjs.map → index-KrMGGc7j.mjs.map} +1 -1
- package/dist/chunks/{logger-3612e664.mjs.map → logger-3m1eQsSo.mjs.map} +1 -1
- package/dist/chunks/{logger-4998b668.cjs.map → logger-G6OKp5ly.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-12935fb3.mjs → referencePickerModal-jbqYHMmd.mjs} +171 -189
- package/dist/chunks/{referencePickerModal-12935fb3.mjs.map → referencePickerModal-jbqYHMmd.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-12fa2ad0.cjs → referencePickerModal-rHOAeK-a.cjs} +152 -170
- package/dist/chunks/{referencePickerModal-12fa2ad0.cjs.map → referencePickerModal-rHOAeK-a.cjs.map} +1 -1
- package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs +39 -0
- package/dist/chunks/usernameToColor-fJ1S8Q2S.cjs.map +1 -0
- package/dist/chunks/usernameToColor-pYptUj7i.mjs +41 -0
- package/dist/chunks/usernameToColor-pYptUj7i.mjs.map +1 -0
- package/dist/functions/emoji/emoji.d.ts +50 -0
- package/dist/{Functions/emoji.mjs → functions/emoji/index.d.ts} +1 -16
- package/dist/index.cjs +163 -157
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +157 -149
- package/dist/index.mjs.map +1 -1
- package/dist/utils/UserStatus.d.ts +1 -3
- package/package.json +5 -3
- package/dist/Functions/emoji.cjs +0 -36
- package/dist/Functions/emoji.cjs.map +0 -1
- package/dist/Functions/emoji.mjs.map +0 -1
- package/dist/chunks/GenColors-5c054042.mjs.map +0 -1
- package/dist/chunks/GenColors-7495e6f6.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-6d192bea.cjs +0 -110
- package/dist/chunks/NcInputConfirmCancel-b99898db.cjs +0 -91
- package/dist/chunks/NcRichText-e4bf7767.mjs.map +0 -1
- package/dist/chunks/NcRichText-f729896c.cjs.map +0 -1
- package/dist/chunks/_l10n-72c5e29e.cjs +0 -62
- package/dist/chunks/_l10n-72c5e29e.cjs.map +0 -1
- package/dist/chunks/_l10n-f5af5269.mjs +0 -64
- package/dist/chunks/_l10n-f5af5269.mjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-71e2aa87.mjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-7f9efb60.cjs.map +0 -1
- package/dist/chunks/actionGlobal-8c1c28c9.mjs.map +0 -1
- package/dist/chunks/actionGlobal-9e29e11b.cjs.map +0 -1
- package/dist/chunks/index-309426ff.mjs.map +0 -1
- package/dist/chunks/index-693e993c.cjs.map +0 -1
- /package/dist/assets/{index-418d4e87.css → NcActionCaption-afJqyJO6.css} +0 -0
- /package/dist/assets/{index-018895f7.css → NcActionSeparator-l98xWbiL.css} +0 -0
- /package/dist/assets/{index-fc61f2d8.css → NcAppNavigationIconBullet-Nf3ARMLv.css} +0 -0
- /package/dist/assets/{index-0ac09203.css → NcAppNavigationNew-joyd78FM.css} +0 -0
- /package/dist/assets/{index-f78bd735.css → NcAppNavigationSettings-Jx_6RpSn.css} +0 -0
- /package/dist/assets/{index-76dd9f11.css → NcAppNavigationSpacer-MfL8GeCN.css} +0 -0
- /package/dist/assets/{NcAppNavigationToggle-48c375e8.css → NcAppNavigationToggle-upUgYNtL.css} +0 -0
- /package/dist/assets/{index-1f25a3c0.css → NcAppSettingsSection-ahfdhix_.css} +0 -0
- /package/dist/assets/{index-2d5cf6b2.css → NcAppSidebar-iU8Zp4Qk.css} +0 -0
- /package/dist/assets/{index-77a548be.css → NcAppSidebarTab-Phau6edJ.css} +0 -0
- /package/dist/assets/{index-17673ea1.css → NcCounterBubble-rgkmqN46.css} +0 -0
- /package/dist/assets/{index-6416f636.css → NcDashboardWidget-01deRW9Z.css} +0 -0
- /package/dist/assets/{index-e7eadba7.css → NcDashboardWidgetItem-S7fELANA.css} +0 -0
- /package/dist/assets/{index-8b327013.css → NcDateTimePickerNative-2pQS5L0H.css} +0 -0
- /package/dist/assets/{index-a2b51bce.css → NcEllipsisedOption-eoI10kvc.css} +0 -0
- /package/dist/assets/{index-c239a2fc.css → NcEmptyContent-pSz7F6Oe.css} +0 -0
- /package/dist/assets/{index-8aa4712e.css → NcGuestContent-mGGTzI2_.css} +0 -0
- /package/dist/assets/{NcInputConfirmCancel-45d1d76b.css → NcInputConfirmCancel-ks8z8dIn.css} +0 -0
- /package/dist/assets/{index-f24e102f.css → NcListItem-xcW2PRrk.css} +0 -0
- /package/dist/assets/{index-6f721577.css → NcListItemIcon-PQ2s6ZqX.css} +0 -0
- /package/dist/assets/{index-b8f13a1f.css → NcLoadingIcon-hZn7TJM8.css} +0 -0
- /package/dist/assets/{NcMentionBubble-6e887c5f.css → NcMentionBubble-2OXF_uEJ.css} +0 -0
- /package/dist/assets/{index-400b48a6.css → NcNoteCard-OTfZqVvP.css} +0 -0
- /package/dist/assets/{index-4ebacc78.css → NcPopover-MK4GcuPY.css} +0 -0
- /package/dist/assets/{index-6c47e88a.css → NcSettingsInputText-MPi6a3Yy.css} +0 -0
- /package/dist/assets/{NcSettingsSelectGroup-a29e2156.css → NcSettingsSelectGroup-_Jpb8yE3.css} +0 -0
- /package/dist/assets/{index-97305c1f.css → NcTextArea-K-KVPiMp.css} +0 -0
- /package/dist/assets/{index-d211cae8.css → Tooltip-wOLIuz0Q.css} +0 -0
- /package/dist/chunks/{GenRandomId-c214d235.cjs → GenRandomId-ULxaMkkr.cjs} +0 -0
- /package/dist/chunks/{GenRandomId-cb9ccebe.mjs → GenRandomId-VodkdWbp.mjs} +0 -0
- /package/dist/chunks/{Linkify-39f20c9a.mjs → Linkify-V7PfCeZ8.mjs} +0 -0
- /package/dist/chunks/{Linkify-40cdd635.cjs → Linkify-f3s3nAe_.cjs} +0 -0
- /package/dist/chunks/{_plugin-vue2_normalizer-7f9efb60.cjs → _plugin-vue2_normalizer-DCfUPqga.cjs} +0 -0
- /package/dist/chunks/{_plugin-vue2_normalizer-71e2aa87.mjs → _plugin-vue2_normalizer-u6G_3nkj.mjs} +0 -0
- /package/dist/chunks/{focusTrap-5d0f71d4.mjs → focusTrap-Py2bQ9-r.mjs} +0 -0
- /package/dist/chunks/{focusTrap-14985831.cjs → focusTrap-n3H52LOw.cjs} +0 -0
- /package/dist/chunks/{logger-3612e664.mjs → logger-3m1eQsSo.mjs} +0 -0
- /package/dist/chunks/{logger-4998b668.cjs → logger-G6OKp5ly.cjs} +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import "../assets/NcSettingsInputText-MPi6a3Yy.css";
|
|
2
|
+
import { r as n, f as s, a as r } from "./_l10n-tZEKUJRj.mjs";
|
|
3
|
+
import { G as u } from "./GenRandomId-VodkdWbp.mjs";
|
|
4
|
+
import { n as l } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
5
|
+
n(s);
|
|
6
|
+
const o = {
|
|
7
|
+
name: "NcSettingsInputText",
|
|
8
|
+
props: {
|
|
9
|
+
/**
|
|
10
|
+
* label of the select group element
|
|
11
|
+
*/
|
|
12
|
+
label: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: !0
|
|
15
|
+
},
|
|
16
|
+
/**
|
|
17
|
+
* hint of the select group input
|
|
18
|
+
*/
|
|
19
|
+
hint: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: ""
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* value of the select group input
|
|
25
|
+
*/
|
|
26
|
+
value: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: ""
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* disabled state of the settings select group input
|
|
32
|
+
*/
|
|
33
|
+
disabled: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: !1
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* id attribute of the select group element
|
|
39
|
+
*/
|
|
40
|
+
id: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: () => "settings-input-text-" + u(),
|
|
43
|
+
validator: (e) => e.trim() !== ""
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
emits: [
|
|
47
|
+
"update:value",
|
|
48
|
+
"input",
|
|
49
|
+
"submit",
|
|
50
|
+
"change"
|
|
51
|
+
],
|
|
52
|
+
data() {
|
|
53
|
+
return {
|
|
54
|
+
submitTranslated: r("Submit")
|
|
55
|
+
};
|
|
56
|
+
},
|
|
57
|
+
computed: {
|
|
58
|
+
/**
|
|
59
|
+
* @return {string}
|
|
60
|
+
*/
|
|
61
|
+
idSubmit() {
|
|
62
|
+
return this.id + "-submit";
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
methods: {
|
|
66
|
+
onInput(e) {
|
|
67
|
+
this.$emit("input", e), this.$emit("update:value", e.target.value);
|
|
68
|
+
},
|
|
69
|
+
onSubmit(e) {
|
|
70
|
+
this.disabled || this.$emit("submit", e);
|
|
71
|
+
},
|
|
72
|
+
onChange(e) {
|
|
73
|
+
this.$emit("change", e);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var p = function() {
|
|
78
|
+
var t = this, i = t._self._c;
|
|
79
|
+
return i("form", { ref: "form", attrs: { disabled: t.disabled }, on: { submit: function(a) {
|
|
80
|
+
return a.preventDefault(), a.stopPropagation(), t.onSubmit.apply(null, arguments);
|
|
81
|
+
} } }, [i("div", { staticClass: "input-wrapper" }, [i("label", { staticClass: "action-input__label", attrs: { for: t.id } }, [t._v(t._s(t.label))]), i("input", { attrs: { id: t.id, type: "text", disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput, change: t.onChange } }), i("input", { staticClass: "action-input__submit", attrs: { id: t.idSubmit, type: "submit" }, domProps: { value: t.submitTranslated } }), t.hint ? i("p", { staticClass: "hint" }, [t._v(" " + t._s(t.hint) + " ")]) : t._e()])]);
|
|
82
|
+
}, d = [], m = /* @__PURE__ */ l(
|
|
83
|
+
o,
|
|
84
|
+
p,
|
|
85
|
+
d,
|
|
86
|
+
!1,
|
|
87
|
+
null,
|
|
88
|
+
"5b140fb6",
|
|
89
|
+
null,
|
|
90
|
+
null
|
|
91
|
+
);
|
|
92
|
+
const h = m.exports;
|
|
93
|
+
export {
|
|
94
|
+
h as N
|
|
95
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSettingsInputText-YMRo6B3V.mjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n```vue\n<NcSettingsInputText label=\"Label\" hint=\"Hint\" />\n<NcSettingsInputText label=\"Label\" value=\"Value\" hint=\"Hint\" disabled />\n```\n\n</docs>\n\n<template>\n\t<form ref=\"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 :id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"value\"\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 :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 { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsInputText',\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 * value of the select group input\n\t\t */\n\t\tvalue: {\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'update:value',\n\t\t'input',\n\t\t'submit',\n\t\t'change',\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\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\t/**\n\t\t\t * Emitted when the inputs value changes\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:value', event.target.value)\n\t\t},\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\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":["_sfc_main","GenRandomId","id","t","event"],"mappings":";;;;;AA0DA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,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,IAKA,OAAA;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,yBAAAC,EAAA;AAAA,MACA,WAAA,CAAAC,MAAAA,EAAA,KAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,kBAAAC,EAAA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,KAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,QAAAC,GAAA;AACA,WAAA,MAAA,SAAAA,CAAA,GAMA,KAAA,MAAA,gBAAAA,EAAA,OAAA,KAAA;AAAA,IACA;AAAA,IACA,SAAAA,GAAA;AACA,MAAA,KAAA,YAMA,KAAA,MAAA,UAAAA,CAAA;AAAA,IAEA;AAAA,IACA,SAAAA,GAAA;AAMA,WAAA,MAAA,UAAAA,CAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
var m = require("../assets/NcSettingsInputText-MPi6a3Yy.css");
|
|
2
|
+
const n = require("./_l10n-juAR1Sua.cjs"), s = require("./GenRandomId-ULxaMkkr.cjs"), u = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
|
|
3
|
+
n.register(n.t39);
|
|
4
|
+
const r = {
|
|
5
|
+
name: "NcSettingsInputText",
|
|
6
|
+
props: {
|
|
7
|
+
/**
|
|
8
|
+
* label of the select group element
|
|
9
|
+
*/
|
|
10
|
+
label: {
|
|
11
|
+
type: String,
|
|
12
|
+
required: !0
|
|
13
|
+
},
|
|
14
|
+
/**
|
|
15
|
+
* hint of the select group input
|
|
16
|
+
*/
|
|
17
|
+
hint: {
|
|
18
|
+
type: String,
|
|
19
|
+
default: ""
|
|
20
|
+
},
|
|
21
|
+
/**
|
|
22
|
+
* value of the select group input
|
|
23
|
+
*/
|
|
24
|
+
value: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: ""
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* disabled state of the settings select group input
|
|
30
|
+
*/
|
|
31
|
+
disabled: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: !1
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* id attribute of the select group element
|
|
37
|
+
*/
|
|
38
|
+
id: {
|
|
39
|
+
type: String,
|
|
40
|
+
default: () => "settings-input-text-" + s.GenRandomId(),
|
|
41
|
+
validator: (e) => e.trim() !== ""
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
emits: [
|
|
45
|
+
"update:value",
|
|
46
|
+
"input",
|
|
47
|
+
"submit",
|
|
48
|
+
"change"
|
|
49
|
+
],
|
|
50
|
+
data() {
|
|
51
|
+
return {
|
|
52
|
+
submitTranslated: n.t("Submit")
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
computed: {
|
|
56
|
+
/**
|
|
57
|
+
* @return {string}
|
|
58
|
+
*/
|
|
59
|
+
idSubmit() {
|
|
60
|
+
return this.id + "-submit";
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
methods: {
|
|
64
|
+
onInput(e) {
|
|
65
|
+
this.$emit("input", e), this.$emit("update:value", e.target.value);
|
|
66
|
+
},
|
|
67
|
+
onSubmit(e) {
|
|
68
|
+
this.disabled || this.$emit("submit", e);
|
|
69
|
+
},
|
|
70
|
+
onChange(e) {
|
|
71
|
+
this.$emit("change", e);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
var l = function() {
|
|
76
|
+
var t = this, i = t._self._c;
|
|
77
|
+
return i("form", { ref: "form", attrs: { disabled: t.disabled }, on: { submit: function(a) {
|
|
78
|
+
return a.preventDefault(), a.stopPropagation(), t.onSubmit.apply(null, arguments);
|
|
79
|
+
} } }, [i("div", { staticClass: "input-wrapper" }, [i("label", { staticClass: "action-input__label", attrs: { for: t.id } }, [t._v(t._s(t.label))]), i("input", { attrs: { id: t.id, type: "text", disabled: t.disabled }, domProps: { value: t.value }, on: { input: t.onInput, change: t.onChange } }), i("input", { staticClass: "action-input__submit", attrs: { id: t.idSubmit, type: "submit" }, domProps: { value: t.submitTranslated } }), t.hint ? i("p", { staticClass: "hint" }, [t._v(" " + t._s(t.hint) + " ")]) : t._e()])]);
|
|
80
|
+
}, d = [], o = /* @__PURE__ */ u.normalizeComponent(
|
|
81
|
+
r,
|
|
82
|
+
l,
|
|
83
|
+
d,
|
|
84
|
+
!1,
|
|
85
|
+
null,
|
|
86
|
+
"5b140fb6",
|
|
87
|
+
null,
|
|
88
|
+
null
|
|
89
|
+
);
|
|
90
|
+
const p = o.exports;
|
|
91
|
+
exports.NcSettingsInputText = p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSettingsInputText-sJarpoq-.cjs","sources":["../../src/components/NcSettingsInputText/NcSettingsInputText.vue"],"sourcesContent":["<!--\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n```vue\n<NcSettingsInputText label=\"Label\" hint=\"Hint\" />\n<NcSettingsInputText label=\"Label\" value=\"Value\" hint=\"Hint\" disabled />\n```\n\n</docs>\n\n<template>\n\t<form ref=\"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 :id=\"id\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t:value=\"value\"\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 :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 { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nexport default {\n\tname: 'NcSettingsInputText',\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 * value of the select group input\n\t\t */\n\t\tvalue: {\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'update:value',\n\t\t'input',\n\t\t'submit',\n\t\t'change',\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\tmethods: {\n\t\tonInput(event) {\n\t\t\tthis.$emit('input', event)\n\t\t\t/**\n\t\t\t * Emitted when the inputs value changes\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t */\n\t\t\tthis.$emit('update:value', event.target.value)\n\t\t},\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\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":["_sfc_main","GenRandomId","id","_l10n","event"],"mappings":";;;AA0DA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,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,IAKA,OAAA;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,yBAAAC,EAAA,YAAA;AAAA,MACA,WAAA,CAAAC,MAAAA,EAAA,KAAA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,kBAAAC,EAAA,EAAA,QAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA,IAIA,WAAA;AACA,aAAA,KAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,QAAAC,GAAA;AACA,WAAA,MAAA,SAAAA,CAAA,GAMA,KAAA,MAAA,gBAAAA,EAAA,OAAA,KAAA;AAAA,IACA;AAAA,IACA,SAAAA,GAAA;AACA,MAAA,KAAA,YAMA,KAAA,MAAA,UAAAA,CAAA;AAAA,IAEA;AAAA,IACA,SAAAA,GAAA;AAMA,WAAA,MAAA,UAAAA,CAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
var g = require("../assets/NcSettingsSection-PEWm0eeL.css");
|
|
2
|
+
const i = require("./_l10n-juAR1Sua.cjs"), n = require("./_plugin-vue2_normalizer-DCfUPqga.cjs");
|
|
3
|
+
i.register(i.t21);
|
|
4
|
+
const l = {
|
|
5
|
+
name: "HelpCircleIcon",
|
|
6
|
+
emits: ["click"],
|
|
7
|
+
props: {
|
|
8
|
+
title: {
|
|
9
|
+
type: String
|
|
10
|
+
},
|
|
11
|
+
fillColor: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: "currentColor"
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
type: Number,
|
|
17
|
+
default: 24
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var a = function() {
|
|
22
|
+
var t = this, e = t._self._c;
|
|
23
|
+
return e("span", t._b({ staticClass: "material-design-icon help-circle-icon", attrs: { "aria-hidden": !t.title, "aria-label": t.title, role: "img" }, on: { click: function(r) {
|
|
24
|
+
return t.$emit("click", r);
|
|
25
|
+
} } }, "span", t.$attrs, !1), [e("svg", { staticClass: "material-design-icon__svg", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: "0 0 24 24" } }, [e("path", { attrs: { 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" } }, [t.title ? e("title", [t._v(t._s(t.title))]) : t._e()])])]);
|
|
26
|
+
}, c = [], o = /* @__PURE__ */ n.normalizeComponent(
|
|
27
|
+
l,
|
|
28
|
+
a,
|
|
29
|
+
c,
|
|
30
|
+
!1,
|
|
31
|
+
null,
|
|
32
|
+
null,
|
|
33
|
+
null,
|
|
34
|
+
null
|
|
35
|
+
);
|
|
36
|
+
const _ = o.exports, d = {
|
|
37
|
+
name: "NcSettingsSection",
|
|
38
|
+
components: {
|
|
39
|
+
HelpCircle: _
|
|
40
|
+
},
|
|
41
|
+
props: {
|
|
42
|
+
name: {
|
|
43
|
+
type: String,
|
|
44
|
+
required: !0
|
|
45
|
+
},
|
|
46
|
+
description: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: ""
|
|
49
|
+
},
|
|
50
|
+
docUrl: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: ""
|
|
53
|
+
},
|
|
54
|
+
/**
|
|
55
|
+
* Limit the width of the setting's content
|
|
56
|
+
*
|
|
57
|
+
* By default only the name and description have a limit, use this
|
|
58
|
+
* property to also apply this to the rest of the content.
|
|
59
|
+
*/
|
|
60
|
+
limitWidth: {
|
|
61
|
+
type: Boolean,
|
|
62
|
+
default: !0
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
data() {
|
|
66
|
+
return {
|
|
67
|
+
docNameTranslated: i.t("External documentation for {name}", {
|
|
68
|
+
name: this.name
|
|
69
|
+
})
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
computed: {
|
|
73
|
+
hasDescription() {
|
|
74
|
+
return this.description.length > 0;
|
|
75
|
+
},
|
|
76
|
+
hasDocUrl() {
|
|
77
|
+
return this.docUrl.length > 0;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
var m = function() {
|
|
82
|
+
var t = this, e = t._self._c;
|
|
83
|
+
return e("div", { staticClass: "settings-section", class: { "settings-section--limit-width": t.limitWidth } }, [e("h2", { staticClass: "settings-section__name" }, [t._v(" " + t._s(t.name) + " "), t.hasDocUrl ? e("a", { staticClass: "settings-section__info", attrs: { href: t.docUrl, title: t.docNameTranslated, "aria-label": t.docNameTranslated, target: "_blank", rel: "noreferrer nofollow" } }, [e("HelpCircle", { attrs: { size: 20 } })], 1) : t._e()]), t.hasDescription ? e("p", { staticClass: "settings-section__desc" }, [t._v(" " + t._s(t.description) + " ")]) : t._e(), t._t("default")], 2);
|
|
84
|
+
}, p = [], u = /* @__PURE__ */ n.normalizeComponent(
|
|
85
|
+
d,
|
|
86
|
+
m,
|
|
87
|
+
p,
|
|
88
|
+
!1,
|
|
89
|
+
null,
|
|
90
|
+
"f51cf2d3",
|
|
91
|
+
null,
|
|
92
|
+
null
|
|
93
|
+
);
|
|
94
|
+
const f = u.exports;
|
|
95
|
+
exports.NcSettingsSection = f;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSettingsSection-R_JKZdJk.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\"\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 - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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<NcSettingsSection\n\t\tname=\"Two-Factor Authentication\"\n\t\tdescription=\"Two-factor authentication can be enforced for all users and specific groups.\"\n\t\tdoc-url=\"https://docs.nextcloud.com/server/19/go.php?to=admin-2fa\"\n\t\t:limit-width=\"true\">\n\t\t<p>Your settings here</p>\n\t</NcSettingsSection>\n</template>\n```\n</docs>\n\n<template>\n\t<div class=\"settings-section\" :class=\"{'settings-section--limit-width': limitWidth}\">\n\t\t<h2 class=\"settings-section__name\">\n\t\t\t{{ name }}\n\t\t\t<a v-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 v-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 { t } from '../../l10n.js'\n\nimport HelpCircle from 'vue-material-design-icons/HelpCircle.vue'\n\nexport default {\n\tname: 'NcSettingsSection',\n\n\tcomponents: {\n\t\tHelpCircle,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdocUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Limit the width of the setting's content\n\t\t *\n\t\t * By default only the name and description have a limit, use this\n\t\t * property to also apply this to the rest of the content.\n\t\t */\n\t\tlimitWidth: {\n\t\t\ttype: Boolean,\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\thasDescription() {\n\t\t\treturn this.description.length > 0\n\t\t},\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}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: -$icon-margin;\n\t\tmargin-left: 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$1","_sfc_main","HelpCircle","_l10n"],"mappings":";;;AAoBA,MAAAA,IAAA;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;;;;;;;;;;;;;;;;qBCkCAC,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,YAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IACA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAAC,EAAA,EAAA,qCAAA;AAAA,QACA,MAAA,KAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,iBAAA;AACA,aAAA,KAAA,YAAA,SAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,OAAA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import "../assets/NcSettingsSection-PEWm0eeL.css";
|
|
2
|
+
import { r, p as a, a as l } from "./_l10n-tZEKUJRj.mjs";
|
|
3
|
+
import { n as s } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
4
|
+
r(a);
|
|
5
|
+
const c = {
|
|
6
|
+
name: "HelpCircleIcon",
|
|
7
|
+
emits: ["click"],
|
|
8
|
+
props: {
|
|
9
|
+
title: {
|
|
10
|
+
type: String
|
|
11
|
+
},
|
|
12
|
+
fillColor: {
|
|
13
|
+
type: String,
|
|
14
|
+
default: "currentColor"
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
type: Number,
|
|
18
|
+
default: 24
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
var o = function() {
|
|
23
|
+
var t = this, e = t._self._c;
|
|
24
|
+
return e("span", t._b({ staticClass: "material-design-icon help-circle-icon", attrs: { "aria-hidden": !t.title, "aria-label": t.title, role: "img" }, on: { click: function(n) {
|
|
25
|
+
return t.$emit("click", n);
|
|
26
|
+
} } }, "span", t.$attrs, !1), [e("svg", { staticClass: "material-design-icon__svg", attrs: { fill: t.fillColor, width: t.size, height: t.size, viewBox: "0 0 24 24" } }, [e("path", { attrs: { 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" } }, [t.title ? e("title", [t._v(t._s(t.title))]) : t._e()])])]);
|
|
27
|
+
}, _ = [], d = /* @__PURE__ */ s(
|
|
28
|
+
c,
|
|
29
|
+
o,
|
|
30
|
+
_,
|
|
31
|
+
!1,
|
|
32
|
+
null,
|
|
33
|
+
null,
|
|
34
|
+
null,
|
|
35
|
+
null
|
|
36
|
+
);
|
|
37
|
+
const m = d.exports, p = {
|
|
38
|
+
name: "NcSettingsSection",
|
|
39
|
+
components: {
|
|
40
|
+
HelpCircle: m
|
|
41
|
+
},
|
|
42
|
+
props: {
|
|
43
|
+
name: {
|
|
44
|
+
type: String,
|
|
45
|
+
required: !0
|
|
46
|
+
},
|
|
47
|
+
description: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: ""
|
|
50
|
+
},
|
|
51
|
+
docUrl: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: ""
|
|
54
|
+
},
|
|
55
|
+
/**
|
|
56
|
+
* Limit the width of the setting's content
|
|
57
|
+
*
|
|
58
|
+
* By default only the name and description have a limit, use this
|
|
59
|
+
* property to also apply this to the rest of the content.
|
|
60
|
+
*/
|
|
61
|
+
limitWidth: {
|
|
62
|
+
type: Boolean,
|
|
63
|
+
default: !0
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
data() {
|
|
67
|
+
return {
|
|
68
|
+
docNameTranslated: l("External documentation for {name}", {
|
|
69
|
+
name: this.name
|
|
70
|
+
})
|
|
71
|
+
};
|
|
72
|
+
},
|
|
73
|
+
computed: {
|
|
74
|
+
hasDescription() {
|
|
75
|
+
return this.description.length > 0;
|
|
76
|
+
},
|
|
77
|
+
hasDocUrl() {
|
|
78
|
+
return this.docUrl.length > 0;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
var f = function() {
|
|
83
|
+
var t = this, e = t._self._c;
|
|
84
|
+
return e("div", { staticClass: "settings-section", class: { "settings-section--limit-width": t.limitWidth } }, [e("h2", { staticClass: "settings-section__name" }, [t._v(" " + t._s(t.name) + " "), t.hasDocUrl ? e("a", { staticClass: "settings-section__info", attrs: { href: t.docUrl, title: t.docNameTranslated, "aria-label": t.docNameTranslated, target: "_blank", rel: "noreferrer nofollow" } }, [e("HelpCircle", { attrs: { size: 20 } })], 1) : t._e()]), t.hasDescription ? e("p", { staticClass: "settings-section__desc" }, [t._v(" " + t._s(t.description) + " ")]) : t._e(), t._t("default")], 2);
|
|
85
|
+
}, u = [], g = /* @__PURE__ */ s(
|
|
86
|
+
p,
|
|
87
|
+
f,
|
|
88
|
+
u,
|
|
89
|
+
!1,
|
|
90
|
+
null,
|
|
91
|
+
"f51cf2d3",
|
|
92
|
+
null,
|
|
93
|
+
null
|
|
94
|
+
);
|
|
95
|
+
const S = g.exports;
|
|
96
|
+
export {
|
|
97
|
+
S as N
|
|
98
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcSettingsSection-zdWzOqxk.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\"\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 - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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<NcSettingsSection\n\t\tname=\"Two-Factor Authentication\"\n\t\tdescription=\"Two-factor authentication can be enforced for all users and specific groups.\"\n\t\tdoc-url=\"https://docs.nextcloud.com/server/19/go.php?to=admin-2fa\"\n\t\t:limit-width=\"true\">\n\t\t<p>Your settings here</p>\n\t</NcSettingsSection>\n</template>\n```\n</docs>\n\n<template>\n\t<div class=\"settings-section\" :class=\"{'settings-section--limit-width': limitWidth}\">\n\t\t<h2 class=\"settings-section__name\">\n\t\t\t{{ name }}\n\t\t\t<a v-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 v-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 { t } from '../../l10n.js'\n\nimport HelpCircle from 'vue-material-design-icons/HelpCircle.vue'\n\nexport default {\n\tname: 'NcSettingsSection',\n\n\tcomponents: {\n\t\tHelpCircle,\n\t},\n\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tdocUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Limit the width of the setting's content\n\t\t *\n\t\t * By default only the name and description have a limit, use this\n\t\t * property to also apply this to the rest of the content.\n\t\t */\n\t\tlimitWidth: {\n\t\t\ttype: Boolean,\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\thasDescription() {\n\t\t\treturn this.description.length > 0\n\t\t},\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}\n\n\t&__info {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\t// make sure to properly align the icon with the text\n\t\tmargin: -$icon-margin;\n\t\tmargin-left: 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$1","_sfc_main","HelpCircle","t"],"mappings":";;;;AAoBA,MAAAA,IAAA;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;;;;;;;;;;;;;;;;qBCkCAC,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,YAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IACA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,mBAAAC,EAAA,qCAAA;AAAA,QACA,MAAA,KAAA;AAAA,MACA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,iBAAA;AACA,aAAA,KAAA,YAAA,SAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,aAAA,KAAA,OAAA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|
package/dist/chunks/{NcSettingsSelectGroup-ecc8bc5a.mjs → NcSettingsSelectGroup-Ghgl6Y_d.mjs}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import "../assets/NcSettingsSelectGroup-
|
|
2
|
-
import i from "
|
|
3
|
-
import { r as l,
|
|
4
|
-
import { G as o } from "./GenRandomId-
|
|
1
|
+
import "../assets/NcSettingsSelectGroup-_Jpb8yE3.css";
|
|
2
|
+
import { N as i } from "./NcSelect-zx9IspDS.mjs";
|
|
3
|
+
import { r as l, e as n, a } from "./_l10n-tZEKUJRj.mjs";
|
|
4
|
+
import { G as o } from "./GenRandomId-VodkdWbp.mjs";
|
|
5
5
|
import u from "@nextcloud/axios";
|
|
6
6
|
import p from "debounce";
|
|
7
7
|
import { generateOcsUrl as d } from "@nextcloud/router";
|
|
8
|
-
import { n as c } from "./_plugin-vue2_normalizer-
|
|
8
|
+
import { n as c } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
9
9
|
l(n);
|
|
10
10
|
const m = {
|
|
11
11
|
name: "NcSettingsSelectGroup",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSelectGroup-ecc8bc5a.mjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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 :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@input=\"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 NcSelect from '../../components/NcSelect/index.js'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\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 * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tvalue: {\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\temits: [\n\t\t'input',\n\t\t'error',\n\t],\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\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.value.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(\n\t\t\t\t(id) => {\n\t\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.groups[id]\n\t\t\t\t},\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.value.includes(g.id))\n\t\t},\n\t},\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\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\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\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\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t\tthis.$emit('input', 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-error);\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":["_sfc_main","NcSelect","GenRandomId","id","group","g","loadedGroupIds","groupId","storageName","savedGroups","t","updatedValue","value","element","query","response","axios","generateOcsUrl","newGroups","error","option","label","search","debounce"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcSettingsSelectGroup-Ghgl6Y_d.mjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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 :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@input=\"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 NcSelect from '../../components/NcSelect/index.js'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\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 * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tvalue: {\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\temits: [\n\t\t'input',\n\t\t'error',\n\t],\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\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.value.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(\n\t\t\t\t(id) => {\n\t\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.groups[id]\n\t\t\t\t},\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.value.includes(g.id))\n\t\t},\n\t},\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\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\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\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\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t\tthis.$emit('input', 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-error);\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":["_sfc_main","NcSelect","GenRandomId","id","group","g","loadedGroupIds","groupId","storageName","savedGroups","t","updatedValue","value","element","query","response","axios","generateOcsUrl","newGroups","error","option","label","search","debounce"],"mappings":"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"}
|
package/dist/chunks/{NcSettingsSelectGroup-b065ffc8.cjs → NcSettingsSelectGroup-NhJyFPsw.cjs}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var b = require("../assets/NcSettingsSelectGroup-
|
|
2
|
-
const n = require("
|
|
3
|
-
s.register(s.
|
|
1
|
+
var b = require("../assets/NcSettingsSelectGroup-_Jpb8yE3.css");
|
|
2
|
+
const n = require("./NcSelect-c9-eF29z.cjs"), s = require("./_l10n-juAR1Sua.cjs"), o = require("./GenRandomId-ULxaMkkr.cjs"), l = require("@nextcloud/axios"), u = require("debounce"), c = require("@nextcloud/router"), d = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), i = (t) => t && t.__esModule ? t : { default: t }, p = /* @__PURE__ */ i(l), h = /* @__PURE__ */ i(u);
|
|
3
|
+
s.register(s.t40);
|
|
4
4
|
const f = {
|
|
5
5
|
name: "NcSettingsSelectGroup",
|
|
6
6
|
components: {
|
|
7
|
-
NcSelect: n
|
|
7
|
+
NcSelect: n.NcSelect
|
|
8
8
|
},
|
|
9
9
|
props: {
|
|
10
10
|
/**
|
|
@@ -27,7 +27,7 @@ const f = {
|
|
|
27
27
|
*/
|
|
28
28
|
id: {
|
|
29
29
|
type: String,
|
|
30
|
-
default: () => "action-" +
|
|
30
|
+
default: () => "action-" + o.GenRandomId(),
|
|
31
31
|
validator: (t) => t.trim() !== ""
|
|
32
32
|
},
|
|
33
33
|
/**
|
|
@@ -54,7 +54,7 @@ const f = {
|
|
|
54
54
|
return {
|
|
55
55
|
/** Temporary store to cache groups */
|
|
56
56
|
groups: {},
|
|
57
|
-
randId:
|
|
57
|
+
randId: o.GenRandomId(),
|
|
58
58
|
errorMessage: ""
|
|
59
59
|
};
|
|
60
60
|
},
|
|
@@ -137,11 +137,11 @@ const f = {
|
|
|
137
137
|
async loadGroup(t) {
|
|
138
138
|
try {
|
|
139
139
|
t = typeof t == "string" ? encodeURI(t) : "";
|
|
140
|
-
const e = await p.default.get(
|
|
140
|
+
const e = await p.default.get(c.generateOcsUrl(`cloud/groups/details?search=${t}&limit=10`, 2));
|
|
141
141
|
if (this.errorMessage !== "" && window.setTimeout(() => {
|
|
142
142
|
this.errorMessage = "";
|
|
143
143
|
}, 5e3), Object.keys(e.data.ocs.data.groups).length > 0) {
|
|
144
|
-
const r = Object.fromEntries(e.data.ocs.data.groups.map((
|
|
144
|
+
const r = Object.fromEntries(e.data.ocs.data.groups.map((a) => [a.id, a]));
|
|
145
145
|
return this.groups = { ...this.groups, ...r }, !0;
|
|
146
146
|
}
|
|
147
147
|
} catch (e) {
|
|
@@ -170,7 +170,7 @@ const f = {
|
|
|
170
170
|
var g = function() {
|
|
171
171
|
var e = this, r = e._self._c;
|
|
172
172
|
return r("div", [e.label ? r("label", { staticClass: "hidden-visually", attrs: { for: e.id } }, [e._v(e._s(e.label))]) : e._e(), r("NcSelect", { attrs: { value: e.inputValue, options: e.groupsArray, placeholder: e.placeholder || e.label, "filter-by": e.filterGroups, "input-id": e.id, limit: 5, label: "displayname", multiple: !0, "close-on-select": !1, disabled: e.disabled }, on: { input: e.update, search: e.onSearch } }), r("div", { directives: [{ name: "show", rawName: "v-show", value: e.hasError, expression: "hasError" }], staticClass: "select-group-error" }, [e._v(" " + e._s(e.errorMessage) + " ")])], 1);
|
|
173
|
-
}, m = [], _ = /* @__PURE__ */
|
|
173
|
+
}, m = [], _ = /* @__PURE__ */ d.normalizeComponent(
|
|
174
174
|
f,
|
|
175
175
|
g,
|
|
176
176
|
m,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcSettingsSelectGroup-b065ffc8.cjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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 :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@input=\"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 NcSelect from '../../components/NcSelect/index.js'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\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 * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tvalue: {\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\temits: [\n\t\t'input',\n\t\t'error',\n\t],\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\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.value.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(\n\t\t\t\t(id) => {\n\t\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.groups[id]\n\t\t\t\t},\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.value.includes(g.id))\n\t\t},\n\t},\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\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\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\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\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t\tthis.$emit('input', 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-error);\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":["_sfc_main","Components_NcSelect","GenRandomId","id","group","g","loadedGroupIds","groupId","storageName","savedGroups","_l10n","updatedValue","value","element","query","response","axios__default","router","newGroups","error","option","label","search","debounce__default"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NcSettingsSelectGroup-NhJyFPsw.cjs","sources":["../../src/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n -\n - @author Julius Härtl <jus@bitgrid.net>\n - @author Greta Doci <gretadoci@gmail.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\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 :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@input=\"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 NcSelect from '../../components/NcSelect/index.js'\nimport { t } from '../../l10n.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\n\nimport axios from '@nextcloud/axios'\nimport debounce from 'debounce'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport default {\n\tname: 'NcSettingsSelectGroup',\n\tcomponents: {\n\t\tNcSelect,\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 * value of the select group input\n\t\t * A list of group IDs can be provided\n\t\t */\n\t\tvalue: {\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\temits: [\n\t\t'input',\n\t\t'error',\n\t],\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\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.value.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(\n\t\t\t\t(id) => {\n\t\t\t\t\tif (typeof this.groups[id] === 'undefined') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tdisplayname: id,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this.groups[id]\n\t\t\t\t},\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.value.includes(g.id))\n\t\t},\n\t},\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\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\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\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\t/** Emitted when the groups selection changes<br />**Payload:** `value` (`Array`) - *Ids of selected groups */\n\t\t\tthis.$emit('input', 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-error);\n\tfont-size: 13px;\n\tpadding-inline-start: var(--border-radius-large);\n}\n</style>\n"],"names":["_sfc_main","NcSelect","GenRandomId","id","group","g","loadedGroupIds","groupId","storageName","savedGroups","_l10n","updatedValue","value","element","query","response","axios__default","router","newGroups","error","option","label","search","debounce__default"],"mappings":"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"}
|