@nextcloud/vue 9.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/dist/assets/{NcAppContent-BC1UrvXW.css → NcAppContent-r_MkL84m.css} +23 -23
- package/dist/assets/{NcAppSettingsDialog-Csh7L4r1.css → NcAppSettingsDialog-Dcv235GW.css} +10 -10
- package/dist/assets/{NcAppSettingsSection-qx2jbXXG.css → NcAppSettingsSection-DIVdlb0g.css} +3 -3
- package/dist/assets/NcAppSettingsSectionShortcuts-CRO4RakN.css +6 -0
- package/dist/assets/{NcAppSidebar-RFBRejzg.css → NcAppSidebar-aGrIJ9f6.css} +119 -83
- package/dist/assets/{NcAvatar-CtFA4-sC.css → NcAvatar-BvgSFJqT.css} +24 -24
- package/dist/assets/{NcChip-Cjdo3xPB.css → NcChip-T6s7HqeL.css} +23 -11
- package/dist/assets/{NcColorPicker-DtGrgPdj.css → NcColorPicker-CO_Jq2Ow.css} +31 -31
- package/dist/assets/{NcEmptyContent-q-geAf0w.css → NcEmptyContent-CLjlZ-UT.css} +9 -9
- package/dist/assets/NcHotkey-QklVKSyr.css +44 -0
- package/dist/assets/NcHotkeyList-B42a0d8Z.css +9 -0
- package/dist/assets/{NcInputField-DRt2ahWd.css → NcInputField-D5SEE7D0.css} +40 -40
- package/dist/assets/{NcPasswordField-CrBkaH78.css → NcPasswordField-CMuvrdVC.css} +2 -2
- package/dist/assets/{NcRadioGroupButton-6mf16D0h.css → NcRadioGroupButton-qxDfssOp.css} +13 -13
- package/dist/assets/{NcRelatedResourcesPanel-BVdRCi64.css → NcRelatedResourcesPanel-CZDNe7DZ.css} +14 -14
- package/dist/assets/{NcRichContenteditable-zvOx7ivB.css → NcRichContenteditable-CPbTS8xJ.css} +11 -11
- package/dist/assets/{NcTextArea-D7H1UNAd.css → NcTextArea-7C2JBozT.css} +25 -25
- package/dist/assets/{NcUserStatusIcon-D8HqS9GC.css → NcUserStatusIcon-B3aHoBAd.css} +4 -4
- package/dist/assets/{referencePickerModal-B4dORP5P.css → referencePickerModal-DWMAMaU3.css} +6 -6
- package/dist/chunks/{NcActionButtonGroup-BVFZ42sR.mjs → NcActionButtonGroup-EyWT8pe-.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-BVFZ42sR.mjs.map → NcActionButtonGroup-EyWT8pe-.mjs.map} +1 -1
- package/dist/chunks/{NcActionInput-CYkUDMIE.mjs → NcActionInput-BaHXAvFo.mjs} +6 -6
- package/dist/chunks/{NcActionInput-CYkUDMIE.mjs.map → NcActionInput-BaHXAvFo.mjs.map} +1 -1
- package/dist/chunks/{NcActions-DSYz-dfd.mjs → NcActions-C-E6BGfZ.mjs} +2 -2
- package/dist/chunks/{NcActions-DSYz-dfd.mjs.map → NcActions-C-E6BGfZ.mjs.map} +1 -1
- package/dist/chunks/{NcAppContent-M-ffnIS0.mjs → NcAppContent-Qg8YBJa7.mjs} +19 -21
- package/dist/chunks/NcAppContent-Qg8YBJa7.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-B1kSbOL2.mjs → NcAppNavigation-BWd7-5H0.mjs} +2 -2
- package/dist/chunks/{NcAppNavigation-B1kSbOL2.mjs.map → NcAppNavigation-BWd7-5H0.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-BEJgQZnC.mjs → NcAppNavigationCaption-wzGkHPZs.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-BEJgQZnC.mjs.map → NcAppNavigationCaption-wzGkHPZs.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-BQn3eApT.mjs → NcAppNavigationItem-Cz_lEp5a.mjs} +5 -5
- package/dist/chunks/{NcAppNavigationItem-BQn3eApT.mjs.map → NcAppNavigationItem-Cz_lEp5a.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-_Pc4DgGz.mjs → NcAppNavigationNewItem-D-JsQf87.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationNewItem-_Pc4DgGz.mjs.map → NcAppNavigationNewItem-D-JsQf87.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-DhpYmUvR.mjs → NcAppNavigationSearch-BbXky-Un.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationSearch-DhpYmUvR.mjs.map → NcAppNavigationSearch-BbXky-Un.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-C7wCP68k.mjs → NcAppNavigationSettings-CgRg-AbU.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationSettings-C7wCP68k.mjs.map → NcAppNavigationSettings-CgRg-AbU.mjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-CAVz10A2.mjs → NcAppSettingsDialog-BZzj8jNU.mjs} +21 -12
- package/dist/chunks/NcAppSettingsDialog-BZzj8jNU.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsSection-urZiy9aH.mjs +54 -0
- package/dist/chunks/NcAppSettingsSection-urZiy9aH.mjs.map +1 -0
- package/dist/chunks/NcAppSettingsSectionShortcuts-CK8lXUxx.mjs +38 -0
- package/dist/chunks/NcAppSettingsSectionShortcuts-CK8lXUxx.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-DhIHNv38.mjs → NcAppSidebar-Du9lcG-G.mjs} +108 -68
- package/dist/chunks/NcAppSidebar-Du9lcG-G.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-np0umB0M.mjs → NcAvatar-CZVJYWdr.mjs} +6 -6
- package/dist/chunks/NcAvatar-CZVJYWdr.mjs.map +1 -0
- package/dist/chunks/NcBlurHash-BiFktE2N.mjs.map +1 -1
- package/dist/chunks/{NcBreadcrumb-Owk00UZe.mjs → NcBreadcrumb-CkUvC1g0.mjs} +2 -2
- package/dist/chunks/{NcBreadcrumb-Owk00UZe.mjs.map → NcBreadcrumb-CkUvC1g0.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-DCC65VBU.mjs → NcBreadcrumbs-Dx6ylWcp.mjs} +3 -3
- package/dist/chunks/{NcBreadcrumbs-DCC65VBU.mjs.map → NcBreadcrumbs-Dx6ylWcp.mjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-CrehrqO8.mjs → NcCheckboxRadioSwitch-Da3UT5om.mjs} +2 -2
- package/dist/chunks/{NcCheckboxRadioSwitch-CrehrqO8.mjs.map → NcCheckboxRadioSwitch-Da3UT5om.mjs.map} +1 -1
- package/dist/chunks/{NcChip-DJYTA-9o.mjs → NcChip-CIjgDRrf.mjs} +5 -5
- package/dist/chunks/NcChip-CIjgDRrf.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-C3azs_bD.mjs → NcCollectionList-DqNsOT7P.mjs} +5 -5
- package/dist/chunks/{NcCollectionList-C3azs_bD.mjs.map → NcCollectionList-DqNsOT7P.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-CUgXEX1F.mjs → NcColorPicker-yoZ5ZWC3.mjs} +5 -5
- package/dist/chunks/NcColorPicker-yoZ5ZWC3.mjs.map +1 -0
- package/dist/chunks/{NcContent-D8hwdcWT.mjs → NcContent-DxKYTMfp.mjs} +2 -2
- package/dist/chunks/{NcContent-D8hwdcWT.mjs.map → NcContent-DxKYTMfp.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-BEUtfCxs.mjs → NcDashboardWidget-Bu7bWoUK.mjs} +6 -6
- package/dist/chunks/{NcDashboardWidget-BEUtfCxs.mjs.map → NcDashboardWidget-Bu7bWoUK.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-BPw9-irg.mjs → NcDashboardWidgetItem-CJg0lrlx.mjs} +3 -3
- package/dist/chunks/{NcDashboardWidgetItem-BPw9-irg.mjs.map → NcDashboardWidgetItem-CJg0lrlx.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePicker-DPFq8Xcd.mjs → NcDateTimePicker-DOwSKf9T.mjs} +3 -3
- package/dist/chunks/{NcDateTimePicker-DPFq8Xcd.mjs.map → NcDateTimePicker-DOwSKf9T.mjs.map} +1 -1
- package/dist/chunks/{NcDateTimePickerNative-BXcWNyR4.mjs → NcDateTimePickerNative-BSKXbwuA.mjs} +2 -2
- package/dist/chunks/{NcDateTimePickerNative-BXcWNyR4.mjs.map → NcDateTimePickerNative-BSKXbwuA.mjs.map} +1 -1
- package/dist/chunks/{NcDialog-CdAQQLxt.mjs → NcDialog-BgzJN2XT.mjs} +3 -3
- package/dist/chunks/{NcDialog-CdAQQLxt.mjs.map → NcDialog-BgzJN2XT.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Cibg1sIr.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs} +2 -2
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-Cibg1sIr.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-D9ClaBcS.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-B7wsWhTp.mjs → NcEmojiPicker-CwR_8bCR.mjs} +6 -6
- package/dist/chunks/{NcEmojiPicker-B7wsWhTp.mjs.map → NcEmojiPicker-CwR_8bCR.mjs.map} +1 -1
- package/dist/chunks/{NcEmptyContent-BdOezubv.mjs → NcEmptyContent-B8-90BSI.mjs} +25 -19
- package/dist/chunks/NcEmptyContent-B8-90BSI.mjs.map +1 -0
- package/dist/chunks/NcHotkey-V6s3DXUs.mjs +61 -0
- package/dist/chunks/NcHotkey-V6s3DXUs.mjs.map +1 -0
- package/dist/chunks/NcHotkeyList-Ck87UwvW.mjs +42 -0
- package/dist/chunks/NcHotkeyList-Ck87UwvW.mjs.map +1 -0
- package/dist/chunks/{NcInputConfirmCancel-CeWaIZeu.mjs → NcInputConfirmCancel-Zkh97f-3.mjs} +2 -2
- package/dist/chunks/{NcInputConfirmCancel-CeWaIZeu.mjs.map → NcInputConfirmCancel-Zkh97f-3.mjs.map} +1 -1
- package/dist/chunks/{NcInputField-BYFjEj7Z.mjs → NcInputField-By_D1kDJ.mjs} +12 -4
- package/dist/chunks/NcInputField-By_D1kDJ.mjs.map +1 -0
- package/dist/chunks/{NcKbd-u-dn94gy.mjs → NcKbd-CyqxbpJJ.mjs} +2 -2
- package/dist/chunks/{NcKbd-u-dn94gy.mjs.map → NcKbd-CyqxbpJJ.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-DoZ4r5-c.mjs → NcListItem-z4qAtAqe.mjs} +2 -2
- package/dist/chunks/{NcListItem-DoZ4r5-c.mjs.map → NcListItem-z4qAtAqe.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-CLd5HmTk.mjs → NcListItemIcon-BVr_U7S4.mjs} +2 -2
- package/dist/chunks/{NcListItemIcon-CLd5HmTk.mjs.map → NcListItemIcon-BVr_U7S4.mjs.map} +1 -1
- package/dist/chunks/{NcModal-B61_8i83.mjs → NcModal-CvHjwuUy.mjs} +4 -4
- package/dist/chunks/{NcModal-B61_8i83.mjs.map → NcModal-CvHjwuUy.mjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-CXp65fyE.mjs → NcPasswordField-DroBJzYE.mjs} +5 -5
- package/dist/chunks/NcPasswordField-DroBJzYE.mjs.map +1 -0
- package/dist/chunks/NcPopover-C-MTaPCs.mjs.map +1 -1
- package/dist/chunks/{NcRadioGroupButton-C4BDgB0X.mjs → NcRadioGroupButton-BNydXurR.mjs} +7 -7
- package/dist/chunks/{NcRadioGroupButton-C4BDgB0X.mjs.map → NcRadioGroupButton-BNydXurR.mjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-Kx5Uw_k4.mjs → NcRelatedResourcesPanel-1oVpr5Oh.mjs} +6 -6
- package/dist/chunks/NcRelatedResourcesPanel-1oVpr5Oh.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-bVKzNfXT.mjs → NcRichContenteditable-D-GPJR9c.mjs} +14 -14
- package/dist/chunks/NcRichContenteditable-D-GPJR9c.mjs.map +1 -0
- package/dist/chunks/{NcRichText-Dht_wH3t.mjs → NcRichText-CETsOVBU.mjs} +3 -3
- package/dist/chunks/{NcRichText-Dht_wH3t.mjs.map → NcRichText-CETsOVBU.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-CVm-XUF0.mjs → NcSelect-BUPzYWtk.mjs} +2 -2
- package/dist/chunks/{NcSelect-CVm-XUF0.mjs.map → NcSelect-BUPzYWtk.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-DlEQlAe1.mjs → NcSelectTags-Cu7fqEPC.mjs} +3 -3
- package/dist/chunks/NcSelectTags-Cu7fqEPC.mjs.map +1 -0
- package/dist/chunks/{NcSelectUsers-DQVO0hcf.mjs → NcSelectUsers-C3w6sjP5.mjs} +3 -3
- package/dist/chunks/{NcSelectUsers-DQVO0hcf.mjs.map → NcSelectUsers-C3w6sjP5.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-DiUv-jCU.mjs → NcSettingsSection-DFav6ob5.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-DiUv-jCU.mjs.map → NcSettingsSection-DFav6ob5.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-D7QUg85q.mjs → NcSettingsSelectGroup-DOiWF5XH.mjs} +4 -4
- package/dist/chunks/{NcSettingsSelectGroup-D7QUg85q.mjs.map → NcSettingsSelectGroup-DOiWF5XH.mjs.map} +1 -1
- package/dist/chunks/{NcTextArea-f6VqBxce.mjs → NcTextArea-CKK_gfIE.mjs} +3 -3
- package/dist/chunks/NcTextArea-CKK_gfIE.mjs.map +1 -0
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BrVEwz3B.mjs → NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs} +3 -3
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BrVEwz3B.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-DVAnIMOA.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-6KhkTGnq.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs} +3 -3
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-6KhkTGnq.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-C2YnFWvf.mjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-ndaFuDRG.mjs → NcUserBubble-CM66IyhS.mjs} +2 -2
- package/dist/chunks/{NcUserBubble-ndaFuDRG.mjs.map → NcUserBubble-CM66IyhS.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-PmjvUVMB.mjs → NcUserStatusIcon-DWB8QUZh.mjs} +4 -4
- package/dist/chunks/{NcUserStatusIcon-PmjvUVMB.mjs.map → NcUserStatusIcon-DWB8QUZh.mjs.map} +1 -1
- package/dist/chunks/{_l10n-DbErv0fW.mjs → _l10n-YZMLsK4O.mjs} +44 -44
- package/dist/chunks/_l10n-YZMLsK4O.mjs.map +1 -0
- package/dist/chunks/autolink-U5pBzLgI.mjs.map +1 -1
- package/dist/chunks/{colors-C52haAK_.mjs → colors-DhEYXS0_.mjs} +2 -2
- package/dist/chunks/{colors-C52haAK_.mjs.map → colors-DhEYXS0_.mjs.map} +1 -1
- package/dist/chunks/customPickerElements-4pQTZUnk.mjs.map +1 -1
- package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -1
- package/dist/chunks/{referencePickerModal-CWsskZ5O.mjs → referencePickerModal-CseuhGwX.mjs} +11 -11
- package/dist/chunks/referencePickerModal-CseuhGwX.mjs.map +1 -0
- package/dist/chunks/useAppSettingsDialog-Dn48dw1k.mjs.map +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcAppContent/NcAppContent.vue.d.ts +0 -3
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +1 -0
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/useAppSettingsDialog.d.ts +3 -2
- package/dist/components/NcAppSettingsSection/NcAppSettingsSection.vue.d.ts +32 -37
- package/dist/components/NcAppSettingsSection/index.d.ts +4 -0
- package/dist/components/NcAppSettingsSection/index.mjs +1 -1
- package/dist/components/NcAppSettingsSectionShortcuts/NcAppSettingsSectionShortcuts.vue.d.ts +26 -0
- package/dist/components/NcAppSettingsSectionShortcuts/index.d.ts +1 -0
- package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +5 -0
- package/dist/components/NcAppSettingsSectionShortcuts/index.mjs.map +1 -0
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +13 -18
- package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +13 -18
- package/dist/components/NcAppSidebar/NcAppSidebarTabsButton.vue.d.ts +16 -0
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/NcChip.vue.d.ts +2 -2
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcEmptyContent/index.mjs +1 -1
- package/dist/components/NcHotkey/NcHotkey.vue.d.ts +44 -0
- package/dist/components/NcHotkey/index.d.ts +1 -0
- package/dist/components/NcHotkey/index.mjs +5 -0
- package/dist/components/NcHotkey/index.mjs.map +1 -0
- package/dist/components/NcHotkeyList/NcHotkeyList.vue.d.ts +32 -0
- package/dist/components/NcHotkeyList/index.d.ts +1 -0
- package/dist/components/NcHotkeyList/index.mjs +5 -0
- package/dist/components/NcHotkeyList/index.mjs.map +1 -0
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcKbd/index.mjs +1 -1
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcRadioGroupButton/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +1 -1
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/index.mjs +3 -3
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextArea/index.mjs +1 -1
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/index.mjs +1 -1
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/components/index.d.ts +4 -1
- package/dist/composables/useFormatDateTime/index.mjs +1 -1
- package/dist/functions/contactsMenu/index.mjs.map +1 -1
- package/dist/functions/reference/index.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs +3 -3
- package/dist/functions/usernameToColor/index.mjs.map +1 -1
- package/dist/index.mjs +126 -120
- package/dist/index.mjs.map +1 -1
- package/dist/utils/logger.d.ts +1 -2
- package/package.json +21 -21
- package/dist/chunks/NcAppContent-M-ffnIS0.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-CAVz10A2.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsSection-BNTUyNUo.mjs +0 -75
- package/dist/chunks/NcAppSettingsSection-BNTUyNUo.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-DhIHNv38.mjs.map +0 -1
- package/dist/chunks/NcAvatar-np0umB0M.mjs.map +0 -1
- package/dist/chunks/NcChip-DJYTA-9o.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-CUgXEX1F.mjs.map +0 -1
- package/dist/chunks/NcEmptyContent-BdOezubv.mjs.map +0 -1
- package/dist/chunks/NcInputField-BYFjEj7Z.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-CXp65fyE.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-Kx5Uw_k4.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-bVKzNfXT.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-DlEQlAe1.mjs.map +0 -1
- package/dist/chunks/NcTextArea-f6VqBxce.mjs.map +0 -1
- package/dist/chunks/_l10n-DbErv0fW.mjs.map +0 -1
- package/dist/chunks/referencePickerModal-CWsskZ5O.mjs.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import '../assets/NcAppSettingsDialog-
|
|
2
|
-
import { defineComponent, mergeModels, useModel,
|
|
1
|
+
import '../assets/NcAppSettingsDialog-Dcv235GW.css';
|
|
2
|
+
import { defineComponent, mergeModels, useModel, provide, useTemplateRef, ref, computed, onBeforeUnmount, warn, createBlock, createCommentVNode, openBlock, unref, createSlots, withCtx, createElementVNode, renderSlot, createElementBlock, Fragment, renderList, withKeys, withModifiers, normalizeClass, toDisplayString } from "vue";
|
|
3
3
|
import debounce from "debounce";
|
|
4
|
-
import { N as NcDialog } from "./NcDialog-
|
|
4
|
+
import { N as NcDialog } from "./NcDialog-BgzJN2XT.mjs";
|
|
5
5
|
import { _ as _sfc_main$1 } from "./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
|
|
6
6
|
import { useIsMobile } from "../composables/useIsMobile/index.mjs";
|
|
7
|
-
import { r as register, a as t } from "./_l10n-
|
|
7
|
+
import { r as register, a as t } from "./_l10n-YZMLsK4O.mjs";
|
|
8
8
|
import { A as APP_SETTINGS_REGISTRATION_KEY } from "./useAppSettingsDialog-Dn48dw1k.mjs";
|
|
9
9
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
10
10
|
register();
|
|
@@ -33,7 +33,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
33
33
|
setup(__props) {
|
|
34
34
|
const open = useModel(__props, "open");
|
|
35
35
|
const props = __props;
|
|
36
|
-
const slots = useSlots();
|
|
37
36
|
provide(APP_SETTINGS_REGISTRATION_KEY, {
|
|
38
37
|
registerSection,
|
|
39
38
|
unregisterSection
|
|
@@ -51,6 +50,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
51
50
|
document.activeElement.blur();
|
|
52
51
|
}
|
|
53
52
|
}, 300);
|
|
53
|
+
const sectionsOrderMap = /* @__PURE__ */ new Map();
|
|
54
|
+
onBeforeUnmount(() => {
|
|
55
|
+
sectionsOrderMap.clear();
|
|
56
|
+
});
|
|
54
57
|
function handleSettingsNavigationClick(item) {
|
|
55
58
|
linkClicked.value = true;
|
|
56
59
|
document.getElementById("settings-section_" + item).scrollIntoView({
|
|
@@ -74,17 +77,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
74
77
|
unfocusNavigationItem();
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
|
-
function registerSection(id, name, icon) {
|
|
80
|
+
function registerSection(id, name, order, icon) {
|
|
78
81
|
if (registeredSections.value.some(({ id: otherId }) => id === otherId)) {
|
|
79
82
|
throw new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`);
|
|
80
83
|
}
|
|
81
84
|
if (registeredSections.value.some(({ name: otherName }) => name === otherName)) {
|
|
82
85
|
warn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`);
|
|
83
86
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
if (order !== void 0) {
|
|
88
|
+
sectionsOrderMap.set(id, order);
|
|
89
|
+
} else if (sectionsOrderMap.has(id)) {
|
|
90
|
+
order = sectionsOrderMap.get(id);
|
|
91
|
+
} else {
|
|
92
|
+
order = Math.max(0, ...sectionsOrderMap.values()) + 1;
|
|
93
|
+
sectionsOrderMap.set(id, order);
|
|
94
|
+
}
|
|
95
|
+
registeredSections.value = [...registeredSections.value, { id, name, order, icon }].sort(({ order: orderA }, { order: orderB }) => {
|
|
96
|
+
return orderA - orderB;
|
|
88
97
|
});
|
|
89
98
|
if (registeredSections.value.length === 1) {
|
|
90
99
|
selectedSection.value = id;
|
|
@@ -157,8 +166,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
157
166
|
};
|
|
158
167
|
}
|
|
159
168
|
});
|
|
160
|
-
const NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
169
|
+
const NcAppSettingsDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-69d0fb0e"]]);
|
|
161
170
|
export {
|
|
162
171
|
NcAppSettingsDialog as N
|
|
163
172
|
};
|
|
164
|
-
//# sourceMappingURL=NcAppSettingsDialog-
|
|
173
|
+
//# sourceMappingURL=NcAppSettingsDialog-BZzj8jNU.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcAppSettingsDialog-BZzj8jNU.mjs","sources":["../../src/components/NcAppSettingsDialog/NcAppSettingsDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot, VNode } from 'vue'\n\nimport debounce from 'debounce'\nimport { computed, onBeforeUnmount, provide, ref, useTemplateRef, warn } from 'vue'\nimport NcDialog from '../NcDialog/NcDialog.vue'\nimport NcVNodes from '../NcVNodes/NcVNodes.vue'\nimport { useIsMobile } from '../../composables/useIsMobile/index.ts'\nimport { t } from '../../l10n.ts'\nimport { APP_SETTINGS_REGISTRATION_KEY } from './useAppSettingsDialog.ts'\n\nexport interface IAppSettingsSection {\n\tid: string\n\tname: string\n\torder?: number\n\ticon?: VNode[]\n}\n\n/**\n * Determines the open / closed state of the modal\n */\nconst open = defineModel<boolean>('open', { required: true })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Shows the navigation on desktop if true\n\t */\n\tshowNavigation?: boolean\n\n\t/**\n\t * Selector for the popover container\n\t */\n\tcontainer?: string\n\n\t/**\n\t * Name of the settings\n\t */\n\tname?: string\n\n\t/**\n\t * Additional elements to add to the focus trap\n\t */\n\tadditionalTrapElements?: (string | HTMLElement)[]\n}>(), {\n\tcontainer: 'body',\n\tname: '',\n\tadditionalTrapElements: () => [],\n})\n\ndefineSlots<{\n\t/**\n\t * The NcAppSettingsSections\n\t */\n\tdefault?: Slot\n}>()\n\nprovide(APP_SETTINGS_REGISTRATION_KEY, {\n\tregisterSection,\n\tunregisterSection,\n})\n\nconst settingsScrollerElement = useTemplateRef('settingsScroller')\n\nconst isMobile = useIsMobile()\n\nconst selectedSection = ref('')\nconst linkClicked = ref(false)\nconst registeredSections = ref<IAppSettingsSection[]>([])\n\nconst hasNavigation = computed(() => !isMobile.value && props.showNavigation)\n\n/**\n * Check if one or more navigation entries provide icons\n */\nconst hasNavigationIcons = computed(() => registeredSections.value.some(({ icon }) => !!icon))\n\n/**\n * Remove selected section once the user starts scrolling\n */\nconst unfocusNavigationItem = debounce(() => {\n\tselectedSection.value = ''\n\tif (document.activeElement?.className.includes('navigation-list__link')) {\n\t\t(document.activeElement as HTMLElement).blur()\n\t}\n}, 300)\n\n/**\n * Fallback order map to keep track of section orders if not provided by child components\n */\nconst sectionsOrderMap = new Map()\nonBeforeUnmount(() => {\n\tsectionsOrderMap.clear()\n})\n\n/**\n * Scrolls the content to the selected settings section.absolute\n *\n * @param item - the ID of the section\n */\nfunction handleSettingsNavigationClick(item: string) {\n\tlinkClicked.value = true\n\tdocument.getElementById('settings-section_' + item)!.scrollIntoView({\n\t\tbehavior: 'smooth',\n\t\tinline: 'nearest',\n\t})\n\tselectedSection.value = item\n\tsetTimeout(() => {\n\t\tlinkClicked.value = false\n\t}, 1000)\n}\n\n/**\n * Reset the dialog state when closed to have a clean state if re-opened.\n *\n * @param isOpen - The new modal open state\n */\nfunction handleCloseModal(isOpen: boolean) {\n\tif (isOpen) {\n\t\treturn\n\t}\n\n\topen.value = false\n\t// reset the scrolling state if the modal is just hidden\n\tsettingsScrollerElement.value!.scrollTop = 0\n}\n\n/**\n * When scrolled manually we remove the focus from the navigation item.\n */\nfunction handleScroll() {\n\tif (open.value && !linkClicked.value) {\n\t\tunfocusNavigationItem()\n\t}\n}\n\n/**\n * Called when a new section is registered\n *\n * @param id - The section ID\n * @param name - The section name\n * @param order - Optional section order in navigation list\n * @param icon - Optional icon component\n */\nfunction registerSection(id: string, name: string, order?: number, icon?: VNode[]) {\n\t// Check for the uniqueness of section names\n\tif (registeredSections.value.some(({ id: otherId }) => id === otherId)) {\n\t\tthrow new Error(`Duplicate section id found: ${id}. Settings navigation sections must have unique section ids.`)\n\t}\n\tif (registeredSections.value.some(({ name: otherName }) => name === otherName)) {\n\t\twarn(`Duplicate section name found: ${name}. Settings navigation sections must have unique section names.`)\n\t}\n\n\t// Ensure tab order is set\n\tif (order !== undefined) {\n\t\tsectionsOrderMap.set(id, order)\n\t} else if (sectionsOrderMap.has(id)) {\n\t\torder = sectionsOrderMap.get(id)\n\t} else {\n\t\t// Fallback to the closest positive number that isn't already taken\n\t\torder = Math.max(0, ...sectionsOrderMap.values()) + 1\n\t\tsectionsOrderMap.set(id, order)\n\t}\n\n\t// Sort sections by order in slots\n\tregisteredSections.value = [...registeredSections.value, { id, name, order, icon }]\n\t\t.sort(({ order: orderA }, { order: orderB }) => {\n\t\t\treturn orderA! - orderB!\n\t\t})\n\n\t// If this is the first section registered, set it as selected\n\tif (registeredSections.value.length === 1) {\n\t\tselectedSection.value = id\n\t}\n}\n\n/**\n * Called when a section is unregistered to remove it from dialog\n *\n * @param id - The section ID\n */\nfunction unregisterSection(id: string) {\n\tregisteredSections.value = registeredSections.value\n\t\t.filter(({ id: otherId }) => id !== otherId)\n\n\t// If the current section is unregistered, set the first section as selected\n\tif (selectedSection.value === id) {\n\t\tselectedSection.value = registeredSections.value[0]?.id ?? ''\n\t}\n}\n</script>\n\n<template>\n\t<NcDialog\n\t\tv-if=\"open\"\n\t\tclass=\"app-settings\"\n\t\tcontent-classes=\"app-settings__content\"\n\t\tnavigation-classes=\"app-settings__navigation\"\n\t\t:additional-trap-elements\n\t\t:container\n\t\tclose-on-click-outside\n\t\t:navigation-aria-label=\"t('Settings navigation')\"\n\t\tsize=\"large\"\n\t\t:name\n\t\t@update:open=\"handleCloseModal\">\n\t\t<template v-if=\"hasNavigation\" #navigation=\"{ isCollapsed }\">\n\t\t\t<ul\n\t\t\t\tv-if=\"!isCollapsed\"\n\t\t\t\tclass=\"navigation-list\">\n\t\t\t\t<li v-for=\"section in registeredSections\" :key=\"section.id\">\n\t\t\t\t\t<a\n\t\t\t\t\t\t:aria-current=\"`${section.id === selectedSection}`\"\n\t\t\t\t\t\tclass=\"navigation-list__link\"\n\t\t\t\t\t\t:class=\"{\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\" @scroll=\"handleScroll\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcDialog>\n</template>\n\n<style lang=\"scss\" scoped>\n.app-settings {\n\t:deep &__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-inline-end: calc(4 * var(--default-grid-baseline));\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\tposition: relative;\n\t}\n\t:deep &__content {\n\t\tpadding-inline: calc(4 * var(--default-grid-baseline));\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\toverflow-y: auto;\n\tpadding: calc(3 * var(--default-grid-baseline));\n\n\t&__link {\n\t\tdisplay: flex;\n\t\talign-content: center;\n\t\tfont-size: 16px;\n\t\theight: var(--default-clickable-area);\n\t\tmargin: 4px 0;\n\t\tline-height: var(--default-clickable-area);\n\t\tborder-radius: var(--border-radius-element);\n\t\tfont-weight: bold;\n\t\tpadding: 0 calc(4 * var(--default-grid-baseline));\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: calc(2 * var(--default-grid-baseline));\n\t\t\tgap: var(--default-grid-baseline);\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: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n\t\t\tmax-width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\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\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 v-model:open=\"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 v-model:open=\"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\nSections order in navigation list is defined during initial rendering.\nIn case of dynamic/conditional sections rendering explicit `order` prop must be used for ordering.\n\n```vue\n<template>\n\t<div>\n\t\t<NcButton @click=\"settingsOpen = true\">Show Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"settingsOpen\" :show-navigation=\"true\" name=\"Application settings\">\n\t\t\t<NcAppSettingsSection id=\"asci-name-1\" name=\"Example name 1\" :order=\"1\">\n\t\t\t\tSome example content\n\t\t\t\t<NcCheckboxRadioSwitch v-model=\"showExtraSections\">Show section 3</NcCheckboxRadioSwitch>\n\t\t\t</NcAppSettingsSection>\n\t\t\t<NcAppSettingsSection id=\"asci-name-2\" name=\"Example name 2\" :order=\"2\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t\t<template v-if=\"showExtraSections\">\n\t\t\t\t<NcAppSettingsSection id=\"asci-name-3\" name=\"Example name 3\" :order=\"3\">\n\t\t\t\t\tSome example content\n\t\t\t\t</NcAppSettingsSection>\n\t\t\t</template>\n\t\t\t<NcAppSettingsSection id=\"asci-name-4\" name=\"Example name 4\" :order=\"4\">\n\t\t\t\tSome more content\n\t\t\t</NcAppSettingsSection>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tsettingsOpen: false,\n\t\t\t\tshowExtraSections: true,\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n</docs>\n"],"names":["_useModel","_createBlock","additionalTrapElements","container","_unref","name","_createElementVNode","_renderSlot","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","_withModifiers","_withKeys","NcVNodes","_toDisplayString"],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import '../assets/NcAppSettingsSection-DIVdlb0g.css';
|
|
2
|
+
import { defineComponent, useSlots, computed, watch, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, renderSlot, toDisplayString } from "vue";
|
|
3
|
+
import { l as logger } from "./logger-D3RVzcfQ.mjs";
|
|
4
|
+
import { u as useAppSettingsDialog } from "./useAppSettingsDialog-Dn48dw1k.mjs";
|
|
5
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
|
+
const _hoisted_1 = ["id", "aria-labelledby"];
|
|
7
|
+
const _hoisted_2 = ["id"];
|
|
8
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
9
|
+
__name: "NcAppSettingsSection",
|
|
10
|
+
props: {
|
|
11
|
+
name: {},
|
|
12
|
+
id: {},
|
|
13
|
+
order: {}
|
|
14
|
+
},
|
|
15
|
+
setup(__props) {
|
|
16
|
+
const props = __props;
|
|
17
|
+
const slots = useSlots();
|
|
18
|
+
const { registerSection, unregisterSection } = useAppSettingsDialog();
|
|
19
|
+
const htmlId = computed(() => "settings-section_" + props.id);
|
|
20
|
+
watch(() => props.id, () => {
|
|
21
|
+
if (!/^[a-z0-9\-_]+$/.test(props.id)) {
|
|
22
|
+
logger.warn(`Invalid id prop: ${props.id}. Only alphanumeric, dash and underscore are allowed.`);
|
|
23
|
+
}
|
|
24
|
+
}, { immediate: true });
|
|
25
|
+
watch([() => props.id, () => props.name, () => props.order], ([newId, newName, newOrder], [oldId, ,]) => {
|
|
26
|
+
unregisterSection(oldId);
|
|
27
|
+
registerSection(newId, newName, newOrder, slots?.icon?.());
|
|
28
|
+
});
|
|
29
|
+
onMounted(() => {
|
|
30
|
+
registerSection(props.id, props.name, props.order, slots?.icon?.());
|
|
31
|
+
});
|
|
32
|
+
onBeforeUnmount(() => {
|
|
33
|
+
unregisterSection(props.id);
|
|
34
|
+
});
|
|
35
|
+
return (_ctx, _cache) => {
|
|
36
|
+
return openBlock(), createElementBlock("section", {
|
|
37
|
+
id: htmlId.value,
|
|
38
|
+
"aria-labelledby": `${htmlId.value}--label`,
|
|
39
|
+
class: "app-settings-section"
|
|
40
|
+
}, [
|
|
41
|
+
createElementVNode("h3", {
|
|
42
|
+
id: `${htmlId.value}--label`,
|
|
43
|
+
class: "app-settings-section__name"
|
|
44
|
+
}, toDisplayString(_ctx.name), 9, _hoisted_2),
|
|
45
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
46
|
+
], 8, _hoisted_1);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const NcAppSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-78ad5bf4"]]);
|
|
51
|
+
export {
|
|
52
|
+
NcAppSettingsSection as N
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=NcAppSettingsSection-urZiy9aH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcAppSettingsSection-urZiy9aH.mjs","sources":["../../src/components/NcAppSettingsSection/NcAppSettingsSection.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport { computed, onBeforeUnmount, onMounted, watch } from 'vue'\nimport { logger } from '../../utils/logger.ts'\nimport { useAppSettingsDialog } from '../NcAppSettingsDialog/useAppSettingsDialog.ts'\n\nconst props = defineProps<{\n\t/** Name of the section */\n\tname: string\n\t/** The id of the section */\n\tid: string\n\t/** The id of the section */\n\torder?: number\n}>()\n\nconst slots = defineSlots<{\n\t/** Section content */\n\tdefault?: Slot\n\t/** Optional icon for the section in the navigation */\n\ticon?: Slot\n}>()\n\nconst { registerSection, unregisterSection } = useAppSettingsDialog()\n\nconst htmlId = computed(() => 'settings-section_' + props.id)\n\n// Validate id prop - only alphanumeric, dash and underscore\nwatch(() => props.id, () => {\n\tif (!/^[a-z0-9\\-_]+$/.test(props.id)) {\n\t\tlogger.warn(`Invalid id prop: ${props.id}. Only alphanumeric, dash and underscore are allowed.`)\n\t}\n}, { immediate: true })\n\n// Reactive changes for section navigation\nwatch([() => props.id, () => props.name, () => props.order], (\n\t[newId, newName, newOrder],\n\t[oldId, ,],\n) => {\n\tunregisterSection(oldId)\n\tregisterSection(newId, newName, newOrder, slots?.icon?.())\n})\n\nonMounted(() => {\n\tregisterSection(props.id, props.name, props.order, slots?.icon?.())\n})\n\nonBeforeUnmount(() => {\n\tunregisterSection(props.id)\n})\n</script>\n\n<template>\n\t<section :id=\"htmlId\" :aria-labelledby=\"`${htmlId}--label`\" class=\"app-settings-section\">\n\t\t<h3 :id=\"`${htmlId}--label`\" class=\"app-settings-section__name\">\n\t\t\t{{ name }}\n\t\t</h3>\n\t\t<slot />\n\t</section>\n</template>\n\n<style lang=\"scss\" scoped>\n.app-settings-section {\n\tmargin-bottom: 80px;\n\t&__name {\n\t\tfont-size: 1.6em;\n\t\tmargin: 0;\n\t\tpadding: 20px 0;\n\t\tfont-weight: bold;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n</style>\n"],"names":["_useSlots","_createElementBlock","_createElementVNode","name","_renderSlot"],"mappings":";;;;;;;;;;;;;;AAYA,UAAM,QAAQ;AASd,UAAM,QAAQA,SAAA;AAOd,UAAM,EAAE,iBAAiB,kBAAA,IAAsB,qBAAA;AAE/C,UAAM,SAAS,SAAS,MAAM,sBAAsB,MAAM,EAAE;AAG5D,UAAM,MAAM,MAAM,IAAI,MAAM;AAC3B,UAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE,GAAG;AACrC,eAAO,KAAK,oBAAoB,MAAM,EAAE,uDAAuD;AAAA,MAChG;AAAA,IACD,GAAG,EAAE,WAAW,MAAM;AAGtB,UAAM,CAAC,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,CAC5D,CAAC,OAAO,SAAS,QAAQ,GACzB,CAAC,cACG;AACJ,wBAAkB,KAAK;AACvB,sBAAgB,OAAO,SAAS,UAAU,OAAO,QAAQ;AAAA,IAC1D,CAAC;AAED,cAAU,MAAM;AACf,sBAAgB,MAAM,IAAI,MAAM,MAAM,MAAM,OAAO,OAAO,QAAQ;AAAA,IACnE,CAAC;AAED,oBAAgB,MAAM;AACrB,wBAAkB,MAAM,EAAE;AAAA,IAC3B,CAAC;;0BAIAC,mBAKU,WAAA;AAAA,QALA,IAAI,OAAA;AAAA,QAAS,sBAAoB,OAAA,KAAM;AAAA,QAAW,OAAM;AAAA,MAAA;QACjEC,mBAEK,MAAA;AAAA,UAFA,OAAO,OAAA,KAAM;AAAA,UAAW,OAAM;AAAA,QAAA,mBAC/BC,KAAAA,IAAI,GAAA,GAAA,UAAA;AAAA,QAERC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA,MAAA;;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import '../assets/NcAppSettingsSectionShortcuts-CRO4RakN.css';
|
|
2
|
+
import { defineComponent, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, renderSlot } from "vue";
|
|
3
|
+
import { N as NcAppSettingsSection } from "./NcAppSettingsSection-urZiy9aH.mjs";
|
|
4
|
+
import { r as register, a as t } from "./_l10n-YZMLsK4O.mjs";
|
|
5
|
+
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
|
+
register();
|
|
7
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
8
|
+
__name: "NcAppSettingsSectionShortcuts",
|
|
9
|
+
setup(__props) {
|
|
10
|
+
return (_ctx, _cache) => {
|
|
11
|
+
return openBlock(), createBlock(NcAppSettingsSection, {
|
|
12
|
+
id: "keyboard-shortcuts",
|
|
13
|
+
name: unref(t)("Keyboard shortcuts")
|
|
14
|
+
}, {
|
|
15
|
+
default: withCtx(() => [
|
|
16
|
+
createElementVNode("div", {
|
|
17
|
+
class: normalizeClass(_ctx.$style.appSettingsSectionShortcuts)
|
|
18
|
+
}, [
|
|
19
|
+
renderSlot(_ctx.$slots, "default")
|
|
20
|
+
], 2)
|
|
21
|
+
]),
|
|
22
|
+
_: 3
|
|
23
|
+
}, 8, ["name"]);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const appSettingsSectionShortcuts = "_appSettingsSectionShortcuts_1trvh_2";
|
|
28
|
+
const style0 = {
|
|
29
|
+
appSettingsSectionShortcuts
|
|
30
|
+
};
|
|
31
|
+
const cssModules = {
|
|
32
|
+
"$style": style0
|
|
33
|
+
};
|
|
34
|
+
const NcAppSettingsSectionShortcuts = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
|
|
35
|
+
export {
|
|
36
|
+
NcAppSettingsSectionShortcuts as N
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=NcAppSettingsSectionShortcuts-CK8lXUxx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcAppSettingsSectionShortcuts-CK8lXUxx.mjs","sources":["../../src/components/NcAppSettingsSectionShortcuts/NcAppSettingsSectionShortcuts.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\n\nimport NcAppSettingsSection from '../NcAppSettingsSection/NcAppSettingsSection.vue'\nimport { t } from '../../l10n.ts'\n\ndefineSlots<{\n\t/**\n\t * Shortcuts described via <NcHotkeyList> components\n\t */\n\tdefault?: Slot\n}>()\n</script>\n\n<template>\n\t<NcAppSettingsSection id=\"keyboard-shortcuts\" :name=\"t('Keyboard shortcuts')\">\n\t\t<div :class=\"$style.appSettingsSectionShortcuts\">\n\t\t\t<slot />\n\t\t</div>\n\t</NcAppSettingsSection>\n</template>\n\n<style module>\n.appSettingsSectionShortcuts {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(4 * var(--default-grid-baseline));\n}\n</style>\n\n<docs>\nA special `NcAppSettingsSection` for listing keyboard shortcuts using `<NcHotkeyList>` and `<NcHotkey>` components with predefined heading and gap between hotkey lists.\n\n```vue\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\topen: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div>\n\t\t<NcButton @click=\"open = true\">App Settings</NcButton>\n\t\t<NcAppSettingsDialog v-model:open=\"open\" name=\"Application settings\" show-navigation>\n\t\t\t<NcAppSettingsSectionShortcuts>\n\t\t\t\t<NcHotkeyList label=\"Actions\">\n\t\t\t\t\t<NcHotkey label=\"File actions\" hotkey=\"A\" />\n\t\t\t\t\t<NcHotkey label=\"Rename\" hotkey=\"F2\" />\n\t\t\t\t\t<NcHotkey label=\"Delete\" hotkey=\"Delete\" />\n\t\t\t\t\t<NcHotkey label=\"Add or remove favorite\" hotkey=\"S\" />\n\t\t\t\t\t<NcHotkey label=\"Manage tags\" hotkey=\"T\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"Selection\">\n\t\t\t\t\t<NcHotkey label=\"Select all files\" hotkey=\"Control A\" />\n\t\t\t\t\t<NcHotkey label=\"Deselect all\" hotkey=\"Escape\" />\n\t\t\t\t\t<NcHotkey label=\"Select or deselect\" hotkey=\"Control Space\" />\n\t\t\t\t\t<NcHotkey label=\"Select a range\" hotkey=\"Control Shift Space\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"Navigation\">\n\t\t\t\t\t<NcHotkey label=\"Go to parent folder\" hotkey=\"Alt ArrowUp\" />\n\t\t\t\t\t<NcHotkey label=\"Go to file above\" hotkey=\"ArrowUp\" />\n\t\t\t\t\t<NcHotkey label=\"Go to file below\" hotkey=\"ArrowDown\" />\n\t\t\t\t\t<NcHotkey label=\"Go left in grid\" hotkey=\"ArrowLeft\" />\n\t\t\t\t\t<NcHotkey label=\"Go right in grid\" hotkey=\"ArrowRight\" />\n\t\t\t\t</NcHotkeyList>\n\n\t\t\t\t<NcHotkeyList label=\"View\">\n\t\t\t\t\t<NcHotkey label=\"Toggle grid view\" hotkey=\"V\" />\n\t\t\t\t\t<NcHotkey label=\"Open file sidebar\" hotkey=\"D\" />\n\t\t\t\t\t<NcHotkey label=\"Show those shortcuts\" hotkey=\"?\" />\n\t\t\t\t</NcHotkeyList>\n\t\t\t</NcAppSettingsSectionShortcuts>\n\t\t</NcAppSettingsDialog>\n\t</div>\n</template>\n```\n</docs>\n"],"names":["_createBlock","_unref","_createElementVNode","_normalizeClass","$style","_renderSlot"],"mappings":";;;;;;;;;0BAoBCA,YAIuB,sBAAA;AAAA,QAJD,IAAG;AAAA,QAAsB,MAAMC,MAAA,CAAA,EAAC,oBAAA;AAAA,MAAA;yBACrD,MAEM;AAAA,UAFNC,mBAEM,OAAA;AAAA,YAFA,OAAKC,eAAEC,KAAAA,OAAO,2BAA2B;AAAA,UAAA;YAC9CC,WAAQ,KAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;;;;;;;;;"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import '../assets/NcAppSidebar-
|
|
1
|
+
import '../assets/NcAppSidebar-aGrIJ9f6.css';
|
|
2
2
|
import { vOnClickOutside } from "@vueuse/components";
|
|
3
3
|
import { createFocusTrap } from "focus-trap";
|
|
4
|
-
import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock,
|
|
4
|
+
import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, mergeModels, useModel, normalizeClass, createVNode, withCtx, resolveComponent, withKeys, withModifiers, Fragment, renderList, createBlock, renderSlot, resolveDirective, Transition, withDirectives, Teleport, normalizeStyle, vShow, createTextVNode, warn, ref, provide } from "vue";
|
|
5
5
|
import { I as IconArrowRight } from "./ArrowRight-DRKHUZMH.mjs";
|
|
6
6
|
import { I as IconClose } from "./Close-D6ngJ4t9.mjs";
|
|
7
7
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import { _ as _sfc_main$
|
|
8
|
+
import { getCanonicalLocale } from "@nextcloud/l10n";
|
|
9
|
+
import { _ as _sfc_main$6 } from "./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
|
|
10
10
|
import { useIsSmallMobile } from "../composables/useIsMobile/index.mjs";
|
|
11
11
|
import directive from "../directives/Focus/index.mjs";
|
|
12
|
-
import { r as register,
|
|
12
|
+
import { r as register, D as t15, a as t } from "./_l10n-YZMLsK4O.mjs";
|
|
13
13
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
14
14
|
import { g as getTrapStack } from "./focusTrap-HJQ4pqHV.mjs";
|
|
15
|
-
import { i as isSlotPopulated, N as NcActions } from "./NcActions-
|
|
15
|
+
import { i as isSlotPopulated, N as NcActions } from "./NcActions-C-E6BGfZ.mjs";
|
|
16
16
|
import { l as logger } from "./logger-D3RVzcfQ.mjs";
|
|
17
|
-
import { _ as _sfc_main$
|
|
17
|
+
import { _ as _sfc_main$7 } from "./NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs";
|
|
18
18
|
import { N as NcButton } from "./NcButton-DkC5k3Lb.mjs";
|
|
19
19
|
import { C as CONTENT_SELECTOR_KEY } from "./constants-DrSznhwy.mjs";
|
|
20
|
-
import { N as NcEmptyContent } from "./NcEmptyContent-
|
|
20
|
+
import { N as NcEmptyContent } from "./NcEmptyContent-B8-90BSI.mjs";
|
|
21
21
|
import { N as NcLoadingIcon } from "./NcLoadingIcon-b_ajZ_nQ.mjs";
|
|
22
|
-
const _sfc_main$
|
|
22
|
+
const _sfc_main$5 = {
|
|
23
23
|
name: "DockRightIcon",
|
|
24
24
|
emits: ["click"],
|
|
25
25
|
props: {
|
|
@@ -36,8 +36,8 @@ const _sfc_main$4 = {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
-
const _hoisted_1$
|
|
40
|
-
const _hoisted_2$
|
|
39
|
+
const _hoisted_1$5 = ["aria-hidden", "aria-label"];
|
|
40
|
+
const _hoisted_2$3 = ["fill", "width", "height"];
|
|
41
41
|
const _hoisted_3$3 = { d: "M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z" };
|
|
42
42
|
const _hoisted_4$3 = { key: 0 };
|
|
43
43
|
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -58,11 +58,11 @@ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
58
58
|
createElementVNode("path", _hoisted_3$3, [
|
|
59
59
|
$props.title ? (openBlock(), createElementBlock("title", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode("", true)
|
|
60
60
|
])
|
|
61
|
-
], 8, _hoisted_2$
|
|
62
|
-
], 16, _hoisted_1$
|
|
61
|
+
], 8, _hoisted_2$3))
|
|
62
|
+
], 16, _hoisted_1$5);
|
|
63
63
|
}
|
|
64
|
-
const IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
65
|
-
const _sfc_main$
|
|
64
|
+
const IconDockRight = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4]]);
|
|
65
|
+
const _sfc_main$4 = {
|
|
66
66
|
name: "StarIcon",
|
|
67
67
|
emits: ["click"],
|
|
68
68
|
props: {
|
|
@@ -79,8 +79,8 @@ const _sfc_main$3 = {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
|
-
const _hoisted_1$
|
|
83
|
-
const _hoisted_2$
|
|
82
|
+
const _hoisted_1$4 = ["aria-hidden", "aria-label"];
|
|
83
|
+
const _hoisted_2$2 = ["fill", "width", "height"];
|
|
84
84
|
const _hoisted_3$2 = { d: "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" };
|
|
85
85
|
const _hoisted_4$2 = { key: 0 };
|
|
86
86
|
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -101,11 +101,11 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
101
101
|
createElementVNode("path", _hoisted_3$2, [
|
|
102
102
|
$props.title ? (openBlock(), createElementBlock("title", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode("", true)
|
|
103
103
|
])
|
|
104
|
-
], 8, _hoisted_2$
|
|
105
|
-
], 16, _hoisted_1$
|
|
104
|
+
], 8, _hoisted_2$2))
|
|
105
|
+
], 16, _hoisted_1$4);
|
|
106
106
|
}
|
|
107
|
-
const IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
108
|
-
const _sfc_main$
|
|
107
|
+
const IconStar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3]]);
|
|
108
|
+
const _sfc_main$3 = {
|
|
109
109
|
name: "StarOutlineIcon",
|
|
110
110
|
emits: ["click"],
|
|
111
111
|
props: {
|
|
@@ -122,8 +122,8 @@ const _sfc_main$2 = {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
|
-
const _hoisted_1$
|
|
126
|
-
const _hoisted_2$
|
|
125
|
+
const _hoisted_1$3 = ["aria-hidden", "aria-label"];
|
|
126
|
+
const _hoisted_2$1 = ["fill", "width", "height"];
|
|
127
127
|
const _hoisted_3$1 = { d: "M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z" };
|
|
128
128
|
const _hoisted_4$1 = { key: 0 };
|
|
129
129
|
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
@@ -144,15 +144,74 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
144
144
|
createElementVNode("path", _hoisted_3$1, [
|
|
145
145
|
$props.title ? (openBlock(), createElementBlock("title", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode("", true)
|
|
146
146
|
])
|
|
147
|
-
], 8, _hoisted_2$
|
|
148
|
-
], 16, _hoisted_1$
|
|
147
|
+
], 8, _hoisted_2$1))
|
|
148
|
+
], 16, _hoisted_1$3);
|
|
149
149
|
}
|
|
150
|
-
const IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
150
|
+
const IconStarOutline = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]);
|
|
151
|
+
const _hoisted_1$2 = ["aria-selected", "tabindex"];
|
|
152
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
153
|
+
__name: "NcAppSidebarTabsButton",
|
|
154
|
+
props: /* @__PURE__ */ mergeModels({
|
|
155
|
+
tab: {}
|
|
156
|
+
}, {
|
|
157
|
+
"selected": { type: Boolean, ...{ required: true } },
|
|
158
|
+
"selectedModifiers": {}
|
|
159
|
+
}),
|
|
160
|
+
emits: ["update:selected"],
|
|
161
|
+
setup(__props) {
|
|
162
|
+
const selected = useModel(__props, "selected");
|
|
163
|
+
return (_ctx, _cache) => {
|
|
164
|
+
return openBlock(), createElementBlock("button", {
|
|
165
|
+
class: normalizeClass(["button-vue", [_ctx.$style.sidebarTabsButton, {
|
|
166
|
+
[_ctx.$style.sidebarTabsButton_selected]: selected.value
|
|
167
|
+
}]]),
|
|
168
|
+
role: "tab",
|
|
169
|
+
"aria-selected": selected.value,
|
|
170
|
+
tabindex: selected.value ? 0 : -1,
|
|
171
|
+
onClick: _cache[0] || (_cache[0] = ($event) => selected.value = true)
|
|
172
|
+
}, [
|
|
173
|
+
createElementVNode("span", {
|
|
174
|
+
class: normalizeClass(_ctx.$style.sidebarTabsButton__icon)
|
|
175
|
+
}, [
|
|
176
|
+
createVNode(_sfc_main$6, {
|
|
177
|
+
vnodes: _ctx.tab.renderIcon()
|
|
178
|
+
}, {
|
|
179
|
+
default: withCtx(() => [
|
|
180
|
+
createElementVNode("span", {
|
|
181
|
+
class: normalizeClass([_ctx.$style.sidebarTabsButton__legacyIcon, _ctx.tab.icon])
|
|
182
|
+
}, null, 2)
|
|
183
|
+
]),
|
|
184
|
+
_: 1
|
|
185
|
+
}, 8, ["vnodes"])
|
|
186
|
+
], 2),
|
|
187
|
+
createElementVNode("span", {
|
|
188
|
+
class: normalizeClass(_ctx.$style.sidebarTabsButton__name)
|
|
189
|
+
}, toDisplayString(_ctx.tab.name), 3)
|
|
190
|
+
], 10, _hoisted_1$2);
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
const sidebarTabsButton = "_sidebarTabsButton_1y2dv_20";
|
|
195
|
+
const sidebarTabsButton_selected = "_sidebarTabsButton_selected_1y2dv_45";
|
|
196
|
+
const sidebarTabsButton__name = "_sidebarTabsButton__name_1y2dv_59";
|
|
197
|
+
const sidebarTabsButton__icon = "_sidebarTabsButton__icon_1y2dv_70";
|
|
198
|
+
const sidebarTabsButton__legacyIcon = "_sidebarTabsButton__legacyIcon_1y2dv_76";
|
|
199
|
+
const style0 = {
|
|
200
|
+
"material-design-icon": "_material-design-icon_1y2dv_12",
|
|
201
|
+
sidebarTabsButton,
|
|
202
|
+
sidebarTabsButton_selected,
|
|
203
|
+
sidebarTabsButton__name,
|
|
204
|
+
sidebarTabsButton__icon,
|
|
205
|
+
sidebarTabsButton__legacyIcon
|
|
206
|
+
};
|
|
207
|
+
const cssModules = {
|
|
208
|
+
"$style": style0
|
|
209
|
+
};
|
|
210
|
+
const NcAppSidebarTabsButton = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules]]);
|
|
151
211
|
const _sfc_main$1 = {
|
|
152
212
|
name: "NcAppSidebarTabs",
|
|
153
213
|
components: {
|
|
154
|
-
|
|
155
|
-
NcVNodes: _sfc_main$5
|
|
214
|
+
NcAppSidebarTabsButton
|
|
156
215
|
},
|
|
157
216
|
provide() {
|
|
158
217
|
return {
|
|
@@ -181,7 +240,7 @@ const _sfc_main$1 = {
|
|
|
181
240
|
}
|
|
182
241
|
},
|
|
183
242
|
emits: ["update:active"],
|
|
184
|
-
data() {
|
|
243
|
+
data(props) {
|
|
185
244
|
return {
|
|
186
245
|
/**
|
|
187
246
|
* Tab descriptions from the passed NcSidebarTab components' props to build the tab navbar from.
|
|
@@ -190,7 +249,7 @@ const _sfc_main$1 = {
|
|
|
190
249
|
/**
|
|
191
250
|
* Local active (open) tab's ID. It allows to use component without v-model:active
|
|
192
251
|
*/
|
|
193
|
-
activeTab:
|
|
252
|
+
activeTab: props.active
|
|
194
253
|
};
|
|
195
254
|
},
|
|
196
255
|
computed: {
|
|
@@ -210,6 +269,11 @@ const _sfc_main$1 = {
|
|
|
210
269
|
}
|
|
211
270
|
},
|
|
212
271
|
watch: {
|
|
272
|
+
tabs() {
|
|
273
|
+
if (this.active) {
|
|
274
|
+
this.updateActive();
|
|
275
|
+
}
|
|
276
|
+
},
|
|
213
277
|
active(active) {
|
|
214
278
|
if (active !== this.activeTab) {
|
|
215
279
|
this.updateActive();
|
|
@@ -279,7 +343,7 @@ const _sfc_main$1 = {
|
|
|
279
343
|
* Update the current active tab
|
|
280
344
|
*/
|
|
281
345
|
updateActive() {
|
|
282
|
-
this.activeTab = this.active && this.tabs.some((
|
|
346
|
+
this.activeTab = this.active && this.tabs.some(({ id }) => id === this.active) ? this.active : this.tabs[0]?.id ?? "";
|
|
283
347
|
},
|
|
284
348
|
/**
|
|
285
349
|
* Register child tab in the tabs
|
|
@@ -290,7 +354,7 @@ const _sfc_main$1 = {
|
|
|
290
354
|
this.tabs.push(tab);
|
|
291
355
|
this.tabs.sort((a, b) => {
|
|
292
356
|
if (a.order === b.order) {
|
|
293
|
-
return
|
|
357
|
+
return a.name.localeCompare(b.name, [getCanonicalLocale()]);
|
|
294
358
|
}
|
|
295
359
|
return a.order - b.order;
|
|
296
360
|
});
|
|
@@ -313,10 +377,8 @@ const _sfc_main$1 = {
|
|
|
313
377
|
}
|
|
314
378
|
};
|
|
315
379
|
const _hoisted_1$1 = { class: "app-sidebar-tabs" };
|
|
316
|
-
const _hoisted_2$1 = { class: "app-sidebar-tabs__tab-caption" };
|
|
317
380
|
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
318
|
-
const
|
|
319
|
-
const _component_NcCheckboxRadioSwitch = resolveComponent("NcCheckboxRadioSwitch");
|
|
381
|
+
const _component_NcAppSidebarTabsButton = resolveComponent("NcAppSidebarTabsButton");
|
|
320
382
|
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
321
383
|
$options.hasMultipleTabs || $options.showForSingleTab ? (openBlock(), createElementBlock("div", {
|
|
322
384
|
key: 0,
|
|
@@ -333,37 +395,15 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
333
395
|
]
|
|
334
396
|
}, [
|
|
335
397
|
(openBlock(true), createElementBlock(Fragment, null, renderList($data.tabs, (tab) => {
|
|
336
|
-
return openBlock(), createBlock(
|
|
398
|
+
return openBlock(), createBlock(_component_NcAppSidebarTabsButton, {
|
|
399
|
+
id: `tab-button-${tab.id}`,
|
|
337
400
|
key: tab.id,
|
|
401
|
+
class: "app-sidebar-tabs__tab",
|
|
338
402
|
"aria-controls": `tab-${tab.id}`,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
"
|
|
342
|
-
|
|
343
|
-
tabindex: $data.activeTab === tab.id ? 0 : -1,
|
|
344
|
-
"button-variant-grouped": "horizontal",
|
|
345
|
-
class: normalizeClass(["app-sidebar-tabs__tab", { active: tab.id === $data.activeTab }]),
|
|
346
|
-
role: "tab",
|
|
347
|
-
type: "button",
|
|
348
|
-
"onUpdate:modelValue": ($event) => $options.setActive(tab.id)
|
|
349
|
-
}, {
|
|
350
|
-
icon: withCtx(() => [
|
|
351
|
-
createVNode(_component_NcVNodes, {
|
|
352
|
-
vnodes: tab.renderIcon()
|
|
353
|
-
}, {
|
|
354
|
-
default: withCtx(() => [
|
|
355
|
-
createElementVNode("span", {
|
|
356
|
-
class: normalizeClass(["app-sidebar-tabs__tab-icon", tab.icon])
|
|
357
|
-
}, null, 2)
|
|
358
|
-
]),
|
|
359
|
-
_: 2
|
|
360
|
-
}, 1032, ["vnodes"])
|
|
361
|
-
]),
|
|
362
|
-
default: withCtx(() => [
|
|
363
|
-
createElementVNode("span", _hoisted_2$1, toDisplayString(tab.name), 1)
|
|
364
|
-
]),
|
|
365
|
-
_: 2
|
|
366
|
-
}, 1032, ["aria-controls", "aria-selected", "model-value", "wrapper-id", "tabindex", "class", "onUpdate:modelValue"]);
|
|
403
|
+
selected: $data.activeTab === tab.id,
|
|
404
|
+
tab,
|
|
405
|
+
"onUpdate:selected": ($event) => $options.setActive(tab.id)
|
|
406
|
+
}, null, 8, ["id", "aria-controls", "selected", "tab", "onUpdate:selected"]);
|
|
367
407
|
}), 128))
|
|
368
408
|
], 32)) : createCommentVNode("", true),
|
|
369
409
|
createElementVNode("div", {
|
|
@@ -373,13 +413,13 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
373
413
|
], 2)
|
|
374
414
|
]);
|
|
375
415
|
}
|
|
376
|
-
const NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-
|
|
416
|
+
const NcAppSidebarTabs = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-1e2d5bfb"]]);
|
|
377
417
|
register(t15);
|
|
378
418
|
const _sfc_main = {
|
|
379
419
|
name: "NcAppSidebar",
|
|
380
420
|
components: {
|
|
381
421
|
NcActions,
|
|
382
|
-
NcAppSidebarHeader: _sfc_main$
|
|
422
|
+
NcAppSidebarHeader: _sfc_main$7,
|
|
383
423
|
NcAppSidebarTabs,
|
|
384
424
|
NcButton,
|
|
385
425
|
NcLoadingIcon,
|
|
@@ -999,8 +1039,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
999
1039
|
_: 3
|
|
1000
1040
|
}, 8, ["onAfterEnter", "onAfterLeave"]);
|
|
1001
1041
|
}
|
|
1002
|
-
const NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
1042
|
+
const NcAppSidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-7d816760"]]);
|
|
1003
1043
|
export {
|
|
1004
1044
|
NcAppSidebar as N
|
|
1005
1045
|
};
|
|
1006
|
-
//# sourceMappingURL=NcAppSidebar-
|
|
1046
|
+
//# sourceMappingURL=NcAppSidebar-Du9lcG-G.mjs.map
|