@nextcloud/vue 8.8.1 → 8.9.1
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 +22 -0
- package/dist/Components/NcActionButton.cjs +3 -3
- package/dist/Components/NcActionButton.mjs +6 -6
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionCaption.cjs +2 -2
- package/dist/Components/NcActionCaption.mjs +2 -2
- package/dist/Components/NcActionCheckbox.cjs +2 -2
- package/dist/Components/NcActionCheckbox.mjs +4 -4
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionLink.cjs +3 -3
- package/dist/Components/NcActionLink.mjs +4 -4
- package/dist/Components/NcActionRadio.cjs +2 -2
- package/dist/Components/NcActionRadio.mjs +4 -4
- package/dist/Components/NcActionRouter.cjs +3 -3
- package/dist/Components/NcActionRouter.mjs +4 -4
- package/dist/Components/NcActionSeparator.cjs +2 -2
- package/dist/Components/NcActionSeparator.mjs +2 -2
- package/dist/Components/NcActionText.cjs +3 -3
- package/dist/Components/NcActionText.mjs +4 -4
- package/dist/Components/NcActionTextEditable.cjs +3 -3
- package/dist/Components/NcActionTextEditable.mjs +6 -6
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.cjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/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 +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationIconBullet.cjs +2 -2
- package/dist/Components/NcAppNavigationIconBullet.mjs +2 -2
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationList.cjs +2 -2
- package/dist/Components/NcAppNavigationList.mjs +2 -2
- package/dist/Components/NcAppNavigationNew.cjs +2 -2
- package/dist/Components/NcAppNavigationNew.mjs +2 -2
- package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationSpacer.cjs +2 -2
- package/dist/Components/NcAppNavigationSpacer.mjs +2 -2
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSettingsSection.cjs +8 -5
- package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
- package/dist/Components/NcAppSettingsSection.mjs +8 -5
- package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAppSidebarTab.cjs +5 -4
- package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
- package/dist/Components/NcAppSidebarTab.mjs +5 -4
- package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcButton.cjs +27 -26
- package/dist/Components/NcButton.cjs.map +1 -1
- package/dist/Components/NcButton.mjs +28 -27
- package/dist/Components/NcButton.mjs.map +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcColorPicker.cjs +1 -1
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.cjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcCounterBubble.cjs +2 -2
- package/dist/Components/NcCounterBubble.mjs +2 -2
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTime.cjs +1 -1
- package/dist/Components/NcDateTime.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +42 -40
- package/dist/Components/NcDateTimePicker.cjs.map +1 -1
- package/dist/Components/NcDateTimePicker.mjs +27 -25
- package/dist/Components/NcDateTimePicker.mjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.cjs +11 -11
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +12 -12
- package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
- package/dist/Components/NcDialog.cjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.cjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEllipsisedOption.cjs +2 -2
- package/dist/Components/NcEllipsisedOption.mjs +3 -3
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcEmptyContent.cjs +9 -8
- package/dist/Components/NcEmptyContent.cjs.map +1 -1
- package/dist/Components/NcEmptyContent.mjs +9 -8
- package/dist/Components/NcEmptyContent.mjs.map +1 -1
- package/dist/Components/NcGuestContent.cjs +2 -2
- package/dist/Components/NcGuestContent.mjs +2 -2
- package/dist/Components/NcHeaderMenu.cjs +1 -1
- package/dist/Components/NcHeaderMenu.mjs +1 -1
- package/dist/Components/NcHighlight.cjs +1 -1
- package/dist/Components/NcHighlight.mjs +1 -1
- package/dist/Components/NcIconSvgWrapper.cjs +1 -1
- package/dist/Components/NcIconSvgWrapper.mjs +1 -1
- package/dist/Components/NcInputField.cjs +4 -4
- package/dist/Components/NcInputField.cjs.map +1 -1
- package/dist/Components/NcInputField.mjs +7 -7
- package/dist/Components/NcInputField.mjs.map +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcLoadingIcon.cjs +2 -2
- package/dist/Components/NcLoadingIcon.mjs +2 -2
- package/dist/Components/NcModal.cjs +8 -7
- package/dist/Components/NcModal.cjs.map +1 -1
- package/dist/Components/NcModal.mjs +19 -18
- package/dist/Components/NcModal.mjs.map +1 -1
- package/dist/Components/NcNoteCard.cjs +3 -3
- package/dist/Components/NcNoteCard.mjs +3 -3
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcPopover.cjs +1 -1
- package/dist/Components/NcPopover.mjs +1 -1
- package/dist/Components/NcProgressBar.cjs +1 -1
- package/dist/Components/NcProgressBar.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.cjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +2 -2
- package/dist/Components/NcRichText.cjs +1 -1
- package/dist/Components/NcRichText.cjs.map +1 -1
- package/dist/Components/NcRichText.mjs +8 -8
- package/dist/Components/NcRichText.mjs.map +1 -1
- package/dist/Components/NcSavingIndicatorIcon.cjs +1 -1
- package/dist/Components/NcSavingIndicatorIcon.mjs +1 -1
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSettingsInputText.cjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.cjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextArea.cjs +4 -4
- package/dist/Components/NcTextArea.cjs.map +1 -1
- package/dist/Components/NcTextArea.mjs +7 -7
- package/dist/Components/NcTextArea.mjs.map +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Components/NcVNodes.cjs +11 -10
- package/dist/Components/NcVNodes.cjs.map +1 -1
- package/dist/Components/NcVNodes.mjs +12 -11
- package/dist/Components/NcVNodes.mjs.map +1 -1
- package/dist/Directives/Linkify.cjs +5 -4
- package/dist/Directives/Linkify.cjs.map +1 -1
- package/dist/Directives/Linkify.mjs +6 -5
- package/dist/Directives/Linkify.mjs.map +1 -1
- package/dist/Directives/Tooltip.cjs +1 -1
- package/dist/Directives/Tooltip.mjs +1 -1
- package/dist/Functions/reference.cjs +2 -1
- package/dist/Functions/reference.cjs.map +1 -1
- package/dist/Functions/reference.mjs +12 -11
- package/dist/Functions/registerReference.cjs +11 -69
- package/dist/Functions/registerReference.cjs.map +1 -1
- package/dist/Functions/registerReference.mjs +9 -67
- package/dist/Functions/registerReference.mjs.map +1 -1
- package/dist/Functions/usernameToColor.cjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/Mixins/richEditor.cjs +2 -2
- package/dist/Mixins/richEditor.mjs +2 -2
- package/dist/assets/{NcActions-mt8BQ_bn.css → NcActions-CEbgl0_n.css} +12 -12
- package/dist/assets/{NcAppContent-SZz3PTd8.css → NcAppContent-Cv8rRTyy.css} +1 -0
- package/dist/assets/{NcDateTimePicker-IOou-rT3.css → NcDateTimePicker-C3D1hmlB.css} +10 -10
- package/dist/assets/{NcEmojiPicker-hTlSVIq0.css → NcEmojiPicker-B-4WNYcx.css} +1 -0
- package/dist/assets/{NcRelatedResourcesPanel-oq5eMIoh.css → NcRelatedResourcesPanel-COW9gzml.css} +72 -6
- package/dist/assets/{NcRichText-kDp48Nji.css → NcRichText-BMe-xENJ.css} +5 -2
- package/dist/assets/{referencePickerModal-A0PlFUEI.css → referencePickerModal-C1KJzICb.css} +34 -14
- package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs → AlertCircleOutline-DHFN4OkX.cjs} +1 -1
- package/dist/chunks/{AlertCircleOutline-HYz1lvHU.cjs.map → AlertCircleOutline-DHFN4OkX.cjs.map} +1 -1
- package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs → AlertCircleOutline-U_bhL30C.mjs} +1 -1
- package/dist/chunks/{AlertCircleOutline-XY0EPUmQ.mjs.map → AlertCircleOutline-U_bhL30C.mjs.map} +1 -1
- package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs → ArrowLeft-CjNnGIlF.cjs} +1 -1
- package/dist/chunks/{ArrowLeft-fC5aEWWu.cjs.map → ArrowLeft-CjNnGIlF.cjs.map} +1 -1
- package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs → ArrowLeft-kklNBL9z.mjs} +1 -1
- package/dist/chunks/{ArrowLeft-uW5eNVkY.mjs.map → ArrowLeft-kklNBL9z.mjs.map} +1 -1
- package/dist/chunks/{ArrowRight-16bLxoZc.mjs → ArrowRight-C3BxTDjF.mjs} +1 -1
- package/dist/chunks/{ArrowRight-16bLxoZc.mjs.map → ArrowRight-C3BxTDjF.mjs.map} +1 -1
- package/dist/chunks/{ArrowRight-uUC8qW2c.cjs → ArrowRight-CxzzJJQ6.cjs} +1 -1
- package/dist/chunks/{ArrowRight-uUC8qW2c.cjs.map → ArrowRight-CxzzJJQ6.cjs.map} +1 -1
- package/dist/chunks/{Check-qy5XrF1J.mjs → Check-CRLmJNGG.mjs} +1 -1
- package/dist/chunks/{Check-qy5XrF1J.mjs.map → Check-CRLmJNGG.mjs.map} +1 -1
- package/dist/chunks/{Check-QBzDcHpr.cjs → Check-CVn5nytg.cjs} +1 -1
- package/dist/chunks/{Check-QBzDcHpr.cjs.map → Check-CVn5nytg.cjs.map} +1 -1
- package/dist/chunks/{ChevronDown-Hc_DTRav.cjs → ChevronDown-DQPox_nl.cjs} +1 -1
- package/dist/chunks/{ChevronDown-Hc_DTRav.cjs.map → ChevronDown-DQPox_nl.cjs.map} +1 -1
- package/dist/chunks/{ChevronDown-suAKKmeb.mjs → ChevronDown-HHJdUMN4.mjs} +1 -1
- package/dist/chunks/{ChevronDown-suAKKmeb.mjs.map → ChevronDown-HHJdUMN4.mjs.map} +1 -1
- package/dist/chunks/{ChevronRight-MdQC55Yq.cjs → ChevronRight-BAJhNawb.cjs} +1 -1
- package/dist/chunks/{ChevronRight-MdQC55Yq.cjs.map → ChevronRight-BAJhNawb.cjs.map} +1 -1
- package/dist/chunks/{ChevronRight-9owhU_17.mjs → ChevronRight-DL3e8bjj.mjs} +1 -1
- package/dist/chunks/{ChevronRight-9owhU_17.mjs.map → ChevronRight-DL3e8bjj.mjs.map} +1 -1
- package/dist/chunks/ChevronUp-B6TIgl1a.mjs +37 -0
- package/dist/chunks/ChevronUp-B6TIgl1a.mjs.map +1 -0
- package/dist/chunks/ChevronUp-kmHRpe7H.cjs +35 -0
- package/dist/chunks/ChevronUp-kmHRpe7H.cjs.map +1 -0
- package/dist/chunks/{Close-QtH6_3PP.mjs → Close-BtO5TPBO.mjs} +1 -1
- package/dist/chunks/{Close-QtH6_3PP.mjs.map → Close-BtO5TPBO.mjs.map} +1 -1
- package/dist/chunks/{Close-dotk0707.cjs → Close-DBfrdXMw.cjs} +1 -1
- package/dist/chunks/{Close-dotk0707.cjs.map → Close-DBfrdXMw.cjs.map} +1 -1
- package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs → DotsHorizontal-B8kTqpHe.cjs} +1 -1
- package/dist/chunks/{DotsHorizontal-6hepLUSS.cjs.map → DotsHorizontal-B8kTqpHe.cjs.map} +1 -1
- package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs → DotsHorizontal-DfVgEXgz.mjs} +1 -1
- package/dist/chunks/{DotsHorizontal-IbmXTXRA.mjs.map → DotsHorizontal-DfVgEXgz.mjs.map} +1 -1
- package/dist/chunks/{GenColors-DI6G7se8.mjs → GenColors-BteFtwOv.mjs} +3 -3
- package/dist/chunks/{GenColors-DI6G7se8.mjs.map → GenColors-BteFtwOv.mjs.map} +1 -1
- package/dist/chunks/{GenColors-WX-nGJls.cjs → GenColors-vI-bx9ZY.cjs} +3 -3
- package/dist/chunks/{GenColors-WX-nGJls.cjs.map → GenColors-vI-bx9ZY.cjs.map} +1 -1
- package/dist/chunks/{GenRandomId-ULxaMkkr.cjs.map → GenRandomId-B2O1GMbH.cjs.map} +1 -1
- package/dist/chunks/{GenRandomId-VodkdWbp.mjs.map → GenRandomId-BW3iYFf9.mjs.map} +1 -1
- package/dist/chunks/{Linkify-V7PfCeZ8.mjs.map → Linkify-BaDLLFxP.mjs.map} +1 -1
- package/dist/chunks/{Linkify-f3s3nAe_.cjs.map → Linkify-Dola0NBa.cjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-vn4L_-bD.cjs → NcActionButtonGroup-BdxkXNwc.cjs} +3 -3
- package/dist/chunks/{NcActionButtonGroup-vn4L_-bD.cjs.map → NcActionButtonGroup-BdxkXNwc.cjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-r7iOjoQx.mjs → NcActionButtonGroup-SS3PkUD2.mjs} +5 -5
- package/dist/chunks/{NcActionButtonGroup-r7iOjoQx.mjs.map → NcActionButtonGroup-SS3PkUD2.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-rojOjWGA.mjs → NcActionInput-BHq3Le0q.mjs} +9 -9
- package/dist/chunks/{NcActionInput-rojOjWGA.mjs.map → NcActionInput-BHq3Le0q.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-iUn4neUB.cjs → NcActionInput-D308ZntG.cjs} +4 -4
- package/dist/chunks/{NcActionInput-iUn4neUB.cjs.map → NcActionInput-D308ZntG.cjs.map} +1 -1
- package/dist/chunks/{NcActions-4NCnCJdf.mjs → NcActions-CpU9WXzM.mjs} +135 -131
- package/dist/chunks/{NcActions-4NCnCJdf.mjs.map → NcActions-CpU9WXzM.mjs.map} +1 -1
- package/dist/chunks/{NcActions-tPPh2p8F.cjs → NcActions-Dfkog_G0.cjs} +134 -130
- package/dist/chunks/{NcActions-tPPh2p8F.cjs.map → NcActions-Dfkog_G0.cjs.map} +1 -1
- package/dist/chunks/{NcAppContent-jkpg6g7U.mjs → NcAppContent-BDwOdxJE.mjs} +6 -6
- package/dist/chunks/{NcAppContent-jkpg6g7U.mjs.map → NcAppContent-BDwOdxJE.mjs.map} +1 -1
- package/dist/chunks/{NcAppContent-ZjNUuV0Q.cjs → NcAppContent-kqYjKpzU.cjs} +6 -6
- package/dist/chunks/{NcAppContent-ZjNUuV0Q.cjs.map → NcAppContent-kqYjKpzU.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-jWJsOIts.mjs → NcAppNavigation-C1Qe3lsk.mjs} +4 -4
- package/dist/chunks/{NcAppNavigation-jWJsOIts.mjs.map → NcAppNavigation-C1Qe3lsk.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-CNOTInDF.cjs → NcAppNavigation-C423R_m2.cjs} +2 -2
- package/dist/chunks/{NcAppNavigation-CNOTInDF.cjs.map → NcAppNavigation-C423R_m2.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-HAxOA6LJ.cjs → NcAppNavigationCaption-BKchbDsJ.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-HAxOA6LJ.cjs.map → NcAppNavigationCaption-BKchbDsJ.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-t_NRjmPr.mjs → NcAppNavigationCaption-DsT6O4Hx.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationCaption-t_NRjmPr.mjs.map → NcAppNavigationCaption-DsT6O4Hx.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-MA9ORoUF.cjs → NcAppNavigationItem-CABF2T4q.cjs} +47 -79
- package/dist/chunks/NcAppNavigationItem-CABF2T4q.cjs.map +1 -0
- package/dist/chunks/{NcAppNavigationItem-_F3PGjJA.mjs → NcAppNavigationItem-bjPcEx5D.mjs} +55 -86
- package/dist/chunks/NcAppNavigationItem-bjPcEx5D.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNewItem-AChqGXVZ.mjs → NcAppNavigationNewItem-BHCgaCoK.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationNewItem-AChqGXVZ.mjs.map → NcAppNavigationNewItem-BHCgaCoK.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-CDAeQ7VS.cjs → NcAppNavigationNewItem-t45tM5u1.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-CDAeQ7VS.cjs.map → NcAppNavigationNewItem-t45tM5u1.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-1n_Ld521.mjs → NcAppNavigationSettings-BQD7JA4m.mjs} +4 -4
- package/dist/chunks/{NcAppNavigationSettings-1n_Ld521.mjs.map → NcAppNavigationSettings-BQD7JA4m.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-qW2qjrEY.cjs → NcAppNavigationSettings-CBeUiVLk.cjs} +5 -5
- package/dist/chunks/{NcAppNavigationSettings-qW2qjrEY.cjs.map → NcAppNavigationSettings-CBeUiVLk.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-H-gUVQa_.mjs → NcAppNavigationToggle-BZxbkhCr.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationToggle-H-gUVQa_.mjs.map → NcAppNavigationToggle-BZxbkhCr.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-mJ8JlXiA.cjs → NcAppNavigationToggle-DDChOnAq.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationToggle-mJ8JlXiA.cjs.map → NcAppNavigationToggle-DDChOnAq.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-Sra5JJSN.mjs → NcAppSettingsDialog-DeFBTD2J.mjs} +35 -28
- package/dist/chunks/{NcAppSettingsDialog-JAKe849o.cjs.map → NcAppSettingsDialog-DeFBTD2J.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-JAKe849o.cjs → NcAppSettingsDialog-EUys9Os_.cjs} +29 -22
- package/dist/chunks/{NcAppSettingsDialog-Sra5JJSN.mjs.map → NcAppSettingsDialog-EUys9Os_.cjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-3es9kNNh.mjs → NcAppSidebar-CdSvRI6l.mjs} +26 -22
- package/dist/chunks/{NcAppSidebar-3es9kNNh.mjs.map → NcAppSidebar-CdSvRI6l.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-8_YcevI9.cjs → NcAppSidebar-Du-IRmEO.cjs} +17 -13
- package/dist/chunks/{NcAppSidebar-8_YcevI9.cjs.map → NcAppSidebar-Du-IRmEO.cjs.map} +1 -1
- package/dist/chunks/{NcAvatar-Vp4PnmMw.cjs → NcAvatar-BEet_8fB.cjs} +57 -53
- package/dist/chunks/{NcAvatar-Vp4PnmMw.cjs.map → NcAvatar-BEet_8fB.cjs.map} +1 -1
- package/dist/chunks/{NcAvatar-MHywJkM4.mjs → NcAvatar-e0M-nnF6.mjs} +73 -69
- package/dist/chunks/{NcAvatar-MHywJkM4.mjs.map → NcAvatar-e0M-nnF6.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-K8expM4Y.mjs → NcBreadcrumb-CVMyBckA.mjs} +7 -7
- package/dist/chunks/{NcBreadcrumb-K8expM4Y.mjs.map → NcBreadcrumb-CVMyBckA.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-lksx7xyQ.cjs → NcBreadcrumb-DVXsgQkE.cjs} +4 -4
- package/dist/chunks/{NcBreadcrumb-lksx7xyQ.cjs.map → NcBreadcrumb-DVXsgQkE.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-cwBxvntJ.cjs → NcBreadcrumbs-DkgzO9f5.cjs} +103 -99
- package/dist/chunks/{NcBreadcrumbs-cwBxvntJ.cjs.map → NcBreadcrumbs-DkgzO9f5.cjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-rX1BVFSi.mjs → NcBreadcrumbs-DqRU0BfB.mjs} +65 -61
- package/dist/chunks/{NcBreadcrumbs-rX1BVFSi.mjs.map → NcBreadcrumbs-DqRU0BfB.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-hel9-sAH.mjs → NcCheckboxRadioSwitch-7Yib86y3.mjs} +6 -6
- package/dist/chunks/{NcCheckboxRadioSwitch-hel9-sAH.mjs.map → NcCheckboxRadioSwitch-7Yib86y3.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-BUIaJMqW.cjs → NcCheckboxRadioSwitch-Dt96X5bR.cjs} +5 -5
- package/dist/chunks/{NcCheckboxRadioSwitch-BUIaJMqW.cjs.map → NcCheckboxRadioSwitch-Dt96X5bR.cjs.map} +1 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs +4 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-C1WLneXl.cjs.map +1 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs +3 -0
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-CKROuACA.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-_OGhRcL2.cjs → NcColorPicker-BVqwn1Fr.cjs} +4 -5
- package/dist/chunks/{NcColorPicker-rdotuXIn.mjs.map → NcColorPicker-BVqwn1Fr.cjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-rdotuXIn.mjs → NcColorPicker-Dkxeigs5.mjs} +11 -12
- package/dist/chunks/{NcColorPicker-_OGhRcL2.cjs.map → NcColorPicker-Dkxeigs5.mjs.map} +1 -1
- package/dist/chunks/NcContent-Bmeq8hLO.cjs +80 -0
- package/dist/chunks/{NcContent-M9BJMGg0.mjs.map → NcContent-Bmeq8hLO.cjs.map} +1 -1
- package/dist/chunks/NcContent-COIw1X7V.mjs +87 -0
- package/dist/chunks/{NcContent-qCB26fzT.cjs.map → NcContent-COIw1X7V.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-oK144Mdz.mjs → NcDashboardWidget-Cxz_n1AN.mjs} +6 -6
- package/dist/chunks/{NcDashboardWidget-oK144Mdz.mjs.map → NcDashboardWidget-Cxz_n1AN.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-ajzKRBC2.cjs → NcDashboardWidget-DArU3jbL.cjs} +3 -3
- package/dist/chunks/{NcDashboardWidget-ajzKRBC2.cjs.map → NcDashboardWidget-DArU3jbL.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-hmytFH9r.cjs → NcDashboardWidgetItem-BAhzcFfs.cjs} +2 -2
- package/dist/chunks/{NcDashboardWidgetItem-hmytFH9r.cjs.map → NcDashboardWidgetItem-BAhzcFfs.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-H0TN4xZv.mjs → NcDashboardWidgetItem-BV2tuXoj.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-H0TN4xZv.mjs.map → NcDashboardWidgetItem-BV2tuXoj.mjs.map} +1 -1
- package/dist/chunks/{NcDateTime-FfZJDKud.mjs → NcDateTime-B0oaElJX.mjs} +2 -2
- package/dist/chunks/{NcDateTime-FfZJDKud.mjs.map → NcDateTime-B0oaElJX.mjs.map} +1 -1
- package/dist/chunks/{NcDateTime-7m58XSm1.cjs → NcDateTime-Dl0XztMt.cjs} +1 -1
- package/dist/chunks/{NcDateTime-7m58XSm1.cjs.map → NcDateTime-Dl0XztMt.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-f6KwlaqC.cjs → NcDialog-C6nYgBDF.cjs} +3 -3
- package/dist/chunks/{NcDialog-f6KwlaqC.cjs.map → NcDialog-C6nYgBDF.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-_HZnlBi4.mjs → NcDialog-D6YSjidf.mjs} +5 -5
- package/dist/chunks/{NcDialog-_HZnlBi4.mjs.map → NcDialog-D6YSjidf.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs → NcDialogButton-D7ibBxsQ.cjs} +11 -10
- package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs.map → NcDialogButton-D7ibBxsQ.cjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-xDZQrfsw.mjs → NcDialogButton-DQFoaN7q.mjs} +14 -13
- package/dist/chunks/{NcDialogButton-CtdP0-DO.cjs.map → NcDialogButton-DQFoaN7q.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-fsigxTm2.cjs → NcEmojiPicker-BCdoIKXJ.cjs} +54 -52
- package/dist/chunks/{NcEmojiPicker-fsigxTm2.cjs.map → NcEmojiPicker-BCdoIKXJ.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-g4_HENyr.mjs → NcEmojiPicker-fRx7dTTf.mjs} +12 -10
- package/dist/chunks/{NcEmojiPicker-g4_HENyr.mjs.map → NcEmojiPicker-fRx7dTTf.mjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs → NcHeaderMenu-BUeI4DGP.cjs} +11 -9
- package/dist/chunks/{NcHeaderMenu-0d6eqre6.cjs.map → NcHeaderMenu-BUeI4DGP.cjs.map} +1 -1
- package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs → NcHeaderMenu-CXBimxcN.mjs} +11 -9
- package/dist/chunks/{NcHeaderMenu-91qMsRIw.mjs.map → NcHeaderMenu-CXBimxcN.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs → NcIconSvgWrapper-BTdzvQGV.mjs} +3 -3
- package/dist/chunks/{NcIconSvgWrapper-CvnWKK7h.mjs.map → NcIconSvgWrapper-BTdzvQGV.mjs.map} +1 -1
- package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs → NcIconSvgWrapper-kIn1eQyv.cjs} +3 -3
- package/dist/chunks/{NcIconSvgWrapper-RwagV5P9.cjs.map → NcIconSvgWrapper-kIn1eQyv.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-1G2LMh5T.mjs → NcInputConfirmCancel-BXZqwqY6.mjs} +5 -5
- package/dist/chunks/{NcInputConfirmCancel-1G2LMh5T.mjs.map → NcInputConfirmCancel-BXZqwqY6.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-9l24xmqk.cjs → NcInputConfirmCancel-DpgXTGmT.cjs} +2 -2
- package/dist/chunks/{NcInputConfirmCancel-9l24xmqk.cjs.map → NcInputConfirmCancel-DpgXTGmT.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-JO4s1J8T.mjs → NcListItem-C5oWvAZQ.mjs} +5 -5
- package/dist/chunks/{NcListItem-JO4s1J8T.mjs.map → NcListItem-C5oWvAZQ.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-y9KnglaX.cjs → NcListItem-wxqWqs4s.cjs} +3 -3
- package/dist/chunks/{NcListItem-y9KnglaX.cjs.map → NcListItem-wxqWqs4s.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-JWu3t5En.cjs → NcListItemIcon-DfdkSCin.cjs} +6 -5
- package/dist/chunks/{NcListItemIcon-JWu3t5En.cjs.map → NcListItemIcon-DfdkSCin.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-NPSUuwgH.mjs → NcListItemIcon-WH9TUCxb.mjs} +8 -7
- package/dist/chunks/{NcListItemIcon-NPSUuwgH.mjs.map → NcListItemIcon-WH9TUCxb.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-sshf3uoz.mjs → NcPasswordField-BPAivxc_.mjs} +38 -38
- package/dist/chunks/{NcPasswordField-sshf3uoz.mjs.map → NcPasswordField-BPAivxc_.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-r4LxrITz.cjs → NcPasswordField-BgNcvN0V.cjs} +16 -16
- package/dist/chunks/{NcPasswordField-r4LxrITz.cjs.map → NcPasswordField-BgNcvN0V.cjs.map} +1 -1
- package/dist/chunks/{NcPopover-93ns_0K4.mjs → NcPopover--V3R3EKV.mjs} +39 -33
- package/dist/chunks/{NcPopover-93ns_0K4.mjs.map → NcPopover--V3R3EKV.mjs.map} +1 -1
- package/dist/chunks/{NcPopover-fv7OFtxM.cjs → NcPopover-h-t7Dnjk.cjs} +16 -10
- package/dist/chunks/{NcPopover-fv7OFtxM.cjs.map → NcPopover-h-t7Dnjk.cjs.map} +1 -1
- package/dist/chunks/{NcProgressBar-BthaVVHU.cjs → NcProgressBar-BYk5hfPI.cjs} +3 -3
- package/dist/chunks/{NcProgressBar-BthaVVHU.cjs.map → NcProgressBar-BYk5hfPI.cjs.map} +1 -1
- package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs → NcProgressBar-DDAeXyp8.mjs} +3 -3
- package/dist/chunks/{NcProgressBar-h2ufKS6c.mjs.map → NcProgressBar-DDAeXyp8.mjs.map} +1 -1
- package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs +371 -0
- package/dist/chunks/NcRelatedResourcesPanel-Cp8Au2iI.cjs.map +1 -0
- package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs +381 -0
- package/dist/chunks/NcRelatedResourcesPanel-LTNqJecS.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-1aWhJhMf.mjs → NcRichContenteditable-CHggLQuR.mjs} +42 -35
- package/dist/chunks/{NcRichContenteditable-1aWhJhMf.mjs.map → NcRichContenteditable-CHggLQuR.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-tQi-Ee-6.cjs → NcRichContenteditable-hT5m_2tr.cjs} +120 -113
- package/dist/chunks/{NcRichContenteditable-tQi-Ee-6.cjs.map → NcRichContenteditable-hT5m_2tr.cjs.map} +1 -1
- package/dist/chunks/{NcRichText-LKlliqlj.mjs → NcRichText-BBXbh0Hh.mjs} +65 -62
- package/dist/chunks/NcRichText-BBXbh0Hh.mjs.map +1 -0
- package/dist/chunks/{NcRichText-zUTcd9g0.cjs → NcRichText-BWX8BLVh.cjs} +53 -50
- package/dist/chunks/NcRichText-BWX8BLVh.cjs.map +1 -0
- package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs → NcSavingIndicatorIcon-BTvUkUn-.cjs} +1 -1
- package/dist/chunks/{NcSavingIndicatorIcon-wcQ0mBIL.cjs.map → NcSavingIndicatorIcon-BTvUkUn-.cjs.map} +1 -1
- package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs → NcSavingIndicatorIcon-Bf0SEmgS.mjs} +1 -1
- package/dist/chunks/{NcSavingIndicatorIcon-IqoMFcDK.mjs.map → NcSavingIndicatorIcon-Bf0SEmgS.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-Hw3T6JKO.mjs → NcSelect-BVmjiQFa.mjs} +55 -51
- package/dist/chunks/{NcSelect-Hw3T6JKO.mjs.map → NcSelect-BVmjiQFa.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-KpQ1z3xL.cjs → NcSelect-DjTSAsNL.cjs} +50 -46
- package/dist/chunks/{NcSelect-KpQ1z3xL.cjs.map → NcSelect-DjTSAsNL.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-dBHEZJKD.cjs → NcSelectTags-BJvxyO8E.cjs} +2 -11
- package/dist/chunks/{NcSelectTags-dBHEZJKD.cjs.map → NcSelectTags-BJvxyO8E.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-_JF5U0z-.mjs → NcSelectTags-Ccv-eQzZ.mjs} +4 -13
- package/dist/chunks/{NcSelectTags-_JF5U0z-.mjs.map → NcSelectTags-Ccv-eQzZ.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-8TTOXLUf.cjs → NcSettingsInputText-CcO2Du6E.cjs} +3 -3
- package/dist/chunks/{NcSettingsInputText-8TTOXLUf.cjs.map → NcSettingsInputText-CcO2Du6E.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-xNWnltHw.mjs → NcSettingsInputText-DXxmqvcd.mjs} +4 -4
- package/dist/chunks/{NcSettingsInputText-xNWnltHw.mjs.map → NcSettingsInputText-DXxmqvcd.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-f1NU2FVI.mjs → NcSettingsSection-DBe4fKFA.mjs} +3 -3
- package/dist/chunks/{NcSettingsSection-f1NU2FVI.mjs.map → NcSettingsSection-DBe4fKFA.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-wQR22_HI.cjs → NcSettingsSection-qgIYSB_M.cjs} +3 -3
- package/dist/chunks/{NcSettingsSection-wQR22_HI.cjs.map → NcSettingsSection-qgIYSB_M.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-7rZs5am4.cjs → NcSettingsSelectGroup-DD8PEgvQ.cjs} +6 -6
- package/dist/chunks/{NcSettingsSelectGroup-7rZs5am4.cjs.map → NcSettingsSelectGroup-DD8PEgvQ.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-KR0JI731.mjs → NcSettingsSelectGroup-d2TLOW1O.mjs} +8 -8
- package/dist/chunks/{NcSettingsSelectGroup-KR0JI731.mjs.map → NcSettingsSelectGroup-d2TLOW1O.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-u76gJqK3.mjs → NcTextField-CU-YIhL3.mjs} +4 -4
- package/dist/chunks/{NcTextField-u76gJqK3.mjs.map → NcTextField-CU-YIhL3.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-ejnIVzP2.cjs → NcTextField-CsnzlYWD.cjs} +2 -2
- package/dist/chunks/{NcTextField-ejnIVzP2.cjs.map → NcTextField-CsnzlYWD.cjs.map} +1 -1
- package/dist/chunks/NcTimezonePicker-C-Ci2IuC.cjs +3780 -0
- package/dist/chunks/{NcTimezonePicker-OON0Y0l1.cjs.map → NcTimezonePicker-C-Ci2IuC.cjs.map} +1 -1
- package/dist/chunks/NcTimezonePicker-gvp9MAcg.mjs +3786 -0
- package/dist/chunks/{NcTimezonePicker-s9HDKbHx.mjs.map → NcTimezonePicker-gvp9MAcg.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-cv1Ae_v4.cjs → NcUserBubble-COhpp9l_.cjs} +4 -3
- package/dist/chunks/{NcUserBubble-2gGv-0Sv.mjs.map → NcUserBubble-COhpp9l_.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-2gGv-0Sv.mjs → NcUserBubble-CbufscPi.mjs} +6 -5
- package/dist/chunks/{NcUserBubble-cv1Ae_v4.cjs.map → NcUserBubble-CbufscPi.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-q3okK462.mjs → NcUserStatusIcon-0SGYQL9L.mjs} +37 -54
- package/dist/chunks/{NcUserStatusIcon-q3okK462.mjs.map → NcUserStatusIcon-0SGYQL9L.mjs.map} +1 -1
- package/dist/chunks/NcUserStatusIcon-C7dfcW39.cjs +150 -0
- package/dist/chunks/{NcUserStatusIcon-ydS217hk.cjs.map → NcUserStatusIcon-C7dfcW39.cjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-fOJOJbfW.mjs → ScopeComponent-DFDrMcn0.mjs} +1 -1
- package/dist/chunks/{ScopeComponent-fOJOJbfW.mjs.map → ScopeComponent-DFDrMcn0.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-ad_Jva5z.cjs → ScopeComponent-DXQGLon_.cjs} +1 -1
- package/dist/chunks/{ScopeComponent-ad_Jva5z.cjs.map → ScopeComponent-DXQGLon_.cjs.map} +1 -1
- package/dist/chunks/_l10n-B986q8RC.cjs +66 -0
- package/dist/chunks/_l10n-B986q8RC.cjs.map +1 -0
- package/dist/chunks/_l10n-D8Scz3mH.mjs +68 -0
- package/dist/chunks/_l10n-D8Scz3mH.mjs.map +1 -0
- package/dist/chunks/_plugin-vue2_normalizer-Bj5bLKV4.mjs.map +1 -0
- package/dist/chunks/_plugin-vue2_normalizer-GXKvuwrq.cjs.map +1 -0
- package/dist/chunks/{actionGlobal-fRayfdEK.mjs.map → actionGlobal-D49NL940.mjs.map} +1 -1
- package/dist/chunks/{actionGlobal-SGFis4LZ.cjs.map → actionGlobal-DL1VaQzF.cjs.map} +1 -1
- package/dist/chunks/{actionText-nj1gFMEY.cjs → actionText-iWNpvZuI.cjs} +1 -1
- package/dist/chunks/{actionText-nj1gFMEY.cjs.map → actionText-iWNpvZuI.cjs.map} +1 -1
- package/dist/chunks/{actionText-bMy_49i8.mjs → actionText-jLsEBszD.mjs} +1 -1
- package/dist/chunks/{actionText-bMy_49i8.mjs.map → actionText-jLsEBszD.mjs.map} +1 -1
- package/dist/chunks/{autolink-oKM43mOC.mjs.map → autolink-BtgUDDdk.mjs.map} +1 -1
- package/dist/chunks/{autolink-gVCgJtXh.cjs.map → autolink-D0rLUkqm.cjs.map} +1 -1
- package/dist/chunks/{emoji-mJIuLpNR.cjs → emoji-DEH9dtOa.cjs} +7 -6
- package/dist/chunks/{emoji-mJIuLpNR.cjs.map → emoji-DEH9dtOa.cjs.map} +1 -1
- package/dist/chunks/{emoji-tllD0Rvt.mjs → emoji-k4gWHxrE.mjs} +4 -3
- package/dist/chunks/{emoji-tllD0Rvt.mjs.map → emoji-k4gWHxrE.mjs.map} +1 -1
- package/dist/chunks/{focusTrap-Py2bQ9-r.mjs.map → focusTrap-Be9GEB5C.mjs.map} +1 -1
- package/dist/chunks/{focusTrap-n3H52LOw.cjs.map → focusTrap-xauhLvvr.cjs.map} +1 -1
- package/dist/chunks/index-Bh9FEWbr.cjs +87 -0
- package/dist/chunks/index-Bh9FEWbr.cjs.map +1 -0
- package/dist/chunks/{index-XRGLuo0a.cjs → index-CIsMzBte.cjs} +9 -11
- package/dist/chunks/{index-XRGLuo0a.cjs.map → index-CIsMzBte.cjs.map} +1 -1
- package/dist/chunks/index-CU14QsCg.mjs +88 -0
- package/dist/chunks/index-CU14QsCg.mjs.map +1 -0
- package/dist/chunks/{index-FO4BaGaF.cjs → index-Cke9rKBg.cjs} +1 -1
- package/dist/chunks/{index-FO4BaGaF.cjs.map → index-Cke9rKBg.cjs.map} +1 -1
- package/dist/chunks/{index-2phCrsSH.mjs → index-CnpswYi6.mjs} +1 -1
- package/dist/chunks/{index-2phCrsSH.mjs.map → index-CnpswYi6.mjs.map} +1 -1
- package/dist/chunks/{index-05Rfhge1.mjs → index-DYXjj9ET.mjs} +10 -12
- package/dist/chunks/{index-05Rfhge1.mjs.map → index-DYXjj9ET.mjs.map} +1 -1
- package/dist/chunks/{logger-3m1eQsSo.mjs.map → logger-C7qcfVW8.mjs.map} +1 -1
- package/dist/chunks/{logger-G6OKp5ly.cjs.map → logger-D9RRY4er.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-02Pa52XN.mjs → referencePickerModal-DUhJWt2e.mjs} +721 -659
- package/dist/chunks/referencePickerModal-DUhJWt2e.mjs.map +1 -0
- package/dist/chunks/{referencePickerModal-87PoyCB_.cjs → referencePickerModal-DV7-XzCc.cjs} +377 -315
- package/dist/chunks/referencePickerModal-DV7-XzCc.cjs.map +1 -0
- package/dist/chunks/{usernameToColor-zos-xTTA.cjs → usernameToColor-DibvD_OP.cjs} +1 -1
- package/dist/chunks/{usernameToColor-zos-xTTA.cjs.map → usernameToColor-DibvD_OP.cjs.map} +1 -1
- package/dist/chunks/{usernameToColor-exoSzo-C.mjs → usernameToColor-iYF-oKTP.mjs} +1 -1
- package/dist/chunks/{usernameToColor-exoSzo-C.mjs.map → usernameToColor-iYF-oKTP.mjs.map} +1 -1
- package/dist/functions/reference/widgets.d.ts +37 -0
- package/dist/index.cjs +18 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +112 -111
- package/package.json +13 -13
- package/dist/chunks/NcAppNavigationItem-MA9ORoUF.cjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-_F3PGjJA.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-UbvywlEZ.cjs +0 -4
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-UbvywlEZ.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-pNm38e__.mjs +0 -3
- package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_2603be83_lang-pNm38e__.mjs.map +0 -1
- package/dist/chunks/NcContent-M9BJMGg0.mjs +0 -131
- package/dist/chunks/NcContent-qCB26fzT.cjs +0 -124
- package/dist/chunks/NcRelatedResourcesPanel-3uGS3Og7.mjs +0 -211
- package/dist/chunks/NcRelatedResourcesPanel-3uGS3Og7.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-I6QLPffA.cjs +0 -205
- package/dist/chunks/NcRelatedResourcesPanel-I6QLPffA.cjs.map +0 -1
- package/dist/chunks/NcRichText-LKlliqlj.mjs.map +0 -1
- package/dist/chunks/NcRichText-zUTcd9g0.cjs.map +0 -1
- package/dist/chunks/NcTimezonePicker-OON0Y0l1.cjs +0 -7195
- package/dist/chunks/NcTimezonePicker-s9HDKbHx.mjs +0 -7201
- package/dist/chunks/NcUserStatusIcon-ydS217hk.cjs +0 -167
- package/dist/chunks/_l10n-9dioj9MT.mjs +0 -66
- package/dist/chunks/_l10n-9dioj9MT.mjs.map +0 -1
- package/dist/chunks/_l10n-qu3Uu6RR.cjs +0 -64
- package/dist/chunks/_l10n-qu3Uu6RR.cjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-DCfUPqga.cjs.map +0 -1
- package/dist/chunks/_plugin-vue2_normalizer-u6G_3nkj.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-02Pa52XN.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-87PoyCB_.cjs.map +0 -1
- /package/dist/assets/{NcActionButton-rOZFVQA8.css → NcActionButton-Cs5kVVAD.css} +0 -0
- /package/dist/assets/{NcActionButtonGroup-oXobVIqQ.css → NcActionButtonGroup-ChehtUip.css} +0 -0
- /package/dist/assets/{NcActionCaption-afJqyJO6.css → NcActionCaption-Bp8mrIk7.css} +0 -0
- /package/dist/assets/{NcActionCheckbox-6Pvlr1E7.css → NcActionCheckbox-Do--WvUT.css} +0 -0
- /package/dist/assets/{NcActionInput-4zSvDkWm.css → NcActionInput-DjNK8ORa.css} +0 -0
- /package/dist/assets/{NcActionLink-zdzQgwtH.css → NcActionLink-DN3NCDC0.css} +0 -0
- /package/dist/assets/{NcActionRadio-eOr9Sp-D.css → NcActionRadio-B46v1Kn4.css} +0 -0
- /package/dist/assets/{NcActionRouter-MFTD6tYI.css → NcActionRouter-wVMPq1gi.css} +0 -0
- /package/dist/assets/{NcActionSeparator-l98xWbiL.css → NcActionSeparator-CX3zFZuI.css} +0 -0
- /package/dist/assets/{NcActionText-GJYwsw_U.css → NcActionText-YljCzD9Q.css} +0 -0
- /package/dist/assets/{NcActionTextEditable-JrYuWEDd.css → NcActionTextEditable-mti5YQN1.css} +0 -0
- /package/dist/assets/{NcAppNavigation-9nlYnuUQ.css → NcAppNavigation-D2eVie5R.css} +0 -0
- /package/dist/assets/{NcAppNavigationCaption-I1dcvB0N.css → NcAppNavigationCaption-jV1y8HQ1.css} +0 -0
- /package/dist/assets/{NcAppNavigationIconBullet-Nf3ARMLv.css → NcAppNavigationIconBullet-1_cBEwu8.css} +0 -0
- /package/dist/assets/{NcAppNavigationItem-caMsw_N_.css → NcAppNavigationItem-BxoyzD83.css} +0 -0
- /package/dist/assets/{NcAppNavigationList-RooPPg4w.css → NcAppNavigationList-BGig8-Dj.css} +0 -0
- /package/dist/assets/{NcAppNavigationNew-joyd78FM.css → NcAppNavigationNew-COjJ3vwU.css} +0 -0
- /package/dist/assets/{NcAppNavigationNewItem-ue-H4LQY.css → NcAppNavigationNewItem-C574fgtB.css} +0 -0
- /package/dist/assets/{NcAppNavigationSettings-Jx_6RpSn.css → NcAppNavigationSettings-nH_pGlKc.css} +0 -0
- /package/dist/assets/{NcAppNavigationSpacer-uaft91Uz.css → NcAppNavigationSpacer-C5p-33VT.css} +0 -0
- /package/dist/assets/{NcAppNavigationToggle-3vMKtCQL.css → NcAppNavigationToggle-De8wq0JA.css} +0 -0
- /package/dist/assets/{NcAppSettingsDialog-0eOo3ERv.css → NcAppSettingsDialog-DR46jcRG.css} +0 -0
- /package/dist/assets/{NcAppSettingsSection-ahfdhix_.css → NcAppSettingsSection-BqF92GLH.css} +0 -0
- /package/dist/assets/{NcAppSidebar-RkF-tqKy.css → NcAppSidebar-BGQX62or.css} +0 -0
- /package/dist/assets/{NcAppSidebarTab-FywbKxqo.css → NcAppSidebarTab-XLBsrGqg.css} +0 -0
- /package/dist/assets/{NcAvatar-5H9cqcD1.css → NcAvatar-Dkf1ypwP.css} +0 -0
- /package/dist/assets/{NcBreadcrumb-HspaFygg.css → NcBreadcrumb-eyloXKCC.css} +0 -0
- /package/dist/assets/{NcBreadcrumbs-KBV0Jccv.css → NcBreadcrumbs-oFXQlxy-.css} +0 -0
- /package/dist/assets/{NcButton-4Wj3KJn8.css → NcButton-DhaPcomf.css} +0 -0
- /package/dist/assets/{NcCheckboxRadioSwitch-mgKotCbU.css → NcCheckboxRadioSwitch-CaAqi0Jt.css} +0 -0
- /package/dist/assets/{NcColorPicker-jW6HOxWA.css → NcColorPicker-CNboc7FY.css} +0 -0
- /package/dist/assets/{NcContent-LWR23l9i.css → NcContent-tZHbeX2L.css} +0 -0
- /package/dist/assets/{NcCounterBubble-rgkmqN46.css → NcCounterBubble-CuCSao3j.css} +0 -0
- /package/dist/assets/{NcDashboardWidget-01deRW9Z.css → NcDashboardWidget-DTV15Fb1.css} +0 -0
- /package/dist/assets/{NcDashboardWidgetItem-OL--xR_P.css → NcDashboardWidgetItem-4v77FH89.css} +0 -0
- /package/dist/assets/{NcDateTimePickerNative-5yybtvfx.css → NcDateTimePickerNative-DnLJu29_.css} +0 -0
- /package/dist/assets/{NcDialog-DN-rY-55.css → NcDialog-M36tj7nk.css} +0 -0
- /package/dist/assets/{NcEllipsisedOption-eoI10kvc.css → NcEllipsisedOption-B6gjXSS9.css} +0 -0
- /package/dist/assets/{NcEmptyContent-pSz7F6Oe.css → NcEmptyContent-ClLPsXo5.css} +0 -0
- /package/dist/assets/{NcGuestContent-mGGTzI2_.css → NcGuestContent-CYYZPMjb.css} +0 -0
- /package/dist/assets/{NcHeaderMenu-Srn5iXdL.css → NcHeaderMenu-BKufmJd0.css} +0 -0
- /package/dist/assets/{NcIconSvgWrapper-KLotijwU.css → NcIconSvgWrapper-oui2KPBT.css} +0 -0
- /package/dist/assets/{NcInputConfirmCancel-ks8z8dIn.css → NcInputConfirmCancel-CSzzPx0i.css} +0 -0
- /package/dist/assets/{NcInputField-L2Lld_iG.css → NcInputField-vYuV3-IY.css} +0 -0
- /package/dist/assets/{NcListItem-L8LeGwpe.css → NcListItem-vwt4bCl6.css} +0 -0
- /package/dist/assets/{NcListItemIcon-PQ2s6ZqX.css → NcListItemIcon-9Dazpmpd.css} +0 -0
- /package/dist/assets/{NcLoadingIcon-hZn7TJM8.css → NcLoadingIcon-CFmftMkz.css} +0 -0
- /package/dist/assets/{NcMentionBubble-YYl1ib_F.css → NcMentionBubble-BhiXWJv8.css} +0 -0
- /package/dist/assets/{NcModal-sIK5sUoC.css → NcModal-CwgrmxSg.css} +0 -0
- /package/dist/assets/{NcNoteCard-f0NZpwjL.css → NcNoteCard-B_Q1mnCM.css} +0 -0
- /package/dist/assets/{NcPopover-MK4GcuPY.css → NcPopover-wrgZy49g.css} +0 -0
- /package/dist/assets/{NcProgressBar-w4-G5gQR.css → NcProgressBar-DDj4bmBB.css} +0 -0
- /package/dist/assets/{NcRichContenteditable-rW6l0h3m.css → NcRichContenteditable-CtbqXSHe.css} +0 -0
- /package/dist/assets/{NcSelect-OGgZlx4Q.css → NcSelect-4aBmXHhA.css} +0 -0
- /package/dist/assets/{NcSettingsInputText-MPi6a3Yy.css → NcSettingsInputText-w-LprdjK.css} +0 -0
- /package/dist/assets/{NcSettingsSection-PEWm0eeL.css → NcSettingsSection-8RabR54v.css} +0 -0
- /package/dist/assets/{NcSettingsSelectGroup-_Jpb8yE3.css → NcSettingsSelectGroup-D8mlvzIT.css} +0 -0
- /package/dist/assets/{NcTextArea-4rVwq6GK.css → NcTextArea-DitXCroY.css} +0 -0
- /package/dist/assets/{NcUserBubble-jjzI5imn.css → NcUserBubble-COPMjmKa.css} +0 -0
- /package/dist/assets/{NcUserStatusIcon-62u43_6P.css → NcUserStatusIcon-Dra7jf_o.css} +0 -0
- /package/dist/assets/{Tooltip-wOLIuz0Q.css → Tooltip-DA4si7PR.css} +0 -0
- /package/dist/chunks/{GenRandomId-ULxaMkkr.cjs → GenRandomId-B2O1GMbH.cjs} +0 -0
- /package/dist/chunks/{GenRandomId-VodkdWbp.mjs → GenRandomId-BW3iYFf9.mjs} +0 -0
- /package/dist/chunks/{Linkify-V7PfCeZ8.mjs → Linkify-BaDLLFxP.mjs} +0 -0
- /package/dist/chunks/{Linkify-f3s3nAe_.cjs → Linkify-Dola0NBa.cjs} +0 -0
- /package/dist/chunks/{_plugin-vue2_normalizer-u6G_3nkj.mjs → _plugin-vue2_normalizer-Bj5bLKV4.mjs} +0 -0
- /package/dist/chunks/{_plugin-vue2_normalizer-DCfUPqga.cjs → _plugin-vue2_normalizer-GXKvuwrq.cjs} +0 -0
- /package/dist/chunks/{actionGlobal-fRayfdEK.mjs → actionGlobal-D49NL940.mjs} +0 -0
- /package/dist/chunks/{actionGlobal-SGFis4LZ.cjs → actionGlobal-DL1VaQzF.cjs} +0 -0
- /package/dist/chunks/{autolink-oKM43mOC.mjs → autolink-BtgUDDdk.mjs} +0 -0
- /package/dist/chunks/{autolink-gVCgJtXh.cjs → autolink-D0rLUkqm.cjs} +0 -0
- /package/dist/chunks/{focusTrap-Py2bQ9-r.mjs → focusTrap-Be9GEB5C.mjs} +0 -0
- /package/dist/chunks/{focusTrap-n3H52LOw.cjs → focusTrap-xauhLvvr.cjs} +0 -0
- /package/dist/chunks/{logger-3m1eQsSo.mjs → logger-C7qcfVW8.mjs} +0 -0
- /package/dist/chunks/{logger-G6OKp5ly.cjs → logger-D9RRY4er.cjs} +0 -0
package/dist/chunks/{NcAppNavigationSettings-qW2qjrEY.cjs → NcAppNavigationSettings-CBeUiVLk.cjs}
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
require('../assets/NcMentionBubble-
|
|
2
|
-
require('../assets/NcAppNavigationSettings-
|
|
1
|
+
require('../assets/NcMentionBubble-BhiXWJv8.css');
|
|
2
|
+
require('../assets/NcAppNavigationSettings-nH_pGlKc.css');
|
|
3
3
|
"use strict";
|
|
4
|
-
const i = require("./_l10n-
|
|
4
|
+
const i = require("./_l10n-B986q8RC.cjs"), a = require("../Mixins/clickOutsideOptions.cjs");
|
|
5
5
|
require("../Composables/useIsFullscreen.cjs");
|
|
6
6
|
require("../Composables/useIsMobile.cjs");
|
|
7
7
|
require("@nextcloud/router");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
const s = require("./_plugin-vue2_normalizer-
|
|
9
|
+
const s = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs");
|
|
10
10
|
require("linkify-string");
|
|
11
11
|
require("escape-html");
|
|
12
12
|
require("striptags");
|
|
@@ -15,7 +15,7 @@ require("@nextcloud/auth");
|
|
|
15
15
|
require("@nextcloud/axios");
|
|
16
16
|
require("@nextcloud/capabilities");
|
|
17
17
|
const o = require("@vueuse/components");
|
|
18
|
-
i.register(i.
|
|
18
|
+
i.register(i.t39);
|
|
19
19
|
const l = {
|
|
20
20
|
name: "CogIcon",
|
|
21
21
|
emits: ["click"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppNavigationSettings-
|
|
1
|
+
{"version":3,"file":"NcAppNavigationSettings-CBeUiVLk.cjs","sources":["../../node_modules/vue-material-design-icons/Cog.vue","../../src/components/NcAppNavigationSettings/NcAppNavigationSettings.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-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=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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) 2018 Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @author Christoph Wurst <christoph@winzerhof-wurst.at>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<div id=\"app-settings\"\n\t\tv-click-outside=\"clickOutsideConfig\"\n\t\t:class=\"{ open }\">\n\t\t<div id=\"app-settings__header\">\n\t\t\t<button class=\"settings-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t:aria-expanded=\"open ? 'true' : 'false'\"\n\t\t\t\taria-controls=\"app-settings__content\"\n\t\t\t\t@click=\"toggleMenu\">\n\t\t\t\t<Cog class=\"settings-button__icon\" :size=\"20\" />\n\t\t\t\t<span class=\"settings-button__label\">{{ name }}</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<Transition name=\"slide-up\">\n\t\t\t<div v-show=\"open\" id=\"app-settings__content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</Transition>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { clickOutsideOptions } from '../../mixins/index.js'\n\nimport Cog from 'vue-material-design-icons/Cog.vue'\n\nimport { vOnClickOutside as ClickOutside } from '@vueuse/components'\n\nexport default {\n\tdirectives: {\n\t\tClickOutside,\n\t},\n\tcomponents: {\n\t\tCog,\n\t},\n\tmixins: [\n\t\tclickOutsideOptions,\n\t],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: t('Settings'),\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tclickOutsideConfig() {\n\t\t\treturn [\n\t\t\t\tthis.closeMenu,\n\t\t\t\tthis.clickOutsideOptions,\n\t\t\t]\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleMenu() {\n\t\t\tthis.open = !this.open\n\t\t},\n\t\tcloseMenu() {\n\t\t\tthis.open = false\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n#app-settings {\n\tmargin-top: auto;\n\tpadding: $app-navigation-settings-margin;\n\n\t&__header {\n\t\tbox-sizing: border-box;\n\t\tmargin: 0 $app-navigation-settings-margin $app-navigation-settings-margin $app-navigation-settings-margin;\n\n\t\t.settings-button {\n\t\t\tdisplay: flex;\n\t\t\tflex: 1 1 0;\n\t\t\theight: $clickable-area;\n\t\t\twidth: 100%;\n\t\t\tpadding: 0;\n\t\t\tmargin: 0;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbox-shadow: none;\n\t\t\tborder: 0;\n\t\t\tborder-radius: var(--border-radius-pill);\n\t\t\ttext-align: left;\n\t\t\tfont-weight: normal;\n\t\t\tfont-size: 100%;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tpadding-right: 14px;\n\t\t\tline-height: $clickable-area;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbackground-color: var(--color-background-hover);\n\t\t\t}\n\n\t\t\t&__icon {\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmin-width: $clickable-area;\n\t\t\t}\n\t\t\t&__label {\n\t\t\t\toverflow: hidden;\n\t\t\t\tmax-width: 100%;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: block;\n\t\tpadding: 10px;\n\n\t\t/* prevent scrolled contents from stopping too early */\n\t\tmargin-bottom: -$app-navigation-settings-margin;\n\n\t\t/* restrict height of settings and make scrollable */\n\t\tmax-height: 300px;\n\t\toverflow-y: auto;\n\t\tbox-sizing: border-box;\n\t}\n}\n\n.slide-up-leave-active,\n.slide-up-enter-active {\n\ttransition-duration: var(--animation-slow);\n\ttransition-property: max-height, padding;\n\toverflow-y: hidden !important;\n}\n\n.slide-up-enter,\n.slide-up-leave-to {\n\tmax-height: 0 !important;\n\tpadding: 0 10px !important;\n}\n\n</style>\n"],"names":["_sfc_main","ClickOutside","Cog","clickOutsideOptions","t"],"mappings":";;;;;;;;;;;;;;;;AAoBA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;qBCgBAA,IAAA;AAAA,EACA,YAAA;AAAA,IACA,cAAAC,EAAA;AAAA,EACA;AAAA,EACA,YAAA;AAAA,IACA,KAAAC;AAAA,EACA;AAAA,EACA,QAAA;AAAA,IACAC;AAAAA,EACA;AAAA,EACA,OAAA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAAC,EAAA,EAAA,UAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,OAAA;AACA,WAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,UAAA;AAAA,IACA,qBAAA;AACA,aAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA,IACA,aAAA;AACA,WAAA,OAAA,CAAA,KAAA;AAAA,IACA;AAAA,IACA,YAAA;AACA,WAAA,OAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]}
|
package/dist/chunks/{NcAppNavigationToggle-H-gUVQa_.mjs → NcAppNavigationToggle-BZxbkhCr.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import '../assets/NcAppNavigationToggle-
|
|
1
|
+
import '../assets/NcAppNavigationToggle-De8wq0JA.css';
|
|
2
2
|
import r from "../Components/NcButton.mjs";
|
|
3
|
-
import { r as s, x as o, a as l } from "./_l10n-
|
|
4
|
-
import { n as i } from "./_plugin-vue2_normalizer-
|
|
3
|
+
import { r as s, x as o, a as l } from "./_l10n-D8Scz3mH.mjs";
|
|
4
|
+
import { n as i } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
|
|
5
5
|
s(o);
|
|
6
6
|
const c = {
|
|
7
7
|
name: "MenuIcon",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppNavigationToggle-
|
|
1
|
+
{"version":3,"file":"NcAppNavigationToggle-BZxbkhCr.mjs","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 ? null : true\"\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 ? null : true\"\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\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\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\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\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","NcButton","MenuIcon","MenuOpenIcon","t"],"mappings":";;;;AAoBA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;qBChBAA,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;;;;;;;;;;;;;;;;qBCWAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,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,kBAAA,IAAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
|
package/dist/chunks/{NcAppNavigationToggle-mJ8JlXiA.cjs → NcAppNavigationToggle-DDChOnAq.cjs}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
require('../assets/NcAppNavigationToggle-
|
|
1
|
+
require('../assets/NcAppNavigationToggle-De8wq0JA.css');
|
|
2
2
|
"use strict";
|
|
3
|
-
const r = require("../Components/NcButton.cjs"), n = require("./_l10n-
|
|
3
|
+
const r = require("../Components/NcButton.cjs"), n = require("./_l10n-B986q8RC.cjs"), a = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs");
|
|
4
4
|
n.register(n.t17);
|
|
5
5
|
const o = {
|
|
6
6
|
name: "MenuIcon",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppNavigationToggle-
|
|
1
|
+
{"version":3,"file":"NcAppNavigationToggle-DDChOnAq.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 ? null : true\"\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 ? null : true\"\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\t/**\n\t\t * Tracks whether the toggle has been clicked or not.\n\t\t * If it has been clicked, switches between the different MenuIcons\n\t\t * and emits a boolean indicating its opened status\n\t\t */\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\t/**\n\t\t * Once the toggle has been clicked, emits the toggle status\n\t\t * so parent components can gauge the status of the navigation button\n\t\t */\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","NcButton","MenuIcon","MenuOpenIcon","t"],"mappings":";;;AAoBA,MAAAA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;qBChBAA,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;;;;;;;;;;;;;;;;qBCWAA,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,UAAAC;AAAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,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,EAAAA,EAAA,kBAAA,IAAAA,EAAA,EAAA,iBAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,mBAAA;AACA,WAAA,MAAA,eAAA,CAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import '../assets/NcAppSettingsDialog-
|
|
2
|
-
import { N as
|
|
3
|
-
import
|
|
4
|
-
import { useIsMobile as
|
|
5
|
-
import { r as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { n as
|
|
9
|
-
|
|
10
|
-
const
|
|
1
|
+
import '../assets/NcAppSettingsDialog-DR46jcRG.css';
|
|
2
|
+
import { N as f } from "./NcDialog-D6YSjidf.mjs";
|
|
3
|
+
import p from "../Components/NcVNodes.mjs";
|
|
4
|
+
import { useIsMobile as m } from "../Composables/useIsMobile.mjs";
|
|
5
|
+
import { r as _, l as v, a as S } from "./_l10n-D8Scz3mH.mjs";
|
|
6
|
+
import k from "debounce";
|
|
7
|
+
import N from "vue";
|
|
8
|
+
import { n as C } from "./_plugin-vue2_normalizer-Bj5bLKV4.mjs";
|
|
9
|
+
_(v);
|
|
10
|
+
const y = {
|
|
11
11
|
name: "NcAppSettingsDialog",
|
|
12
12
|
components: {
|
|
13
|
-
NcDialog:
|
|
14
|
-
NcVNodes:
|
|
13
|
+
NcDialog: f,
|
|
14
|
+
NcVNodes: p
|
|
15
15
|
},
|
|
16
16
|
provide() {
|
|
17
17
|
return {
|
|
@@ -59,7 +59,7 @@ const _ = {
|
|
|
59
59
|
emits: ["update:open"],
|
|
60
60
|
setup() {
|
|
61
61
|
return {
|
|
62
|
-
isMobile:
|
|
62
|
+
isMobile: m()
|
|
63
63
|
};
|
|
64
64
|
},
|
|
65
65
|
data() {
|
|
@@ -98,7 +98,7 @@ const _ = {
|
|
|
98
98
|
return !(this.isMobile || !this.showNavigation);
|
|
99
99
|
},
|
|
100
100
|
settingsNavigationAriaLabel() {
|
|
101
|
-
return
|
|
101
|
+
return S("Settings navigation");
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
104
|
updated() {
|
|
@@ -113,12 +113,18 @@ const _ = {
|
|
|
113
113
|
*/
|
|
114
114
|
registerSection(t, e, n) {
|
|
115
115
|
if (this.sections.some(({ id: i }) => t === i))
|
|
116
|
-
throw new Error(
|
|
117
|
-
this.sections.some(({ name: i }) => e === i) &&
|
|
116
|
+
throw new Error("Duplicate section id found: ".concat(t, ". Settings navigation sections must have unique section ids."));
|
|
117
|
+
this.sections.some(({ name: i }) => e === i) && N.util.warn("Duplicate section name found: ".concat(e, ". Settings navigation sections must have unique section names."));
|
|
118
118
|
const o = [...this.sections, { id: t, name: e, icon: n }];
|
|
119
119
|
this.sections = o.sort(({ id: i }, { id: s }) => {
|
|
120
|
-
const
|
|
121
|
-
|
|
120
|
+
const r = (h) => {
|
|
121
|
+
var a, c, d;
|
|
122
|
+
return (d = (c = (a = this.$slots.default) == null ? void 0 : a.findIndex) == null ? void 0 : c.call(a, (l) => {
|
|
123
|
+
var u, g;
|
|
124
|
+
return ((g = (u = l == null ? void 0 : l.componentOptions) == null ? void 0 : u.propsData) == null ? void 0 : g.id) === h;
|
|
125
|
+
})) != null ? d : -1;
|
|
126
|
+
};
|
|
127
|
+
return r(i) - r(s);
|
|
122
128
|
}), this.sections.length === 1 && (this.selectedSection = t);
|
|
123
129
|
},
|
|
124
130
|
/**
|
|
@@ -126,7 +132,8 @@ const _ = {
|
|
|
126
132
|
* @param {string} id The section ID
|
|
127
133
|
*/
|
|
128
134
|
unregisterSection(t) {
|
|
129
|
-
|
|
135
|
+
var e, n;
|
|
136
|
+
this.sections = this.sections.filter(({ id: o }) => t !== o), this.selectedSection === t && (this.selectedSection = (n = (e = this.sections[0]) == null ? void 0 : e.id) != null ? n : "");
|
|
130
137
|
},
|
|
131
138
|
/**
|
|
132
139
|
* Scrolls the content to the selected settings section.absolute
|
|
@@ -148,12 +155,12 @@ const _ = {
|
|
|
148
155
|
this.linkClicked || this.unfocusNavigationItem();
|
|
149
156
|
},
|
|
150
157
|
// Remove selected section once the user starts scrolling
|
|
151
|
-
unfocusNavigationItem:
|
|
158
|
+
unfocusNavigationItem: k(function() {
|
|
152
159
|
this.selectedSection = "", document.activeElement.className.includes("navigation-list__link") && document.activeElement.blur();
|
|
153
160
|
}, 300)
|
|
154
161
|
}
|
|
155
162
|
};
|
|
156
|
-
var
|
|
163
|
+
var b = function() {
|
|
157
164
|
var e = this, n = e._self._c;
|
|
158
165
|
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
166
|
return [o ? e._e() : n("ul", { staticClass: "navigation-list" }, e._l(e.sections, function(i) {
|
|
@@ -161,24 +168,24 @@ var S = function() {
|
|
|
161
168
|
"navigation-list__link": !0,
|
|
162
169
|
"navigation-list__link--active": i.id === e.selectedSection,
|
|
163
170
|
"navigation-list__link--icon": e.hasNavigationIcons
|
|
164
|
-
}, attrs: { "aria-current":
|
|
171
|
+
}, attrs: { "aria-current": "".concat(i.id === e.selectedSection), href: "#settings-section_".concat(i.id), tabindex: "0" }, on: { click: function(s) {
|
|
165
172
|
return s.preventDefault(), e.handleSettingsNavigationClick(i.id);
|
|
166
173
|
}, keydown: function(s) {
|
|
167
174
|
return !s.type.indexOf("key") && e._k(s.keyCode, "enter", 13, s.key, "Enter") ? null : e.handleSettingsNavigationClick(i.id);
|
|
168
175
|
} } }, [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
176
|
}), 0)];
|
|
170
177
|
} } : null], null, !0) }, "NcDialog", e.dialogProperties, !1), [n("div", { ref: "settingsScroller" }, [e._t("default")], 2)]) : e._e();
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
178
|
+
}, E = [], D = /* @__PURE__ */ C(
|
|
179
|
+
y,
|
|
180
|
+
b,
|
|
181
|
+
E,
|
|
175
182
|
!1,
|
|
176
183
|
null,
|
|
177
184
|
"3e0025d1",
|
|
178
185
|
null,
|
|
179
186
|
null
|
|
180
187
|
);
|
|
181
|
-
const
|
|
188
|
+
const O = D.exports;
|
|
182
189
|
export {
|
|
183
|
-
|
|
190
|
+
O as N
|
|
184
191
|
};
|
package/dist/chunks/{NcAppSettingsDialog-JAKe849o.cjs.map → NcAppSettingsDialog-DeFBTD2J.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppSettingsDialog-JAKe849o.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 &__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\t\tpadding-inline: 16px;\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@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\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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"}
|
|
1
|
+
{"version":3,"file":"NcAppSettingsDialog-DeFBTD2J.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 &__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\t\tpadding-inline: 16px;\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@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcDialog","NcVNodes","useIsMobile","icon","t","id","name","otherId","otherName","Vue","newSections","idA","idB","indexOf","_c","_b","_a","vnode","item","isOpen","debounce"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
require('../assets/NcAppSettingsDialog-
|
|
1
|
+
require('../assets/NcAppSettingsDialog-DR46jcRG.css');
|
|
2
2
|
"use strict";
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const
|
|
3
|
+
const _ = require("./NcDialog-C6nYgBDF.cjs"), v = require("../Components/NcVNodes.cjs"), m = require("../Composables/useIsMobile.cjs"), r = require("./_l10n-B986q8RC.cjs"), S = require("debounce"), N = require("vue"), k = require("./_plugin-vue2_normalizer-GXKvuwrq.cjs"), f = (t) => t && t.__esModule ? t : { default: t }, C = /* @__PURE__ */ f(S), b = /* @__PURE__ */ f(N);
|
|
4
|
+
r.register(r.t40);
|
|
5
|
+
const y = {
|
|
6
6
|
name: "NcAppSettingsDialog",
|
|
7
7
|
components: {
|
|
8
|
-
NcDialog:
|
|
9
|
-
NcVNodes:
|
|
8
|
+
NcDialog: _.NcDialog,
|
|
9
|
+
NcVNodes: v
|
|
10
10
|
},
|
|
11
11
|
provide() {
|
|
12
12
|
return {
|
|
@@ -54,7 +54,7 @@ const S = {
|
|
|
54
54
|
emits: ["update:open"],
|
|
55
55
|
setup() {
|
|
56
56
|
return {
|
|
57
|
-
isMobile:
|
|
57
|
+
isMobile: m.useIsMobile()
|
|
58
58
|
};
|
|
59
59
|
},
|
|
60
60
|
data() {
|
|
@@ -93,7 +93,7 @@ const S = {
|
|
|
93
93
|
return !(this.isMobile || !this.showNavigation);
|
|
94
94
|
},
|
|
95
95
|
settingsNavigationAriaLabel() {
|
|
96
|
-
return
|
|
96
|
+
return r.t("Settings navigation");
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
updated() {
|
|
@@ -108,12 +108,18 @@ const S = {
|
|
|
108
108
|
*/
|
|
109
109
|
registerSection(t, e, n) {
|
|
110
110
|
if (this.sections.some(({ id: i }) => t === i))
|
|
111
|
-
throw new Error(
|
|
112
|
-
this.sections.some(({ name: i }) => e === i) &&
|
|
111
|
+
throw new Error("Duplicate section id found: ".concat(t, ". Settings navigation sections must have unique section ids."));
|
|
112
|
+
this.sections.some(({ name: i }) => e === i) && b.default.util.warn("Duplicate section name found: ".concat(e, ". Settings navigation sections must have unique section names."));
|
|
113
113
|
const o = [...this.sections, { id: t, name: e, icon: n }];
|
|
114
114
|
this.sections = o.sort(({ id: i }, { id: s }) => {
|
|
115
|
-
const
|
|
116
|
-
|
|
115
|
+
const c = (p) => {
|
|
116
|
+
var a, u, d;
|
|
117
|
+
return (d = (u = (a = this.$slots.default) == null ? void 0 : a.findIndex) == null ? void 0 : u.call(a, (l) => {
|
|
118
|
+
var g, h;
|
|
119
|
+
return ((h = (g = l == null ? void 0 : l.componentOptions) == null ? void 0 : g.propsData) == null ? void 0 : h.id) === p;
|
|
120
|
+
})) != null ? d : -1;
|
|
121
|
+
};
|
|
122
|
+
return c(i) - c(s);
|
|
117
123
|
}), this.sections.length === 1 && (this.selectedSection = t);
|
|
118
124
|
},
|
|
119
125
|
/**
|
|
@@ -121,7 +127,8 @@ const S = {
|
|
|
121
127
|
* @param {string} id The section ID
|
|
122
128
|
*/
|
|
123
129
|
unregisterSection(t) {
|
|
124
|
-
|
|
130
|
+
var e, n;
|
|
131
|
+
this.sections = this.sections.filter(({ id: o }) => t !== o), this.selectedSection === t && (this.selectedSection = (n = (e = this.sections[0]) == null ? void 0 : e.id) != null ? n : "");
|
|
125
132
|
},
|
|
126
133
|
/**
|
|
127
134
|
* Scrolls the content to the selected settings section.absolute
|
|
@@ -143,12 +150,12 @@ const S = {
|
|
|
143
150
|
this.linkClicked || this.unfocusNavigationItem();
|
|
144
151
|
},
|
|
145
152
|
// Remove selected section once the user starts scrolling
|
|
146
|
-
unfocusNavigationItem:
|
|
153
|
+
unfocusNavigationItem: C.default(function() {
|
|
147
154
|
this.selectedSection = "", document.activeElement.className.includes("navigation-list__link") && document.activeElement.blur();
|
|
148
155
|
}, 300)
|
|
149
156
|
}
|
|
150
157
|
};
|
|
151
|
-
var
|
|
158
|
+
var D = function() {
|
|
152
159
|
var e = this, n = e._self._c;
|
|
153
160
|
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 }) {
|
|
154
161
|
return [o ? e._e() : n("ul", { staticClass: "navigation-list" }, e._l(e.sections, function(i) {
|
|
@@ -156,22 +163,22 @@ var N = function() {
|
|
|
156
163
|
"navigation-list__link": !0,
|
|
157
164
|
"navigation-list__link--active": i.id === e.selectedSection,
|
|
158
165
|
"navigation-list__link--icon": e.hasNavigationIcons
|
|
159
|
-
}, attrs: { "aria-current":
|
|
166
|
+
}, attrs: { "aria-current": "".concat(i.id === e.selectedSection), href: "#settings-section_".concat(i.id), tabindex: "0" }, on: { click: function(s) {
|
|
160
167
|
return s.preventDefault(), e.handleSettingsNavigationClick(i.id);
|
|
161
168
|
}, keydown: function(s) {
|
|
162
169
|
return !s.type.indexOf("key") && e._k(s.keyCode, "enter", 13, s.key, "Enter") ? null : e.handleSettingsNavigationClick(i.id);
|
|
163
170
|
} } }, [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) + " ")])])]);
|
|
164
171
|
}), 0)];
|
|
165
172
|
} } : null], null, !0) }, "NcDialog", e.dialogProperties, !1), [n("div", { ref: "settingsScroller" }, [e._t("default")], 2)]) : e._e();
|
|
166
|
-
},
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
173
|
+
}, q = [], E = /* @__PURE__ */ k.normalizeComponent(
|
|
174
|
+
y,
|
|
175
|
+
D,
|
|
176
|
+
q,
|
|
170
177
|
!1,
|
|
171
178
|
null,
|
|
172
179
|
"3e0025d1",
|
|
173
180
|
null,
|
|
174
181
|
null
|
|
175
182
|
);
|
|
176
|
-
const
|
|
177
|
-
exports.NcAppSettingsDialog =
|
|
183
|
+
const I = E.exports;
|
|
184
|
+
exports.NcAppSettingsDialog = I;
|
package/dist/chunks/{NcAppSettingsDialog-Sra5JJSN.mjs.map → NcAppSettingsDialog-EUys9Os_.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcAppSettingsDialog-Sra5JJSN.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 &__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\t\tpadding-inline: 16px;\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@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\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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"}
|
|
1
|
+
{"version":3,"file":"NcAppSettingsDialog-EUys9Os_.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 &__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\t\tpadding-inline: 16px;\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@media only screen and (max-width: $breakpoint-small-mobile) {\n\t.app-settings {\n\t\t:deep .dialog__name {\n\t\t\tpadding-inline-start: 16px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","NcDialog","NcVNodes","useIsMobile","icon","t","id","name","otherId","otherName","Vue","newSections","idA","idB","indexOf","_c","_b","_a","vnode","item","isOpen","debounce"],"mappings":"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"}
|