@nextcloud/vue 8.3.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 +95 -3
- 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 -41
- package/dist/Components/NcActionButtonGroup.cjs.map +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +2 -43
- 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 -233
- package/dist/Components/NcActionInput.cjs.map +1 -1
- package/dist/Components/NcActionInput.mjs +2 -241
- 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 -221
- package/dist/Components/NcAppContent.cjs.map +1 -1
- package/dist/Components/NcAppContent.mjs +2 -229
- 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 -494
- package/dist/Components/NcAppNavigationItem.cjs.map +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +2 -505
- 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 -103
- package/dist/Components/NcAppNavigationSettings.cjs.map +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +2 -105
- 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 -181
- package/dist/Components/NcAppSettingsDialog.cjs.map +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +2 -187
- 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 -509
- package/dist/Components/NcAppSidebar.cjs.map +1 -1
- package/dist/Components/NcAppSidebar.mjs +2 -521
- 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 -175
- package/dist/Components/NcBreadcrumb.cjs.map +1 -1
- package/dist/Components/NcBreadcrumb.mjs +2 -178
- package/dist/Components/NcBreadcrumb.mjs.map +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +3 -404
- package/dist/Components/NcBreadcrumbs.cjs.map +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +2 -413
- 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 -590
- package/dist/Components/NcCheckboxRadioSwitch.cjs.map +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +2 -594
- package/dist/Components/NcCheckboxRadioSwitch.mjs.map +1 -1
- package/dist/Components/NcColorPicker.cjs +3 -135
- package/dist/Components/NcColorPicker.cjs.map +1 -1
- package/dist/Components/NcColorPicker.mjs +2 -144
- 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 -133
- package/dist/Components/NcDashboardWidget.cjs.map +1 -1
- package/dist/Components/NcDashboardWidget.mjs +2 -138
- 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 -127
- package/dist/Components/NcDateTime.cjs.map +1 -1
- package/dist/Components/NcDateTime.mjs +2 -130
- package/dist/Components/NcDateTime.mjs.map +1 -1
- package/dist/Components/NcDateTimePicker.cjs +70 -51
- package/dist/Components/NcDateTimePicker.cjs.map +1 -1
- package/dist/Components/NcDateTimePicker.mjs +77 -58
- package/dist/Components/NcDateTimePicker.mjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.cjs +9 -10
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +8 -8
- package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
- package/dist/Components/NcDialog.cjs +3 -171
- package/dist/Components/NcDialog.cjs.map +1 -1
- package/dist/Components/NcDialog.mjs +2 -175
- 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 -175
- package/dist/Components/NcEmojiPicker.cjs.map +1 -1
- package/dist/Components/NcEmojiPicker.mjs +2 -180
- 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 -237
- package/dist/Components/NcListItem.cjs.map +1 -1
- package/dist/Components/NcListItem.mjs +2 -241
- 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 +61 -49
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +79 -68
- 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 -226
- package/dist/Components/NcPasswordField.cjs.map +1 -1
- package/dist/Components/NcPasswordField.mjs +2 -234
- 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 -201
- package/dist/Components/NcRelatedResourcesPanel.cjs.map +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +2 -205
- package/dist/Components/NcRelatedResourcesPanel.mjs.map +1 -1
- package/dist/Components/NcRichContenteditable.cjs +5 -481
- package/dist/Components/NcRichContenteditable.cjs.map +1 -1
- package/dist/Components/NcRichContenteditable.mjs +5 -489
- 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 -434
- 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 -258
- package/dist/Components/NcSelectTags.cjs.map +1 -1
- package/dist/Components/NcSelectTags.mjs +2 -263
- package/dist/Components/NcSelectTags.mjs.map +1 -1
- package/dist/Components/NcSettingsInputText.cjs +3 -90
- package/dist/Components/NcSettingsInputText.cjs.map +1 -1
- package/dist/Components/NcSettingsInputText.mjs +2 -92
- package/dist/Components/NcSettingsInputText.mjs.map +1 -1
- package/dist/Components/NcSettingsSection.cjs +3 -94
- package/dist/Components/NcSettingsSection.cjs.map +1 -1
- package/dist/Components/NcSettingsSection.mjs +2 -96
- 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 +3 -4
- package/dist/Components/NcTextArea.cjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +6 -6
- package/dist/Components/NcTextArea.mjs.map +1 -1
- package/dist/Components/NcTextField.cjs +2 -137
- package/dist/Components/NcTextField.cjs.map +1 -1
- package/dist/Components/NcTextField.mjs +2 -142
- package/dist/Components/NcTextField.mjs.map +1 -1
- package/dist/Components/NcTimezonePicker.cjs +2 -7196
- package/dist/Components/NcTimezonePicker.cjs.map +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -7200
- 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/Composables/useIsMobile.cjs +13 -8
- package/dist/Composables/useIsMobile.cjs.map +1 -1
- package/dist/Composables/useIsMobile.mjs +15 -10
- package/dist/Composables/useIsMobile.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-b0a8a48c.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-f72cef5d.css → NcAppNavigationCaption-l5yRGXZx.css} +6 -5
- package/dist/assets/{index-5e4bf286.css → NcAppNavigationItem-n-wauJE7.css} +43 -41
- package/dist/assets/{index-93bc89ef.css → NcAppNavigationNewItem-MQBvffq9.css} +14 -12
- package/dist/assets/{index-34dfc54e.css → NcAppNavigationSettings-Jx_6RpSn.css} +13 -13
- package/dist/assets/{NcAppNavigationToggle-2bc73ee8.css → NcAppNavigationToggle-upUgYNtL.css} +4 -2
- package/dist/assets/{index-810b8984.css → NcAppSettingsDialog-8K8FduDk.css} +11 -11
- package/dist/assets/{index-3d1ccc15.css → NcAppSidebar-iU8Zp4Qk.css} +45 -45
- package/dist/assets/NcAvatar-Vg6Mi1TD.css +144 -0
- package/dist/assets/{index-b991895f.css → NcBreadcrumb-M3hqCbqS.css} +26 -33
- package/dist/assets/{index-4611417f.css → NcBreadcrumbs-KBV0Jccv.css} +7 -8
- package/dist/assets/{index-f091e784.css → NcButton-DTnreNJ5.css} +43 -43
- package/dist/assets/{index-e6a91529.css → NcCheckboxRadioSwitch-IKpLtz9k.css} +50 -47
- package/dist/assets/{index-7157aefa.css → NcColorPicker-CNX9fj56.css} +24 -24
- package/dist/assets/{index-a9e4fe04.css → NcContent-LWR23l9i.css} +42 -4
- package/dist/assets/{index-50dc154e.css → NcDateTimePicker-J_kGHwdu.css} +20 -20
- package/dist/assets/NcDateTimePickerNative-2pQS5L0H.css +46 -0
- package/dist/assets/{index-9941f384.css → NcDialog-2V180xdm.css} +13 -13
- package/dist/assets/{index-2a8e4ca1.css → NcEmojiPicker-lBXbC6Jd.css} +36 -26
- package/dist/assets/{index-3764a447.css → NcHeaderMenu-P0OkK9WN.css} +18 -25
- package/dist/assets/{index-2d4de2fc.css → NcIconSvgWrapper-arqrq5Bj.css} +13 -7
- package/dist/assets/{index-2a1ec06b.css → NcInputField-Y-Qp3D_b.css} +40 -40
- package/dist/assets/{index-4e03d941.css → NcListItem-xcW2PRrk.css} +49 -48
- package/dist/assets/{index-73ded07b.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-ffa6d11c.css → NcRichContenteditable-xiQ4y2Z6.css} +64 -31
- 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/{NcSettingsSelectGroup-6ddb63a6.css → NcSettingsSelectGroup-_Jpb8yE3.css} +2 -2
- package/dist/assets/{index-30ca9574.css → NcTextArea-K-KVPiMp.css} +27 -40
- 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-6mrcK1J2.cjs +141 -0
- package/dist/chunks/GenColors-6mrcK1J2.cjs.map +1 -0
- package/dist/chunks/GenColors-ZwEj275X.mjs +142 -0
- 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-f5591773.mjs → NcAppNavigationToggle-S4YTmnky.mjs} +30 -30
- package/dist/chunks/{NcAppNavigationToggle-6a975868.cjs.map → NcAppNavigationToggle-S4YTmnky.mjs.map} +1 -1
- package/dist/chunks/NcAppNavigationToggle-Tvz9copM.cjs +109 -0
- package/dist/chunks/{NcAppNavigationToggle-f5591773.mjs.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-efb07851.mjs → NcAvatar-1gX-bnpd.mjs} +68 -93
- package/dist/chunks/NcAvatar-1gX-bnpd.mjs.map +1 -0
- package/dist/chunks/{index-32c8b581.cjs → NcAvatar-8NgbtiTN.cjs} +40 -66
- 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-790f5902.cjs.map → NcInputConfirmCancel-YzEcukdc.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-7837eb4d.mjs → NcInputConfirmCancel-lUDtoN2O.mjs} +15 -14
- package/dist/chunks/{NcInputConfirmCancel-7837eb4d.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-0db09c78.mjs → NcRichText-7CHftQ4Z.mjs} +125 -81
- package/dist/chunks/NcRichText-7CHftQ4Z.mjs.map +1 -0
- package/dist/chunks/{NcRichText-0dd96aac.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-cdd84895.mjs → NcSettingsSelectGroup-Ghgl6Y_d.mjs} +20 -20
- package/dist/chunks/NcSettingsSelectGroup-Ghgl6Y_d.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSelectGroup-532ba813.cjs → NcSettingsSelectGroup-NhJyFPsw.cjs} +16 -15
- package/dist/chunks/NcSettingsSelectGroup-NhJyFPsw.cjs.map +1 -0
- 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-ac5265f5.mjs → ScopeComponent-9XNLQCuu.mjs} +1 -1
- package/dist/chunks/{ScopeComponent-ac5265f5.mjs.map → ScopeComponent-9XNLQCuu.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-92144d97.cjs → ScopeComponent-_Cg8ogL-.cjs} +1 -1
- package/dist/chunks/{ScopeComponent-92144d97.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-60ff01d1.mjs → actionText-AoAs4kqP.mjs} +8 -4
- package/dist/chunks/{actionText-60ff01d1.mjs.map → actionText-AoAs4kqP.mjs.map} +1 -1
- package/dist/chunks/{actionText-9582810f.cjs → actionText-pGrMQtZ3.cjs} +10 -6
- package/dist/chunks/{actionText-9582810f.cjs.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-ded8273d.mjs → referencePickerModal-jbqYHMmd.mjs} +202 -214
- package/dist/chunks/{referencePickerModal-ded8273d.mjs.map → referencePickerModal-jbqYHMmd.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-90dac0d0.cjs → referencePickerModal-rHOAeK-a.cjs} +171 -183
- package/dist/chunks/{referencePickerModal-90dac0d0.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 +170 -164
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +169 -160
- package/dist/index.mjs.map +1 -1
- package/dist/utils/UserStatus.d.ts +24 -0
- package/package.json +14 -6
- 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/assets/index-2e5e3b55.css +0 -151
- package/dist/chunks/GenColors-12ec1caa.mjs +0 -56
- package/dist/chunks/GenColors-12ec1caa.mjs.map +0 -1
- package/dist/chunks/GenColors-a8d54566.cjs +0 -55
- package/dist/chunks/GenColors-a8d54566.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-6a975868.cjs +0 -108
- package/dist/chunks/NcInputConfirmCancel-790f5902.cjs +0 -90
- package/dist/chunks/NcRichText-0db09c78.mjs.map +0 -1
- package/dist/chunks/NcRichText-0dd96aac.cjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-532ba813.cjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-cdd84895.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-32c8b581.cjs.map +0 -1
- package/dist/chunks/index-efb07851.mjs.map +0 -1
- package/dist/chunks/l10n-070da9ad.cjs +0 -29
- package/dist/chunks/l10n-070da9ad.cjs.map +0 -1
- package/dist/chunks/l10n-1b905a9a.mjs +0 -31
- package/dist/chunks/l10n-1b905a9a.mjs.map +0 -1
- package/dist/chunks/l10n-38626490.cjs +0 -8
- package/dist/chunks/l10n-38626490.cjs.map +0 -1
- package/dist/chunks/l10n-6cfc1200.mjs +0 -10
- package/dist/chunks/l10n-6cfc1200.mjs.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-76dd9f11.css → NcAppNavigationSpacer-MfL8GeCN.css} +0 -0
- /package/dist/assets/{index-1f25a3c0.css → NcAppSettingsSection-ahfdhix_.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-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-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/{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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppNavigationToggle-
|
|
1
|
+
{"version":3,"file":"NcAppNavigationToggle-Tvz9copM.cjs","sources":["../../node_modules/vue-material-design-icons/Menu.vue","../../node_modules/vue-material-design-icons/MenuOpen.vue","../../src/components/NcAppNavigationToggle/NcAppNavigationToggle.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-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=\"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuIcon\",\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>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon menu-open-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=\"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"MenuOpenIcon\",\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 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@icloud.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<template>\n\t<div class=\"app-navigation-toggle-wrapper\">\n\t\t<NcButton class=\"app-navigation-toggle\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t:aria-label=\"label\"\n\t\t\t:title=\"label\"\n\t\t\taria-controls=\"app-navigation-vue\"\n\t\t\t@click=\"toggleNavigation\">\n\t\t\t<template #icon>\n\t\t\t\t<MenuOpenIcon v-if=\"open\" :size=\"20\" />\n\t\t\t\t<MenuIcon v-else :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport NcButton from '../NcButton/index.js'\nimport { t } from '../../l10n.js'\n\nimport MenuIcon from 'vue-material-design-icons/Menu.vue'\nimport MenuOpenIcon from 'vue-material-design-icons/MenuOpen.vue'\n\nexport default {\n\tname: 'NcAppNavigationToggle',\n\n\tcomponents: {\n\t\tNcButton,\n\t\tMenuIcon,\n\t\tMenuOpenIcon,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\temits: ['update:open'],\n\n\tcomputed: {\n\t\tlabel() {\n\t\t\treturn this.open ? t('Close navigation') : t('Open navigation')\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleNavigation() {\n\t\t\tthis.$emit('update:open', !this.open)\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.app-navigation-toggle-wrapper {\n\tposition: absolute;\n\ttop: var(--app-navigation-padding);\n\tright: calc(0px - var(--app-navigation-padding));\n\tmargin-right: - $clickable-area;\n}\n\nbutton.app-navigation-toggle {\n\tbackground-color: var(--color-main-background);\n}\n</style>\n"],"names":["_sfc_main$2","_sfc_main$1","_sfc_main","Components_NcButton","MenuIcon","MenuOpenIcon","_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;;;;;;;;;;;;;;;;qBChBAC,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;;;;;;;;;;;;;;;;qBCWAC,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,UAAA;AAAA,IACA,QAAA;AACA,aAAA,KAAA,OAAAC,EAAA,EAAA,kBAAA,IAAAA,EAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import "../assets/NcAppSettingsDialog-8K8FduDk.css";
|
|
2
|
+
import { N as c } from "./NcDialog-b2LjzZB8.mjs";
|
|
3
|
+
import d from "../Components/NcVNodes.mjs";
|
|
4
|
+
import { useIsMobile as u } from "../Composables/useIsMobile.mjs";
|
|
5
|
+
import { r as g, l as h, a as p } from "./_l10n-tZEKUJRj.mjs";
|
|
6
|
+
import f from "debounce";
|
|
7
|
+
import m from "vue";
|
|
8
|
+
import { n as v } from "./_plugin-vue2_normalizer-u6G_3nkj.mjs";
|
|
9
|
+
g(h);
|
|
10
|
+
const _ = {
|
|
11
|
+
name: "NcAppSettingsDialog",
|
|
12
|
+
components: {
|
|
13
|
+
NcDialog: c,
|
|
14
|
+
NcVNodes: d
|
|
15
|
+
},
|
|
16
|
+
provide() {
|
|
17
|
+
return {
|
|
18
|
+
registerSection: this.registerSection,
|
|
19
|
+
unregisterSection: this.unregisterSection
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
props: {
|
|
23
|
+
/**
|
|
24
|
+
* Determines the open / closed state of the modal
|
|
25
|
+
*/
|
|
26
|
+
open: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
required: !0
|
|
29
|
+
},
|
|
30
|
+
/**
|
|
31
|
+
* Shows the navigation on desktop if true
|
|
32
|
+
*/
|
|
33
|
+
showNavigation: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: !1
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* Selector for the popover container
|
|
39
|
+
*/
|
|
40
|
+
container: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: "body"
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* Name of the settings
|
|
46
|
+
*/
|
|
47
|
+
name: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: ""
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Additional elements to add to the focus trap
|
|
53
|
+
*/
|
|
54
|
+
additionalTrapElements: {
|
|
55
|
+
type: Array,
|
|
56
|
+
default: () => []
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
emits: ["update:open"],
|
|
60
|
+
setup() {
|
|
61
|
+
return {
|
|
62
|
+
isMobile: u()
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
data() {
|
|
66
|
+
return {
|
|
67
|
+
selectedSection: "",
|
|
68
|
+
linkClicked: !1,
|
|
69
|
+
addedScrollListener: !1,
|
|
70
|
+
scroller: null,
|
|
71
|
+
/**
|
|
72
|
+
* Currently registered settings sections
|
|
73
|
+
* @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}
|
|
74
|
+
*/
|
|
75
|
+
sections: []
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
computed: {
|
|
79
|
+
dialogProperties() {
|
|
80
|
+
return {
|
|
81
|
+
additionalTrapElements: this.additionalTrapElements,
|
|
82
|
+
closeOnClickOutside: !0,
|
|
83
|
+
class: "app-settings",
|
|
84
|
+
container: this.container,
|
|
85
|
+
contentClasses: "app-settings__content",
|
|
86
|
+
size: "large",
|
|
87
|
+
name: this.name,
|
|
88
|
+
navigationClasses: "app-settings__navigation"
|
|
89
|
+
};
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* Check if one or more navigation entries provide icons
|
|
93
|
+
*/
|
|
94
|
+
hasNavigationIcons() {
|
|
95
|
+
return this.sections.some(({ icon: t }) => !!t);
|
|
96
|
+
},
|
|
97
|
+
hasNavigation() {
|
|
98
|
+
return !(this.isMobile || !this.showNavigation);
|
|
99
|
+
},
|
|
100
|
+
settingsNavigationAriaLabel() {
|
|
101
|
+
return p("Settings navigation");
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
updated() {
|
|
105
|
+
this.$refs.settingsScroller && (this.scroller = this.$refs.settingsScroller, this.addedScrollListener || (this.scroller.addEventListener("scroll", this.handleScroll), this.addedScrollListener = !0));
|
|
106
|
+
},
|
|
107
|
+
methods: {
|
|
108
|
+
/**
|
|
109
|
+
* Called when a new section is registered
|
|
110
|
+
* @param {string} id The section ID
|
|
111
|
+
* @param {string} name The section name
|
|
112
|
+
* @param {import('vue').VNode[]|undefined} icon Optional icon component
|
|
113
|
+
*/
|
|
114
|
+
registerSection(t, e, n) {
|
|
115
|
+
if (this.sections.some(({ id: i }) => t === i))
|
|
116
|
+
throw new Error(`Duplicate section id found: ${t}. Settings navigation sections must have unique section ids.`);
|
|
117
|
+
this.sections.some(({ name: i }) => e === i) && m.util.warn(`Duplicate section name found: ${e}. Settings navigation sections must have unique section names.`);
|
|
118
|
+
const o = [...this.sections, { id: t, name: e, icon: n }];
|
|
119
|
+
this.sections = o.sort(({ id: i }, { id: s }) => {
|
|
120
|
+
const a = (l) => this.$slots.default?.findIndex?.((r) => r?.componentOptions?.propsData?.id === l) ?? -1;
|
|
121
|
+
return a(i) - a(s);
|
|
122
|
+
}), this.sections.length === 1 && (this.selectedSection = t);
|
|
123
|
+
},
|
|
124
|
+
/**
|
|
125
|
+
* Called when a section is unregistered to remove it from dialog
|
|
126
|
+
* @param {string} id The section ID
|
|
127
|
+
*/
|
|
128
|
+
unregisterSection(t) {
|
|
129
|
+
this.sections = this.sections.filter(({ id: e }) => t !== e), this.selectedSection === t && (this.selectedSection = this.sections[0]?.id ?? "");
|
|
130
|
+
},
|
|
131
|
+
/**
|
|
132
|
+
* Scrolls the content to the selected settings section.absolute
|
|
133
|
+
*
|
|
134
|
+
* @param {string} item the ID of the section
|
|
135
|
+
*/
|
|
136
|
+
handleSettingsNavigationClick(t) {
|
|
137
|
+
this.linkClicked = !0, document.getElementById("settings-section_" + t).scrollIntoView({
|
|
138
|
+
behavior: "smooth",
|
|
139
|
+
inline: "nearest"
|
|
140
|
+
}), this.selectedSection = t, setTimeout(() => {
|
|
141
|
+
this.linkClicked = !1;
|
|
142
|
+
}, 1e3);
|
|
143
|
+
},
|
|
144
|
+
handleCloseModal(t) {
|
|
145
|
+
t || (this.$emit("update:open", !1), this.scroller.removeEventListener("scroll", this.handleScroll), this.addedScrollListener = !1, this.scroller.scrollTop = 0);
|
|
146
|
+
},
|
|
147
|
+
handleScroll() {
|
|
148
|
+
this.linkClicked || this.unfocusNavigationItem();
|
|
149
|
+
},
|
|
150
|
+
// Remove selected section once the user starts scrolling
|
|
151
|
+
unfocusNavigationItem: f(function() {
|
|
152
|
+
this.selectedSection = "", document.activeElement.className.includes("navigation-list__link") && document.activeElement.blur();
|
|
153
|
+
}, 300)
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
var S = function() {
|
|
157
|
+
var e = this, n = e._self._c;
|
|
158
|
+
return e.open ? n("NcDialog", e._b({ attrs: { "navigation-aria-label": e.settingsNavigationAriaLabel }, on: { "update:open": e.handleCloseModal }, scopedSlots: e._u([e.hasNavigation ? { key: "navigation", fn: function({ isCollapsed: o }) {
|
|
159
|
+
return [o ? e._e() : n("ul", { staticClass: "navigation-list" }, e._l(e.sections, function(i) {
|
|
160
|
+
return n("li", { key: i.id }, [n("a", { class: {
|
|
161
|
+
"navigation-list__link": !0,
|
|
162
|
+
"navigation-list__link--active": i.id === e.selectedSection,
|
|
163
|
+
"navigation-list__link--icon": e.hasNavigationIcons
|
|
164
|
+
}, attrs: { "aria-current": `${i.id === e.selectedSection}`, href: `#settings-section_${i.id}`, tabindex: "0" }, on: { click: function(s) {
|
|
165
|
+
return s.preventDefault(), e.handleSettingsNavigationClick(i.id);
|
|
166
|
+
}, keydown: function(s) {
|
|
167
|
+
return !s.type.indexOf("key") && e._k(s.keyCode, "enter", 13, s.key, "Enter") ? null : e.handleSettingsNavigationClick(i.id);
|
|
168
|
+
} } }, [e.hasNavigationIcons ? n("div", { staticClass: "navigation-list__link-icon" }, [i.icon ? n("NcVNodes", { attrs: { vnodes: i.icon } }) : e._e()], 1) : e._e(), n("span", { staticClass: "navigation-list__link-text" }, [e._v(" " + e._s(i.name) + " ")])])]);
|
|
169
|
+
}), 0)];
|
|
170
|
+
} } : null], null, !0) }, "NcDialog", e.dialogProperties, !1), [n("div", { ref: "settingsScroller" }, [e._t("default")], 2)]) : e._e();
|
|
171
|
+
}, k = [], N = /* @__PURE__ */ v(
|
|
172
|
+
_,
|
|
173
|
+
S,
|
|
174
|
+
k,
|
|
175
|
+
!1,
|
|
176
|
+
null,
|
|
177
|
+
"3d79882b",
|
|
178
|
+
null,
|
|
179
|
+
null
|
|
180
|
+
);
|
|
181
|
+
const x = N.exports;
|
|
182
|
+
export {
|
|
183
|
+
x as N
|
|
184
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcAppSettingsDialog-CQtmRXyZ.mjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\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<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t&:deep(.dialog) {\n\t\tmin-height: 256px;\n\t}\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tpadding-inline: 20px;\n\t\tmin-height: 256px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcDialog","NcVNodes","useIsMobile","icon","t","id","name","otherId","otherName","Vue","newSections","idA","idB","indexOf","vnode","item","isOpen","debounce"],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var y = require("../assets/NcAppSettingsDialog-8K8FduDk.css");
|
|
2
|
+
const u = require("./NcDialog-KlvRL7k1.cjs"), g = require("../Components/NcVNodes.cjs"), h = require("../Composables/useIsMobile.cjs"), a = require("./_l10n-juAR1Sua.cjs"), f = require("debounce"), p = require("vue"), _ = require("./_plugin-vue2_normalizer-DCfUPqga.cjs"), r = (t) => t && t.__esModule ? t : { default: t }, v = /* @__PURE__ */ r(f), m = /* @__PURE__ */ r(p);
|
|
3
|
+
a.register(a.t38);
|
|
4
|
+
const S = {
|
|
5
|
+
name: "NcAppSettingsDialog",
|
|
6
|
+
components: {
|
|
7
|
+
NcDialog: u.NcDialog,
|
|
8
|
+
NcVNodes: g
|
|
9
|
+
},
|
|
10
|
+
provide() {
|
|
11
|
+
return {
|
|
12
|
+
registerSection: this.registerSection,
|
|
13
|
+
unregisterSection: this.unregisterSection
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
props: {
|
|
17
|
+
/**
|
|
18
|
+
* Determines the open / closed state of the modal
|
|
19
|
+
*/
|
|
20
|
+
open: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
required: !0
|
|
23
|
+
},
|
|
24
|
+
/**
|
|
25
|
+
* Shows the navigation on desktop if true
|
|
26
|
+
*/
|
|
27
|
+
showNavigation: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: !1
|
|
30
|
+
},
|
|
31
|
+
/**
|
|
32
|
+
* Selector for the popover container
|
|
33
|
+
*/
|
|
34
|
+
container: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: "body"
|
|
37
|
+
},
|
|
38
|
+
/**
|
|
39
|
+
* Name of the settings
|
|
40
|
+
*/
|
|
41
|
+
name: {
|
|
42
|
+
type: String,
|
|
43
|
+
default: ""
|
|
44
|
+
},
|
|
45
|
+
/**
|
|
46
|
+
* Additional elements to add to the focus trap
|
|
47
|
+
*/
|
|
48
|
+
additionalTrapElements: {
|
|
49
|
+
type: Array,
|
|
50
|
+
default: () => []
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
emits: ["update:open"],
|
|
54
|
+
setup() {
|
|
55
|
+
return {
|
|
56
|
+
isMobile: h.useIsMobile()
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
data() {
|
|
60
|
+
return {
|
|
61
|
+
selectedSection: "",
|
|
62
|
+
linkClicked: !1,
|
|
63
|
+
addedScrollListener: !1,
|
|
64
|
+
scroller: null,
|
|
65
|
+
/**
|
|
66
|
+
* Currently registered settings sections
|
|
67
|
+
* @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}
|
|
68
|
+
*/
|
|
69
|
+
sections: []
|
|
70
|
+
};
|
|
71
|
+
},
|
|
72
|
+
computed: {
|
|
73
|
+
dialogProperties() {
|
|
74
|
+
return {
|
|
75
|
+
additionalTrapElements: this.additionalTrapElements,
|
|
76
|
+
closeOnClickOutside: !0,
|
|
77
|
+
class: "app-settings",
|
|
78
|
+
container: this.container,
|
|
79
|
+
contentClasses: "app-settings__content",
|
|
80
|
+
size: "large",
|
|
81
|
+
name: this.name,
|
|
82
|
+
navigationClasses: "app-settings__navigation"
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Check if one or more navigation entries provide icons
|
|
87
|
+
*/
|
|
88
|
+
hasNavigationIcons() {
|
|
89
|
+
return this.sections.some(({ icon: t }) => !!t);
|
|
90
|
+
},
|
|
91
|
+
hasNavigation() {
|
|
92
|
+
return !(this.isMobile || !this.showNavigation);
|
|
93
|
+
},
|
|
94
|
+
settingsNavigationAriaLabel() {
|
|
95
|
+
return a.t("Settings navigation");
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
updated() {
|
|
99
|
+
this.$refs.settingsScroller && (this.scroller = this.$refs.settingsScroller, this.addedScrollListener || (this.scroller.addEventListener("scroll", this.handleScroll), this.addedScrollListener = !0));
|
|
100
|
+
},
|
|
101
|
+
methods: {
|
|
102
|
+
/**
|
|
103
|
+
* Called when a new section is registered
|
|
104
|
+
* @param {string} id The section ID
|
|
105
|
+
* @param {string} name The section name
|
|
106
|
+
* @param {import('vue').VNode[]|undefined} icon Optional icon component
|
|
107
|
+
*/
|
|
108
|
+
registerSection(t, e, n) {
|
|
109
|
+
if (this.sections.some(({ id: i }) => t === i))
|
|
110
|
+
throw new Error(`Duplicate section id found: ${t}. Settings navigation sections must have unique section ids.`);
|
|
111
|
+
this.sections.some(({ name: i }) => e === i) && m.default.util.warn(`Duplicate section name found: ${e}. Settings navigation sections must have unique section names.`);
|
|
112
|
+
const o = [...this.sections, { id: t, name: e, icon: n }];
|
|
113
|
+
this.sections = o.sort(({ id: i }, { id: s }) => {
|
|
114
|
+
const l = (c) => this.$slots.default?.findIndex?.((d) => d?.componentOptions?.propsData?.id === c) ?? -1;
|
|
115
|
+
return l(i) - l(s);
|
|
116
|
+
}), this.sections.length === 1 && (this.selectedSection = t);
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* Called when a section is unregistered to remove it from dialog
|
|
120
|
+
* @param {string} id The section ID
|
|
121
|
+
*/
|
|
122
|
+
unregisterSection(t) {
|
|
123
|
+
this.sections = this.sections.filter(({ id: e }) => t !== e), this.selectedSection === t && (this.selectedSection = this.sections[0]?.id ?? "");
|
|
124
|
+
},
|
|
125
|
+
/**
|
|
126
|
+
* Scrolls the content to the selected settings section.absolute
|
|
127
|
+
*
|
|
128
|
+
* @param {string} item the ID of the section
|
|
129
|
+
*/
|
|
130
|
+
handleSettingsNavigationClick(t) {
|
|
131
|
+
this.linkClicked = !0, document.getElementById("settings-section_" + t).scrollIntoView({
|
|
132
|
+
behavior: "smooth",
|
|
133
|
+
inline: "nearest"
|
|
134
|
+
}), this.selectedSection = t, setTimeout(() => {
|
|
135
|
+
this.linkClicked = !1;
|
|
136
|
+
}, 1e3);
|
|
137
|
+
},
|
|
138
|
+
handleCloseModal(t) {
|
|
139
|
+
t || (this.$emit("update:open", !1), this.scroller.removeEventListener("scroll", this.handleScroll), this.addedScrollListener = !1, this.scroller.scrollTop = 0);
|
|
140
|
+
},
|
|
141
|
+
handleScroll() {
|
|
142
|
+
this.linkClicked || this.unfocusNavigationItem();
|
|
143
|
+
},
|
|
144
|
+
// Remove selected section once the user starts scrolling
|
|
145
|
+
unfocusNavigationItem: v.default(function() {
|
|
146
|
+
this.selectedSection = "", document.activeElement.className.includes("navigation-list__link") && document.activeElement.blur();
|
|
147
|
+
}, 300)
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
var N = function() {
|
|
151
|
+
var e = this, n = e._self._c;
|
|
152
|
+
return e.open ? n("NcDialog", e._b({ attrs: { "navigation-aria-label": e.settingsNavigationAriaLabel }, on: { "update:open": e.handleCloseModal }, scopedSlots: e._u([e.hasNavigation ? { key: "navigation", fn: function({ isCollapsed: o }) {
|
|
153
|
+
return [o ? e._e() : n("ul", { staticClass: "navigation-list" }, e._l(e.sections, function(i) {
|
|
154
|
+
return n("li", { key: i.id }, [n("a", { class: {
|
|
155
|
+
"navigation-list__link": !0,
|
|
156
|
+
"navigation-list__link--active": i.id === e.selectedSection,
|
|
157
|
+
"navigation-list__link--icon": e.hasNavigationIcons
|
|
158
|
+
}, attrs: { "aria-current": `${i.id === e.selectedSection}`, href: `#settings-section_${i.id}`, tabindex: "0" }, on: { click: function(s) {
|
|
159
|
+
return s.preventDefault(), e.handleSettingsNavigationClick(i.id);
|
|
160
|
+
}, keydown: function(s) {
|
|
161
|
+
return !s.type.indexOf("key") && e._k(s.keyCode, "enter", 13, s.key, "Enter") ? null : e.handleSettingsNavigationClick(i.id);
|
|
162
|
+
} } }, [e.hasNavigationIcons ? n("div", { staticClass: "navigation-list__link-icon" }, [i.icon ? n("NcVNodes", { attrs: { vnodes: i.icon } }) : e._e()], 1) : e._e(), n("span", { staticClass: "navigation-list__link-text" }, [e._v(" " + e._s(i.name) + " ")])])]);
|
|
163
|
+
}), 0)];
|
|
164
|
+
} } : null], null, !0) }, "NcDialog", e.dialogProperties, !1), [n("div", { ref: "settingsScroller" }, [e._t("default")], 2)]) : e._e();
|
|
165
|
+
}, k = [], C = /* @__PURE__ */ _.normalizeComponent(
|
|
166
|
+
S,
|
|
167
|
+
N,
|
|
168
|
+
k,
|
|
169
|
+
!1,
|
|
170
|
+
null,
|
|
171
|
+
"3d79882b",
|
|
172
|
+
null,
|
|
173
|
+
null
|
|
174
|
+
);
|
|
175
|
+
const b = C.exports;
|
|
176
|
+
exports.NcAppSettingsDialog = b;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcAppSettingsDialog-L6IvAL_I.cjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@icloud.com>\n -\n - @author Marco Ambrosini <marcoambrosini@icloud.com>\n - @author Ferdinand Thiessen <opensource@fthiessen.de>\n -\n - @license AGPL-3.0-or-later\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<docs>\nJust nest the `AppSettingSections` component into `NcAppSettingsDialog`,\nproviding the section's name prop. You can put your settings within each\n`NcAppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-5\" name=\"Example name 5\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-6\" name=\"Example name 6\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-7\" name=\"Example name 7\">\n\t\t\t\tSome example content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-8\" name=\"Example name 8\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-9\" name=\"Example name 9\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-10\" name=\"Example name 10\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also add icons to the section navigation:\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog :open.sync=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Instagram\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Instagram :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tInstagram setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Mastodon\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Mastodon :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tMastodon setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Twitch\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitch :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t<p style=\"height: 100vh;\">\n\t\t\t\t\tTwitch setting\n\t\t\t\t</p>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Twitter\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Twitter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tTwitter setting\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nimport Instagram from 'vue-material-design-icons/Instagram.vue'\nimport Mastodon from 'vue-material-design-icons/Mastodon.vue'\nimport Twitch from 'vue-material-design-icons/Twitch.vue'\nimport Twitter from 'vue-material-design-icons/Twitter.vue'\n\nexport default {\n\tcomponents: {\n\t\tInstagram,\n\t\tMastodon,\n\t\tTwitch,\n\t\tTwitter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<NcDialog v-if=\"open\"\n\t\t:navigation-aria-label=\"settingsNavigationAriaLabel\"\n\t\tv-bind=\"dialogProperties\"\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul v-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in sections\" :key=\"section.id\">\n\t\t\t\t\t<a :aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'navigation-list__link': true,\n\t\t\t\t\t\t\t'navigation-list__link--active': section.id === selectedSection,\n\t\t\t\t\t\t\t'navigation-list__link--icon': hasNavigationIcons,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:href=\"`#settings-section_${section.id}`\"\n\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t@click.prevent=\"handleSettingsNavigationClick(section.id)\"\n\t\t\t\t\t\t@keydown.enter=\"handleSettingsNavigationClick(section.id)\">\n\t\t\t\t\t\t<div v-if=\"hasNavigationIcons\" class=\"navigation-list__link-icon\">\n\t\t\t\t\t\t\t<NcVNodes v-if=\"section.icon\" :vnodes=\"section.icon\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class=\"navigation-list__link-text\">\n\t\t\t\t\t\t\t{{ section.name }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</template>\n\t\t<div ref=\"settingsScroller\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<script>\nimport NcDialog from '../NcDialog/index.js'\nimport NcVNodes from '../NcVNodes/index.js'\nimport { useIsMobile } from '../../composables/useIsMobile/index.js'\nimport { t } from '../../l10n.js'\n\nimport debounce from 'debounce'\nimport Vue from 'vue'\n\nexport default {\n\n\tname: 'NcAppSettingsDialog',\n\n\tcomponents: {\n\t\tNcDialog,\n\t\tNcVNodes,\n\t},\n\n\tprovide() {\n\t\treturn {\n\t\t\tregisterSection: this.registerSection,\n\t\t\tunregisterSection: this.unregisterSection,\n\t\t}\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Name of the settings\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Additional elements to add to the focus trap\n\t\t */\n\t\tadditionalTrapElements: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t},\n\n\temits: ['update:open'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tisMobile: useIsMobile(),\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t\t/**\n\t\t\t * Currently registered settings sections\n\t\t\t * @type {{ id: string, name: string, icon?: import('vue').VNode[] }[]}\n\t\t\t */\n\t\t\tsections: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tdialogProperties() {\n\t\t\treturn {\n\t\t\t\tadditionalTrapElements: this.additionalTrapElements,\n\t\t\t\tcloseOnClickOutside: true,\n\t\t\t\tclass: 'app-settings',\n\t\t\t\tcontainer: this.container,\n\t\t\t\tcontentClasses: 'app-settings__content',\n\t\t\t\tsize: 'large',\n\t\t\t\tname: this.name,\n\t\t\t\tnavigationClasses: 'app-settings__navigation',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Check if one or more navigation entries provide icons\n\t\t */\n\t\thasNavigationIcons() {\n\t\t\treturn this.sections.some(({ icon }) => !!icon)\n\t\t},\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Called when a new section is registered\n\t\t * @param {string} id The section ID\n\t\t * @param {string} name The section name\n\t\t * @param {import('vue').VNode[]|undefined} icon Optional icon component\n\t\t */\n\t\tregisterSection(id, name, icon) {\n\t\t\t// Check for the uniqueness of section names\n\t\t\tif (this.sections.some(({ id: otherId }) => id === otherId)) {\n\t\t\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t\t\t}\n\t\t\tif (this.sections.some(({ name: otherName }) => name === otherName)) {\n\t\t\t\tVue.util.warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t\t\t}\n\n\t\t\tconst newSections = [...this.sections, { id, name, icon }]\n\t\t\t// Sort sections by order in slots\n\t\t\tthis.sections = newSections.sort(({ id: idA }, { id: idB }) => {\n\t\t\t\tconst indexOf = (id) => this.$slots.default?.findIndex?.(vnode => vnode?.componentOptions?.propsData?.id === id) ?? -1\n\t\t\t\treturn indexOf(idA) - indexOf(idB)\n\t\t\t})\n\n\t\t\t// If this is the first section registered, set it as selected\n\t\t\tif (this.sections.length === 1) {\n\t\t\t\tthis.selectedSection = id\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Called when a section is unregistered to remove it from dialog\n\t\t * @param {string} id The section ID\n\t\t */\n\t\tunregisterSection(id) {\n\t\t\tthis.sections = this.sections.filter(({ id: otherId }) => id !== otherId)\n\n\t\t\t// If the current section is unregistered, set the first section as selected\n\t\t\tif (this.selectedSection === id) {\n\t\t\t\tthis.selectedSection = this.sections[0]?.id ?? ''\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t *\n\t\t * @param {string} item the ID of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal(isOpen) {\n\t\t\tif (isOpen) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t&:deep(.dialog) {\n\t\tmin-height: 256px;\n\t}\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tbox-sizing: border-box;\n\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tpadding-inline: 20px;\n\t\tmin-height: 256px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\tbox-sizing: border-box;\n\toverflow-y: auto;\n\tpadding: 12px;\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t}\n\n\t\t&--icon {\n\t\t\tpadding-inline-start: 8px;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t&-icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-content: center;\n\t\t\twidth: 36px;\n\t\t\tmax-width: 36px;\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcDialog","Components_NcVNodes","Composables_useIsMobile","icon","_l10n","id","name","otherId","otherName","Vue__default","newSections","idA","idB","indexOf","vnode","item","isOpen","debounce__default"],"mappings":";;;AAyLA,MAAAA,IAAA;AAAA,EAEA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC,EAAA;AAAA,IACA,UAAAC;AAAA,EACA;AAAA,EAEA,UAAA;AACA,WAAA;AAAA,MACA,iBAAA,KAAA;AAAA,MACA,mBAAA,KAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,IACA;AAAA,EAEA;AAAA,EAEA,OAAA,CAAA,aAAA;AAAA,EAEA,QAAA;AACA,WAAA;AAAA,MACA,UAAAC,EAAA,YAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AACA,WAAA;AAAA,MACA,iBAAA;AAAA,MACA,aAAA;AAAA,MACA,qBAAA;AAAA,MACA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKA,UAAA,CAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,mBAAA;AACA,aAAA;AAAA,QACA,wBAAA,KAAA;AAAA,QACA,qBAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA,KAAA;AAAA,QACA,gBAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,KAAA;AAAA,QACA,mBAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,qBAAA;AACA,aAAA,KAAA,SAAA,KAAA,CAAA,EAAA,MAAAC,EAAA,MAAA,CAAA,CAAAA,CAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,aAAA,OAAA,YAAA,CAAA,KAAA;AAAA,IAKA;AAAA,IAEA,8BAAA;AACA,aAAAC,EAAA,EAAA,qBAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAEA,IAAA,KAAA,MAAA,qBAIA,KAAA,WAAA,KAAA,MAAA,kBACA,KAAA,wBACA,KAAA,SAAA,iBAAA,UAAA,KAAA,YAAA,GACA,KAAA,sBAAA;AAAA,EAGA;AAAA,EAEA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,gBAAAC,GAAAC,GAAAH,GAAA;AAEA,UAAA,KAAA,SAAA,KAAA,CAAA,EAAA,IAAAI,EAAA,MAAAF,MAAAE,CAAA;AACA,cAAA,IAAA,MAAA,+BAAAF,CAAA,8DAAA;AAEA,MAAA,KAAA,SAAA,KAAA,CAAA,EAAA,MAAAG,EAAA,MAAAF,MAAAE,CAAA,KACAC,EAAA,QAAA,KAAA,KAAA,iCAAAH,CAAA,gEAAA;AAGA,YAAAI,IAAA,CAAA,GAAA,KAAA,UAAA,EAAA,IAAAL,GAAA,MAAAC,GAAA,MAAAH,EAAA,CAAA;AAEA,WAAA,WAAAO,EAAA,KAAA,CAAA,EAAA,IAAAC,EAAA,GAAA,EAAA,IAAAC,EAAA,MAAA;AACA,cAAAC,IAAA,CAAAR,MAAA,KAAA,OAAA,SAAA,YAAA,CAAAS,MAAAA,GAAA,kBAAA,WAAA,OAAAT,CAAA,KAAA;AACA,eAAAQ,EAAAF,CAAA,IAAAE,EAAAD,CAAA;AAAA,MACA,CAAA,GAGA,KAAA,SAAA,WAAA,MACA,KAAA,kBAAAP;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAAA,GAAA;AACA,WAAA,WAAA,KAAA,SAAA,OAAA,CAAA,EAAA,IAAAE,EAAA,MAAAF,MAAAE,CAAA,GAGA,KAAA,oBAAAF,MACA,KAAA,kBAAA,KAAA,SAAA,CAAA,GAAA,MAAA;AAAA,IAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOA,8BAAAU,GAAA;AACA,WAAA,cAAA,IACA,SAAA,eAAA,sBAAAA,CAAA,EAAA,eAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,MACA,CAAA,GACA,KAAA,kBAAAA,GACA,WAAA,MAAA;AACA,aAAA,cAAA;AAAA,MACA,GAAA,GAAA;AAAA,IACA;AAAA,IAEA,iBAAAC,GAAA;AACA,MAAAA,MAIA,KAAA,MAAA,eAAA,EAAA,GAEA,KAAA,SAAA,oBAAA,UAAA,KAAA,YAAA,GACA,KAAA,sBAAA,IACA,KAAA,SAAA,YAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,MAAA,KAAA,eACA,KAAA,sBAAA;AAAA,IAEA;AAAA;AAAA,IAGA,uBAAAC,EAAA,QAAA,WAAA;AACA,WAAA,kBAAA,IACA,SAAA,cAAA,UAAA,SAAA,uBAAA,KACA,SAAA,cAAA,KAAA;AAAA,IAEA,GAAA,GAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|