@nextcloud/vue 9.0.0-rc.5 → 9.0.0-rc.7
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 +139 -4
- package/README.md +5 -4
- package/dist/assets/{NcActionButton-Dz2EBAuD.css → NcActionButton-D7bnKlOt.css} +18 -18
- package/dist/assets/{NcActionButtonGroup-BLIEEeG3.css → NcActionButtonGroup-CRTH2v24.css} +8 -8
- package/dist/assets/{NcActionCheckbox--lTDnNsx.css → NcActionCheckbox-BeT6fCCy.css} +12 -12
- package/dist/assets/{NcActionInput-BZCvMPVy.css → NcActionInput-Cma_lx5u.css} +63 -63
- package/dist/assets/{NcActionLink-VngQl-C2.css → NcActionLink-DjrAv1MG.css} +13 -13
- package/dist/assets/{NcActionRadio-DnAjyubC.css → NcActionRadio-DgdLD238.css} +12 -12
- package/dist/assets/{NcActionRouter-CBVOuCQ3.css → NcActionRouter-DeYzeM5W.css} +16 -16
- package/dist/assets/{NcActionText-BtzLDZeJ.css → NcActionText-D9InmayH.css} +18 -18
- package/dist/assets/{NcActionTextEditable-D5stkJZK.css → NcActionTextEditable-m6K3-kXV.css} +61 -61
- package/dist/assets/{NcActions-CG3xO48Y.css → NcActions-9-KEdXq2.css} +13 -13
- package/dist/assets/{NcAppContent-vj2DL4Yr.css → NcAppContent-BC1UrvXW.css} +23 -23
- package/dist/assets/{NcAppNavigation-C6-8ErA_.css → NcAppNavigation-DzSqLZLH.css} +38 -12
- package/dist/assets/{NcAppNavigationCaption-B6mZd0E3.css → NcAppNavigationCaption-HUg9fMCm.css} +7 -7
- package/dist/assets/{NcAppNavigationIconBullet-CeBYVy6t.css → NcAppNavigationIconBullet-DLQJkObX.css} +3 -3
- package/dist/assets/{NcAppNavigationItem-CFT8K0Dn.css → NcAppNavigationItem-E3wkH_dN.css} +43 -39
- package/dist/assets/{NcAppNavigationList-CLLHyHIn.css → NcAppNavigationList--36j6Acm.css} +2 -2
- package/dist/assets/{NcAppNavigationNew-Ba3wWpcY.css → NcAppNavigationNew-Bn8zj5lM.css} +3 -3
- package/dist/assets/{NcAppNavigationNewItem-CCu1yQxq.css → NcAppNavigationNewItem-Dmdd1YSE.css} +39 -33
- package/dist/assets/{NcAppNavigationSearch-Ct6uMFNo.css → NcAppNavigationSearch-CQamlS4X.css} +5 -5
- package/dist/assets/{NcAppNavigationSettings-B0I7HR1V.css → NcAppNavigationSettings-Bt0dnsjR.css} +7 -8
- package/dist/assets/{NcAppSettingsDialog-BtS89pIY.css → NcAppSettingsDialog-CW1IxPWr.css} +10 -10
- package/dist/assets/{NcAppSettingsSection-DnDcGk1v.css → NcAppSettingsSection-C4JF60e-.css} +3 -3
- package/dist/assets/{NcAppSidebar-DlLDB8Ba.css → NcAppSidebar-DUiFE7vz.css} +58 -58
- package/dist/assets/{NcAppSidebarTab-cWhpTGp7.css → NcAppSidebarTab-Xd3HTDbw.css} +4 -4
- package/dist/assets/NcAvatar-DhTOlvlb.css +134 -0
- package/dist/assets/{NcBreadcrumb-CV3DgRKn.css → NcBreadcrumb-CHjeSh0y.css} +15 -15
- package/dist/assets/{NcBreadcrumbs-D2wff82k.css → NcBreadcrumbs-DYfGaSjT.css} +6 -6
- package/dist/assets/{NcButton-Cl53rV4b.css → NcButton-BjcEkfk2.css} +77 -64
- package/dist/assets/{NcCheckboxRadioSwitch-Cbnc4p0H.css → NcCheckboxRadioSwitch-CJW-RB5j.css} +54 -44
- package/dist/assets/{NcChip-1ZmWY_6e.css → NcChip-Cjdo3xPB.css} +9 -9
- package/dist/assets/{NcCollectionList-C7_FPg95.css → NcCollectionList-D9dOsdP2.css} +42 -42
- package/dist/assets/{NcColorPicker-DlQH2IqY.css → NcColorPicker-BUxqqYfq.css} +28 -28
- package/dist/assets/{NcContent-D1ab_Xg2.css → NcContent-CVIwhwfc.css} +12 -9
- package/dist/assets/{NcCounterBubble-C0CtLaMW.css → NcCounterBubble-ZnteskDR.css} +7 -7
- package/dist/assets/{NcDashboardWidget-CTP_ajin.css → NcDashboardWidget-DD06i7ws.css} +12 -12
- package/dist/assets/{NcDashboardWidgetItem-DYwI3Qof.css → NcDashboardWidgetItem-DPVZ3Oso.css} +12 -12
- package/dist/assets/{NcDateTimePicker-D10v2GzZ.css → NcDateTimePicker-D0VMSpM3.css} +236 -233
- package/dist/assets/{NcDateTimePickerNative-B7hWPWho.css → NcDateTimePickerNative-BP6eg8aU.css} +13 -13
- package/dist/assets/{NcDialog-B9626mow.css → NcDialog-GKchMDSB.css} +15 -15
- package/dist/assets/{NcEllipsisedOption-BNLv_eyF.css → NcEllipsisedOption-CPWbbgBy.css} +5 -5
- package/dist/assets/NcEmojiPicker-BO_GV-CM.css +547 -0
- package/dist/assets/{NcGuestContent-bgqNfxTA.css → NcGuestContent-j8ai4O1K.css} +2 -2
- package/dist/assets/{NcHeaderButton-Ct8k0yDh.css → NcHeaderButton-CVOQgRjm.css} +11 -7
- package/dist/assets/{NcHeaderMenu-CP5Nn6tY.css → NcHeaderMenu-BkGG39vE.css} +15 -11
- package/dist/assets/{NcIconSvgWrapper-CJfAwN6-.css → NcIconSvgWrapper-D6qXQDNo.css} +10 -10
- package/dist/assets/{NcInputConfirmCancel-DNNS3DDJ.css → NcInputConfirmCancel-BrdZEfr2.css} +5 -5
- package/dist/assets/{NcInputField-BeU51nfg.css → NcInputField-CVSrajMb.css} +68 -47
- package/dist/assets/NcListItem-BRTO5Id3.css +177 -0
- package/dist/assets/{NcListItemIcon-BVhiRo5R.css → NcListItemIcon-OOjV0jWx.css} +13 -13
- package/dist/assets/{NcLoadingIcon-DlDKflKI.css → NcLoadingIcon-CWUlo4XY.css} +5 -2
- package/dist/assets/{NcMentionBubble-lpms2_3A.css → NcMentionBubble-ptHUq68a.css} +9 -9
- package/dist/assets/{NcModal-eBU7G0XQ.css → NcModal-ok4bUsLE.css} +61 -61
- package/dist/assets/{NcNoteCard-BTnxwjLX.css → NcNoteCard-l5nIN9Hg.css} +21 -17
- package/dist/assets/{NcPasswordField-CWRwNMKF.css → NcPasswordField-CAKOUN91.css} +2 -2
- package/dist/assets/{NcPopover-BzkXE_af.css → NcPopover-CZ3pMU6Y.css} +16 -16
- package/dist/assets/{NcProgressBar--z-WqmX4.css → NcProgressBar-BAPOXMAL.css} +16 -15
- package/dist/assets/{NcRelatedResourcesPanel-9I4RRIks.css → NcRelatedResourcesPanel-BVdRCi64.css} +65 -65
- package/dist/assets/{NcRichContenteditable-Dj22Kx6E.css → NcRichContenteditable-zvOx7ivB.css} +21 -21
- package/dist/assets/{NcRichText-Fp8zf8zq.css → NcRichText-DujetYXl.css} +88 -88
- package/dist/assets/NcSelectUsers-BWhtNRbI.css +4 -0
- package/dist/assets/{NcSettingsInputText-B2b1M_wK.css → NcSettingsInputText-Dj_6fuUU.css} +5 -5
- package/dist/assets/{NcSettingsSection-CxQtVrUq.css → NcSettingsSection-f5rBJsKJ.css} +7 -7
- package/dist/assets/{NcSettingsSelectGroup-BuKKmCtO.css → NcSettingsSelectGroup-BxvEAWNm.css} +3 -3
- package/dist/assets/NcTextArea-D7H1UNAd.css +136 -0
- package/dist/assets/{NcUserBubble-CqaL0Oxv.css → NcUserBubble-ChgvvPPf.css} +8 -8
- package/dist/assets/{NcUserStatusIcon-BcLND4gJ.css → NcUserStatusIcon-D8HqS9GC.css} +11 -7
- package/dist/assets/{referencePickerModal-D80hwmre.css → referencePickerModal-B9tq1n_R.css} +60 -77
- package/dist/chunks/ArrowRight-DRKHUZMH.mjs.map +1 -1
- package/dist/chunks/ChevronDown-FiGpp0KT.mjs.map +1 -1
- package/dist/chunks/ChevronUp-DPXFp1ss.mjs.map +1 -1
- package/dist/chunks/Close-D6ngJ4t9.mjs.map +1 -1
- package/dist/chunks/{NcActionButton-Bd35_0n4.mjs → NcActionButton-DseKq57Q.mjs} +8 -7
- package/dist/chunks/NcActionButton-DseKq57Q.mjs.map +1 -0
- package/dist/chunks/{NcActionButtonGroup-zqttoOi7.mjs → NcActionButtonGroup-eJGS5If0.mjs} +4 -4
- package/dist/chunks/{NcActionButtonGroup-zqttoOi7.mjs.map → NcActionButtonGroup-eJGS5If0.mjs.map} +1 -1
- package/dist/chunks/NcActionCaption-Fumfjzxj.mjs.map +1 -1
- package/dist/chunks/{NcActionCheckbox-DLPDTACR.mjs → NcActionCheckbox-CwrO3g3I.mjs} +3 -3
- package/dist/chunks/NcActionCheckbox-CwrO3g3I.mjs.map +1 -0
- package/dist/chunks/{NcActionInput-uNqbQcU9.mjs → NcActionInput-Cby01w-7.mjs} +22 -24
- package/dist/chunks/NcActionInput-Cby01w-7.mjs.map +1 -0
- package/dist/chunks/{NcActionLink-BEo7zmXX.mjs → NcActionLink-afakPM_N.mjs} +8 -9
- package/dist/chunks/NcActionLink-afakPM_N.mjs.map +1 -0
- package/dist/chunks/{NcActionRadio-CPoWB58D.mjs → NcActionRadio-ByCpOD0q.mjs} +5 -5
- package/dist/chunks/NcActionRadio-ByCpOD0q.mjs.map +1 -0
- package/dist/chunks/{NcActionRouter-ERoQjJKv.mjs → NcActionRouter-oT-YU_jf.mjs} +10 -11
- package/dist/chunks/NcActionRouter-oT-YU_jf.mjs.map +1 -0
- package/dist/chunks/{NcActionText-16Mj4-P1.mjs → NcActionText-uKvLcEY6.mjs} +5 -5
- package/dist/chunks/NcActionText-uKvLcEY6.mjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-rS1GklQ7.mjs → NcActionTextEditable-CoAscywz.mjs} +7 -7
- package/dist/chunks/NcActionTextEditable-CoAscywz.mjs.map +1 -0
- package/dist/chunks/{NcActions-CyXKvnrY.mjs → NcActions-BOqfKgN5.mjs} +69 -21
- package/dist/chunks/NcActions-BOqfKgN5.mjs.map +1 -0
- package/dist/chunks/{NcAppContent-BK8bOVDx.mjs → NcAppContent-CBiklfOg.mjs} +11 -11
- package/dist/chunks/NcAppContent-CBiklfOg.mjs.map +1 -0
- package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs.map +1 -1
- package/dist/chunks/{NcAppContentList-DnLY_sWw.mjs → NcAppContentList-DYFsuDKh.mjs} +7 -1
- package/dist/chunks/NcAppContentList-DYFsuDKh.mjs.map +1 -0
- package/dist/chunks/NcAppNavigation-VmhZBTF5.mjs +174 -0
- package/dist/chunks/NcAppNavigation-VmhZBTF5.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationCaption-DxfUoJBO.mjs → NcAppNavigationCaption-zs07YHtS.mjs} +7 -5
- package/dist/chunks/NcAppNavigationCaption-zs07YHtS.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationIconBullet-B1kc4u65.mjs → NcAppNavigationIconBullet-PrlhOoE9.mjs} +6 -3
- package/dist/chunks/NcAppNavigationIconBullet-PrlhOoE9.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationItem-CSiMEh0V.mjs → NcAppNavigationItem-DpimA76Q.mjs} +43 -26
- package/dist/chunks/NcAppNavigationItem-DpimA76Q.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationList-DX_Yo23V.mjs → NcAppNavigationList-BX0wE-dB.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationList-DX_Yo23V.mjs.map → NcAppNavigationList-BX0wE-dB.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNew-CLbVKk5X.mjs → NcAppNavigationNew-Y50s6jTC.mjs} +14 -4
- package/dist/chunks/NcAppNavigationNew-Y50s6jTC.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationNewItem-B4TH71qQ.mjs → NcAppNavigationNewItem-CkWp0oFr.mjs} +8 -8
- package/dist/chunks/NcAppNavigationNewItem-CkWp0oFr.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigationSearch-BOZ5dS_m.mjs → NcAppNavigationSearch-Cs14jpSe.mjs} +8 -9
- package/dist/chunks/NcAppNavigationSearch-Cs14jpSe.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSettings-D_u5pIPX.mjs +98 -0
- package/dist/chunks/NcAppNavigationSettings-D_u5pIPX.mjs.map +1 -0
- package/dist/chunks/NcAppNavigationSpacer-BvkBfuVw.mjs.map +1 -1
- package/dist/chunks/{NcAppSettingsDialog-B4rJQ7w_.mjs → NcAppSettingsDialog-Dy2SrGfl.mjs} +15 -9
- package/dist/chunks/NcAppSettingsDialog-Dy2SrGfl.mjs.map +1 -0
- package/dist/chunks/{NcAppSettingsSection-CssmXyZ0.mjs → NcAppSettingsSection-tccU68DQ.mjs} +9 -3
- package/dist/chunks/NcAppSettingsSection-tccU68DQ.mjs.map +1 -0
- package/dist/chunks/{NcAppSidebar-D0azvKne.mjs → NcAppSidebar-BNTlPC1G.mjs} +41 -27
- package/dist/chunks/NcAppSidebar-BNTlPC1G.mjs.map +1 -0
- package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs.map +1 -1
- package/dist/chunks/{NcAppSidebarTab-D1RmFRTu.mjs → NcAppSidebarTab-Cjetm3Fs.mjs} +9 -6
- package/dist/chunks/NcAppSidebarTab-Cjetm3Fs.mjs.map +1 -0
- package/dist/chunks/{NcAvatar-Ccw1N-kB.mjs → NcAvatar-42dhVtul.mjs} +40 -48
- package/dist/chunks/NcAvatar-42dhVtul.mjs.map +1 -0
- package/dist/chunks/NcBlurHash-BiFktE2N.mjs.map +1 -1
- package/dist/chunks/{NcBreadcrumb-C9ma2_SJ.mjs → NcBreadcrumb-C86Yxww0.mjs} +28 -24
- package/dist/chunks/NcBreadcrumb-C86Yxww0.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-kg_aktAn.mjs → NcBreadcrumbs-BTFyDGO2.mjs} +43 -40
- package/dist/chunks/NcBreadcrumbs-BTFyDGO2.mjs.map +1 -0
- package/dist/chunks/{NcButton-Df1eAyJ3.mjs → NcButton-DkC5k3Lb.mjs} +48 -30
- package/dist/chunks/NcButton-DkC5k3Lb.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-D8tOjXwB.mjs → NcCheckboxRadioSwitch-iCknuL0_.mjs} +136 -82
- package/dist/chunks/NcCheckboxRadioSwitch-iCknuL0_.mjs.map +1 -0
- package/dist/chunks/{NcChip-Bf2JVPf_.mjs → NcChip-Dplke0gD.mjs} +8 -8
- package/dist/chunks/NcChip-Dplke0gD.mjs.map +1 -0
- package/dist/chunks/{NcCollectionList-DtD-RXl8.mjs → NcCollectionList-IC-VyCa-.mjs} +25 -21
- package/dist/chunks/NcCollectionList-IC-VyCa-.mjs.map +1 -0
- package/dist/chunks/{NcColorPicker-BRIu0Qel.mjs → NcColorPicker-BPd1i3-9.mjs} +38 -26
- package/dist/chunks/NcColorPicker-BPd1i3-9.mjs.map +1 -0
- package/dist/chunks/{NcContent-BmXFlXrh.mjs → NcContent-BAiLhI_2.mjs} +9 -8
- package/dist/chunks/{NcContent-BmXFlXrh.mjs.map → NcContent-BAiLhI_2.mjs.map} +1 -1
- package/dist/chunks/{NcCounterBubble-Bop3e-Tr.mjs → NcCounterBubble-CxxHHh8i.mjs} +3 -3
- package/dist/chunks/{NcCounterBubble-Bop3e-Tr.mjs.map → NcCounterBubble-CxxHHh8i.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-cBZ_Ub8Q.mjs → NcDashboardWidget-P6DhIXT2.mjs} +52 -10
- package/dist/chunks/NcDashboardWidget-P6DhIXT2.mjs.map +1 -0
- package/dist/chunks/{NcDashboardWidgetItem-BnUtMMCC.mjs → NcDashboardWidgetItem-GGmhjTfk.mjs} +7 -7
- package/dist/chunks/NcDashboardWidgetItem-GGmhjTfk.mjs.map +1 -0
- package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map +1 -1
- package/dist/chunks/{NcDateTimePicker-Dliaj0xD.mjs → NcDateTimePicker-DmeWERxv.mjs} +35 -27
- package/dist/chunks/NcDateTimePicker-DmeWERxv.mjs.map +1 -0
- package/dist/chunks/{NcDateTimePickerNative-CEm70Aaw.mjs → NcDateTimePickerNative-BiU3SIRj.mjs} +5 -5
- package/dist/chunks/NcDateTimePickerNative-BiU3SIRj.mjs.map +1 -0
- package/dist/chunks/{NcDialog-B_4Lud9m.mjs → NcDialog-DmKbeOcJ.mjs} +21 -23
- package/dist/chunks/NcDialog-DmKbeOcJ.mjs.map +1 -0
- package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-d1zLHPqM.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-BvBSeEuo.mjs} +6 -6
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-BvBSeEuo.mjs.map +1 -0
- package/dist/chunks/{NcEllipsisedOption-C8uNDC-j.mjs → NcEllipsisedOption-dT-CtXYp.mjs} +3 -3
- package/dist/chunks/NcEllipsisedOption-dT-CtXYp.mjs.map +1 -0
- package/dist/chunks/{NcEmojiPicker-DZXHV_Me.mjs → NcEmojiPicker-VUnUOWfg.mjs} +127 -121
- package/dist/chunks/NcEmojiPicker-VUnUOWfg.mjs.map +1 -0
- package/dist/chunks/NcEmptyContent-BdOezubv.mjs.map +1 -1
- package/dist/chunks/{NcGuestContent-mLXi-A-D.mjs → NcGuestContent-CfCh49o0.mjs} +3 -3
- package/dist/chunks/NcGuestContent-CfCh49o0.mjs.map +1 -0
- package/dist/chunks/{NcHeaderButton-D6LMZ6iL.mjs → NcHeaderButton-DafXYbXB.mjs} +4 -4
- package/dist/chunks/NcHeaderButton-DafXYbXB.mjs.map +1 -0
- package/dist/chunks/{NcHeaderMenu-O0loxc_q.mjs → NcHeaderMenu-fnBUbMrU.mjs} +25 -24
- package/dist/chunks/NcHeaderMenu-fnBUbMrU.mjs.map +1 -0
- package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +1 -1
- package/dist/chunks/{NcIconSvgWrapper-CprKb_SE.mjs → NcIconSvgWrapper-5AA93z-F.mjs} +4 -4
- package/dist/chunks/{NcIconSvgWrapper-CprKb_SE.mjs.map → NcIconSvgWrapper-5AA93z-F.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-RRwim02d.mjs → NcInputConfirmCancel-DC6lvX7Z.mjs} +11 -5
- package/dist/chunks/NcInputConfirmCancel-DC6lvX7Z.mjs.map +1 -0
- package/dist/chunks/{NcInputField-DEHb834Z.mjs → NcInputField-DugqxUR2.mjs} +17 -15
- package/dist/chunks/NcInputField-DugqxUR2.mjs.map +1 -0
- package/dist/chunks/{NcListItem-C6WoTIa4.mjs → NcListItem-C2YXq4EL.mjs} +8 -13
- package/dist/chunks/NcListItem-C2YXq4EL.mjs.map +1 -0
- package/dist/chunks/{NcListItemIcon-5OKjuvJE.mjs → NcListItemIcon-Du1PyhkH.mjs} +11 -10
- package/dist/chunks/NcListItemIcon-Du1PyhkH.mjs.map +1 -0
- package/dist/chunks/{NcLoadingIcon-Dm3kRPrf.mjs → NcLoadingIcon-b_ajZ_nQ.mjs} +3 -3
- package/dist/chunks/NcLoadingIcon-b_ajZ_nQ.mjs.map +1 -0
- package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs} +2 -2
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs.map +1 -0
- package/dist/chunks/{NcModal-n7KHhtoD.mjs → NcModal-Jb_FjSoh.mjs} +60 -57
- package/dist/chunks/NcModal-Jb_FjSoh.mjs.map +1 -0
- package/dist/chunks/{NcNoteCard-B5CvOJmh.mjs → NcNoteCard-BBnJMdJu.mjs} +11 -7
- package/dist/chunks/NcNoteCard-BBnJMdJu.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-JRyxT6wU.mjs → NcPasswordField-F-JcomYe.mjs} +11 -12
- package/dist/chunks/NcPasswordField-F-JcomYe.mjs.map +1 -0
- package/dist/chunks/{NcPopover-DLoAYZgv.mjs → NcPopover-D8iSVK-p.mjs} +41 -13
- package/dist/chunks/NcPopover-D8iSVK-p.mjs.map +1 -0
- package/dist/chunks/NcProgressBar-DDMAo4h-.mjs +94 -0
- package/dist/chunks/NcProgressBar-DDMAo4h-.mjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-BBcAt5Fj.mjs → NcRelatedResourcesPanel-BpH5XQ76.mjs} +104 -100
- package/dist/chunks/NcRelatedResourcesPanel-BpH5XQ76.mjs.map +1 -0
- package/dist/chunks/{NcRichContenteditable-BD6rWjXe.mjs → NcRichContenteditable-CknkQPrW.mjs} +81 -32
- package/dist/chunks/NcRichContenteditable-CknkQPrW.mjs.map +1 -0
- package/dist/chunks/{NcRichText-BwC3HU1U.mjs → NcRichText-4S-Bcw6_.mjs} +414 -388
- package/dist/chunks/NcRichText-4S-Bcw6_.mjs.map +1 -0
- package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-jUf1K561.mjs} +2 -2
- package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-jUf1K561.mjs.map} +1 -1
- package/dist/chunks/{NcSelect-DlAtugnK.mjs → NcSelect-CqmU4nl3.mjs} +10 -11
- package/dist/chunks/NcSelect-CqmU4nl3.mjs.map +1 -0
- package/dist/chunks/{NcSelectTags-N96Vc2rX.mjs → NcSelectTags-CcsDvt0V.mjs} +17 -16
- package/dist/chunks/NcSelectTags-CcsDvt0V.mjs.map +1 -0
- package/dist/chunks/{NcSelectUsers-BEoD3M8_.mjs → NcSelectUsers-BLzx7FTX.mjs} +5 -5
- package/dist/chunks/NcSelectUsers-BLzx7FTX.mjs.map +1 -0
- package/dist/chunks/{NcSettingsInputText-Dh5pxW31.mjs → NcSettingsInputText-BmOtUODF.mjs} +4 -4
- package/dist/chunks/NcSettingsInputText-BmOtUODF.mjs.map +1 -0
- package/dist/chunks/{NcSettingsSection-DOYZpyIW.mjs → NcSettingsSection-B1XS0NQu.mjs} +4 -4
- package/dist/chunks/{NcSettingsSection-DOYZpyIW.mjs.map → NcSettingsSection-B1XS0NQu.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-CUvIP57B.mjs → NcSettingsSelectGroup-BmtDlJ3e.mjs} +15 -17
- package/dist/chunks/NcSettingsSelectGroup-BmtDlJ3e.mjs.map +1 -0
- package/dist/chunks/{NcTextArea-BTKWGbc1.mjs → NcTextArea-CLM4W-yg.mjs} +19 -10
- package/dist/chunks/NcTextArea-CLM4W-yg.mjs.map +1 -0
- package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-DM5tkqJq.mjs → NcTextField.vue_vue_type_script_setup_true_lang-BN-Pgz4E.mjs} +9 -12
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-BN-Pgz4E.mjs.map +1 -0
- package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -1
- package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-CZ5IafBy.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CERjSiE5.mjs} +4 -4
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-CERjSiE5.mjs.map +1 -0
- package/dist/chunks/{NcUserBubble-DpGJJxHd.mjs → NcUserBubble-CxGixaPY.mjs} +9 -9
- package/dist/chunks/NcUserBubble-CxGixaPY.mjs.map +1 -0
- package/dist/chunks/{NcUserStatusIcon-DJ_IKC46.mjs → NcUserStatusIcon-BUBFkE3m.mjs} +15 -14
- package/dist/chunks/NcUserStatusIcon-BUBFkE3m.mjs.map +1 -0
- package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +1 -1
- package/dist/chunks/_l10n-CiWgAjJZ.mjs +111 -0
- package/dist/chunks/_l10n-CiWgAjJZ.mjs.map +1 -0
- package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +1 -1
- package/dist/chunks/{actionText-DdSwf9le.mjs → actionText-DYzDdbVe.mjs} +5 -4
- package/dist/chunks/{actionText-DdSwf9le.mjs.map → actionText-DYzDdbVe.mjs.map} +1 -1
- package/dist/chunks/{autolink-Y0rlJ_CI.mjs → autolink-U5pBzLgI.mjs} +9 -8
- package/dist/chunks/autolink-U5pBzLgI.mjs.map +1 -0
- package/dist/chunks/{colors-Bws_qBuw.mjs → colors-C_np5wf3.mjs} +10 -3
- package/dist/chunks/colors-C_np5wf3.mjs.map +1 -0
- package/dist/chunks/constants-Bls5liKo.mjs.map +1 -1
- package/dist/chunks/constants-DrSznhwy.mjs +11 -0
- package/dist/chunks/constants-DrSznhwy.mjs.map +1 -0
- package/dist/chunks/createElementId-DhjFt1I9.mjs.map +1 -1
- package/dist/chunks/{customPickerElements-CH9vlHLd.mjs → customPickerElements-4pQTZUnk.mjs} +7 -7
- package/dist/chunks/customPickerElements-4pQTZUnk.mjs.map +1 -0
- package/dist/chunks/emoji-BY_D0V5K.mjs.map +1 -1
- package/dist/chunks/{focusTrap-DmkaYJTC.mjs → focusTrap-HJQ4pqHV.mjs} +6 -3
- package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +1 -0
- package/dist/chunks/legacy-DcjXBL_t.mjs +6 -0
- package/dist/chunks/legacy-DcjXBL_t.mjs.map +1 -0
- package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -1
- package/dist/chunks/mdi-DXaZM2k3.mjs +49 -0
- package/dist/chunks/{mdi-D6fu5i4r.mjs.map → mdi-DXaZM2k3.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-BA3NmGQ-.mjs → referencePickerModal-tSRu6940.mjs} +129 -82
- package/dist/chunks/referencePickerModal-tSRu6940.mjs.map +1 -0
- package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -1
- package/dist/chunks/useNcActions-CiGWxAJE.mjs.map +1 -1
- package/dist/chunks/{useTrapStackControl-b3A_383w.mjs → useTrapStackControl-B6cEicto.mjs} +3 -4
- package/dist/chunks/useTrapStackControl-B6cEicto.mjs.map +1 -0
- package/dist/components/NcActionButton/NcActionButton.vue.d.ts +2 -1
- package/dist/components/NcActionButton/index.mjs +1 -1
- package/dist/components/NcActionButtonGroup/index.mjs +1 -1
- package/dist/components/NcActionCheckbox/index.mjs +1 -1
- package/dist/components/NcActionInput/NcActionInput.vue.d.ts +1934 -0
- package/dist/components/NcActionInput/index.mjs +1 -1
- package/dist/components/NcActionLink/index.mjs +1 -1
- package/dist/components/NcActionRadio/index.mjs +1 -1
- package/dist/components/NcActionRouter/NcActionRouter.vue.d.ts +1 -5
- package/dist/components/NcActionRouter/index.mjs +1 -1
- package/dist/components/NcActionText/index.mjs +1 -1
- package/dist/components/NcActionTextEditable/index.mjs +1 -1
- package/dist/components/NcActions/NcActions.vue.d.ts +504 -0
- package/dist/components/NcActions/index.mjs +1 -1
- package/dist/components/NcActions/useNcActions.d.ts +1 -1
- package/dist/components/NcAppContent/index.mjs +1 -1
- package/dist/components/NcAppContentList/NcAppContentList.vue.d.ts +12 -0
- package/dist/components/NcAppContentList/index.mjs +1 -1
- package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +59 -57
- package/dist/components/NcAppNavigation/index.d.ts +4 -0
- package/dist/components/NcAppNavigation/index.mjs +1 -1
- package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +347 -0
- package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
- package/dist/components/NcAppNavigationIconBullet/NcAppNavigationIconBullet.vue.d.ts +6 -0
- package/dist/components/NcAppNavigationIconBullet/index.mjs +1 -1
- package/dist/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +155 -0
- package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +1233 -0
- package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +183 -0
- package/dist/components/NcAppNavigationItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationList/index.d.ts +4 -0
- package/dist/components/NcAppNavigationList/index.mjs +1 -1
- package/dist/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +191 -0
- package/dist/components/NcAppNavigationNew/index.mjs +1 -1
- package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +270 -0
- package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
- package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +14 -14
- package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
- package/dist/components/NcAppNavigationSettings/NcAppNavigationSettings.vue.d.ts +1 -0
- package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
- package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +351 -0
- package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
- package/dist/components/NcAppSettingsSection/NcAppSettingsSection.vue.d.ts +12 -0
- package/dist/components/NcAppSettingsSection/index.mjs +1 -1
- package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +1011 -0
- package/dist/components/NcAppSidebar/index.mjs +1 -1
- package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +6 -0
- package/dist/components/NcAppSidebarTab/index.mjs +1 -1
- package/dist/components/NcAvatar/NcAvatar.vue.d.ts +977 -0
- package/dist/components/NcAvatar/index.mjs +1 -1
- package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +658 -0
- package/dist/components/NcBreadcrumb/index.mjs +1 -1
- package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +1251 -0
- package/dist/components/NcBreadcrumbs/index.mjs +1 -1
- package/dist/components/NcButton/NcButton.vue.d.ts +15 -10
- package/dist/components/NcButton/index.mjs +1 -1
- package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
- package/dist/components/NcChip/NcChip.vue.d.ts +2 -0
- package/dist/components/NcChip/index.mjs +1 -1
- package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +2412 -0
- package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +1374 -0
- package/dist/components/NcCollectionList/index.mjs +1 -1
- package/dist/components/NcCollectionList/service.d.ts +7 -0
- package/dist/components/NcCollectionList/useCollections.d.ts +1 -5
- package/dist/components/NcColorPicker/NcColorPicker.vue.d.ts +5 -2
- package/dist/components/NcColorPicker/index.mjs +1 -1
- package/dist/components/NcContent/constants.d.ts +9 -0
- package/dist/components/NcContent/index.mjs +1 -1
- package/dist/components/NcCounterBubble/index.mjs +1 -1
- package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +2438 -0
- package/dist/components/NcDashboardWidget/index.mjs +1 -1
- package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +1482 -0
- package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
- package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +6 -4
- package/dist/components/NcDateTimePicker/index.mjs +1 -1
- package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
- package/dist/components/NcDialog/NcDialog.vue.d.ts +6 -5
- package/dist/components/NcDialog/index.mjs +1 -1
- package/dist/components/NcDialogButton/index.mjs +1 -1
- package/dist/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +95 -0
- package/dist/components/NcEllipsisedOption/index.mjs +1 -1
- package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +561 -0
- package/dist/components/NcEmojiPicker/index.mjs +1 -1
- package/dist/components/NcGuestContent/index.mjs +1 -1
- package/dist/components/NcHeaderButton/index.mjs +1 -1
- package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +319 -0
- package/dist/components/NcHeaderMenu/index.mjs +1 -1
- package/dist/components/NcHighlight/NcHighlight.vue.d.ts +1 -1
- package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
- package/dist/components/NcInputField/NcInputField.vue.d.ts +8 -8
- package/dist/components/NcInputField/index.mjs +1 -1
- package/dist/components/NcListItem/NcListItem.vue.d.ts +652 -0
- package/dist/components/NcListItem/index.mjs +1 -1
- package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +1094 -0
- package/dist/components/NcListItemIcon/index.mjs +1 -1
- package/dist/components/NcLoadingIcon/index.mjs +1 -1
- package/dist/components/NcModal/index.mjs +1 -1
- package/dist/components/NcNoteCard/index.mjs +1 -1
- package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +14 -14
- package/dist/components/NcPasswordField/index.mjs +1 -1
- package/dist/components/NcPopover/NcPopoverTriggerProvider.vue.d.ts +12 -0
- package/dist/components/NcPopover/index.mjs +1 -1
- package/dist/components/NcProgressBar/NcProgressBar.vue.d.ts +48 -1
- package/dist/components/NcProgressBar/index.d.ts +4 -0
- package/dist/components/NcProgressBar/index.mjs +1 -1
- package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +463 -0
- package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +149 -0
- package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +175 -0
- package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
- package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +30 -0
- package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +30 -0
- package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +28 -3
- package/dist/components/NcRichContenteditable/index.mjs +1 -1
- package/dist/components/NcRichText/NcReferenceList.vue.d.ts +268 -0
- package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +197 -0
- package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +447 -0
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +1002 -0
- package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +1167 -0
- package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +275 -0
- package/dist/components/NcRichText/NcReferencePicker/NcSearchResult.vue.d.ts +69 -0
- package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +187 -0
- package/dist/components/NcRichText/NcRichText.vue.d.ts +405 -0
- package/dist/components/NcRichText/autolink.d.ts +18 -7
- package/dist/components/NcRichText/index.d.ts +6 -6
- package/dist/components/NcRichText/index.mjs +17 -17
- package/dist/components/NcSavingIndicatorIcon/index.mjs +1 -1
- package/dist/components/NcSelect/NcSelect.vue.d.ts +99 -0
- package/dist/components/NcSelect/index.mjs +1 -1
- package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +183 -0
- package/dist/components/NcSelectTags/api.d.ts +3 -0
- package/dist/components/NcSelectTags/index.mjs +1 -1
- package/dist/components/NcSelectUsers/index.mjs +1 -1
- package/dist/components/NcSettingsInputText/index.mjs +1 -1
- package/dist/components/NcSettingsSection/index.mjs +1 -1
- package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +243 -0
- package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
- package/dist/components/NcTextArea/NcTextArea.vue.d.ts +4 -5
- package/dist/components/NcTextArea/index.mjs +1 -1
- package/dist/components/NcTextField/NcTextField.vue.d.ts +14 -14
- package/dist/components/NcTextField/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/index.mjs +1 -1
- package/dist/components/NcTimezonePicker/timezoneDataProviderService.d.ts +0 -2
- package/dist/components/NcUserBubble/NcUserBubble.vue.d.ts +2 -2
- package/dist/components/NcUserBubble/index.mjs +1 -1
- package/dist/components/NcUserStatusIcon/index.mjs +1 -1
- package/dist/components/index.d.ts +6 -6
- package/dist/composables/useFormatDateTime/index.d.ts +2 -0
- package/dist/composables/useFormatDateTime/index.mjs +1 -1
- package/dist/composables/useFormatDateTime/index.mjs.map +1 -1
- package/dist/composables/useHotKey/index.mjs.map +1 -1
- package/dist/composables/useIsDarkTheme/constants.d.ts +1 -1
- package/dist/composables/useIsDarkTheme/index.d.ts +2 -1
- package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
- package/dist/composables/useIsFullscreen/index.mjs.map +1 -1
- package/dist/composables/useIsMobile/index.mjs.map +1 -1
- package/dist/composables/useTrapStackControl.d.ts +1 -1
- package/dist/directives/Focus/index.mjs.map +1 -1
- package/dist/directives/Linkify/index.mjs +1 -2
- package/dist/directives/Linkify/index.mjs.map +1 -1
- package/dist/functions/a11y/index.d.ts +2 -4
- package/dist/functions/a11y/index.mjs +2 -2
- package/dist/functions/a11y/index.mjs.map +1 -1
- package/dist/functions/contactsMenu/index.mjs.map +1 -1
- package/dist/functions/dialog/index.d.ts +1 -0
- package/dist/functions/dialog/index.mjs +1 -1
- package/dist/functions/dialog/index.mjs.map +1 -1
- package/dist/functions/emoji/emoji.d.ts +2 -2
- package/dist/functions/emoji/index.d.ts +1 -1
- package/dist/functions/isDarkTheme/index.d.ts +2 -1
- package/dist/functions/isDarkTheme/index.mjs.map +1 -1
- package/dist/functions/preloadImage/index.d.ts +1 -0
- package/dist/functions/preloadImage/index.mjs.map +1 -1
- package/dist/functions/reference/index.d.ts +3 -3
- package/dist/functions/reference/index.mjs +10 -10
- package/dist/functions/reference/widgets.d.ts +1 -0
- package/dist/functions/registerReference/index.d.ts +2 -2
- package/dist/functions/registerReference/index.mjs +5 -5
- package/dist/functions/usernameToColor/index.mjs +1 -1
- package/dist/functions/usernameToColor/index.mjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +92 -91
- package/dist/index.mjs.map +1 -1
- package/dist/l10n.d.ts +1 -1
- package/dist/mixins/actionText.d.ts +1 -0
- package/dist/utils/UserStatus.d.ts +6 -1
- package/dist/utils/focusTrap.d.ts +6 -0
- package/dist/utils/getAvatarUrl.d.ts +1 -0
- package/dist/utils/legacy.d.ts +5 -0
- package/package.json +54 -47
- package/dist/assets/NcAppNavigationToggle-B4XuIU5N.css +0 -27
- package/dist/assets/NcAvatar-j5lkSXJF.css +0 -132
- package/dist/assets/NcEmojiPicker-CeVpBSVx.css +0 -576
- package/dist/assets/NcListItem-BBaZDZQK.css +0 -186
- package/dist/assets/NcSelectUsers-2-PyuY9Z.css +0 -4
- package/dist/assets/NcTextArea-BLRA2iY6.css +0 -112
- package/dist/chunks/ArrowLeft-BiZLJltw.mjs +0 -49
- package/dist/chunks/ArrowLeft-BiZLJltw.mjs.map +0 -1
- package/dist/chunks/Check-5i4xKnkl.mjs +0 -49
- package/dist/chunks/Check-5i4xKnkl.mjs.map +0 -1
- package/dist/chunks/DotsHorizontal-BJ_GCGpi.mjs +0 -49
- package/dist/chunks/DotsHorizontal-BJ_GCGpi.mjs.map +0 -1
- package/dist/chunks/NcActionButton-Bd35_0n4.mjs.map +0 -1
- package/dist/chunks/NcActionCheckbox-DLPDTACR.mjs.map +0 -1
- package/dist/chunks/NcActionInput-uNqbQcU9.mjs.map +0 -1
- package/dist/chunks/NcActionLink-BEo7zmXX.mjs.map +0 -1
- package/dist/chunks/NcActionRadio-CPoWB58D.mjs.map +0 -1
- package/dist/chunks/NcActionRouter-ERoQjJKv.mjs.map +0 -1
- package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-rS1GklQ7.mjs.map +0 -1
- package/dist/chunks/NcActions-CyXKvnrY.mjs.map +0 -1
- package/dist/chunks/NcAppContent-BK8bOVDx.mjs.map +0 -1
- package/dist/chunks/NcAppContentList-DnLY_sWw.mjs.map +0 -1
- package/dist/chunks/NcAppNavigation-Ccjr0Wxc.mjs +0 -167
- package/dist/chunks/NcAppNavigation-Ccjr0Wxc.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationCaption-DxfUoJBO.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationIconBullet-B1kc4u65.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationItem-CSiMEh0V.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNew-CLbVKk5X.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationNewItem-B4TH71qQ.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSearch-BOZ5dS_m.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationSettings-9FtV3wC6.mjs +0 -138
- package/dist/chunks/NcAppNavigationSettings-9FtV3wC6.mjs.map +0 -1
- package/dist/chunks/NcAppNavigationToggle-D8aIKSiz.mjs +0 -137
- package/dist/chunks/NcAppNavigationToggle-D8aIKSiz.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsDialog-B4rJQ7w_.mjs.map +0 -1
- package/dist/chunks/NcAppSettingsSection-CssmXyZ0.mjs.map +0 -1
- package/dist/chunks/NcAppSidebar-D0azvKne.mjs.map +0 -1
- package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +0 -1
- package/dist/chunks/NcAvatar-Ccw1N-kB.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-C9ma2_SJ.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumbs-kg_aktAn.mjs.map +0 -1
- package/dist/chunks/NcButton-Df1eAyJ3.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-D8tOjXwB.mjs.map +0 -1
- package/dist/chunks/NcChip-Bf2JVPf_.mjs.map +0 -1
- package/dist/chunks/NcCollectionList-DtD-RXl8.mjs.map +0 -1
- package/dist/chunks/NcColorPicker-BRIu0Qel.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidget-cBZ_Ub8Q.mjs.map +0 -1
- package/dist/chunks/NcDashboardWidgetItem-BnUtMMCC.mjs.map +0 -1
- package/dist/chunks/NcDateTimePicker-Dliaj0xD.mjs.map +0 -1
- package/dist/chunks/NcDateTimePickerNative-CEm70Aaw.mjs.map +0 -1
- package/dist/chunks/NcDialog-B_4Lud9m.mjs.map +0 -1
- package/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-d1zLHPqM.mjs.map +0 -1
- package/dist/chunks/NcEllipsisedOption-C8uNDC-j.mjs.map +0 -1
- package/dist/chunks/NcEmojiPicker-DZXHV_Me.mjs.map +0 -1
- package/dist/chunks/NcGuestContent-mLXi-A-D.mjs.map +0 -1
- package/dist/chunks/NcHeaderButton-D6LMZ6iL.mjs.map +0 -1
- package/dist/chunks/NcHeaderMenu-O0loxc_q.mjs.map +0 -1
- package/dist/chunks/NcInputConfirmCancel-RRwim02d.mjs.map +0 -1
- package/dist/chunks/NcInputField-DEHb834Z.mjs.map +0 -1
- package/dist/chunks/NcListItem-C6WoTIa4.mjs.map +0 -1
- package/dist/chunks/NcListItemIcon-5OKjuvJE.mjs.map +0 -1
- package/dist/chunks/NcLoadingIcon-Dm3kRPrf.mjs.map +0 -1
- package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +0 -1
- package/dist/chunks/NcModal-n7KHhtoD.mjs.map +0 -1
- package/dist/chunks/NcNoteCard-B5CvOJmh.mjs.map +0 -1
- package/dist/chunks/NcPasswordField-JRyxT6wU.mjs.map +0 -1
- package/dist/chunks/NcPopover-DLoAYZgv.mjs.map +0 -1
- package/dist/chunks/NcProgressBar-Bx8bMkd4.mjs +0 -148
- package/dist/chunks/NcProgressBar-Bx8bMkd4.mjs.map +0 -1
- package/dist/chunks/NcRelatedResourcesPanel-BBcAt5Fj.mjs.map +0 -1
- package/dist/chunks/NcRichContenteditable-BD6rWjXe.mjs.map +0 -1
- package/dist/chunks/NcRichText-BwC3HU1U.mjs.map +0 -1
- package/dist/chunks/NcSelect-DlAtugnK.mjs.map +0 -1
- package/dist/chunks/NcSelectTags-N96Vc2rX.mjs.map +0 -1
- package/dist/chunks/NcSelectUsers-BEoD3M8_.mjs.map +0 -1
- package/dist/chunks/NcSettingsInputText-Dh5pxW31.mjs.map +0 -1
- package/dist/chunks/NcSettingsSelectGroup-CUvIP57B.mjs.map +0 -1
- package/dist/chunks/NcTextArea-BTKWGbc1.mjs.map +0 -1
- package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-DM5tkqJq.mjs.map +0 -1
- package/dist/chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-CZ5IafBy.mjs.map +0 -1
- package/dist/chunks/NcUserBubble-DpGJJxHd.mjs.map +0 -1
- package/dist/chunks/NcUserStatusIcon-DJ_IKC46.mjs.map +0 -1
- package/dist/chunks/_l10n-_R1HqC4N.mjs +0 -108
- package/dist/chunks/_l10n-_R1HqC4N.mjs.map +0 -1
- package/dist/chunks/autolink-Y0rlJ_CI.mjs.map +0 -1
- package/dist/chunks/colors-Bws_qBuw.mjs.map +0 -1
- package/dist/chunks/customPickerElements-CH9vlHLd.mjs.map +0 -1
- package/dist/chunks/focusTrap-DmkaYJTC.mjs.map +0 -1
- package/dist/chunks/mdi-D6fu5i4r.mjs +0 -37
- package/dist/chunks/referencePickerModal-BA3NmGQ-.mjs.map +0 -1
- package/dist/chunks/useTrapStackControl-b3A_383w.mjs.map +0 -1
- package/dist/components/NcAppNavigationToggle/index.d.ts +0 -5
- package/dist/components/NcAppNavigationToggle/index.mjs +0 -5
- package/dist/components/NcAppNavigationToggle/index.mjs.map +0 -1
- package/dist/vendor.LICENSE.txt +0 -137
- /package/dist/components/{NcAppNavigationToggle → NcAppNavigation}/NcAppNavigationToggle.vue.d.ts +0 -0
|
@@ -1,11 +1,53 @@
|
|
|
1
|
-
import '../assets/NcDashboardWidget-
|
|
2
|
-
import {
|
|
3
|
-
import { N as NcDashboardWidgetItem } from "./NcDashboardWidgetItem-BnUtMMCC.mjs";
|
|
4
|
-
import { N as NcEmptyContent } from "./NcEmptyContent-BdOezubv.mjs";
|
|
5
|
-
import { C as Check } from "./Check-5i4xKnkl.mjs";
|
|
6
|
-
import { r as register, g as t33, a as t } from "./_l10n-_R1HqC4N.mjs";
|
|
7
|
-
import { resolveComponent, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, renderSlot, withCtx, createVNode, Fragment, renderList, mergeProps, toHandlers, toDisplayString } from "vue";
|
|
1
|
+
import '../assets/NcDashboardWidget-DD06i7ws.css';
|
|
2
|
+
import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, renderSlot, withCtx, createVNode, Fragment, renderList, toHandlers } from "vue";
|
|
8
3
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
4
|
+
import { r as register, n as t33, a as t } from "./_l10n-CiWgAjJZ.mjs";
|
|
5
|
+
import { N as NcAvatar } from "./NcAvatar-42dhVtul.mjs";
|
|
6
|
+
import { N as NcDashboardWidgetItem } from "./NcDashboardWidgetItem-GGmhjTfk.mjs";
|
|
7
|
+
import { N as NcEmptyContent } from "./NcEmptyContent-BdOezubv.mjs";
|
|
8
|
+
const _sfc_main$1 = {
|
|
9
|
+
name: "CheckIcon",
|
|
10
|
+
emits: ["click"],
|
|
11
|
+
props: {
|
|
12
|
+
title: {
|
|
13
|
+
type: String
|
|
14
|
+
},
|
|
15
|
+
fillColor: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: "currentColor"
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
type: Number,
|
|
21
|
+
default: 24
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const _hoisted_1$1 = ["aria-hidden", "aria-label"];
|
|
26
|
+
const _hoisted_2$1 = ["fill", "width", "height"];
|
|
27
|
+
const _hoisted_3$1 = { d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" };
|
|
28
|
+
const _hoisted_4 = { key: 0 };
|
|
29
|
+
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
30
|
+
return openBlock(), createElementBlock("span", mergeProps(_ctx.$attrs, {
|
|
31
|
+
"aria-hidden": $props.title ? null : "true",
|
|
32
|
+
"aria-label": $props.title,
|
|
33
|
+
class: "material-design-icon check-icon",
|
|
34
|
+
role: "img",
|
|
35
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
36
|
+
}), [
|
|
37
|
+
(openBlock(), createElementBlock("svg", {
|
|
38
|
+
fill: $props.fillColor,
|
|
39
|
+
class: "material-design-icon__svg",
|
|
40
|
+
width: $props.size,
|
|
41
|
+
height: $props.size,
|
|
42
|
+
viewBox: "0 0 24 24"
|
|
43
|
+
}, [
|
|
44
|
+
createElementVNode("path", _hoisted_3$1, [
|
|
45
|
+
$props.title ? (openBlock(), createElementBlock("title", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode("", true)
|
|
46
|
+
])
|
|
47
|
+
], 8, _hoisted_2$1))
|
|
48
|
+
], 16, _hoisted_1$1);
|
|
49
|
+
}
|
|
50
|
+
const Check = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
|
|
9
51
|
register(t33);
|
|
10
52
|
const _sfc_main = {
|
|
11
53
|
name: "NcDashboardWidget",
|
|
@@ -41,7 +83,7 @@ const _sfc_main = {
|
|
|
41
83
|
*/
|
|
42
84
|
showMoreLabel: {
|
|
43
85
|
type: String,
|
|
44
|
-
default: t("More items
|
|
86
|
+
default: t("More items …")
|
|
45
87
|
},
|
|
46
88
|
/**
|
|
47
89
|
* A boolean to put the widget in a loading state.
|
|
@@ -178,8 +220,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
178
220
|
}, toDisplayString($props.showMoreLabel), 9, _hoisted_3)) : createCommentVNode("", true)
|
|
179
221
|
]);
|
|
180
222
|
}
|
|
181
|
-
const NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
223
|
+
const NcDashboardWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b74472e8"]]);
|
|
182
224
|
export {
|
|
183
225
|
NcDashboardWidget as N
|
|
184
226
|
};
|
|
185
|
-
//# sourceMappingURL=NcDashboardWidget-
|
|
227
|
+
//# sourceMappingURL=NcDashboardWidget-P6DhIXT2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcDashboardWidget-P6DhIXT2.mjs","sources":["../../node_modules/vue-material-design-icons/Check.vue","../../src/components/NcDashboardWidget/NcDashboardWidget.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon check-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,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CheckIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n## Usage\n\n### Simplest example with custom item\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\">\n\t\t<template #default=\"{ item }\">\n\t\t\t{{ item.name }}\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tname: 'first',\n\t\tcontent: 'blabla',\n\t},\n\t{\n\t\tname: 'second',\n\t\tcontent: 'fuzzfuzz',\n\t},\n]\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems\n\t\t}\n\t},\n}\n</script>\n```\n\n### Showing items and a half empty content message\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-items-and-empty-content=\"true\"\n\t\t:half-empty-content-message=\"'No unread items'\">\n\t\t<template #default=\"{ item }\">\n\t\t\t{{ item.name }}\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tname: 'first',\n\t\tcontent: 'blabla',\n\t},\n\t{\n\t\tname: 'second',\n\t\tcontent: 'fuzzfuzz',\n\t},\n]\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems\n\t\t}\n\t},\n}\n</script>\n```\n\n### Complete example using NcDashboardWidgetItem\n\n```vue\n<template>\n\t<NcDashboardWidget :items=\"items\"\n\t\t:show-more-url=\"'https://nextcloud.com'\"\n\t\t:item-menu=\"itemMenu\"\n\t\t@hide=\"onHide\"\n\t\t@markDone=\"onMarkDone\">\n\n\t\t<template #empty-content>\n\t\t\tNothing to display\n\t\t</template>\n\t</NcDashboardWidget>\n</template>\n\n<script>\nconst myItems = [\n\t{\n\t\tid: '1',\n\t\ttargetUrl: 'https://target.org',\n\t\tavatarUrl: 'https://avatar.url/img.png',\n\t\tavatarUsername: 'Robert',\n\t\tavatarIsNoUser: true,\n\t\toverlayIconUrl: '/svg/core/actions/sound?color=000',\n\t\tmainText: 'First item text',\n\t\tsubText: 'First item subtext',\n\t},\n\t{\n\t\tid: '2',\n\t\ttargetUrl: 'https://other-target.org',\n\t\tavatarUrl: 'https://other-avatar.url/img.png',\n\t\toverlayIconUrl: '/svg/core/actions/add?color=000',\n\t\tmainText: 'Second item text',\n\t\tsubText: 'Second item subtext',\n\t},\n]\nconst myItemMenu = {\n\t// triggers an event named \"markDone\" when clicked\n\t'markDone': {\n\t\ttext: 'Mark as done',\n\t\ticon: 'icon-checkmark',\n\t},\n\t// triggers an event named \"hide\" when clicked\n\t'hide': {\n\t\ttext: 'Hide',\n\t\ticon: 'icon-toggle',\n\t},\n}\nexport default {\n\tname: 'MyDashboardWidget',\n\tprops: [],\n\tdata() {\n\t\treturn {\n\t\t\titems: myItems,\n\t\t\titemMenu: myItemMenu,\n\t\t\tloading: true,\n\t\t}\n\t},\n\tmethods: {\n\t\tonMoreClick() {\n\t\t\tconsole.log('more clicked')\n\t\t\tconst win = window.open('https://wherever.you.want', '_blank')\n\t\t\twin.focus()\n\t\t},\n\t\tonHide(item) {\n\t\t\tconsole.log('user wants to hide item ' + item.id)\n\t\t\t// do what you want\n\t\t},\n\t\tonMarkDone(item) {\n\t\t\tconsole.log('user wants to mark item ' + item.id + ' as done')\n\t\t\t// do what you want\n\t\t},\n\t},\n}\n</script>\n```\n\n</docs>\n\n<template>\n\t<div class=\"dashboard-widget\">\n\t\t<!-- This element is shown if we have items, but want to show a general message as well.\n\t\tCan be used e.g. to show \"No mentions\" on top of the item list. -->\n\t\t<NcEmptyContent\n\t\t\tv-if=\"showHalfEmptyContentArea\"\n\t\t\t:description=\"halfEmptyContentString\"\n\t\t\tclass=\"half-screen\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot The icon to show in the half empty content area. -->\n\t\t\t\t<slot name=\"halfEmptyContentIcon\">\n\t\t\t\t\t<Check />\n\t\t\t\t</slot>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<!-- The list of items to show. -->\n\t\t<ul>\n\t\t\t<li v-for=\"item in displayedItems\" :key=\"item.id\">\n\t\t\t\t<!-- @slot The default slot can be optionally overridden. It contains the template of one item. -->\n\t\t\t\t<slot name=\"default\" :item=\"item\">\n\t\t\t\t\t<NcDashboardWidgetItem\n\t\t\t\t\t\tv-bind=\"item\"\n\t\t\t\t\t\t:item-menu=\"itemMenu\"\n\t\t\t\t\t\tv-on=\"handlers\" />\n\t\t\t\t</slot>\n\t\t\t</li>\n\t\t</ul>\n\t\t<!-- While the widget is loading, we show a list of placeholder items. -->\n\t\t<div v-if=\"loading\">\n\t\t\t<div v-for=\"i in 7\" :key=\"i\" class=\"item-list__entry\">\n\t\t\t\t<NcAvatar class=\"item-avatar\" :size=\"44\" />\n\t\t\t\t<div class=\"item__details\">\n\t\t\t\t\t<h3> </h3>\n\t\t\t\t\t<p class=\"message\">\n \n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<!-- @slot Slot for showing information in case of an empty item list. -->\n\t\t<slot v-else-if=\"items.length === 0\" name=\"empty-content\">\n\t\t\t<NcEmptyContent\n\t\t\t\tv-if=\"emptyContentMessage\"\n\t\t\t\t:description=\"emptyContentMessage\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<!-- @slot The icon to show in the empty content area. -->\n\t\t\t\t\t<slot name=\"emptyContentIcon\" />\n\t\t\t\t</template>\n\t\t\t</NcEmptyContent>\n\t\t</slot>\n\t\t<!-- A \"show more\" link, e.g. to navigate to the main app belonging to this widget. -->\n\t\t<a\n\t\t\tv-else-if=\"showMore\"\n\t\t\t:href=\"showMoreUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tclass=\"more\"\n\t\t\ttabindex=\"0\">\n\t\t\t{{ showMoreLabel }}\n\t\t</a>\n\t</div>\n</template>\n\n<script>\nimport Check from 'vue-material-design-icons/Check.vue'\nimport { t } from '../../l10n.ts'\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcDashboardWidgetItem from '../NcDashboardWidgetItem/index.js'\nimport NcEmptyContent from '../NcEmptyContent/index.ts'\n\nexport default {\n\tname: 'NcDashboardWidget',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcDashboardWidgetItem,\n\t\tNcEmptyContent,\n\t\tCheck,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * An array containing the items to show (specific structure must be respected,\n\t\t * except if you override item rendering in the default slot).\n\t\t */\n\t\titems: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => { return [] },\n\t\t},\n\n\t\t/**\n\t\t * If this is set, a \"show more\" text is displayed on the widget's bottom.\n\t\t * It's a link pointing to this URL.\n\t\t */\n\t\tshowMoreUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The text of show more button.\n\t\t *\n\t\t * Expected to be in the form \"More {itemName} …\"\n\t\t */\n\t\tshowMoreLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('More items …'),\n\t\t},\n\n\t\t/**\n\t\t * A boolean to put the widget in a loading state.\n\t\t */\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * An object containing context menu entries that will be displayed for each item.\n\t\t */\n\t\titemMenu: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\n\t\t/**\n\t\t * Whether both the items and the empty content message are shown.\n\t\t * Usefull for e.g. showing \"No mentions\" and a list of elements.\n\t\t */\n\t\tshowItemsAndEmptyContent: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The text to show in the empty content area.\n\t\t */\n\t\temptyContentMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The text to show in the half empty content area.\n\t\t */\n\t\thalfEmptyContentMessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t// forward menu events to my parent\n\t\thandlers() {\n\t\t\tconst h = {}\n\t\t\tfor (const evName in this.itemMenu) {\n\t\t\t\th[evName] = (it) => {\n\t\t\t\t\tthis.$emit(evName, it)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn h\n\t\t},\n\n\t\tdisplayedItems() {\n\t\t\tconst nbItems = (this.showMoreUrl && this.items.length >= this.maxItemNumber)\n\t\t\t\t? this.maxItemNumber - 1\n\t\t\t\t: this.maxItemNumber\n\t\t\treturn this.items.slice(0, nbItems)\n\t\t},\n\n\t\tshowHalfEmptyContentArea() {\n\t\t\treturn this.showItemsAndEmptyContent && this.halfEmptyContentString && this.items.length !== 0\n\t\t},\n\n\t\thalfEmptyContentString() {\n\t\t\treturn this.halfEmptyContentMessage || this.emptyContentMessage\n\t\t},\n\n\t\tmaxItemNumber() {\n\t\t\treturn this.showItemsAndEmptyContent ? 5 : 7\n\t\t},\n\n\t\tshowMore() {\n\t\t\treturn this.showMoreUrl && this.items.length >= this.maxItemNumber\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.dashboard-widget :deep(.empty-content) {\n\ttext-align: center;\n\tpadding-top: 5vh;\n\t&.half-screen {\n\t\tpadding-top: 0;\n\t\tmargin-bottom: 1vh;\n\t}\n}\n\n.more {\n\tdisplay: block;\n\ttext-align: center;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: 60px;\n\tcursor: pointer;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-element);\n\t\tcolor: var(--color-main-text);\n\t}\n}\n\n/* skeleton */\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tpadding: 8px;\n\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-block: auto;\n\t\tbackground-color: var(--color-background-dark) !important;\n\t}\n\t.item__details {\n\t\tpadding-inline-start: 8px;\n\t\tmax-height: var(--default-clickable-area);\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 80%;\n\t\t\theight: 15px;\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","_createBlock","_renderSlot","_createVNode","_Fragment","_renderList","_toHandlers"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/chunks/{NcDashboardWidgetItem-BnUtMMCC.mjs → NcDashboardWidgetItem-GGmhjTfk.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import '../assets/NcDashboardWidgetItem-
|
|
2
|
-
import { N as
|
|
3
|
-
import { N as NcActions } from "./NcActions-
|
|
4
|
-
import { N as
|
|
1
|
+
import '../assets/NcDashboardWidgetItem-DPVZ3Oso.css';
|
|
2
|
+
import { N as NcActionButton } from "./NcActionButton-DseKq57Q.mjs";
|
|
3
|
+
import { N as NcActions } from "./NcActions-BOqfKgN5.mjs";
|
|
4
|
+
import { N as NcAvatar } from "./NcAvatar-42dhVtul.mjs";
|
|
5
5
|
import { resolveComponent, createElementBlock, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, renderSlot, createCommentVNode, createElementVNode, createVNode, toDisplayString, Fragment, renderList, withModifiers, createTextVNode } from "vue";
|
|
6
6
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
7
7
|
const _sfc_main = {
|
|
@@ -132,7 +132,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
132
132
|
(openBlock(), createBlock(resolveDynamicComponent($props.targetUrl ? "a" : "div"), {
|
|
133
133
|
href: $props.targetUrl || void 0,
|
|
134
134
|
target: $props.targetUrl ? "_blank" : void 0,
|
|
135
|
-
class: normalizeClass(
|
|
135
|
+
class: normalizeClass(["item-list__entry", { "item-list__entry--has-actions-menu": $options.gotMenu }]),
|
|
136
136
|
onClick: $options.onLinkClick
|
|
137
137
|
}, {
|
|
138
138
|
default: withCtx(() => [
|
|
@@ -191,8 +191,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
191
191
|
}, 8, ["href", "target", "class", "onClick"]))
|
|
192
192
|
], 32);
|
|
193
193
|
}
|
|
194
|
-
const NcDashboardWidgetItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
194
|
+
const NcDashboardWidgetItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c033ba26"]]);
|
|
195
195
|
export {
|
|
196
196
|
NcDashboardWidgetItem as N
|
|
197
197
|
};
|
|
198
|
-
//# sourceMappingURL=NcDashboardWidgetItem-
|
|
198
|
+
//# sourceMappingURL=NcDashboardWidgetItem-GGmhjTfk.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcDashboardWidgetItem-GGmhjTfk.mjs","sources":["../../src/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component is meant to be used inside a DashboardWidget component.\n\n</docs>\n\n<template>\n\t<div @mouseover=\"hovered = true\" @mouseleave=\"hovered = false\">\n\t\t<component\n\t\t\t:is=\"targetUrl ? 'a' : 'div'\"\n\t\t\t:href=\"targetUrl || undefined\"\n\t\t\t:target=\"targetUrl ? '_blank' : undefined\"\n\t\t\tclass=\"item-list__entry\"\n\t\t\t:class=\"{ 'item-list__entry--has-actions-menu': gotMenu }\"\n\t\t\t@click=\"onLinkClick\">\n\t\t\t<!-- @slot Slot for passing a user avatar. -->\n\t\t\t<slot name=\"avatar\" :avatar-url=\"avatarUrl\" :avatar-username=\"avatarUsername\">\n\t\t\t\t<NcAvatar\n\t\t\t\t\tclass=\"item-avatar\"\n\t\t\t\t\t:size=\"44\"\n\t\t\t\t\t:url=\"avatarUrl\"\n\t\t\t\t\t:user=\"avatarUsername\"\n\t\t\t\t\t:is-no-user=\"avatarIsNoUser\"\n\t\t\t\t\t:hide-status=\"gotOverlayIcon\" />\n\t\t\t</slot>\n\t\t\t<img\n\t\t\t\tv-if=\"overlayIconUrl\"\n\t\t\t\tclass=\"item-icon\"\n\t\t\t\talt=\"\"\n\t\t\t\t:src=\"overlayIconUrl\">\n\t\t\t<div class=\"item__details\">\n\t\t\t\t<h3 :title=\"mainText\">\n\t\t\t\t\t{{ mainText }}\n\t\t\t\t</h3>\n\t\t\t\t<span v-if=\"subText !== ''\" class=\"message\" :title=\"subText\">\n\t\t\t\t\t{{ subText }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<NcActions v-if=\"gotMenu\" :force-menu=\"forceMenu\">\n\t\t\t\t<!-- @slot This slot can be used to provide actions for each dashboard widget item. -->\n\t\t\t\t<slot name=\"actions\">\n\t\t\t\t\t<NcActionButton\n\t\t\t\t\t\tv-for=\"(m, menuItemId) in itemMenu\"\n\t\t\t\t\t\t:key=\"menuItemId\"\n\t\t\t\t\t\t:icon=\"m.icon\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t@click.prevent.stop=\"$emit(menuItemId, item)\">\n\t\t\t\t\t\t{{ m.text }}\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</slot>\n\t\t\t</NcActions>\n\t\t</component>\n\t</div>\n</template>\n\n<script>\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcActions from '../NcActions/index.js'\nimport NcAvatar from '../NcAvatar/index.js'\n\nexport default {\n\tname: 'NcDashboardWidgetItem',\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The item id (optional)\n\t\t */\n\t\tid: {\n\t\t\ttype: [String, Number],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * The item element is a link to this URL (optional)\n\t\t */\n\t\ttargetUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Where to get the avatar image. (optional) Used if avatarUsername is not defined.\n\t\t */\n\t\tavatarUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Name to provide to the Avatar. (optional) Used if avatarUrl is not defined.\n\t\t */\n\t\tavatarUsername: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Is the avatarUsername not a user's name? (optional, false by default)\n\t\t */\n\t\tavatarIsNoUser: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Small icon to display on the bottom-right corner of the avatar (optional)\n\t\t */\n\t\toverlayIconUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Item main text (mandatory)\n\t\t */\n\t\tmainText: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Item subline text (optional)\n\t\t */\n\t\tsubText: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * An object containing context menu entries that will be displayed for each items (optional)\n\t\t */\n\t\titemMenu: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => { return {} },\n\t\t},\n\n\t\t/**\n\t\t * Specify whether the 3 dot menu is forced when only one action is present\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\thovered: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\titem() {\n\t\t\treturn {\n\t\t\t\tid: this.id,\n\t\t\t\ttargetUrl: this.targetUrl,\n\t\t\t\tavatarUrl: this.avatarUrl,\n\t\t\t\tavatarUsername: this.avatarUsername,\n\t\t\t\toverlayIconUrl: this.overlayIconUrl,\n\t\t\t\tmainText: this.mainText,\n\t\t\t\tsubText: this.subText,\n\t\t\t}\n\t\t},\n\n\t\tgotMenu() {\n\t\t\treturn Object.keys(this.itemMenu).length !== 0 || !!this.$slots.actions\n\t\t},\n\n\t\tgotOverlayIcon() {\n\t\t\treturn this.overlayIconUrl && this.overlayIconUrl !== ''\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonLinkClick(event) {\n\t\t\tif (event.target.closest('.action-item')) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.item-list__entry {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: relative;\n\tpadding: 8px;\n\n\t&:hover,\n\t&:focus {\n\t\tbackground-color: var(--color-background-hover);\n\t\tborder-radius: var(--border-radius-element);\n\t}\n\t.item-avatar {\n\t\tposition: relative;\n\t\tmargin-top: auto;\n\t\tmargin-bottom: auto;\n\t}\n\t.item__details {\n\t\tpadding-inline-start: 8px;\n\t\tmax-height: fit-content;\n\t\tflex-grow: 1;\n\t\toverflow: hidden;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-height: var(--default-clickable-area);\n\n\t\th3,\n\t\t.message {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t.message span {\n\t\t\twidth: 10px;\n\t\t\tdisplay: inline-block;\n\t\t\tmargin-bottom: -3px;\n\t\t}\n\t\th3 {\n\t\t\tfont-size: 100%;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.message {\n\t\t\twidth: 100%;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n\n\t.item-icon {\n\t\tposition: relative;\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tmargin-top: 25px;\n\t\tmargin-inline: -10px -2px;\n\t}\n\n\tbutton.primary {\n\t\tpadding: 21px;\n\t\tmargin: 0;\n\t}\n}\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-inline: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/\n</style>\n"],"names":["_createElementBlock","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_renderSlot","_createVNode","_createElementVNode","_Fragment","_renderList","_withModifiers","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs","sources":["../../src/components/NcDateTime/NcDateTime.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis components purpose is to display a timestamp in the users local time format.\nIt also supports relative time, for examples *6 seconds ago*.\n\n#### Standard usage\n\nWithout any optional parameters the timestamp is displayed as a relative datetime and a title with the full date is added.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Ignore seconds\n\nIf you do not want the seconds to be counted up until minutes are reached you can simply use the `ignore-seconds` property.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" :ignore-seconds=\"true\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Custom date or time format\n\nThe component allows to format the full date for the title by settings the `format` property.\nIt is also possible to disable relative time by setting the `relativeTime` property to `false`.\n\n```vue\n<template>\n\t<div>\n\t\t<h4>Short relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" relative-time=\"short\" />\n\n\t\t<h4>Custom title format</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" />\n\n\t\t<h4>Without relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" :relative-time=\"false\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t/** For allowed formats see the Intl.DateTimeFormat options */\n\t\t\t\ttimeFormat: {\n\t\t\t\t\tdateStyle: 'short',\n\t\t\t\t\ttimeStyle: 'full'\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t}\n</script>\n<style>\nh4 {\n\tfont-weight: bold;\n\tmargin-top: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span
|
|
1
|
+
{"version":3,"file":"NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs","sources":["../../src/components/NcDateTime/NcDateTime.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis components purpose is to display a timestamp in the users local time format.\nIt also supports relative time, for examples *6 seconds ago*.\n\n#### Standard usage\n\nWithout any optional parameters the timestamp is displayed as a relative datetime and a title with the full date is added.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Ignore seconds\n\nIf you do not want the seconds to be counted up until minutes are reached you can simply use the `ignore-seconds` property.\n\n```vue\n<template>\n\t<NcDateTime :timestamp=\"timestamp\" :ignore-seconds=\"true\" />\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n#### Custom date or time format\n\nThe component allows to format the full date for the title by settings the `format` property.\nIt is also possible to disable relative time by setting the `relativeTime` property to `false`.\n\n```vue\n<template>\n\t<div>\n\t\t<h4>Short relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" relative-time=\"short\" />\n\n\t\t<h4>Custom title format</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" />\n\n\t\t<h4>Without relative time</h4>\n\t\t<NcDateTime :timestamp=\"timestamp\" :format=\"timeFormat\" :relative-time=\"false\" />\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t/** For allowed formats see the Intl.DateTimeFormat options */\n\t\t\t\ttimeFormat: {\n\t\t\t\t\tdateStyle: 'short',\n\t\t\t\t\ttimeStyle: 'full'\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t}\n</script>\n<style>\nh4 {\n\tfont-weight: bold;\n\tmargin-top: 12px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span\n\t\tclass=\"nc-datetime\"\n\t\t:data-timestamp=\"timestamp\"\n\t\t:title\n\t\tv-text=\"formattedTime\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, toRef } from 'vue'\nimport { useFormatRelativeTime, useFormatTime } from '../../composables/useFormatDateTime/index.ts'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * The timestamp to display, either an unix timestamp (in milliseconds) or a Date object\n\t */\n\ttimestamp: Date | number\n\n\t/**\n\t * The format used for displaying, or if relative time is used the format used for the title (optional)\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n\n\t/**\n\t * Wether to display the timestamp as time from now (optional)\n\t *\n\t * - `false`: Disable relative time\n\t * - `'long'`: Long text, like *2 seconds ago* (default)\n\t * - `'short'`: Short text, like *2 sec. ago*\n\t * - `'narrow'`: Even shorter text (same as `'short'` on some languages)\n\t */\n\trelativeTime?: false | 'long' | 'short' | 'narrow'\n\n\t/**\n\t * Ignore seconds when displaying the relative time and just show `a few seconds ago`\n\t */\n\tignoreSeconds?: boolean\n}>(), {\n\tformat: () => ({ timeStyle: 'medium', dateStyle: 'short' }),\n\trelativeTime: 'long',\n})\n\nconst timeOptions = computed(() => ({ format: props.format }))\nconst relativeTimeOptions = computed(() => ({\n\tignoreSeconds: props.ignoreSeconds,\n\trelativeTime: props.relativeTime || 'long',\n\tupdate: props.relativeTime !== false,\n}))\n\nconst title = useFormatTime(toRef(() => props.timestamp), timeOptions)\nconst relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions)\n\nconst formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value)\n</script>\n"],"names":["_createElementBlock","timestamp","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;;AAuGA,UAAM,QAAQ;AA8Bd,UAAM,cAAc,SAAS,OAAO,EAAE,QAAQ,MAAM,SAAS;AAC7D,UAAM,sBAAsB,SAAS,OAAO;AAAA,MAC3C,eAAe,MAAM;AAAA,MACrB,cAAc,MAAM,gBAAgB;AAAA,MACpC,QAAQ,MAAM,iBAAiB;AAAA,IAAA,EAC9B;AAEF,UAAM,QAAQ,cAAc,MAAM,MAAM,MAAM,SAAS,GAAG,WAAW;AACrE,UAAM,eAAe,sBAAsB,MAAM,MAAM,MAAM,SAAS,GAAG,mBAAmB;AAE5F,UAAM,gBAAgB,SAAS,MAAM,MAAM,eAAe,aAAa,QAAQ,MAAM,KAAK;;0BAnDzFA,mBAI0B,QAAA;AAAA,QAHzB,OAAM;AAAA,QACL,kBAAgBC,KAAAA;AAAAA,QAChB,OAAAC,MAAA,KAAA;AAAA,QACD,aAAAC,gBAAQ,cAAc,KAAD;AAAA,MAAA;;;;"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import '../assets/NcDateTimePicker-
|
|
1
|
+
import '../assets/NcDateTimePicker-D0VMSpM3.css';
|
|
2
2
|
import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createElementBlock, openBlock, createVNode, createBlock, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, Teleport, createElementVNode } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { o as mdiChevronUp, p as mdiChevronDown, c as mdiChevronRight, q as mdiChevronLeft, r as mdiClock, s as mdiCalendarBlank, b as mdiClose } from "./mdi-DXaZM2k3.mjs";
|
|
4
4
|
import { getCanonicalLocale, getDayNamesMin, getFirstDay, getDayNames } from "@nextcloud/l10n";
|
|
5
|
-
import { r as register, a as t } from "./_l10n-_R1HqC4N.mjs";
|
|
6
5
|
import VueDatePicker from "@vuepic/vue-datepicker";
|
|
7
|
-
import { N as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-5AA93z-F.mjs";
|
|
7
|
+
import { _ as _sfc_main$1 } from "./NcTimezonePicker.vue_vue_type_script_setup_true_lang-CERjSiE5.mjs";
|
|
8
|
+
import { r as register, a as t } from "./_l10n-CiWgAjJZ.mjs";
|
|
9
|
+
import { N as NcButton } from "./NcButton-DkC5k3Lb.mjs";
|
|
10
10
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
11
11
|
register();
|
|
12
12
|
const _hoisted_1 = { class: "vue-date-time-picker__wrapper" };
|
|
13
|
+
const _hoisted_2 = {
|
|
14
|
+
ref: "target-key",
|
|
15
|
+
class: "vue-date-time-picker__wrapper"
|
|
16
|
+
};
|
|
13
17
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
18
|
__name: "NcDateTimePicker",
|
|
15
19
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -32,11 +36,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
32
36
|
}),
|
|
33
37
|
emits: /* @__PURE__ */ mergeModels(["update:modelValue", "update:timezoneId"], ["update:timezoneId"]),
|
|
34
38
|
setup(__props, { emit: __emit }) {
|
|
35
|
-
const props = __props;
|
|
36
39
|
const timezoneId = useModel(__props, "timezoneId");
|
|
37
|
-
const
|
|
38
|
-
const picker = useTemplateRef("picker");
|
|
40
|
+
const props = __props;
|
|
39
41
|
const emit = __emit;
|
|
42
|
+
const target = useTemplateRef("target-key");
|
|
43
|
+
const picker = useTemplateRef("picker-key");
|
|
40
44
|
const value = computed(() => {
|
|
41
45
|
if (props.modelValue === null && props.clearable) {
|
|
42
46
|
return null;
|
|
@@ -52,17 +56,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
52
56
|
} else if (props.type === "month") {
|
|
53
57
|
const date = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();
|
|
54
58
|
return { year: date.getUTCFullYear(), month: date.getUTCMonth() };
|
|
55
|
-
} else if (props.type === "time"
|
|
56
|
-
const time =
|
|
57
|
-
|
|
58
|
-
time
|
|
59
|
+
} else if (props.type === "time") {
|
|
60
|
+
const time = props.modelValue instanceof Date ? props.modelValue : /* @__PURE__ */ new Date();
|
|
61
|
+
return {
|
|
62
|
+
hours: time.getHours(),
|
|
63
|
+
minutes: time.getMinutes(),
|
|
64
|
+
seconds: time.getSeconds()
|
|
65
|
+
};
|
|
66
|
+
} else if (props.type === "time-range") {
|
|
67
|
+
const time = [props.modelValue].flat();
|
|
68
|
+
if (time.length !== 2) {
|
|
69
|
+
const start = /* @__PURE__ */ new Date();
|
|
70
|
+
const end = new Date(start);
|
|
71
|
+
end.setHours(end.getHours() + 1);
|
|
72
|
+
time.splice(0, 2, start, end);
|
|
59
73
|
}
|
|
60
|
-
|
|
74
|
+
return time.map((date) => ({
|
|
61
75
|
hours: date.getHours(),
|
|
62
76
|
minutes: date.getMinutes(),
|
|
63
77
|
seconds: date.getSeconds()
|
|
64
78
|
}));
|
|
65
|
-
return props.type === "time" ? timeValue[0] : timeValue;
|
|
66
79
|
} else if (props.type.endsWith("-range")) {
|
|
67
80
|
if (props.modelValue === void 0) {
|
|
68
81
|
const start = /* @__PURE__ */ new Date();
|
|
@@ -216,11 +229,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
216
229
|
return (_ctx, _cache) => {
|
|
217
230
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
218
231
|
createVNode(unref(VueDatePicker), mergeProps({
|
|
219
|
-
|
|
220
|
-
ref: picker,
|
|
232
|
+
ref: "picker-key",
|
|
221
233
|
"aria-labels": ariaLabels.value,
|
|
222
234
|
"auto-apply": !_ctx.confirm,
|
|
223
|
-
class: "vue-date-time-picker",
|
|
235
|
+
class: ["vue-date-time-picker", { "vue-date-time-picker--clearable": _ctx.clearable }],
|
|
224
236
|
"cancel-text": unref(t)("Cancel"),
|
|
225
237
|
clearable: _ctx.clearable,
|
|
226
238
|
"day-names": unref(dayNames),
|
|
@@ -232,7 +244,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
232
244
|
"now-button-label": unref(t)("Now"),
|
|
233
245
|
"select-text": unref(t)("Pick"),
|
|
234
246
|
"six-weeks": "fair",
|
|
235
|
-
teleport: _ctx.appendToBody ?
|
|
247
|
+
teleport: _ctx.appendToBody ? target.value || void 0 : false,
|
|
236
248
|
"text-input": "",
|
|
237
249
|
"week-num-name": unref(weekNumName),
|
|
238
250
|
"week-numbers": _ctx.showWeekNumber ? { type: "iso" } : void 0,
|
|
@@ -332,23 +344,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
332
344
|
]),
|
|
333
345
|
key: "0"
|
|
334
346
|
} : void 0
|
|
335
|
-
]), 1040, ["aria-labels", "auto-apply", "cancel-text", "clearable", "day-names", "placeholder", "format", "locale", "minutes-increment", "model-value", "now-button-label", "select-text", "teleport", "week-num-name", "week-numbers", "week-start"]),
|
|
347
|
+
]), 1040, ["aria-labels", "auto-apply", "class", "cancel-text", "clearable", "day-names", "placeholder", "format", "locale", "minutes-increment", "model-value", "now-button-label", "select-text", "teleport", "week-num-name", "week-numbers", "week-start"]),
|
|
336
348
|
(openBlock(), createBlock(Teleport, {
|
|
337
349
|
to: "body",
|
|
338
350
|
disabled: !_ctx.appendToBody
|
|
339
351
|
}, [
|
|
340
|
-
createElementVNode("div",
|
|
341
|
-
ref_key: "target",
|
|
342
|
-
ref: target,
|
|
343
|
-
class: "vue-date-time-picker__wrapper"
|
|
344
|
-
}, null, 512)
|
|
352
|
+
createElementVNode("div", _hoisted_2, null, 512)
|
|
345
353
|
], 8, ["disabled"]))
|
|
346
354
|
]);
|
|
347
355
|
};
|
|
348
356
|
}
|
|
349
357
|
});
|
|
350
|
-
const NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
358
|
+
const NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-22ccef6b"]]);
|
|
351
359
|
export {
|
|
352
360
|
NcDateTimePicker as N
|
|
353
361
|
};
|
|
354
|
-
//# sourceMappingURL=NcDateTimePicker-
|
|
362
|
+
//# sourceMappingURL=NcDateTimePicker-DmeWERxv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcDateTimePicker-DmeWERxv.mjs","sources":["../../src/components/NcDateTimePicker/NcDateTimePicker.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nIn general it is recommended to use the native date picker (see `NcDateTimePickerNative` which is based on `<input type=\"date\">`).\nBut some use cases are not covered by the native date selector, like selecting ranges or selecting a timezone.\nFor those cases this component can be used.\n\n### General examples\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<fieldset class=\"type-select\">\n\t\t\t<legend>Picker mode</legend>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"date\">Date</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"datetime\">Date and time</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"week\">Week</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"month\">Month</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"year\">Year</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\t\t<NcDateTimePicker\n\t\t\tv-model=\"time\"\n\t\t\t:type />\n\t\t<span>{{ time }}</span>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttype: 'date',\n\t\t\ttime: new Date('2022-10-10 10:10:10'),\n\t\t}\n\t},\n}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.type-select {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n</style>\n```\n\n### Example with confirm button\n\nBy default the date is applied as soon as you select the day in the calendar.\nSometimes - especially when selecting date and time - it is required to only emit the selected date when the flow is finished.\nFor this the `confirm` prop can be used, this will add a confirmation button to the selector.\n\n```vue\n<template>\n\t<span>\n\t\t<NcDateTimePicker\n\t\t\tv-model=\"time\"\n\t\t\ttype=\"datetime\"\n\t\t\tconfirm />\n\t\t{{ time }}\n\t</span>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\ttime: null,\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n### Range picker\n\nThe most common use case for the `NcDateTimePicker` is picking a range, as this is not supported by the native date picker.\n\nWhen selecting the range picker type, the model value type will change from `Date` to `[Date, Date]`.\nMeaning an array with two dates is used, the first date is the range start and the second date is the range end.\n\n```vue\n<template>\n\t<div>\n\t\t<fieldset class=\"type-select\">\n\t\t\t<legend>Picker mode</legend>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"date-range\">Date</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"time-range\">Time</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"type\" type=\"radio\" value=\"datetime-range\">Date and time</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\n\t\t<NcDateTimePicker\n\t\t\t:key=\"type\"\n\t\t\tv-model=\"time\"\n\t\t\t:type />\n\t\t<div>\n\t\t\t<div>Start: {{ formatDate(time[0]) }}</div>\n\t\t\t<div>End: {{ formatDate(time[1]) }}</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttime: [new Date(2025, 3, 18, 12, 30), new Date(2025, 3, 21, 13, 30)],\n\t\t\ttype: 'date-range',\n\t\t}\n\t},\n\tmethods: {\n\t\tformatDate(date) {\n\t\t\tconst dateString = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`\n\t\t\tconst timeString = `${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}`\n\t\t\tif (this.type === 'date-range') {\n\t\t\t\treturn dateString\n\t\t\t} else if (this.type === 'time-range') {\n\t\t\t\treturn timeString\n\t\t\t}\n\t\t\treturn `${dateString} ${timeString}`\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.type-select {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n</style>\n```\n\n### Time zone aware date picker\n\nThe datepicker can optionally include a picker for the preferred time zone. The selected time does not factor in the\npicked time zone, but you will have to convert it yourself when necessary.\n\n```vue\n<template>\n\t<span>\n\t\t<NcDateTimePicker\n\t\t\tv-model=\"time\"\n\t\t\ttype=\"datetime\"\n\t\t\tshow-timezone-select\n\t\t\tv-model:timezone-id=\"tz\" /><br>\n\t\t{{ time }} | {{ tz }}\n\t</span>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\ttime: undefined,\n\t\t\ttz: 'Europe/Berlin',\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport type {\n\t// The accepted model value\n\tModelValue as LibraryModelValue,\n\t// The emitted object for time picker\n\tTimeObj as LibraryTimeObject,\n\tVueDatePickerProps,\n} from '@vuepic/vue-datepicker'\n\nimport {\n\tmdiCalendarBlank,\n\tmdiChevronDown,\n\tmdiChevronLeft,\n\tmdiChevronRight,\n\tmdiChevronUp,\n\tmdiClock,\n\tmdiClose,\n} from '@mdi/js'\nimport {\n\tgetCanonicalLocale,\n\tgetDayNames,\n\tgetDayNamesMin,\n\tgetFirstDay,\n} from '@nextcloud/l10n'\nimport VueDatePicker from '@vuepic/vue-datepicker'\nimport { computed, useTemplateRef } from 'vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcTimezonePicker from '../NcTimezonePicker/NcTimezonePicker.vue'\nimport { t } from '../../l10n.ts'\nimport NcButton from '../NcButton/index.ts'\n\ntype LibraryFormatOptions = VueDatePickerProps['format']\n\n/**\n * The preselected IANA time zone ID for the time zone picker,\n * only relevant in combination with `show-timezone-select`.\n * The prop supports two-way binding through v-model directive.\n *\n * @example `Europe/Berlin`\n * @default 'UTC'\n */\nconst timezoneId = defineModel<string>('timezoneId', { default: 'UTC' })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * If set to true the menu will be placed on the `<body>`\n\t * instead of default placement on the picker.\n\t */\n\tappendToBody?: boolean\n\n\t/**\n\t * Aria label for the input box.\n\t *\n\t * @default 'Datepicker input'\n\t */\n\tariaLabel?: string\n\n\t/**\n\t * Aria label for the date picker menu.\n\t *\n\t * @default 'Datepicker menu'\n\t */\n\tariaLabelMenu?: string\n\n\t/**\n\t * Allow to clear the input.\n\t *\n\t * @default false\n\t */\n\tclearable?: boolean\n\n\t/**\n\t * Do not auto-apply the date but require clicking the confirmation button.\n\t *\n\t * @default false\n\t */\n\tconfirm?: boolean\n\n\t/**\n\t * Preview format for the picker input field.\n\t * Can either be a string of Unicode tokens or a function that takes a Date object\n\t * or for range picker an array of two dates, and returns the formatted date as string.\n\t *\n\t * @default Intl.DateTimeFormat is used to format dates and times\n\t * @see https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n\t */\n\tformat?: string | ((date: Date) => string) | ((dates: [Date, Date]) => string)\n\n\t/**\n\t * The locale to use for formatting the shown dates.\n\t * By default the users current Nextcloud locale is used.\n\t */\n\tlocale?: string\n\n\t/**\n\t * Default increment step for minutes in the time picker.\n\t *\n\t * @default 10\n\t */\n\tminuteStep?: number\n\n\t/**\n\t * The value to initialize, but also two-way bind the selected date. The date is – like the `Date` object in\n\t * JavaScript – tied to UTC. The selected time zone does not have an influence of the selected time and date\n\t * value. You have to translate the time yourself when you want to factor in time zones.\n\t *\n\t * When using the range picker then an array containing the start and end date needs to be passed.\n\t */\n\tmodelValue?: Date | [Date, Date] | null\n\n\t/**\n\t * Optional custom placeholder for the input box.\n\t */\n\tplaceholder?: string\n\n\t/**\n\t * Include a timezone picker within the menu.\n\t * Please note that the dates are still bound to the locale timezone\n\t * and any conversion needs to be done by the app itself.\n\t *\n\t * @default false\n\t */\n\tshowTimezoneSelect?: boolean\n\n\t/**\n\t * Show the ISO week numbers within the calendar.\n\t *\n\t * @default false\n\t */\n\tshowWeekNumber?: boolean\n\n\t/**\n\t * Type of the picker.\n\t * There is some special handling for ranges as those types require a `[Date, Date]` model value.\n\t * - The 'date-range' type will enable a range picker for dates\n\t * - The 'time-range' allows picking a time range.\n\t * - The 'datetime-range' allows picking dates with times assigned.\n\t *\n\t * @default 'date'\n\t */\n\ttype?: 'date' | 'datetime' | 'time' | 'week' | 'month' | 'year' | 'date-range' | 'time-range' | 'datetime-range'\n}>(), {\n\tariaLabel: t('Datepicker input'),\n\tariaLabelMenu: t('Datepicker menu'),\n\tformat: undefined,\n\tlocale: getCanonicalLocale(),\n\tminuteStep: 10,\n\ttimezoneId: 'UTC',\n\tmodelValue: null,\n\t// set by fallbackPlaceholder\n\tplaceholder: undefined,\n\ttype: 'date',\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * If range picker is enabled then an array containing start and end date are emitted.\n\t * Otherwise the selected date is emitted.\n\t * `null` is emitted if `clearable` is set to `true` and the value was cleared.\n\t */\n\t'update:modelValue': [Date | [Date, Date] | null]\n\t'update:timezoneId': [string]\n}>()\n\nconst target = useTemplateRef('target-key')\nconst picker = useTemplateRef('picker-key')\n\n/**\n * Mapping of the model-value prop to the format expected by the library.\n * We do not directly pass the prop and adjust the interface to not transparently wrap the library.\n * This has show as beeing a pain in the past when we need to switch underlying libraries.\n */\nconst value = computed<LibraryModelValue>(() => {\n\tif (props.modelValue === null && props.clearable) {\n\t\treturn null\n\t}\n\n\tif (props.type === 'week') {\n\t\tconst date = props.modelValue instanceof Date ? props.modelValue : new Date()\n\t\tconst end = new Date(date)\n\t\tend.setUTCDate(date.getUTCDate() + 6)\n\t\treturn [date, end]\n\t} else if (props.type === 'year') {\n\t\tconst date = props.modelValue instanceof Date ? props.modelValue : new Date()\n\t\treturn date.getUTCFullYear()\n\t} else if (props.type === 'month') {\n\t\tconst date = props.modelValue instanceof Date ? props.modelValue : new Date()\n\t\treturn { year: date.getUTCFullYear(), month: date.getUTCMonth() }\n\t} else if (props.type === 'time') {\n\t\tconst time = props.modelValue instanceof Date ? props.modelValue : new Date()\n\t\treturn {\n\t\t\thours: time.getHours(),\n\t\t\tminutes: time.getMinutes(),\n\t\t\tseconds: time.getSeconds(),\n\t\t} satisfies LibraryTimeObject\n\t} else if (props.type === 'time-range') {\n\t\tconst time = [props.modelValue].flat()\n\t\tif (time.length !== 2) {\n\t\t\tconst start = new Date()\n\t\t\tconst end = new Date(start)\n\t\t\tend.setHours(end.getHours() + 1)\n\t\t\ttime.splice(0, 2, start, end)\n\t\t}\n\n\t\treturn (time as [Date, Date]).map((date) => ({\n\t\t\thours: date.getHours(),\n\t\t\tminutes: date.getMinutes(),\n\t\t\tseconds: date.getSeconds(),\n\t\t} as LibraryTimeObject))\n\t} else if (props.type.endsWith('-range')) {\n\t\tif (props.modelValue === undefined) {\n\t\t\tconst start = new Date()\n\t\t\tconst end = new Date(start)\n\t\t\tend.setUTCDate(start.getUTCDate() + 7)\n\t\t\treturn [start, end]\n\t\t}\n\t\treturn props.modelValue\n\t}\n\n\t// no special handling for other types needed\n\treturn props.modelValue ?? new Date()\n})\n\nconst placeholderFallback = computed(() => {\n\tif (props.type === 'date') {\n\t\treturn t('Select date')\n\t} else if (props.type === 'time') {\n\t\treturn t('Select time')\n\t} else if (props.type === 'datetime') {\n\t\treturn t('Select date and time')\n\t} else if (props.type === 'week') {\n\t\treturn t('Select week')\n\t} else if (props.type === 'month') {\n\t\treturn t('Select month')\n\t} else if (props.type === 'year') {\n\t\treturn t('Select year')\n\t} else if (props.type.endsWith('-range')) {\n\t\treturn t('Select time range')\n\t}\n\t// should not be reached\n\treturn t('Select date and time')\n})\n\n/**\n * The date (time) formatting to be used by the library.\n * We use the provided format if possible, otherwise we provide a formatting function\n * which uses the browsers Intl API to format the date / time in the current users locale.\n */\nconst realFormat = computed<LibraryFormatOptions>(() => {\n\tif (props.format) {\n\t\t// we can cast the type here as in this case its either string\n\t\t// function `(Date) => string` or `([Date, Date]) => string` where we cast to `(Date[]) => string` here.\n\t\treturn props.format as LibraryFormatOptions\n\t} else if (props.type === 'week') {\n\t\t// cannot format weeks with Intl.\n\t\treturn 'RR-II'\n\t}\n\n\tlet formatter: Intl.DateTimeFormat | undefined\n\tif (props.type === 'date' || props.type === 'date-range') {\n\t\tformatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: 'medium' })\n\t} else if (props.type === 'time' || props.type === 'time-range') {\n\t\tformatter = new Intl.DateTimeFormat(getCanonicalLocale(), { timeStyle: 'short' })\n\t} else if (props.type === 'datetime' || props.type === 'datetime-range') {\n\t\tformatter = new Intl.DateTimeFormat(getCanonicalLocale(), { dateStyle: 'medium', timeStyle: 'short' })\n\t} else if (props.type === 'month') {\n\t\tformatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: 'numeric', month: '2-digit' })\n\t} else if (props.type === 'year') {\n\t\tformatter = new Intl.DateTimeFormat(getCanonicalLocale(), { year: 'numeric' })\n\t}\n\n\tif (formatter) {\n\t\treturn (input: Date | [Date, Date]) => Array.isArray(input)\n\t\t\t? formatter.formatRange(input[0], input[1])\n\t\t\t: formatter.format(input)\n\t}\n\n\t// fallback to default formatting\n\treturn undefined\n})\n\nconst pickerType = computed(() => ({\n\ttimePicker: props.type === 'time' || props.type === 'time-range',\n\tyearPicker: props.type === 'year',\n\tmonthPicker: props.type === 'month',\n\tweekPicker: props.type === 'week',\n\trange: props.type.endsWith('-range') && {\n\t\t// do not use partial ranges (meaning after selecting the start [Date, null] will be emitted)\n\t\t// if this is needed someday we can enable it,\n\t\t// but its not covered by our component interface (props / events) documentation so just disabled for now.\n\t\tpartialRange: false,\n\t},\n\tenableTimePicker: !(props.type === 'date' || props.type === 'date-range'),\n\tflow: props.type === 'datetime'\n\t\t? ['calendar', 'time'] as ['calendar', 'time']\n\t\t: undefined,\n}))\n\n/**\n * Called on model value update of the library.\n *\n * @param value The value emitted from the underlying library\n */\nfunction onUpdateModelValue(value: LibraryModelValue): void {\n\tif (value === null) {\n\t\treturn emit('update:modelValue', null)\n\t}\n\n\tif (props.type === 'time') {\n\t\t// time is provided as an object\n\t\temit('update:modelValue', formatLibraryTime(value as LibraryTimeObject))\n\t} else if (props.type === 'time-range') {\n\t\t// same as time but as an array with two elements\n\t\tconst start = formatLibraryTime(value[0])\n\t\tconst end = formatLibraryTime(value[1])\n\t\t// ensure end is beyond the start\n\t\tif (end.getTime() < start.getTime()) {\n\t\t\tend.setDate(end.getDate() + 1)\n\t\t}\n\t\temit('update:modelValue', [start, end])\n\t} else if (props.type === 'month') {\n\t\t// month is emitted as an object with month and year attribute\n\t\tconst data = value as { month: number, year: number }\n\t\temit('update:modelValue', new Date(data.year, data.month, 1))\n\t} else if (props.type === 'year') {\n\t\t// Years are emitted as the numeric year e.g. 2022\n\t\temit('update:modelValue', new Date(value as number, 0))\n\t} else if (props.type === 'week') {\n\t\t// weeks are emitted as [Date, Date]\n\t\temit('update:modelValue', value[0])\n\t} else {\n\t\t// otherwise it already emits the correct format\n\t\temit('update:modelValue', value as Date | [Date, Date])\n\t}\n}\n\n/**\n * Format a vuepick time object to native JS Date object.\n *\n * @param time - The library time value object\n */\nfunction formatLibraryTime(time: LibraryTimeObject): Date {\n\tconst date = new Date()\n\tdate.setHours(time.hours)\n\tdate.setMinutes(time.minutes)\n\tdate.setSeconds(time.seconds)\n\treturn date\n}\n\n// Localization\n\nconst dayNames = getDayNamesMin()\n\nconst weekStart = getFirstDay()\n\n// TRANSLATORS: A very short abbrevation used as a heading for \"week number\"\nconst weekNumName = t('W')\n\nconst ariaLabels = computed(() => ({\n\ttoggleOverlay: t('Toggle overlay'),\n\tmenu: props.ariaLabelMenu,\n\tinput: props.ariaLabel,\n\topenTimePicker: t('Open time picker'),\n\tcloseTimePicker: t('Close time Picker'),\n\tincrementValue: (type: 'hours' | 'minutes' | 'seconds') => {\n\t\tif (type === 'hours') {\n\t\t\treturn t('Increment hours')\n\t\t} else if (type === 'minutes') {\n\t\t\treturn t('Increment minutes')\n\t\t}\n\t\treturn t('Increment seconds')\n\t},\n\tdecrementValue: (type: 'hours' | 'minutes' | 'seconds') => {\n\t\tif (type === 'hours') {\n\t\t\treturn t('Decrement hours')\n\t\t} else if (type === 'minutes') {\n\t\t\treturn t('Decrement minutes')\n\t\t}\n\t\treturn t('Decrement seconds')\n\t},\n\topenTpOverlay: (type: 'hours' | 'minutes' | 'seconds') => {\n\t\tif (type === 'hours') {\n\t\t\treturn t('Open hours overlay')\n\t\t} else if (type === 'minutes') {\n\t\t\treturn t('Open minutes overlay')\n\t\t}\n\t\treturn t('Open seconds overlay')\n\t},\n\tamPmButton: t('Switch AM/PM mode'),\n\topenYearsOverlay: t('Open years overlay'),\n\topenMonthsOverlay: t('Open months overlay'),\n\tnextMonth: t('Next month'),\n\tprevMonth: t('Previous month'),\n\tnextYear: t('Next year'),\n\tprevYear: t('Previous year'),\n\tweekDay: (day: number) => getDayNames()[day],\n\tclearInput: t('Clear value'),\n\tcalendarIcon: t('Calendar icon'),\n\ttimePicker: t('Time picker'),\n\tmonthPicker: (overlay: boolean) => overlay ? t('Month picker overlay') : t('Month picker'),\n\tyearPicker: (overlay: boolean) => overlay ? t('Year picker overlay') : t('Year picker'),\n}))\n\n/**\n * Select the current value.\n * This is used by the confirmation button if `confirmation` was set.\n */\nfunction selectDate() {\n\tpicker.value!.selectDate()\n}\n\n/**\n * Cancel the current selection by closing the overlay.\n * This is used by the confirmation button if `confirmation` was set.\n */\nfunction cancelSelection() {\n\tpicker.value!.closeMenu()\n}\n</script>\n\n<template>\n\t<div class=\"vue-date-time-picker__wrapper\">\n\t\t<VueDatePicker\n\t\t\tref=\"picker-key\"\n\t\t\t:aria-labels\n\t\t\t:auto-apply=\"!confirm\"\n\t\t\tclass=\"vue-date-time-picker\"\n\t\t\t:class=\"{ 'vue-date-time-picker--clearable': clearable }\"\n\t\t\t:cancel-text=\"t('Cancel')\"\n\t\t\t:clearable\n\t\t\t:day-names\n\t\t\t:placeholder=\"placeholder ?? placeholderFallback\"\n\t\t\t:format=\"realFormat\"\n\t\t\t:locale\n\t\t\t:minutes-increment=\"minuteStep\"\n\t\t\t:model-value=\"value\"\n\t\t\t:now-button-label=\"t('Now')\"\n\t\t\t:select-text=\"t('Pick')\"\n\t\t\tsix-weeks=\"fair\"\n\t\t\t:teleport=\"appendToBody ? (target || undefined) : false\"\n\t\t\ttext-input\n\t\t\t:week-num-name\n\t\t\t:week-numbers=\"showWeekNumber ? { type: 'iso' } : undefined\"\n\t\t\t:week-start\n\t\t\tv-bind=\"pickerType\"\n\t\t\t@update:model-value=\"onUpdateModelValue\">\n\t\t\t<template #action-buttons>\n\t\t\t\t<NcButton size=\"small\" variant=\"tertiary\" @click=\"cancelSelection\">\n\t\t\t\t\t{{ t('Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton size=\"small\" variant=\"primary\" @click=\"selectDate\">\n\t\t\t\t\t{{ t('Pick') }}\n\t\t\t\t</NcButton>\n\t\t\t</template>\n\t\t\t<template #clear-icon=\"{ clear }\">\n\t\t\t\t<NcButton\n\t\t\t\t\t:aria-label=\"t('Clear value')\"\n\t\t\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t\t\t@click=\"clear\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiClose\" :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</template>\n\t\t\t<template #input-icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiCalendarBlank\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #clock-icon>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiClock\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #arrow-left>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiChevronLeft\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #arrow-right>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiChevronRight\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #arrow-down>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiChevronDown\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template #arrow-up>\n\t\t\t\t<NcIconSvgWrapper inline :path=\"mdiChevronUp\" :size=\"20\" />\n\t\t\t</template>\n\t\t\t<template v-if=\"showTimezoneSelect\" #action-extra>\n\t\t\t\t<NcTimezonePicker\n\t\t\t\t\tv-model=\"timezoneId\"\n\t\t\t\t\tclass=\"vue-date-time-picker__timezone\"\n\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t:input-label=\"t('Timezone')\" />\n\t\t\t</template>\n\t\t</VueDatePicker>\n\t\t<Teleport to=\"body\" :disabled=\"!appendToBody\">\n\t\t\t<div ref=\"target-key\" class=\"vue-date-time-picker__wrapper\" />\n\t\t</Teleport>\n\t</div>\n</template>\n\n<style scoped lang=\"scss\">\n@use \"sass:meta\";\n\n.vue-date-time-picker__wrapper {\n\t// This is under :root in @vuepic/vue-datepicker/dist/main.css, so importing it scoped won't work\n\t--dp-common-transition: all var(--animation-quick) ease-in;\n\t--dp-menu-padding: 6px 8px;\n\t--dp-animation-duration: var(--animation-quick);\n\t--dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1);\n\t--dp-transition-timing: ease-out;\n\t--dp-action-row-transtion: all 0.2s ease-in;\n\t--dp-font-family: var(--font-face);\n\t--dp-border-radius: var(--border-radius-element);\n\t--dp-cell-border-radius: var(--border-radius-small);\n\t--dp-transition-length: 22px;\n\t--dp-transition-timing-general: var(--animation-quick);\n\t--dp-button-height: var(--default-clickable-area);\n\t--dp-month-year-row-height: var(--default-clickable-area);\n\t--dp-month-year-row-button-size: var(--clickable-area-small);\n\t--dp-button-icon-height: 20px;\n\t--dp-calendar-wrap-padding: 0 5px;\n\t--dp-cell-size: var(--default-clickable-area);\n\t--dp-cell-padding: 5px;\n\t--dp-common-padding: 10px;\n\t--dp-input-icon-padding: var(--default-clickable-area);\n\t--dp-input-padding: 6px 12px;\n\t--dp-menu-min-width: 260px;\n\t--dp-action-buttons-padding: 1px 6px;\n\t--dp-row-margin: 5px 0;\n\t--dp-calendar-header-cell-padding: 0.5rem;\n\t--dp-multi-calendars-spacing: 10px;\n\t--dp-overlay-col-padding: 3px;\n\t--dp-time-inc-dec-button-size: var(--default-clickable-area);\n\t--dp-font-size: 1rem;\n\t--dp-preview-font-size: var(--font-size-small);\n\t--dp-time-font-size: 2rem;\n\t--dp-action-button-height: var(--clickable-area-small);\n\t--dp-action-row-padding: 8px;\n\t--dp-direction: ltr;\n\n\t// We need to import the vuepic styles, but at least scoped to our class and scope\n\t// plain @import does not work as this will scope all styles imported.\n\t:deep() {\n\t\t@include meta.load-css('@vuepic/vue-datepicker/dist/main.css');\n\t}\n\n\t.vue-date-time-picker--clearable :deep(.dp__input) {\n\t\tpadding-inline-end: var(--default-clickable-area);\n\t}\n\n\t.vue-date-time-picker__timezone {\n\t\tmin-width: unset;\n\t\twidth: 100%;\n\t}\n\n\t:deep(.icon-vue) {\n\t\t// we enforce full opacity to not create a11y issues with contrast\n\t\topacity: 1 !important;\n\t}\n\n\t// time selector button should have consistent padding\n\t:deep(.dp--tp-wrap),\n\t:deep(.dp__action_extra) {\n\t\tpadding: var(--dp-menu-padding);\n\t\tpadding-top: 0;\n\t}\n\n\t:deep(.dp__overlay.dp--overlay-absolute) {\n\t\tpadding: var(--dp-menu-padding);\n\n\t\t.dp__btn.dp__button.dp__button_bottom {\n\t\t\tinset-block-end: 6px;\n\t\t}\n\t}\n\n\t:deep(.dp__btn.dp__button.dp__button_bottom),\n\t:deep(.dp--tp-wrap .dp__button) {\n\t\twidth: 100%;\n\t}\n\n\t:deep(.dp__btn.dp__button.dp__overlay_action) {\n\t\twidth: calc(100% - 16px);\n\t}\n\n\t// fix issues caused by Nextcloud server styles\n\t:deep(input) {\n\t\tpadding-inline-start: var(--dp-input-icon-padding) !important;\n\t}\n\t:deep(.dp__btn) {\n\t\tmargin: 0;\n\t}\n\t:deep(.dp__inner_nav) {\n\t\theight: fit-content;\n\t\twidth: fit-content;\n\t}\n\n\t// make the bottom page toggle stand out better\n\t:deep(.dp__btn.dp__button.dp__button_bottom) {\n\t\tcolor: var(--color-primary-element-light);\n\t\tbackground-color: var(--color-primary-element-light);\n\t}\n\n\t// Fix server styles causing buttons to be primary colored\n\t:deep(.dp--header-wrap .dp__btn:not(.dp__button_bottom)),\n\t:deep(.dp__time_col .dp__btn) {\n\t\tbackground-color: var(--color-main-background);\n\n\t\t&:hover {\n\t\t\tbackground: var(--dp-hover-color);\n\t\t\tcolor: var(--dp-hover-icon-color);\n\t\t}\n\t}\n\n\t// Server styles cause the month and year to be fit-content -> fixing it to be max size.\n\t:deep(.dp__month_year_select) {\n\t\tflex: 1;\n\t}\n\t:deep(.dp--time-overlay-btn) {\n\t\tfont-size: calc(2 * var(--default-font-size)) !important;\n\t}\n\n\t// Adjust padding to prevent horizontal scrolling in time selection\n\t:deep(.dp__time_input .dp__time_col_reg_block) {\n\t\tpadding: 0 calc(4 * var(--default-grid-baseline));\n\t}\n\n\t.vue-date-time-picker.dp__theme_dark,\n\t.vue-date-time-picker.dp__theme_light,\n\t:deep(.dp__theme_dark),\n\t:deep(.dp__theme_light) {\n\t\t--dp-background-color: var(--color-main-background);\n\t\t--dp-text-color: var(--color-main-text);\n\t\t--dp-hover-color: var(--color-primary-element-light-hover);\n\t\t--dp-hover-text-color: var(--color-primary-element-light-text);\n\t\t--dp-hover-icon-color: var(--color-primary-element-light-text);\n\t\t--dp-primary-color: var(--color-primary-element);\n\t\t--dp-primary-disabled-color: var(--color-primary-element-hover);\n\t\t--dp-primary-text-color: var(--color-primary-element-text);\n\t\t--dp-secondary-color: var(--color-text-maxcontrast); // this is used for \"disabled\" dates\n\t\t--dp-border-color: var(--color-border);\n\t\t--dp-menu-border-color: var(--color-border-dark);\n\t\t--dp-border-color-hover: var(--color-border-maxcontrast);\n\t\t--dp-border-color-focus: var(--color-border-maxcontrast);\n\t\t--dp-disabled-color: var(--color-background-dark);\n\t\t--dp-disabled-color-text: var(--color-text-maxcontrast);\n\t\t--dp-scroll-bar-background: var(--color-scrollbar);\n\t\t--dp-scroll-bar-color: var(--color-scrollbar);\n\t\t--dp-success-color: var(--color-success);\n\t\t--dp-success-color-disabled: var(--color-success-hover);\n\t\t--dp-icon-color: var(--color-main-text);\n\t\t--dp-danger-color: var(--color-error);\n\t\t--dp-marker-color: var(--color-text-error, var(--color-error));\n\t\t--dp-tooltip-color: var(--color-main-text);\n\t\t--dp-highlight-color: var(--color-main-text);\n\t}\n}\n</style>\n"],"names":["_useModel","value","_openBlock","_createElementBlock","_createVNode","_unref","_mergeProps","confirm","clearable","placeholder","locale","minuteStep","appendToBody","showWeekNumber","_createSlots","_withCtx","showTimezoneSelect","NcTimezonePicker","_createBlock","_Teleport","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgNA,UAAM,aAAaA,kBAAoB,YAAgC;AAEvE,UAAM,QAAQ;AA+Gd,UAAM,OAAO;AAUb,UAAM,SAAS,eAAe,YAAY;AAC1C,UAAM,SAAS,eAAe,YAAY;AAO1C,UAAM,QAAQ,SAA4B,MAAM;AAC/C,UAAI,MAAM,eAAe,QAAQ,MAAM,WAAW;AACjD,eAAO;AAAA,MACR;AAEA,UAAI,MAAM,SAAS,QAAQ;AAC1B,cAAM,OAAO,MAAM,sBAAsB,OAAO,MAAM,iCAAiB,KAAA;AACvE,cAAM,MAAM,IAAI,KAAK,IAAI;AACzB,YAAI,WAAW,KAAK,WAAA,IAAe,CAAC;AACpC,eAAO,CAAC,MAAM,GAAG;AAAA,MAClB,WAAW,MAAM,SAAS,QAAQ;AACjC,cAAM,OAAO,MAAM,sBAAsB,OAAO,MAAM,iCAAiB,KAAA;AACvE,eAAO,KAAK,eAAA;AAAA,MACb,WAAW,MAAM,SAAS,SAAS;AAClC,cAAM,OAAO,MAAM,sBAAsB,OAAO,MAAM,iCAAiB,KAAA;AACvE,eAAO,EAAE,MAAM,KAAK,eAAA,GAAkB,OAAO,KAAK,cAAY;AAAA,MAC/D,WAAW,MAAM,SAAS,QAAQ;AACjC,cAAM,OAAO,MAAM,sBAAsB,OAAO,MAAM,iCAAiB,KAAA;AACvE,eAAO;AAAA,UACN,OAAO,KAAK,SAAA;AAAA,UACZ,SAAS,KAAK,WAAA;AAAA,UACd,SAAS,KAAK,WAAA;AAAA,QAAW;AAAA,MAE3B,WAAW,MAAM,SAAS,cAAc;AACvC,cAAM,OAAO,CAAC,MAAM,UAAU,EAAE,KAAA;AAChC,YAAI,KAAK,WAAW,GAAG;AACtB,gBAAM,4BAAY,KAAA;AAClB,gBAAM,MAAM,IAAI,KAAK,KAAK;AAC1B,cAAI,SAAS,IAAI,SAAA,IAAa,CAAC;AAC/B,eAAK,OAAO,GAAG,GAAG,OAAO,GAAG;AAAA,QAC7B;AAEA,eAAQ,KAAsB,IAAI,CAAC,UAAU;AAAA,UAC5C,OAAO,KAAK,SAAA;AAAA,UACZ,SAAS,KAAK,WAAA;AAAA,UACd,SAAS,KAAK,WAAA;AAAA,QAAW,EACH;AAAA,MACxB,WAAW,MAAM,KAAK,SAAS,QAAQ,GAAG;AACzC,YAAI,MAAM,eAAe,QAAW;AACnC,gBAAM,4BAAY,KAAA;AAClB,gBAAM,MAAM,IAAI,KAAK,KAAK;AAC1B,cAAI,WAAW,MAAM,WAAA,IAAe,CAAC;AACrC,iBAAO,CAAC,OAAO,GAAG;AAAA,QACnB;AACA,eAAO,MAAM;AAAA,MACd;AAGA,aAAO,MAAM,cAAc,oBAAI,KAAA;AAAA,IAChC,CAAC;AAED,UAAM,sBAAsB,SAAS,MAAM;AAC1C,UAAI,MAAM,SAAS,QAAQ;AAC1B,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,SAAS,QAAQ;AACjC,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,SAAS,YAAY;AACrC,eAAO,EAAE,sBAAsB;AAAA,MAChC,WAAW,MAAM,SAAS,QAAQ;AACjC,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,SAAS,SAAS;AAClC,eAAO,EAAE,cAAc;AAAA,MACxB,WAAW,MAAM,SAAS,QAAQ;AACjC,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,KAAK,SAAS,QAAQ,GAAG;AACzC,eAAO,EAAE,mBAAmB;AAAA,MAC7B;AAEA,aAAO,EAAE,sBAAsB;AAAA,IAChC,CAAC;AAOD,UAAM,aAAa,SAA+B,MAAM;AACvD,UAAI,MAAM,QAAQ;AAGjB,eAAO,MAAM;AAAA,MACd,WAAW,MAAM,SAAS,QAAQ;AAEjC,eAAO;AAAA,MACR;AAEA,UAAI;AACJ,UAAI,MAAM,SAAS,UAAU,MAAM,SAAS,cAAc;AACzD,oBAAY,IAAI,KAAK,eAAe,mBAAA,GAAsB,EAAE,WAAW,UAAU;AAAA,MAClF,WAAW,MAAM,SAAS,UAAU,MAAM,SAAS,cAAc;AAChE,oBAAY,IAAI,KAAK,eAAe,mBAAA,GAAsB,EAAE,WAAW,SAAS;AAAA,MACjF,WAAW,MAAM,SAAS,cAAc,MAAM,SAAS,kBAAkB;AACxE,oBAAY,IAAI,KAAK,eAAe,mBAAA,GAAsB,EAAE,WAAW,UAAU,WAAW,SAAS;AAAA,MACtG,WAAW,MAAM,SAAS,SAAS;AAClC,oBAAY,IAAI,KAAK,eAAe,mBAAA,GAAsB,EAAE,MAAM,WAAW,OAAO,WAAW;AAAA,MAChG,WAAW,MAAM,SAAS,QAAQ;AACjC,oBAAY,IAAI,KAAK,eAAe,mBAAA,GAAsB,EAAE,MAAM,WAAW;AAAA,MAC9E;AAEA,UAAI,WAAW;AACd,eAAO,CAAC,UAA+B,MAAM,QAAQ,KAAK,IACvD,UAAU,YAAY,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IACxC,UAAU,OAAO,KAAK;AAAA,MAC1B;AAGA,aAAO;AAAA,IACR,CAAC;AAED,UAAM,aAAa,SAAS,OAAO;AAAA,MAClC,YAAY,MAAM,SAAS,UAAU,MAAM,SAAS;AAAA,MACpD,YAAY,MAAM,SAAS;AAAA,MAC3B,aAAa,MAAM,SAAS;AAAA,MAC5B,YAAY,MAAM,SAAS;AAAA,MAC3B,OAAO,MAAM,KAAK,SAAS,QAAQ,KAAK;AAAA;AAAA;AAAA;AAAA,QAIvC,cAAc;AAAA,MAAA;AAAA,MAEf,kBAAkB,EAAE,MAAM,SAAS,UAAU,MAAM,SAAS;AAAA,MAC5D,MAAM,MAAM,SAAS,aAClB,CAAC,YAAY,MAAM,IACnB;AAAA,IAAA,EACF;AAOF,aAAS,mBAAmBC,QAAgC;AAC3D,UAAIA,WAAU,MAAM;AACnB,eAAO,KAAK,qBAAqB,IAAI;AAAA,MACtC;AAEA,UAAI,MAAM,SAAS,QAAQ;AAE1B,aAAK,qBAAqB,kBAAkBA,MAA0B,CAAC;AAAA,MACxE,WAAW,MAAM,SAAS,cAAc;AAEvC,cAAM,QAAQ,kBAAkBA,OAAM,CAAC,CAAC;AACxC,cAAM,MAAM,kBAAkBA,OAAM,CAAC,CAAC;AAEtC,YAAI,IAAI,QAAA,IAAY,MAAM,WAAW;AACpC,cAAI,QAAQ,IAAI,QAAA,IAAY,CAAC;AAAA,QAC9B;AACA,aAAK,qBAAqB,CAAC,OAAO,GAAG,CAAC;AAAA,MACvC,WAAW,MAAM,SAAS,SAAS;AAElC,cAAM,OAAOA;AACb,aAAK,qBAAqB,IAAI,KAAK,KAAK,MAAM,KAAK,OAAO,CAAC,CAAC;AAAA,MAC7D,WAAW,MAAM,SAAS,QAAQ;AAEjC,aAAK,qBAAqB,IAAI,KAAKA,QAAiB,CAAC,CAAC;AAAA,MACvD,WAAW,MAAM,SAAS,QAAQ;AAEjC,aAAK,qBAAqBA,OAAM,CAAC,CAAC;AAAA,MACnC,OAAO;AAEN,aAAK,qBAAqBA,MAA4B;AAAA,MACvD;AAAA,IACD;AAOA,aAAS,kBAAkB,MAA+B;AACzD,YAAM,2BAAW,KAAA;AACjB,WAAK,SAAS,KAAK,KAAK;AACxB,WAAK,WAAW,KAAK,OAAO;AAC5B,WAAK,WAAW,KAAK,OAAO;AAC5B,aAAO;AAAA,IACR;AAIA,UAAM,WAAW,eAAA;AAEjB,UAAM,YAAY,YAAA;AAGlB,UAAM,cAAc,EAAE,GAAG;AAEzB,UAAM,aAAa,SAAS,OAAO;AAAA,MAClC,eAAe,EAAE,gBAAgB;AAAA,MACjC,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,gBAAgB,EAAE,kBAAkB;AAAA,MACpC,iBAAiB,EAAE,mBAAmB;AAAA,MACtC,gBAAgB,CAAC,SAA0C;AAC1D,YAAI,SAAS,SAAS;AACrB,iBAAO,EAAE,iBAAiB;AAAA,QAC3B,WAAW,SAAS,WAAW;AAC9B,iBAAO,EAAE,mBAAmB;AAAA,QAC7B;AACA,eAAO,EAAE,mBAAmB;AAAA,MAC7B;AAAA,MACA,gBAAgB,CAAC,SAA0C;AAC1D,YAAI,SAAS,SAAS;AACrB,iBAAO,EAAE,iBAAiB;AAAA,QAC3B,WAAW,SAAS,WAAW;AAC9B,iBAAO,EAAE,mBAAmB;AAAA,QAC7B;AACA,eAAO,EAAE,mBAAmB;AAAA,MAC7B;AAAA,MACA,eAAe,CAAC,SAA0C;AACzD,YAAI,SAAS,SAAS;AACrB,iBAAO,EAAE,oBAAoB;AAAA,QAC9B,WAAW,SAAS,WAAW;AAC9B,iBAAO,EAAE,sBAAsB;AAAA,QAChC;AACA,eAAO,EAAE,sBAAsB;AAAA,MAChC;AAAA,MACA,YAAY,EAAE,mBAAmB;AAAA,MACjC,kBAAkB,EAAE,oBAAoB;AAAA,MACxC,mBAAmB,EAAE,qBAAqB;AAAA,MAC1C,WAAW,EAAE,YAAY;AAAA,MACzB,WAAW,EAAE,gBAAgB;AAAA,MAC7B,UAAU,EAAE,WAAW;AAAA,MACvB,UAAU,EAAE,eAAe;AAAA,MAC3B,SAAS,CAAC,QAAgB,YAAA,EAAc,GAAG;AAAA,MAC3C,YAAY,EAAE,aAAa;AAAA,MAC3B,cAAc,EAAE,eAAe;AAAA,MAC/B,YAAY,EAAE,aAAa;AAAA,MAC3B,aAAa,CAAC,YAAqB,UAAU,EAAE,sBAAsB,IAAI,EAAE,cAAc;AAAA,MACzF,YAAY,CAAC,YAAqB,UAAU,EAAE,qBAAqB,IAAI,EAAE,aAAa;AAAA,IAAA,EACrF;AAMF,aAAS,aAAa;AACrB,aAAO,MAAO,WAAA;AAAA,IACf;AAMA,aAAS,kBAAkB;AAC1B,aAAO,MAAO,UAAA;AAAA,IACf;;AAIC,aAAAC,UAAA,GAAAC,mBAwEM,OAxEN,YAwEM;AAAA,QAvELC,YAmEgBC,sBAnEhBC,WAmEgB;AAAA,UAlEf,KAAI;AAAA,UACH,eAAA,WAAA;AAAA,UACA,eAAaC,KAAAA;AAAAA,UACd,OAAK,CAAC,wBAAsB,EAAA,mCACiBC,KAAAA,WAAS;AAAA,UACrD,eAAaH,MAAA,CAAA,EAAC,QAAA;AAAA,UACd,WAAAG,KAAAA;AAAAA,UACA,aAAAH,MAAA,QAAA;AAAA,UACA,aAAaI,KAAAA,eAAe,oBAAA;AAAA,UAC5B,QAAQ,WAAA;AAAA,UACR,QAAAC,KAAAA;AAAAA,UACA,qBAAmBC,KAAAA;AAAAA,UACnB,eAAa,MAAA;AAAA,UACb,oBAAkBN,MAAA,CAAA,EAAC,KAAA;AAAA,UACnB,eAAaA,MAAA,CAAA,EAAC,MAAA;AAAA,UACf,aAAU;AAAA,UACT,UAAUO,KAAAA,eAAgB,OAAA,SAAU,SAAS;AAAA,UAC9C,cAAA;AAAA,UACC,iBAAAP,MAAA,WAAA;AAAA,UACA,gBAAcQ,KAAAA,iBAAc,EAAA,MAAA,UAAqB;AAAA,UACjD,cAAAR,MAAA,SAAA;AAAA,QAAA,GACO,WAAA,OAAU,EACjB,uBAAoB,mBAAA,CAAkB,GAAAS,YAAA;AAAA,UAC5B,0BACV,MAEW;AAAA,YAFXV,YAEWC,MAAA,QAAA,GAAA;AAAA,cAFD,MAAK;AAAA,cAAQ,SAAQ;AAAA,cAAY,SAAO;AAAA,YAAA;+BACjD,MAAiB;AAAA,gDAAdA,MAAA,CAAA,EAAC,QAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;YAELD,YAEWC,MAAA,QAAA,GAAA;AAAA,cAFD,MAAK;AAAA,cAAQ,SAAQ;AAAA,cAAW,SAAO;AAAA,YAAA;+BAChD,MAAe;AAAA,gDAAZA,MAAA,CAAA,EAAC,MAAA,CAAA,GAAA,CAAA;AAAA,cAAA;;;;UAGK,cAAUU,QACpB,CAOW,EARa,YAAK;AAAA,YAC7BX,YAOWC,MAAA,QAAA,GAAA;AAAA,cANT,cAAYA,MAAA,CAAA,EAAC,aAAA;AAAA,cACd,SAAQ;AAAA,cACP,SAAO;AAAA,YAAA;cACG,cACV,MAAuD;AAAA,gBAAvDD,YAAuD,kBAAA;AAAA,kBAArC,QAAA;AAAA,kBAAQ,MAAMC,MAAA,QAAA;AAAA,kBAAW,MAAM;AAAA,gBAAA;;;;;UAIzC,sBACV,MAAwD;AAAA,YAAxDD,YAAwD,kBAAA;AAAA,cAArC,MAAMC,MAAA,gBAAA;AAAA,cAAmB,MAAM;AAAA,YAAA;;UAExC,sBACV,MAAuD;AAAA,YAAvDD,YAAuD,kBAAA;AAAA,cAArC,QAAA;AAAA,cAAQ,MAAMC,MAAA,QAAA;AAAA,cAAW,MAAM;AAAA,YAAA;;UAEvC,sBACV,MAA6D;AAAA,YAA7DD,YAA6D,kBAAA;AAAA,cAA3C,QAAA;AAAA,cAAQ,MAAMC,MAAA,cAAA;AAAA,cAAiB,MAAM;AAAA,YAAA;;UAE7C,uBACV,MAA8D;AAAA,YAA9DD,YAA8D,kBAAA;AAAA,cAA5C,QAAA;AAAA,cAAQ,MAAMC,MAAA,eAAA;AAAA,cAAkB,MAAM;AAAA,YAAA;;UAE9C,sBACV,MAA6D;AAAA,YAA7DD,YAA6D,kBAAA;AAAA,cAA3C,QAAA;AAAA,cAAQ,MAAMC,MAAA,cAAA;AAAA,cAAiB,MAAM;AAAA,YAAA;;UAE7C,oBACV,MAA2D;AAAA,YAA3DD,YAA2D,kBAAA;AAAA,cAAzC,QAAA;AAAA,cAAQ,MAAMC,MAAA,YAAA;AAAA,cAAe,MAAM;AAAA,YAAA;;;;UAEtCW,KAAAA;kBAAqB;AAAA,wBACpC,MAIgC;AAAA,cAJhCZ,YAIgCa,aAAA;AAAA,4BAHtB,WAAA;AAAA,6EAAA,WAAU,QAAA;AAAA,gBACnB,OAAM;AAAA,gBACL,kBAAgB;AAAA,gBAChB,eAAaZ,MAAA,CAAA,EAAC,UAAA;AAAA,cAAA;;;;;sBAGlBa,YAEWC,UAAA;AAAA,UAFD,IAAG;AAAA,UAAQ,WAAWP,KAAAA;AAAAA,QAAAA;UAC/BQ,mBAA8D,OAA9D,YAA8D,MAAA,GAAA;AAAA,QAAA;;;;;;"}
|
package/dist/chunks/{NcDateTimePickerNative-CEm70Aaw.mjs → NcDateTimePickerNative-BiU3SIRj.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import '../assets/NcDateTimePickerNative-
|
|
1
|
+
import '../assets/NcDateTimePickerNative-BP6eg8aU.css';
|
|
2
2
|
import { defineComponent, mergeModels, useModel, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps } from "vue";
|
|
3
|
+
import { r as register, a as t } from "./_l10n-CiWgAjJZ.mjs";
|
|
3
4
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
4
|
-
import { r as register, a as t } from "./_l10n-_R1HqC4N.mjs";
|
|
5
5
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
6
6
|
register();
|
|
7
7
|
const _hoisted_1 = ["for"];
|
|
@@ -24,8 +24,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
24
|
}),
|
|
25
25
|
emits: ["update:modelValue"],
|
|
26
26
|
setup(__props) {
|
|
27
|
-
const props = __props;
|
|
28
27
|
const modelValue = useModel(__props, "modelValue");
|
|
28
|
+
const props = __props;
|
|
29
29
|
const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : "");
|
|
30
30
|
const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);
|
|
31
31
|
const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);
|
|
@@ -93,8 +93,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
});
|
|
96
|
-
const NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
96
|
+
const NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b97e1f7a"]]);
|
|
97
97
|
export {
|
|
98
98
|
NcDateTimePickerNative as N
|
|
99
99
|
};
|
|
100
|
-
//# sourceMappingURL=NcDateTimePickerNative-
|
|
100
|
+
//# sourceMappingURL=NcDateTimePickerNative-BiU3SIRj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NcDateTimePickerNative-BiU3SIRj.mjs","sources":["../../src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis components provides a wrapper around the native browser datetime picker. <br>\nThis is an input with some type of date e.g. https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type=datetime-local). <br>\nAll available types are: 'date', 'datetime-local', 'month', 'time' and 'week', please check them here: https://html.spec.whatwg.org/multipage/input.html# <br>\n\n### Examples\n\n```vue\n<template>\n\t<div>\n\t\t<span>Picked date: {{ value || 'null' }}</span>\n\t\t<hr/>\n\t\t<div class=\"flex\">\n\t\t\t<NcSelect v-bind=\"props\" v-model=\"type\" />\n\t\t\t<NcDateTimePickerNative\n\t\t\t\tv-model=\"value\"\n\t\t\t\t:label=\"label\"\n\t\t\t\t:type=\"type\" />\n\t\t</div>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tprops: {\n\t\t\t\t\tclearable: false,\n\t\t\t\t\tinputLabel: 'Picker type',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t'date',\n\t\t\t\t\t\t'datetime-local',\n\t\t\t\t\t\t'month',\n\t\t\t\t\t\t'time',\n\t\t\t\t\t\t'week',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\ttype: 'datetime-local',\n\t\t\t\tvalue: new Date(),\n\t\t\t\tlabel: 'Select a new date or time',\n\t\t\t}\n\t\t},\n\t}\n</script>\n<style scoped>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n</style>\n```\n\n#### Usage: type='datetime-local' with min date and max date\n```vue\n<template>\n\t<div>\n\t\t<span>Picked date: {{ value || 'null' }}</span>\n\t\t<NcDateTimePickerNative\n\t\t\tv-model=\"value\"\n\t\t\t:min=\"yesterdayDate\"\n\t\t\t:max=\"someDate\"\n\t\t\t:label=\"label\"\n\t\t\ttype=\"datetime-local\" />\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tvalue: new Date(),\n\t\t\t\tlabel: 'Please select a new date',\n\t\t\t\tyesterdayDate: new Date(new Date().setDate(new Date().getDate() - 1)),\n\t\t\t\tsomeDate: new Date(new Date().setDate(new Date().getDate() + 7)),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n</docs>\n\n<script setup lang=\"ts\">\nimport type { VueClassType } from '../../utils/VueTypes.ts'\n\nimport { computed } from 'vue'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\n\ndefineOptions({ inheritAttrs: false })\n\n/**\n * The date is – like the `Date` object in JavaScript – tied to UTC.\n * The selected time zone does not have an influence of the selected time and date value.\n * You have to translate the time yourself when you want to factor in time zones.\n * Pass null to clear the input field.\n */\nconst modelValue = defineModel<Date | null>({ default: null })\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * HTML class of the element\n\t */\n\tclass?: VueClassType\n\n\t/**\n\t * ID of the input element\n\t */\n\tid?: string\n\n\t/**\n\t * Class to add to the input field.\n\t * Necessary to use NcDateTimePickerNative in the NcActionInput component.\n\t */\n\tinputClass?: VueClassType\n\n\t/**\n\t * type attribute of the input field\n\t * default type: String\n\t * The type of the input element, it can be `date`, `datetime-local`, `month`, `time`, `week`\n\t */\n\ttype?: 'date' | 'datetime-local' | 'month' | 'time' | 'week'\n\n\t/**\n\t * Visual label of the input\n\t */\n\tlabel?: string\n\n\t/**\n\t * min attribute of the input field\n\t */\n\tmin?: Date | null\n\n\t/**\n\t * max attribute of the input field\n\t */\n\tmax?: Date | null\n\n\t/**\n\t * Flag to hide the label.\n\t * The hidden input label for accessibility purposes.\n\t */\n\thideLabel?: boolean\n}>(), {\n\tclass: undefined,\n\tid: () => createElementId(),\n\tinputClass: '',\n\tlabel: () => t('Please choose a date'),\n\tmax: null,\n\tmin: null,\n\tmodelValue: null,\n\ttype: 'date',\n})\n\nconst formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : '')\nconst formattedMax = computed(() => props.max ? formatValue(props.max) : undefined)\nconst formattedMin = computed(() => props.min ? formatValue(props.min) : undefined)\n\n/**\n * Returns Object with string values of a Date\n *\n * @param value - The selected value\n */\nfunction getReadableDate(value: Date) {\n\tconst yyyy = value.getFullYear().toString().padStart(4, '0')\n\tconst MM = (value.getMonth() + 1).toString().padStart(2, '0')\n\tconst dd = value.getDate().toString().padStart(2, '0')\n\tconst hh = value.getHours().toString().padStart(2, '0')\n\tconst mm = value.getMinutes().toString().padStart(2, '0')\n\n\treturn { yyyy, MM, dd, hh, mm }\n}\n\n/**\n * Returns preformatted value for the input field\n *\n * @param value - The selected value\n */\nfunction formatValue(value: Date): string {\n\tconst { yyyy, MM, dd, hh, mm } = getReadableDate(value)\n\tif (props.type === 'datetime-local') {\n\t\treturn `${yyyy}-${MM}-${dd}T${hh}:${mm}`\n\t} else if (props.type === 'date') {\n\t\treturn `${yyyy}-${MM}-${dd}`\n\t} else if (props.type === 'month') {\n\t\treturn `${yyyy}-${MM}`\n\t} else if (props.type === 'time') {\n\t\treturn `${hh}:${mm}`\n\t} else if (props.type === 'week') {\n\t\tconst startDate = new Date(Number.parseInt(yyyy), 0, 1)\n\t\tconst daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime())\n\t\t\t/ (24 * 60 * 60 * 1000))\n\t\tconst weekNumber = Math.ceil(daysSinceBeginningOfYear / 7)\n\t\treturn `${yyyy}-W${weekNumber}`\n\t}\n\treturn ''\n}\n\n/**\n * Handle the input event\n *\n * @param event - The input event payload\n */\nfunction onInput(event: Event): void {\n\tconst input = event.target as HTMLInputElement\n\tif (!input || isNaN(input.valueAsNumber)) {\n\t\tmodelValue.value = null\n\t} else if (props.type === 'time') {\n\t\tconst time = input.value\n\n\t\tconst { yyyy, MM, dd } = getReadableDate(modelValue.value || new Date())\n\t\tmodelValue.value = new Date(`${yyyy}-${MM}-${dd}T${time}`)\n\t} else if (props.type === 'month') {\n\t\tconst MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, '0')\n\t\tconst { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || new Date())\n\t\tmodelValue.value = new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`)\n\t} else {\n\t\tconst timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1000 * 60\n\t\tconst inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds\n\t\tmodelValue.value = new Date(inputDateWithTimezone)\n\t}\n}\n</script>\n\n<template>\n\t<div class=\"native-datetime-picker\" :class=\"$props.class\">\n\t\t<label\n\t\t\tclass=\"native-datetime-picker__label\"\n\t\t\t:class=\"{ 'hidden-visually': hideLabel }\"\n\t\t\t:for=\"id\">\n\t\t\t{{ label }}\n\t\t</label>\n\t\t<input\n\t\t\t:id\n\t\t\tclass=\"native-datetime-picker__input\"\n\t\t\t:class=\"inputClass\"\n\t\t\t:type\n\t\t\t:value=\"formattedValue\"\n\t\t\t:min=\"formattedMin\"\n\t\t\t:max=\"formattedMax\"\n\t\t\tv-bind=\"$attrs\"\n\t\t\t@input=\"onInput\">\n\t</div>\n</template>\n\n<style lang=\"scss\" scoped>\n.native-datetime-picker {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t.native-datetime-picker__label {\n\t\tmargin-block-end: 2px;\n\t}\n\n\t.native-datetime-picker__input {\n\t\t// If border width differs between focused and unfocused we need to compensate to prevent jumping\n\t\t--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n\t\twidth: 100%;\n\t\tflex: 0 0 auto;\n\t\tmargin: 0;\n\t\tpadding-inline-start: calc(var(--border-radius-element) + var(--input-border-width-offset));\n\t\tpadding-inline-end: calc(var(--default-grid-baseline) + var(--input-border-width-offset));\n\t\tborder: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n\n\t\t&:active:not([disabled]),\n\t\t&:hover:not([disabled]),\n\t\t&:focus:not([disabled]),\n\t\t&:focus-within:not([disabled]) {\n\t\t\tborder-color: var(--color-main-text);\n\t\t\tborder-width: var(--border-width-input-focused, 2px);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t// Reset padding offset when focused\n\t\t\t--input-border-width-offset: 0px;\n\t\t}\n\t}\n}\n\n[data-theme-light],\n[data-themes*=light] {\n\t.native-datetime-picker__input {\n\t\tcolor-scheme: light;\n\t}\n}\n\n[data-theme-dark],\n[data-themes*=dark] {\n\t.native-datetime-picker__input {\n\t\tcolor-scheme: dark;\n\t}\n}\n\n[data-theme-default],\n[data-themes*=default] {\n\t@media (prefers-color-scheme: light) {\n\t\t.native-datetime-picker__input {\n\t\t\tcolor-scheme: light;\n\t\t}\n\t}\n\t@media (prefers-color-scheme: dark) {\n\t\t.native-datetime-picker__input {\n\t\t\tcolor-scheme: dark;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_useModel","_createElementBlock","_normalizeClass","$props","_createElementVNode","hideLabel","id","label","_mergeProps","inputClass","type","$attrs"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import '../assets/NcDialog-
|
|
1
|
+
import '../assets/NcDialog-GKchMDSB.css';
|
|
2
2
|
import { defineComponent, mergeModels, useModel, useSlots, useTemplateRef, computed, ref, createBlock, createCommentVNode, openBlock, unref, mergeProps, withCtx, createElementVNode, toDisplayString, resolveDynamicComponent, toHandlers, normalizeClass, createElementBlock, renderSlot, Fragment, renderList } from "vue";
|
|
3
3
|
import { useElementSize } from "@vueuse/core";
|
|
4
|
-
import { N as NcModal } from "./NcModal-n7KHhtoD.mjs";
|
|
5
|
-
import { _ as _sfc_main$1 } from "./NcDialogButton.vue_vue_type_script_setup_true_lang-d1zLHPqM.mjs";
|
|
6
4
|
import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
|
|
5
|
+
import { _ as _sfc_main$1 } from "./NcDialogButton.vue_vue_type_script_setup_true_lang-BvBSeEuo.mjs";
|
|
6
|
+
import { N as NcModal } from "./NcModal-Jb_FjSoh.mjs";
|
|
7
7
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
|
|
8
8
|
const _hoisted_1 = ["id", "textContent"];
|
|
9
9
|
const _hoisted_2 = ["aria-label", "aria-labelledby"];
|
|
@@ -33,11 +33,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
33
33
|
}),
|
|
34
34
|
emits: /* @__PURE__ */ mergeModels(["closing", "reset", "submit"], ["update:open"]),
|
|
35
35
|
setup(__props, { emit: __emit }) {
|
|
36
|
-
const props = __props;
|
|
37
36
|
const open = useModel(__props, "open");
|
|
37
|
+
const props = __props;
|
|
38
38
|
const emit = __emit;
|
|
39
39
|
const slots = useSlots();
|
|
40
|
-
const wrapper = useTemplateRef("wrapper");
|
|
40
|
+
const wrapper = useTemplateRef("wrapper-key");
|
|
41
41
|
const { width: dialogWidth } = useElementSize(wrapper, { width: 900, height: 0 });
|
|
42
42
|
const isNavigationCollapsed = computed(() => dialogWidth.value < 876);
|
|
43
43
|
const hasNavigation = computed(() => slots?.navigation !== void 0);
|
|
@@ -49,10 +49,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
49
49
|
}
|
|
50
50
|
return props.navigationAriaLabelledby || navigationId;
|
|
51
51
|
});
|
|
52
|
-
const dialogElement = useTemplateRef("
|
|
52
|
+
const dialogElement = useTemplateRef("dialog-key");
|
|
53
53
|
const dialogTagName = computed(() => props.isForm && !hasNavigation.value ? "form" : "div");
|
|
54
|
-
const dialogListeners = computed(
|
|
55
|
-
(
|
|
54
|
+
const dialogListeners = computed(() => {
|
|
55
|
+
if (dialogTagName.value !== "form") {
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
56
59
|
/**
|
|
57
60
|
* @param event - Form submit event
|
|
58
61
|
*/
|
|
@@ -67,8 +70,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
67
70
|
event.preventDefault();
|
|
68
71
|
emit("reset", event);
|
|
69
72
|
}
|
|
70
|
-
}
|
|
71
|
-
);
|
|
73
|
+
};
|
|
74
|
+
});
|
|
72
75
|
const showModal = ref(true);
|
|
73
76
|
function handleButtonClose(button, result) {
|
|
74
77
|
if (button.type === "submit" && dialogTagName.value === "form" && "reportValidity" in dialogElement.value && !dialogElement.value.reportValidity()) {
|
|
@@ -81,10 +84,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
81
84
|
showModal.value = false;
|
|
82
85
|
emit("closing", result);
|
|
83
86
|
}
|
|
84
|
-
|
|
87
|
+
function handleClosed() {
|
|
85
88
|
showModal.value = true;
|
|
86
89
|
open.value = false;
|
|
87
|
-
}
|
|
90
|
+
}
|
|
88
91
|
const modalProps = computed(() => ({
|
|
89
92
|
noClose: props.noClose,
|
|
90
93
|
container: props.container === void 0 ? "body" : props.container,
|
|
@@ -115,15 +118,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
115
118
|
textContent: toDisplayString(_ctx.name)
|
|
116
119
|
}, null, 8, _hoisted_1),
|
|
117
120
|
(openBlock(), createBlock(resolveDynamicComponent(dialogTagName.value), mergeProps({
|
|
118
|
-
|
|
119
|
-
ref: dialogElement,
|
|
121
|
+
ref: "dialog-key",
|
|
120
122
|
class: ["dialog", _ctx.dialogClasses]
|
|
121
123
|
}, toHandlers(dialogListeners.value)), {
|
|
122
124
|
default: withCtx(() => [
|
|
123
125
|
createElementVNode("div", {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
class: normalizeClass(["dialog__wrapper", { "dialog__wrapper--collapsed": isNavigationCollapsed.value }])
|
|
126
|
+
ref: "wrapper-key",
|
|
127
|
+
class: normalizeClass(["dialog__wrapper", [{ "dialog__wrapper--collapsed": isNavigationCollapsed.value }]])
|
|
127
128
|
}, [
|
|
128
129
|
hasNavigation.value ? (openBlock(), createElementBlock("nav", {
|
|
129
130
|
key: 0,
|
|
@@ -144,10 +145,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
144
145
|
createElementVNode("div", _hoisted_4, [
|
|
145
146
|
renderSlot(_ctx.$slots, "actions", {}, () => [
|
|
146
147
|
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.buttons, (button, idx) => {
|
|
147
|
-
return openBlock(), createBlock(unref(_sfc_main$1), mergeProps({
|
|
148
|
-
key: idx,
|
|
149
|
-
ref_for: true
|
|
150
|
-
}, button, {
|
|
148
|
+
return openBlock(), createBlock(unref(_sfc_main$1), mergeProps({ key: idx }, { ref_for: true }, button, {
|
|
151
149
|
onClick: (_, result) => handleButtonClose(button, result)
|
|
152
150
|
}), null, 16, ["onClick"]);
|
|
153
151
|
}), 128))
|
|
@@ -162,8 +160,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
162
160
|
};
|
|
163
161
|
}
|
|
164
162
|
});
|
|
165
|
-
const NcDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
163
|
+
const NcDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a9c61f50"]]);
|
|
166
164
|
export {
|
|
167
165
|
NcDialog as N
|
|
168
166
|
};
|
|
169
|
-
//# sourceMappingURL=NcDialog-
|
|
167
|
+
//# sourceMappingURL=NcDialog-DmKbeOcJ.mjs.map
|