@nextcloud/vue 8.26.1 → 8.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -8
- package/dist/Components/NcActionButton.cjs +1 -1
- package/dist/Components/NcActionButton.mjs +1 -1
- package/dist/Components/NcActionButtonGroup.cjs +1 -1
- package/dist/Components/NcActionButtonGroup.mjs +1 -1
- package/dist/Components/NcActionInput.cjs +1 -1
- package/dist/Components/NcActionInput.mjs +1 -1
- package/dist/Components/NcActionLink.cjs +1 -1
- package/dist/Components/NcActionLink.mjs +1 -1
- package/dist/Components/NcActionRouter.cjs +1 -1
- package/dist/Components/NcActionRouter.mjs +1 -1
- package/dist/Components/NcActionText.cjs +3 -3
- package/dist/Components/NcActionText.cjs.map +1 -1
- package/dist/Components/NcActionText.mjs +3 -3
- package/dist/Components/NcActionText.mjs.map +1 -1
- package/dist/Components/NcActionTextEditable.cjs +1 -1
- package/dist/Components/NcActionTextEditable.mjs +1 -1
- package/dist/Components/NcActions.cjs +1 -1
- package/dist/Components/NcActions.mjs +1 -1
- package/dist/Components/NcAppContent.cjs +1 -1
- package/dist/Components/NcAppContent.mjs +1 -1
- package/dist/Components/NcAppNavigation.cjs +1 -1
- package/dist/Components/NcAppNavigation.mjs +1 -1
- package/dist/Components/NcAppNavigationCaption.cjs +1 -1
- package/dist/Components/NcAppNavigationCaption.mjs +1 -1
- package/dist/Components/NcAppNavigationItem.cjs +1 -1
- package/dist/Components/NcAppNavigationItem.mjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
- package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
- package/dist/Components/NcAppNavigationSearch.cjs +1 -1
- package/dist/Components/NcAppNavigationSearch.mjs +1 -1
- package/dist/Components/NcAppNavigationSettings.cjs +1 -1
- package/dist/Components/NcAppNavigationSettings.mjs +1 -1
- package/dist/Components/NcAppNavigationToggle.cjs +1 -1
- package/dist/Components/NcAppNavigationToggle.mjs +1 -1
- package/dist/Components/NcAppSettingsDialog.cjs +1 -1
- package/dist/Components/NcAppSettingsDialog.mjs +1 -1
- package/dist/Components/NcAppSidebar.cjs +1 -1
- package/dist/Components/NcAppSidebar.mjs +1 -1
- package/dist/Components/NcAvatar.cjs +1 -1
- package/dist/Components/NcAvatar.mjs +1 -1
- package/dist/Components/NcBreadcrumb.cjs +1 -1
- package/dist/Components/NcBreadcrumb.mjs +1 -1
- package/dist/Components/NcBreadcrumbs.cjs +1 -1
- package/dist/Components/NcBreadcrumbs.mjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
- package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
- package/dist/Components/NcChip.cjs +15 -8
- package/dist/Components/NcChip.cjs.map +1 -1
- package/dist/Components/NcChip.mjs +15 -8
- package/dist/Components/NcChip.mjs.map +1 -1
- package/dist/Components/NcCollectionList.cjs +1 -1
- package/dist/Components/NcCollectionList.mjs +1 -1
- package/dist/Components/NcColorPicker.cjs +1 -1
- package/dist/Components/NcColorPicker.mjs +1 -1
- package/dist/Components/NcContent.cjs +1 -1
- package/dist/Components/NcContent.mjs +1 -1
- package/dist/Components/NcDashboardWidget.cjs +1 -1
- package/dist/Components/NcDashboardWidget.mjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
- package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
- package/dist/Components/NcDateTime.cjs +1 -1
- package/dist/Components/NcDateTime.mjs +1 -1
- package/dist/Components/NcDateTimePicker.cjs +4 -4
- package/dist/Components/NcDateTimePicker.mjs +4 -4
- package/dist/Components/NcDateTimePickerNative.cjs +4 -5
- package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
- package/dist/Components/NcDateTimePickerNative.mjs +4 -5
- package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
- package/dist/Components/NcDialog.cjs +1 -1
- package/dist/Components/NcDialog.mjs +1 -1
- package/dist/Components/NcDialogButton.cjs +1 -1
- package/dist/Components/NcDialogButton.mjs +1 -1
- package/dist/Components/NcEmojiPicker.cjs +1 -1
- package/dist/Components/NcEmojiPicker.mjs +1 -1
- package/dist/Components/NcEmptyContent.cjs +2 -2
- package/dist/Components/NcEmptyContent.cjs.map +1 -1
- package/dist/Components/NcEmptyContent.mjs +2 -2
- package/dist/Components/NcEmptyContent.mjs.map +1 -1
- package/dist/Components/NcListItem.cjs +1 -1
- package/dist/Components/NcListItem.mjs +1 -1
- package/dist/Components/NcListItemIcon.cjs +1 -1
- package/dist/Components/NcListItemIcon.mjs +1 -1
- package/dist/Components/NcModal.cjs +4 -4
- package/dist/Components/NcModal.mjs +4 -4
- package/dist/Components/NcPasswordField.cjs +1 -1
- package/dist/Components/NcPasswordField.mjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
- package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
- package/dist/Components/NcRichContenteditable.cjs +1 -1
- package/dist/Components/NcRichContenteditable.mjs +1 -1
- package/dist/Components/NcRichText.cjs +2 -2
- package/dist/Components/NcRichText.mjs +3 -3
- package/dist/Components/NcSelect.cjs +1 -1
- package/dist/Components/NcSelect.mjs +1 -1
- package/dist/Components/NcSelectTags.cjs +1 -1
- package/dist/Components/NcSelectTags.mjs +1 -1
- package/dist/Components/NcSelectUsers.cjs +1 -1
- package/dist/Components/NcSelectUsers.mjs +1 -1
- package/dist/Components/NcSettingsInputText.cjs +1 -1
- package/dist/Components/NcSettingsInputText.mjs +1 -1
- package/dist/Components/NcSettingsSection.cjs +1 -1
- package/dist/Components/NcSettingsSection.mjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
- package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
- package/dist/Components/NcTextField.cjs +1 -1
- package/dist/Components/NcTextField.mjs +1 -1
- package/dist/Components/NcTimezonePicker.cjs +1 -1
- package/dist/Components/NcTimezonePicker.mjs +1 -1
- package/dist/Components/NcUserBubble.cjs +1 -1
- package/dist/Components/NcUserBubble.mjs +1 -1
- package/dist/Components/NcUserStatusIcon.cjs +1 -1
- package/dist/Components/NcUserStatusIcon.mjs +1 -1
- package/dist/Composables/useFormatDateTime.cjs +68 -0
- package/dist/Composables/useFormatDateTime.cjs.map +1 -0
- package/dist/Composables/useFormatDateTime.mjs +68 -0
- package/dist/Composables/useFormatDateTime.mjs.map +1 -0
- package/dist/Composables/useHotKey.cjs +35 -21
- package/dist/Composables/useHotKey.cjs.map +1 -1
- package/dist/Composables/useHotKey.mjs +35 -21
- package/dist/Composables/useHotKey.mjs.map +1 -1
- package/dist/Composables/useIsFullscreen.cjs +3 -1
- package/dist/Composables/useIsFullscreen.cjs.map +1 -1
- package/dist/Composables/useIsFullscreen.mjs +3 -1
- package/dist/Composables/useIsFullscreen.mjs.map +1 -1
- package/dist/Directives/Focus.cjs +1 -3
- package/dist/Directives/Focus.cjs.map +1 -1
- package/dist/Directives/Focus.mjs +1 -2
- package/dist/Directives/Focus.mjs.map +1 -1
- package/dist/Functions/reference.cjs +1 -1
- package/dist/Functions/reference.mjs +1 -1
- package/dist/Functions/usernameToColor.cjs +1 -1
- package/dist/Functions/usernameToColor.mjs +1 -1
- package/dist/Mixins/isFullscreen.cjs.map +1 -1
- package/dist/Mixins/isFullscreen.mjs.map +1 -1
- package/dist/assets/{NcActionButton-BqMeBMdA.css → NcActionButton-D8Lyueq3.css} +28 -17
- package/dist/assets/{NcActionLink-DA3ebr8W.css → NcActionLink-CNMaob5P.css} +9 -1
- package/dist/assets/{NcActionRouter-DlqXQ6ai.css → NcActionRouter-zXuKLsvi.css} +9 -1
- package/dist/assets/{NcActionText-Cvug6qMa.css → NcActionText-Rad4JSXq.css} +26 -18
- package/dist/assets/{NcActionTextEditable-CasTVqIo.css → NcActionTextEditable-BflqGcjc.css} +60 -60
- package/dist/assets/{NcActions-3STB3u9J.css → NcActions-C3F-rqxz.css} +11 -11
- package/dist/assets/{NcAppContent-DUkkgtHn.css → NcAppContent-Bb5hgGi3.css} +23 -23
- package/dist/assets/{NcAppNavigation-DfTQlVGB.css → NcAppNavigation-WhHdkLQF.css} +12 -12
- package/dist/assets/{NcAppNavigationItem-CdT6ce8-.css → NcAppNavigationItem-BKKHzMYw.css} +5 -1
- package/dist/assets/{NcAppNavigationNewItem-D7wroqrc.css → NcAppNavigationNewItem-PE-w8y-g.css} +5 -1
- package/dist/assets/{NcAppSidebar-DVDDtSbA.css → NcAppSidebar-BFg2HHh6.css} +44 -50
- package/dist/assets/{NcAvatar-CRiCqAWQ.css → NcAvatar-BgjB8atT.css} +24 -24
- package/dist/assets/{NcCheckboxRadioSwitch-DlEieXCj.css → NcCheckboxRadioSwitch-B-axx3m7.css} +45 -42
- package/dist/assets/{NcChip-BNLuZgd6.css → NcChip-CF4Q149V.css} +9 -9
- package/dist/assets/{NcColorPicker-BayJGD4p.css → NcColorPicker-TIE_tTqD.css} +28 -28
- package/dist/assets/{NcDateTimePicker-BX_lZB2F.css → NcDateTimePicker-DGkOwO8l.css} +7 -7
- package/dist/assets/{NcDateTimePickerNative-DVGEymgr.css → NcDateTimePickerNative-CYS2ORfo.css} +13 -13
- package/dist/assets/{NcDialog-BPI0CJvw.css → NcDialog-X7BRqUGJ.css} +15 -15
- package/dist/assets/{NcEmptyContent-CSsXYYcn.css → NcEmptyContent-CHVEJoER.css} +12 -9
- package/dist/assets/{NcListItem-DfaWGP5A.css → NcListItem-B2yvEdWx.css} +44 -44
- package/dist/assets/{NcPasswordField-whtKJFcB.css → NcPasswordField-DVK8tuPi.css} +2 -2
- package/dist/assets/{NcRichText-CzCM9V1U.css → NcRichText-CWVHZl8s.css} +86 -83
- package/dist/assets/NcSelectUsers-BOwQNNMf.css +4 -0
- package/dist/chunks/{GenColors-S7frO84b.mjs → GenColors-BowX0SaQ.mjs} +2 -2
- package/dist/chunks/{GenColors-S7frO84b.mjs.map → GenColors-BowX0SaQ.mjs.map} +1 -1
- package/dist/chunks/{GenColors-7bkY5Nwl.cjs → GenColors-DAxlN2KL.cjs} +2 -2
- package/dist/chunks/{GenColors-7bkY5Nwl.cjs.map → GenColors-DAxlN2KL.cjs.map} +1 -1
- package/dist/chunks/{NcActionButton-Gpv56vuS.mjs → NcActionButton-CpGK6gSX.mjs} +18 -46
- package/dist/chunks/NcActionButton-CpGK6gSX.mjs.map +1 -0
- package/dist/chunks/{NcActionButton-CXeEXQLT.cjs → NcActionButton-DBh812gJ.cjs} +18 -46
- package/dist/chunks/NcActionButton-DBh812gJ.cjs.map +1 -0
- package/dist/chunks/{NcActionButtonGroup-BteTNhIn.mjs → NcActionButtonGroup-BkU5oOmB.mjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-BteTNhIn.mjs.map → NcActionButtonGroup-BkU5oOmB.mjs.map} +1 -1
- package/dist/chunks/{NcActionButtonGroup-BMy3W9fG.cjs → NcActionButtonGroup-qRIt-It4.cjs} +2 -2
- package/dist/chunks/{NcActionButtonGroup-BMy3W9fG.cjs.map → NcActionButtonGroup-qRIt-It4.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-BXOo5jPS.cjs → NcActionInput-CtkE6Hny.cjs} +5 -5
- package/dist/chunks/{NcActionInput-BXOo5jPS.cjs.map → NcActionInput-CtkE6Hny.cjs.map} +1 -1
- package/dist/chunks/{NcActionInput-DuwAyOU-.mjs → NcActionInput-D3FN751M.mjs} +5 -5
- package/dist/chunks/{NcActionInput-DuwAyOU-.mjs.map → NcActionInput-D3FN751M.mjs.map} +1 -1
- package/dist/chunks/{NcActionTextEditable-s1Xqpg6x.cjs → NcActionTextEditable-Du_71yLe.cjs} +8 -10
- package/dist/chunks/NcActionTextEditable-Du_71yLe.cjs.map +1 -0
- package/dist/chunks/{NcActionTextEditable-BYqqHPj2.mjs → NcActionTextEditable-a_607PST.mjs} +8 -10
- package/dist/chunks/NcActionTextEditable-a_607PST.mjs.map +1 -0
- package/dist/chunks/{NcActions-DEZO46mP.mjs → NcActions-CzpbMJoY.mjs} +5 -5
- package/dist/chunks/{NcActions-DEZO46mP.mjs.map → NcActions-CzpbMJoY.mjs.map} +1 -1
- package/dist/chunks/{NcActions-B7DbEbCo.cjs → NcActions-DvZOLPjX.cjs} +5 -5
- package/dist/chunks/{NcActions-B7DbEbCo.cjs.map → NcActions-DvZOLPjX.cjs.map} +1 -1
- package/dist/chunks/{NcAppContent-CiYhQ9r8.cjs → NcAppContent-CItX43vM.cjs} +48 -39
- package/dist/chunks/NcAppContent-CItX43vM.cjs.map +1 -0
- package/dist/chunks/{NcAppContent-LEyo6v0_.mjs → NcAppContent-CP6G4fZX.mjs} +46 -37
- package/dist/chunks/NcAppContent-CP6G4fZX.mjs.map +1 -0
- package/dist/chunks/{NcAppNavigation-DBfTz6qV.cjs → NcAppNavigation-C86dBexT.cjs} +4 -4
- package/dist/chunks/{NcAppNavigation-DBfTz6qV.cjs.map → NcAppNavigation-C86dBexT.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigation-H8Gvbq5E.mjs → NcAppNavigation-sCuN3OZe.mjs} +4 -4
- package/dist/chunks/{NcAppNavigation-H8Gvbq5E.mjs.map → NcAppNavigation-sCuN3OZe.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-CkIBHQGQ.mjs → NcAppNavigationCaption-B-5VHm-a.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-CkIBHQGQ.mjs.map → NcAppNavigationCaption-B-5VHm-a.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationCaption-CMnWvBgA.cjs → NcAppNavigationCaption-B53sg-pO.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationCaption-CMnWvBgA.cjs.map → NcAppNavigationCaption-B53sg-pO.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-CjhP63uG.mjs → NcAppNavigationItem-D7Y5mGGC.mjs} +6 -6
- package/dist/chunks/{NcAppNavigationItem-CjhP63uG.mjs.map → NcAppNavigationItem-D7Y5mGGC.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationItem-BXAslQdH.cjs → NcAppNavigationItem-huCt6Fb0.cjs} +6 -6
- package/dist/chunks/{NcAppNavigationItem-BXAslQdH.cjs.map → NcAppNavigationItem-huCt6Fb0.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-BLek0JRU.cjs → NcAppNavigationNewItem-CQB6KhNm.cjs} +3 -3
- package/dist/chunks/{NcAppNavigationNewItem-BLek0JRU.cjs.map → NcAppNavigationNewItem-CQB6KhNm.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationNewItem-DGjgp78o.mjs → NcAppNavigationNewItem-DgTuysCV.mjs} +3 -3
- package/dist/chunks/{NcAppNavigationNewItem-DGjgp78o.mjs.map → NcAppNavigationNewItem-DgTuysCV.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-DTW6CtnU.mjs → NcAppNavigationSearch-9NTDoHar.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationSearch-DTW6CtnU.mjs.map → NcAppNavigationSearch-9NTDoHar.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSearch-BblolNaS.cjs → NcAppNavigationSearch-BxhJ30Ai.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationSearch-BblolNaS.cjs.map → NcAppNavigationSearch-BxhJ30Ai.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-t9JntjoG.mjs → NcAppNavigationSettings-CS36ibjM.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationSettings-t9JntjoG.mjs.map → NcAppNavigationSettings-CS36ibjM.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationSettings-ppse1A0c.cjs → NcAppNavigationSettings-x3sCPjbc.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationSettings-ppse1A0c.cjs.map → NcAppNavigationSettings-x3sCPjbc.cjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-CjPJB2s3.mjs → NcAppNavigationToggle-5vSrAnr1.mjs} +2 -2
- package/dist/chunks/{NcAppNavigationToggle-CjPJB2s3.mjs.map → NcAppNavigationToggle-5vSrAnr1.mjs.map} +1 -1
- package/dist/chunks/{NcAppNavigationToggle-CUGOWggc.cjs → NcAppNavigationToggle-BesLZbAe.cjs} +2 -2
- package/dist/chunks/{NcAppNavigationToggle-CUGOWggc.cjs.map → NcAppNavigationToggle-BesLZbAe.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-6cTux_qA.cjs → NcAppSettingsDialog-B6CvUEz6.cjs} +3 -3
- package/dist/chunks/{NcAppSettingsDialog-6cTux_qA.cjs.map → NcAppSettingsDialog-B6CvUEz6.cjs.map} +1 -1
- package/dist/chunks/{NcAppSettingsDialog-C5uE1lh5.mjs → NcAppSettingsDialog-DBViVlqo.mjs} +3 -3
- package/dist/chunks/{NcAppSettingsDialog-C5uE1lh5.mjs.map → NcAppSettingsDialog-DBViVlqo.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-C_C76E_8.mjs → NcAppSidebar-6PtLRD0F.mjs} +7 -7
- package/dist/chunks/{NcAppSidebar-C8jffFJX.cjs.map → NcAppSidebar-6PtLRD0F.mjs.map} +1 -1
- package/dist/chunks/{NcAppSidebar-C8jffFJX.cjs → NcAppSidebar-BtJnp-19.cjs} +7 -7
- package/dist/chunks/{NcAppSidebar-C_C76E_8.mjs.map → NcAppSidebar-BtJnp-19.cjs.map} +1 -1
- package/dist/chunks/{NcAvatar-B8FOIz7P.cjs → NcAvatar-CbUnw3_c.cjs} +9 -8
- package/dist/chunks/{NcAvatar-B8FOIz7P.cjs.map → NcAvatar-CbUnw3_c.cjs.map} +1 -1
- package/dist/chunks/{NcAvatar-CTzwxkvv.mjs → NcAvatar-DC7NtEPz.mjs} +9 -8
- package/dist/chunks/{NcAvatar-CTzwxkvv.mjs.map → NcAvatar-DC7NtEPz.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumb-BExltxiq.cjs → NcBreadcrumb-K0ol_C7l.cjs} +37 -5
- package/dist/chunks/NcBreadcrumb-K0ol_C7l.cjs.map +1 -0
- package/dist/chunks/{NcBreadcrumb-c6GeY5FH.mjs → NcBreadcrumb-WO64bNkF.mjs} +36 -4
- package/dist/chunks/NcBreadcrumb-WO64bNkF.mjs.map +1 -0
- package/dist/chunks/{NcBreadcrumbs-CPmhYEn-.mjs → NcBreadcrumbs-DrTlt5X4.mjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-CPmhYEn-.mjs.map → NcBreadcrumbs-DrTlt5X4.mjs.map} +1 -1
- package/dist/chunks/{NcBreadcrumbs-Q3JgS6gv.cjs → NcBreadcrumbs-Ds40ClR-.cjs} +4 -4
- package/dist/chunks/{NcBreadcrumbs-Q3JgS6gv.cjs.map → NcBreadcrumbs-Ds40ClR-.cjs.map} +1 -1
- package/dist/chunks/{NcCheckboxRadioSwitch-Di9rSADK.mjs → NcCheckboxRadioSwitch-BIEYfWtF.mjs} +5 -5
- package/dist/chunks/NcCheckboxRadioSwitch-BIEYfWtF.mjs.map +1 -0
- package/dist/chunks/{NcCheckboxRadioSwitch-DbK49DI7.cjs → NcCheckboxRadioSwitch-IOUKKqSP.cjs} +5 -5
- package/dist/chunks/NcCheckboxRadioSwitch-IOUKKqSP.cjs.map +1 -0
- package/dist/chunks/{NcCollectionList-0Jx-DWg2.cjs → NcCollectionList-B7SKtsie.cjs} +6 -6
- package/dist/chunks/{NcCollectionList-0Jx-DWg2.cjs.map → NcCollectionList-B7SKtsie.cjs.map} +1 -1
- package/dist/chunks/{NcCollectionList-e-iLLNzl.mjs → NcCollectionList-CdqFiw6Z.mjs} +6 -6
- package/dist/chunks/{NcCollectionList-e-iLLNzl.mjs.map → NcCollectionList-CdqFiw6Z.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-C0sDksCi.mjs → NcColorPicker-CtcS-XMk.mjs} +5 -5
- package/dist/chunks/{NcColorPicker-C0sDksCi.mjs.map → NcColorPicker-CtcS-XMk.mjs.map} +1 -1
- package/dist/chunks/{NcColorPicker-T-ifFDNs.cjs → NcColorPicker-HzfzrrTt.cjs} +5 -5
- package/dist/chunks/{NcColorPicker-T-ifFDNs.cjs.map → NcColorPicker-HzfzrrTt.cjs.map} +1 -1
- package/dist/chunks/{NcContent-DUUfYUtn.cjs → NcContent-B2Uvy01y.cjs} +2 -2
- package/dist/chunks/{NcContent-DUUfYUtn.cjs.map → NcContent-B2Uvy01y.cjs.map} +1 -1
- package/dist/chunks/{NcContent-zoa5Bvb_.mjs → NcContent-BOBFr3nn.mjs} +2 -2
- package/dist/chunks/{NcContent-zoa5Bvb_.mjs.map → NcContent-BOBFr3nn.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-C-hYC14S.mjs → NcDashboardWidget-C3FrsWrR.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-C-hYC14S.mjs.map → NcDashboardWidget-C3FrsWrR.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidget-DQHEu1R5.cjs → NcDashboardWidget-CJMYBSOl.cjs} +4 -4
- package/dist/chunks/{NcDashboardWidget-DQHEu1R5.cjs.map → NcDashboardWidget-CJMYBSOl.cjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-jNmJHCzO.mjs → NcDashboardWidgetItem-D83T9o2C.mjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-jNmJHCzO.mjs.map → NcDashboardWidgetItem-D83T9o2C.mjs.map} +1 -1
- package/dist/chunks/{NcDashboardWidgetItem-DgPiK40s.cjs → NcDashboardWidgetItem-EVIAYLsi.cjs} +4 -4
- package/dist/chunks/{NcDashboardWidgetItem-DgPiK40s.cjs.map → NcDashboardWidgetItem-EVIAYLsi.cjs.map} +1 -1
- package/dist/chunks/NcDateTime-Cl-PZpLN.cjs +76 -0
- package/dist/chunks/NcDateTime-Cl-PZpLN.cjs.map +1 -0
- package/dist/chunks/NcDateTime-kanSdMgW.mjs +77 -0
- package/dist/chunks/NcDateTime-kanSdMgW.mjs.map +1 -0
- package/dist/chunks/{NcDialog-DvC6y1MC.cjs → NcDialog-D4gfqrqn.cjs} +5 -5
- package/dist/chunks/{NcDialog-DvC6y1MC.cjs.map → NcDialog-D4gfqrqn.cjs.map} +1 -1
- package/dist/chunks/{NcDialog-Bg9U6bnj.mjs → NcDialog-OV8kfc5o.mjs} +5 -5
- package/dist/chunks/{NcDialog-Bg9U6bnj.mjs.map → NcDialog-OV8kfc5o.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-BWYKv9fM.mjs → NcDialogButton-BhuiKGmE.mjs} +2 -2
- package/dist/chunks/{NcDialogButton-BWYKv9fM.mjs.map → NcDialogButton-BhuiKGmE.mjs.map} +1 -1
- package/dist/chunks/{NcDialogButton-BFemrIUw.cjs → NcDialogButton-SPofxC7K.cjs} +2 -2
- package/dist/chunks/{NcDialogButton-BFemrIUw.cjs.map → NcDialogButton-SPofxC7K.cjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-B7hMntv4.mjs → NcEmojiPicker-BJSfoews.mjs} +5 -5
- package/dist/chunks/{NcEmojiPicker-B7hMntv4.mjs.map → NcEmojiPicker-BJSfoews.mjs.map} +1 -1
- package/dist/chunks/{NcEmojiPicker-CtvRZuBW.cjs → NcEmojiPicker-LpRAYAZU.cjs} +5 -5
- package/dist/chunks/{NcEmojiPicker-CtvRZuBW.cjs.map → NcEmojiPicker-LpRAYAZU.cjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-CacBXLGS.mjs → NcInputConfirmCancel-B4xEFita.mjs} +2 -2
- package/dist/chunks/{NcInputConfirmCancel-CacBXLGS.mjs.map → NcInputConfirmCancel-B4xEFita.mjs.map} +1 -1
- package/dist/chunks/{NcInputConfirmCancel-lVLFwBA4.cjs → NcInputConfirmCancel-DiMrwB9r.cjs} +2 -2
- package/dist/chunks/{NcInputConfirmCancel-lVLFwBA4.cjs.map → NcInputConfirmCancel-DiMrwB9r.cjs.map} +1 -1
- package/dist/chunks/{NcListItem-CM-2Sxu0.mjs → NcListItem-BHhlE1Sb.mjs} +7 -7
- package/dist/chunks/{NcListItem-BVNMtN9D.cjs.map → NcListItem-BHhlE1Sb.mjs.map} +1 -1
- package/dist/chunks/{NcListItem-BVNMtN9D.cjs → NcListItem-Bs-sl-hH.cjs} +7 -7
- package/dist/chunks/{NcListItem-CM-2Sxu0.mjs.map → NcListItem-Bs-sl-hH.cjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-NVu4D1gV.mjs → NcListItemIcon-BDq6PIUq.mjs} +2 -2
- package/dist/chunks/{NcListItemIcon-NVu4D1gV.mjs.map → NcListItemIcon-BDq6PIUq.mjs.map} +1 -1
- package/dist/chunks/{NcListItemIcon-Dn98VepV.cjs → NcListItemIcon-DQn2njGl.cjs} +2 -2
- package/dist/chunks/{NcListItemIcon-Dn98VepV.cjs.map → NcListItemIcon-DQn2njGl.cjs.map} +1 -1
- package/dist/chunks/{NcPasswordField-CTKHRVC4.mjs → NcPasswordField-5oXVlA4T.mjs} +35 -19
- package/dist/chunks/NcPasswordField-5oXVlA4T.mjs.map +1 -0
- package/dist/chunks/{NcPasswordField-BCzIotoB.cjs → NcPasswordField-B_d4oTF9.cjs} +35 -19
- package/dist/chunks/NcPasswordField-B_d4oTF9.cjs.map +1 -0
- package/dist/chunks/{NcRelatedResourcesPanel-C9qkNtuo.cjs → NcRelatedResourcesPanel-DDKi2A47.cjs} +2 -2
- package/dist/chunks/{NcRelatedResourcesPanel-C9qkNtuo.cjs.map → NcRelatedResourcesPanel-DDKi2A47.cjs.map} +1 -1
- package/dist/chunks/{NcRelatedResourcesPanel-BtfnMS2U.mjs → NcRelatedResourcesPanel-w0cVgK_u.mjs} +2 -2
- package/dist/chunks/{NcRelatedResourcesPanel-BtfnMS2U.mjs.map → NcRelatedResourcesPanel-w0cVgK_u.mjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-BQcBCaz-.cjs → NcRichContenteditable-CbF4935r.cjs} +7 -7
- package/dist/chunks/{NcRichContenteditable-BQcBCaz-.cjs.map → NcRichContenteditable-CbF4935r.cjs.map} +1 -1
- package/dist/chunks/{NcRichContenteditable-nJL0Ml6f.mjs → NcRichContenteditable-Cqt-neS3.mjs} +7 -7
- package/dist/chunks/{NcRichContenteditable-nJL0Ml6f.mjs.map → NcRichContenteditable-Cqt-neS3.mjs.map} +1 -1
- package/dist/chunks/{NcRichText-Br5t5ga_.mjs → NcRichText-BWY0OxW9.mjs} +13 -7
- package/dist/chunks/{NcRichText-BzJv-N1n.cjs.map → NcRichText-BWY0OxW9.mjs.map} +1 -1
- package/dist/chunks/{NcRichText-BzJv-N1n.cjs → NcRichText-DxDK1G5d.cjs} +14 -7
- package/dist/chunks/{NcRichText-Br5t5ga_.mjs.map → NcRichText-DxDK1G5d.cjs.map} +1 -1
- package/dist/chunks/{NcSelect-ByaW3kG-.cjs → NcSelect-CvN1DuY2.cjs} +3 -3
- package/dist/chunks/{NcSelect-ByaW3kG-.cjs.map → NcSelect-CvN1DuY2.cjs.map} +1 -1
- package/dist/chunks/{NcSelect-DVUm4oCe.mjs → NcSelect-DmIaznJY.mjs} +3 -3
- package/dist/chunks/{NcSelect-DVUm4oCe.mjs.map → NcSelect-DmIaznJY.mjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-Bv44W43g.cjs → NcSelectTags-DJoDzrZl.cjs} +3 -3
- package/dist/chunks/{NcSelectTags-Bv44W43g.cjs.map → NcSelectTags-DJoDzrZl.cjs.map} +1 -1
- package/dist/chunks/{NcSelectTags-BcBE70eK.mjs → NcSelectTags-MsqvY1l4.mjs} +3 -3
- package/dist/chunks/{NcSelectTags-BcBE70eK.mjs.map → NcSelectTags-MsqvY1l4.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-BQGjCB8x.mjs → NcSelectUsers-BYynRS17.mjs} +14 -8
- package/dist/chunks/{NcSelectUsers-BQGjCB8x.mjs.map → NcSelectUsers-BYynRS17.mjs.map} +1 -1
- package/dist/chunks/{NcSelectUsers-CMnFliv_.cjs → NcSelectUsers-IoPgizBH.cjs} +14 -8
- package/dist/chunks/{NcSelectUsers-CMnFliv_.cjs.map → NcSelectUsers-IoPgizBH.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-t1FMnLKA.mjs → NcSettingsInputText-BXbSSC7N.mjs} +2 -2
- package/dist/chunks/{NcSettingsInputText-t1FMnLKA.mjs.map → NcSettingsInputText-BXbSSC7N.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsInputText-BU1_SHOq.cjs → NcSettingsInputText-BknU0gbE.cjs} +2 -2
- package/dist/chunks/{NcSettingsInputText-BU1_SHOq.cjs.map → NcSettingsInputText-BknU0gbE.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-EC3SmiDX.mjs → NcSettingsSection-BNefU-yk.mjs} +2 -2
- package/dist/chunks/{NcSettingsSection-EC3SmiDX.mjs.map → NcSettingsSection-BNefU-yk.mjs.map} +1 -1
- package/dist/chunks/{NcSettingsSection-Dcdxs1IN.cjs → NcSettingsSection-dlDi9oLJ.cjs} +2 -2
- package/dist/chunks/{NcSettingsSection-Dcdxs1IN.cjs.map → NcSettingsSection-dlDi9oLJ.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-LMFSKor_.cjs → NcSettingsSelectGroup-Bm8naUVk.cjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-LMFSKor_.cjs.map → NcSettingsSelectGroup-Bm8naUVk.cjs.map} +1 -1
- package/dist/chunks/{NcSettingsSelectGroup-BaxnrQ1h.mjs → NcSettingsSelectGroup-DWEorw2V.mjs} +3 -3
- package/dist/chunks/{NcSettingsSelectGroup-BaxnrQ1h.mjs.map → NcSettingsSelectGroup-DWEorw2V.mjs.map} +1 -1
- package/dist/chunks/{NcTextField-Uk5iD8o2.cjs → NcTextField-CMxmd2Wn.cjs} +29 -48
- package/dist/chunks/NcTextField-CMxmd2Wn.cjs.map +1 -0
- package/dist/chunks/{NcTextField-DRANdaIf.mjs → NcTextField-Cd_RjGj6.mjs} +29 -48
- package/dist/chunks/NcTextField-Cd_RjGj6.mjs.map +1 -0
- package/dist/chunks/{NcTimezonePicker-t60uHoNB.mjs → NcTimezonePicker-BjUmYLVj.mjs} +3 -3
- package/dist/chunks/{NcTimezonePicker-t60uHoNB.mjs.map → NcTimezonePicker-BjUmYLVj.mjs.map} +1 -1
- package/dist/chunks/{NcTimezonePicker-CcFJQMX9.cjs → NcTimezonePicker-Ds_yZJVZ.cjs} +3 -3
- package/dist/chunks/{NcTimezonePicker-CcFJQMX9.cjs.map → NcTimezonePicker-Ds_yZJVZ.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-Dvxdr2ee.cjs → NcUserBubble-B5MtyQce.cjs} +2 -2
- package/dist/chunks/{NcUserBubble-Dvxdr2ee.cjs.map → NcUserBubble-B5MtyQce.cjs.map} +1 -1
- package/dist/chunks/{NcUserBubble-W_wjP2lY.mjs → NcUserBubble-DH2UiUfH.mjs} +2 -2
- package/dist/chunks/{NcUserBubble-W_wjP2lY.mjs.map → NcUserBubble-DH2UiUfH.mjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-cs42Lzdd.cjs → NcUserStatusIcon-B_-V1MDZ.cjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-cs42Lzdd.cjs.map → NcUserStatusIcon-B_-V1MDZ.cjs.map} +1 -1
- package/dist/chunks/{NcUserStatusIcon-WEKmuaoU.mjs → NcUserStatusIcon-Bya1v9qo.mjs} +2 -2
- package/dist/chunks/{NcUserStatusIcon-WEKmuaoU.mjs.map → NcUserStatusIcon-Bya1v9qo.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-FtC2zEqX.mjs → ScopeComponent-CC0LPlVx.mjs} +2 -2
- package/dist/chunks/{ScopeComponent-FtC2zEqX.mjs.map → ScopeComponent-CC0LPlVx.mjs.map} +1 -1
- package/dist/chunks/{ScopeComponent-BccjTlJa.cjs → ScopeComponent-SIPKHdQy.cjs} +2 -2
- package/dist/chunks/{ScopeComponent-BccjTlJa.cjs.map → ScopeComponent-SIPKHdQy.cjs.map} +1 -1
- package/dist/chunks/{_l10n-BiiXtYiP.cjs → _l10n-CXXSIoEf.cjs} +5 -9
- package/dist/chunks/{_l10n-BiiXtYiP.cjs.map → _l10n-CXXSIoEf.cjs.map} +1 -1
- package/dist/chunks/{_l10n-Dt0m9Fxw.mjs → _l10n-DIOHNc85.mjs} +20 -24
- package/dist/chunks/_l10n-DIOHNc85.mjs.map +1 -0
- package/dist/chunks/mdi-BflUJIiB.cjs +14 -0
- package/dist/chunks/{mdi-CZJxQPz6.mjs.map → mdi-BflUJIiB.cjs.map} +1 -1
- package/dist/chunks/mdi-C1L0jZ1V.mjs +15 -0
- package/dist/chunks/{mdi-Da9VuUVq.cjs.map → mdi-C1L0jZ1V.mjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-qWVMGb2m.cjs → referencePickerModal-DbrHVDKS.cjs} +4 -4
- package/dist/chunks/{referencePickerModal-qWVMGb2m.cjs.map → referencePickerModal-DbrHVDKS.cjs.map} +1 -1
- package/dist/chunks/{referencePickerModal-DN7C4An4.mjs → referencePickerModal-sscttPbK.mjs} +4 -4
- package/dist/chunks/{referencePickerModal-DN7C4An4.mjs.map → referencePickerModal-sscttPbK.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-DJfepfog.mjs → usernameToColor-BPaEECqs.mjs} +2 -2
- package/dist/chunks/{usernameToColor-DJfepfog.mjs.map → usernameToColor-BPaEECqs.mjs.map} +1 -1
- package/dist/chunks/{usernameToColor-mqInDrGv.cjs → usernameToColor-Bu43-l7c.cjs} +2 -2
- package/dist/chunks/{usernameToColor-mqInDrGv.cjs.map → usernameToColor-Bu43-l7c.cjs.map} +1 -1
- package/dist/composables/useFormatDateTime/index.d.ts +73 -0
- package/dist/composables/useHotKey/index.d.ts +35 -0
- package/dist/composables/useIsFullscreen/index.d.ts +11 -0
- package/dist/directives/Focus/index.d.ts +3 -0
- package/dist/index.cjs +56 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +54 -52
- package/package.json +5 -4
- package/dist/assets/NcSelectUsers-CRH00RA2.css +0 -4
- package/dist/chunks/ChevronRight-BUv-PtHh.mjs +0 -38
- package/dist/chunks/ChevronRight-BUv-PtHh.mjs.map +0 -1
- package/dist/chunks/ChevronRight-ZCKVg9OI.cjs +0 -37
- package/dist/chunks/ChevronRight-ZCKVg9OI.cjs.map +0 -1
- package/dist/chunks/NcActionButton-CXeEXQLT.cjs.map +0 -1
- package/dist/chunks/NcActionButton-Gpv56vuS.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-BYqqHPj2.mjs.map +0 -1
- package/dist/chunks/NcActionTextEditable-s1Xqpg6x.cjs.map +0 -1
- package/dist/chunks/NcAppContent-CiYhQ9r8.cjs.map +0 -1
- package/dist/chunks/NcAppContent-LEyo6v0_.mjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-BExltxiq.cjs.map +0 -1
- package/dist/chunks/NcBreadcrumb-c6GeY5FH.mjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-DbK49DI7.cjs.map +0 -1
- package/dist/chunks/NcCheckboxRadioSwitch-Di9rSADK.mjs.map +0 -1
- package/dist/chunks/NcDateTime-BR6BBvML.mjs +0 -159
- package/dist/chunks/NcDateTime-BR6BBvML.mjs.map +0 -1
- package/dist/chunks/NcDateTime-C-kLQayi.cjs +0 -158
- package/dist/chunks/NcDateTime-C-kLQayi.cjs.map +0 -1
- package/dist/chunks/NcPasswordField-BCzIotoB.cjs.map +0 -1
- package/dist/chunks/NcPasswordField-CTKHRVC4.mjs.map +0 -1
- package/dist/chunks/NcTextField-DRANdaIf.mjs.map +0 -1
- package/dist/chunks/NcTextField-Uk5iD8o2.cjs.map +0 -1
- package/dist/chunks/_l10n-Dt0m9Fxw.mjs.map +0 -1
- package/dist/chunks/mdi-CZJxQPz6.mjs +0 -9
- package/dist/chunks/mdi-Da9VuUVq.cjs +0 -8
- package/dist/chunks/rtl-DLuwcTlm.cjs +0 -5
- package/dist/chunks/rtl-DLuwcTlm.cjs.map +0 -1
- package/dist/chunks/rtl-v0UOPAM7.mjs +0 -6
- package/dist/chunks/rtl-v0UOPAM7.mjs.map +0 -1
- package/dist/composables/useFormatDateTime.d.ts +0 -56
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '../assets/NcEmptyContent-
|
|
1
|
+
import '../assets/NcEmptyContent-CHVEJoER.css';
|
|
2
2
|
import { n as normalizeComponent } from "../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs";
|
|
3
3
|
const _sfc_main = {
|
|
4
4
|
name: "NcEmptyContent",
|
|
@@ -47,7 +47,7 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
|
|
|
47
47
|
_sfc_staticRenderFns,
|
|
48
48
|
false,
|
|
49
49
|
null,
|
|
50
|
-
"
|
|
50
|
+
"8aaa3146"
|
|
51
51
|
);
|
|
52
52
|
const NcEmptyContent = __component__.exports;
|
|
53
53
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NcEmptyContent.mjs","sources":["../../src/components/NcEmptyContent/NcEmptyContent.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### Basic use\n\nUse this component to display a message about an empty content.\nProviding an icon, name, and a description is strongly advised.\n\n```\n<template>\n\t<NcEmptyContent name=\"No comments\"\n\t\tdescription=\"Start writing comments and they will appear here.\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n#### With custom svg\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No files in here\">\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper :svg=\"folderSvg\" />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport folderSvg from '@mdi/svg/svg/folder.svg?raw'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfolderSvg,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also customize the name using the `#name` slot\nand add actions. But to keep the style consistent across Nextcloud\nconsider only using header elements as the root elements for the name slot.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tdescription=\"No comments in here\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #name>\n\t\t\t<h1 class=\"empty-content__name\">\n\t\t\t\tNo comments\n\t\t\t</h1>\n\t\t</template>\n\t\t<template #action>\n\t\t\t<NcButton variant=\"primary\">\n\t\t\t\tAdd a comment!\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n\nSimilar to the `#name` slot, you could also use the `#description` slot.\nThe content will be rendered within a paragraph so you can use any inline element,\nlike a link.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No comments\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #description>\n\t\t\t<a href=\"https://en.wikipedia.org/wiki/Comment\">What is even a comment?</a>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div class=\"empty-content\" role=\"note\">\n\t\t<div v-if=\"$slots.icon\" class=\"empty-content__icon\" aria-hidden=\"true\">\n\t\t\t<!-- @slot Optional material design icon -->\n\t\t\t<slot name=\"icon\" />\n\t\t</div>\n\t\t<!-- @slot Optional name if not set as property, shall be enclosed by a header element -->\n\t\t<slot name=\"name\">\n\t\t\t<span v-if=\"hasName\" class=\"empty-content__name\">\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\t\t</slot>\n\t\t<p v-if=\"hasDescription\" class=\"empty-content__description\">\n\t\t\t<!-- @slot Optional formatted description rendered inside a paragraph -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</p>\n\t\t<div v-if=\"$slots.action\" class=\"empty-content__action\">\n\t\t\t<!-- @slot Optional slot for a button or the like -->\n\t\t\t<slot name=\"action\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcEmptyContent',\n\n\tprops: {\n\t\t/**\n\t\t * A header message about an empty content shown\n\t\t * @example 'No comments'\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Desription of the empty content\n\t\t * @example 'No comments yet, start the conversation!'\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\thasName() {\n\t\t\treturn this.name !== ''\n\t\t},\n\t\t/**\n\t\t * Check if a description is given as either property or slot\n\t\t */\n\t\thasDescription() {\n\t\t\treturn this.description !== '' || this.$slots.description?.[0]\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.empty-content {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tjustify-content: center;\n\t/* In case of using in a flex container - flex in advance */\n\tflex-grow: 1;\n\n\t.modal-wrapper & {\n\t\tmargin-top: 5vh;\n\t\tmargin-bottom: 5vh;\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 64px;\n\t\theight: 64px;\n\t\tmargin: 0 auto 15px;\n\t\topacity: .4;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: 64px;\n\n\t\t:deep(svg) {\n\t\t\twidth: 64px !important;\n\t\t\theight: 64px !important;\n\t\t\tmax-width: 64px !important;\n\t\t\tmax-height: 64px !important;\n\t\t}\n\t}\n\n\t&__name {\n\t\tmargin-bottom: 10px;\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 30px;\n\t}\n\n\t&__description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__action {\n\t\tmargin-top: 8px;\n\n\t\t.modal-wrapper & {\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n</style>\n"],"names":[],"mappings":";AAqJA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,iBAAA;AACA,aAAA,KAAA,gBAAA,MAAA,KAAA,OAAA,cAAA,CAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"NcEmptyContent.mjs","sources":["../../src/components/NcEmptyContent/NcEmptyContent.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### Basic use\n\nUse this component to display a message about an empty content.\nProviding an icon, name, and a description is strongly advised.\n\n```\n<template>\n\t<NcEmptyContent name=\"No comments\"\n\t\tdescription=\"Start writing comments and they will appear here.\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n#### With custom svg\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No files in here\">\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper :svg=\"folderSvg\" />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport folderSvg from '@mdi/svg/svg/folder.svg?raw'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfolderSvg,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also customize the name using the `#name` slot\nand add actions. But to keep the style consistent across Nextcloud\nconsider only using header elements as the root elements for the name slot.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tdescription=\"No comments in here\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #name>\n\t\t\t<h1 class=\"empty-content__name\">\n\t\t\t\tNo comments\n\t\t\t</h1>\n\t\t</template>\n\t\t<template #action>\n\t\t\t<NcButton variant=\"primary\">\n\t\t\t\tAdd a comment!\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n\nSimilar to the `#name` slot, you could also use the `#description` slot.\nThe content will be rendered within a paragraph so you can use any inline element,\nlike a link.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No comments\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #description>\n\t\t\t<a href=\"https://en.wikipedia.org/wiki/Comment\">What is even a comment?</a>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div class=\"empty-content\" role=\"note\">\n\t\t<div v-if=\"$slots.icon\" class=\"empty-content__icon\" aria-hidden=\"true\">\n\t\t\t<!-- @slot Optional material design icon -->\n\t\t\t<slot name=\"icon\" />\n\t\t</div>\n\t\t<!-- @slot Optional name if not set as property, shall be enclosed by a header element -->\n\t\t<slot name=\"name\">\n\t\t\t<span v-if=\"hasName\" class=\"empty-content__name\">\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\t\t</slot>\n\t\t<p v-if=\"hasDescription\" class=\"empty-content__description\">\n\t\t\t<!-- @slot Optional formatted description rendered inside a paragraph -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</p>\n\t\t<div v-if=\"$slots.action\" class=\"empty-content__action\">\n\t\t\t<!-- @slot Optional slot for a button or the like -->\n\t\t\t<slot name=\"action\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcEmptyContent',\n\n\tprops: {\n\t\t/**\n\t\t * A header message about an empty content shown\n\t\t * @example 'No comments'\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Desription of the empty content\n\t\t * @example 'No comments yet, start the conversation!'\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\thasName() {\n\t\t\treturn this.name !== ''\n\t\t},\n\t\t/**\n\t\t * Check if a description is given as either property or slot\n\t\t */\n\t\thasDescription() {\n\t\t\treturn this.description !== '' || this.$slots.description?.[0]\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.empty-content {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tjustify-content: center;\n\t/* In case of using in a flex container - flex in advance */\n\tflex-grow: 1;\n\tpadding: var(--default-grid-baseline);\n\n\t.modal-wrapper & {\n\t\tmargin-top: 5vh;\n\t\tmargin-bottom: 5vh;\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 64px;\n\t\theight: 64px;\n\t\tmargin: 0 auto 15px;\n\t\topacity: .4;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: 64px;\n\n\t\t:deep(svg) {\n\t\t\twidth: 64px !important;\n\t\t\theight: 64px !important;\n\t\t\tmax-width: 64px !important;\n\t\t\tmax-height: 64px !important;\n\t\t}\n\t}\n\n\t&__name {\n\t\tmargin-bottom: 10px;\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 30px;\n\t}\n\n\t&__description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\ttext-wrap-style: balance;\n\t}\n\n\t&__action {\n\t\tmargin-top: 8px;\n\n\t\t.modal-wrapper & {\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n</style>\n"],"names":[],"mappings":";AAqJA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,aAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA,iBAAA;AACA,aAAA,KAAA,gBAAA,MAAA,KAAA,OAAA,cAAA,CAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require('../assets/NcModal-BS5vtogq.css');
|
|
2
2
|
"use strict";
|
|
3
|
-
const ScopeComponent = require("../chunks/ScopeComponent-
|
|
3
|
+
const ScopeComponent = require("../chunks/ScopeComponent-SIPKHdQy.cjs");
|
|
4
4
|
const core = require("@vueuse/core");
|
|
5
|
-
const mdi = require("../chunks/mdi-
|
|
5
|
+
const mdi = require("../chunks/mdi-BflUJIiB.cjs");
|
|
6
6
|
const focusTrap$1 = require("focus-trap");
|
|
7
7
|
const Vue = require("vue");
|
|
8
8
|
const GenRandomId = require("../chunks/GenRandomId-BQDud3d4.cjs");
|
|
9
9
|
const focusTrap = require("../chunks/focusTrap-Vbgxe8ZX.cjs");
|
|
10
|
-
const _l10n = require("../chunks/_l10n-
|
|
11
|
-
const NcActions = require("../chunks/NcActions-
|
|
10
|
+
const _l10n = require("../chunks/_l10n-CXXSIoEf.cjs");
|
|
11
|
+
const NcActions = require("../chunks/NcActions-DvZOLPjX.cjs");
|
|
12
12
|
const Components_NcButton = require("./NcButton.cjs");
|
|
13
13
|
const NcIconSvgWrapper = require("../chunks/NcIconSvgWrapper-CrnN5Sq5.cjs");
|
|
14
14
|
const Close = require("../chunks/Close-CqmXxEKi.cjs");
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import '../assets/NcModal-BS5vtogq.css';
|
|
2
|
-
import { S as ScopeComponent } from "../chunks/ScopeComponent-
|
|
2
|
+
import { S as ScopeComponent } from "../chunks/ScopeComponent-CC0LPlVx.mjs";
|
|
3
3
|
import { useSwipe } from "@vueuse/core";
|
|
4
|
-
import {
|
|
4
|
+
import { m as mdiChevronRight, e as mdiChevronLeft } from "../chunks/mdi-C1L0jZ1V.mjs";
|
|
5
5
|
import { createFocusTrap } from "focus-trap";
|
|
6
6
|
import Vue, { useCssVars } from "vue";
|
|
7
7
|
import { G as GenRandomId } from "../chunks/GenRandomId-CMooMQt0.mjs";
|
|
8
8
|
import { g as getTrapStack } from "../chunks/focusTrap-DmkaYJTC.mjs";
|
|
9
|
-
import { r as register, J as t33, n as t17, a as t } from "../chunks/_l10n-
|
|
10
|
-
import { N as NcActions } from "../chunks/NcActions-
|
|
9
|
+
import { r as register, J as t33, n as t17, a as t } from "../chunks/_l10n-DIOHNc85.mjs";
|
|
10
|
+
import { N as NcActions } from "../chunks/NcActions-CzpbMJoY.mjs";
|
|
11
11
|
import NcButton from "./NcButton.mjs";
|
|
12
12
|
import { N as NcIconSvgWrapper } from "../chunks/NcIconSvgWrapper-Cb-cPj1R.mjs";
|
|
13
13
|
import { C as Close } from "../chunks/Close-BtLPUSdO.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const NcRelatedResourcesPanel = require("../chunks/NcRelatedResourcesPanel-
|
|
2
|
+
const NcRelatedResourcesPanel = require("../chunks/NcRelatedResourcesPanel-DDKi2A47.cjs");
|
|
3
3
|
module.exports = NcRelatedResourcesPanel.NcRelatedResourcesPanel;
|
|
4
4
|
//# sourceMappingURL=NcRelatedResourcesPanel.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const Mixins_richEditor = require("../chunks/index-B0yHh7IW.cjs");
|
|
4
|
-
const NcRichContenteditable = require("../chunks/NcRichContenteditable-
|
|
4
|
+
const NcRichContenteditable = require("../chunks/NcRichContenteditable-CbF4935r.cjs");
|
|
5
5
|
exports.NcMentionBubble = Mixins_richEditor.NcMentionBubble;
|
|
6
6
|
exports.NcAutoCompleteResult = NcRichContenteditable.NcAutoCompleteResult;
|
|
7
7
|
exports.default = NcRichContenteditable.NcRichContenteditable;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const NcRichText = require("../chunks/NcRichText-
|
|
3
|
+
const NcRichText = require("../chunks/NcRichText-DxDK1G5d.cjs");
|
|
4
4
|
const Functions_registerReference = require("../chunks/index-BV85rPB7.cjs");
|
|
5
|
-
const referencePickerModal = require("../chunks/referencePickerModal-
|
|
5
|
+
const referencePickerModal = require("../chunks/referencePickerModal-DbrHVDKS.cjs");
|
|
6
6
|
exports.NcReferenceList = NcRichText.NcReferenceList;
|
|
7
7
|
exports.NcRichText = NcRichText.NcRichText;
|
|
8
8
|
exports.default = NcRichText.NcRichText;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { N as NcRichText } from "../chunks/NcRichText-
|
|
2
|
-
import { a } from "../chunks/NcRichText-
|
|
1
|
+
import { N as NcRichText } from "../chunks/NcRichText-BWY0OxW9.mjs";
|
|
2
|
+
import { a } from "../chunks/NcRichText-BWY0OxW9.mjs";
|
|
3
3
|
import { N, d, i, b, r, c, a as a2 } from "../chunks/index-56SXuvlv.mjs";
|
|
4
|
-
import { e, f, N as N2, h, a as a3, g, b as b2, c as c2, d as d2, s } from "../chunks/referencePickerModal-
|
|
4
|
+
import { e, f, N as N2, h, a as a3, g, b as b2, c as c2, d as d2, s } from "../chunks/referencePickerModal-sscttPbK.mjs";
|
|
5
5
|
export {
|
|
6
6
|
N as NcCustomPickerRenderResult,
|
|
7
7
|
a as NcReferenceList,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const NcSettingsInputText = require("../chunks/NcSettingsInputText-
|
|
2
|
+
const NcSettingsInputText = require("../chunks/NcSettingsInputText-BknU0gbE.cjs");
|
|
3
3
|
module.exports = NcSettingsInputText.NcSettingsInputText;
|
|
4
4
|
//# sourceMappingURL=NcSettingsInputText.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const NcSettingsSection = require("../chunks/NcSettingsSection-
|
|
2
|
+
const NcSettingsSection = require("../chunks/NcSettingsSection-dlDi9oLJ.cjs");
|
|
3
3
|
module.exports = NcSettingsSection.NcSettingsSection;
|
|
4
4
|
//# sourceMappingURL=NcSettingsSection.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
-
const NcSettingsSelectGroup = require("../chunks/NcSettingsSelectGroup-
|
|
3
|
+
const NcSettingsSelectGroup = require("../chunks/NcSettingsSelectGroup-Bm8naUVk.cjs");
|
|
4
4
|
exports.NcSettingsSelectGroup = NcSettingsSelectGroup.NcSettingsSelectGroup;
|
|
5
5
|
exports.default = NcSettingsSelectGroup.NcSettingsSelectGroup;
|
|
6
6
|
//# sourceMappingURL=NcSettingsSelectGroup.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const NcTimezonePicker = require("../chunks/NcTimezonePicker-
|
|
2
|
+
const NcTimezonePicker = require("../chunks/NcTimezonePicker-Ds_yZJVZ.cjs");
|
|
3
3
|
module.exports = NcTimezonePicker.NcTimezonePicker;
|
|
4
4
|
//# sourceMappingURL=NcTimezonePicker.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const NcUserStatusIcon = require("../chunks/NcUserStatusIcon-
|
|
2
|
+
const NcUserStatusIcon = require("../chunks/NcUserStatusIcon-B_-V1MDZ.cjs");
|
|
3
3
|
module.exports = NcUserStatusIcon.NcUserStatusIcon;
|
|
4
4
|
//# sourceMappingURL=NcUserStatusIcon.cjs.map
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const l10n = require("@nextcloud/l10n");
|
|
4
|
+
const core = require("@vueuse/core");
|
|
5
|
+
const Vue = require("vue");
|
|
6
|
+
const _l10n = require("../chunks/_l10n-CXXSIoEf.cjs");
|
|
7
|
+
_l10n.register(_l10n.t2);
|
|
8
|
+
const FEW_SECONDS_AGO = {
|
|
9
|
+
long: _l10n.t("a few seconds ago"),
|
|
10
|
+
short: _l10n.t("seconds ago"),
|
|
11
|
+
// FOR TRANSLATORS: Shorter version of 'a few seconds ago'
|
|
12
|
+
narrow: _l10n.t("sec. ago")
|
|
13
|
+
// FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'
|
|
14
|
+
};
|
|
15
|
+
function useFormatRelativeTime(timestamp = Date.now(), opts = {}) {
|
|
16
|
+
let timeoutId;
|
|
17
|
+
const date = Vue.computed(() => new Date(core.toValue(timestamp)));
|
|
18
|
+
const options = Vue.computed(() => {
|
|
19
|
+
const { language, relativeTime: relativeTime2, ignoreSeconds } = core.toValue(opts);
|
|
20
|
+
return {
|
|
21
|
+
...language && { language },
|
|
22
|
+
...relativeTime2 && { relativeTime: relativeTime2 },
|
|
23
|
+
ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || "long"] : false
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const relativeTime = Vue.ref("");
|
|
27
|
+
Vue.watchEffect(() => updateRelativeTime());
|
|
28
|
+
function updateRelativeTime() {
|
|
29
|
+
relativeTime.value = l10n.formatRelativeTime(date.value, options.value);
|
|
30
|
+
if (core.toValue(opts).update !== false) {
|
|
31
|
+
const diff = Math.abs(Date.now() - new Date(core.toValue(timestamp)).getTime());
|
|
32
|
+
const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;
|
|
33
|
+
timeoutId = window.setTimeout(updateRelativeTime, interval);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
Vue.onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));
|
|
37
|
+
return Vue.readonly(relativeTime);
|
|
38
|
+
}
|
|
39
|
+
function useFormatTime(timestamp, opts) {
|
|
40
|
+
const options = Vue.computed(() => ({
|
|
41
|
+
locale: l10n.getCanonicalLocale(),
|
|
42
|
+
format: { dateStyle: "short", timeStyle: "medium" },
|
|
43
|
+
...core.toValue(opts)
|
|
44
|
+
}));
|
|
45
|
+
const formatter = Vue.computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));
|
|
46
|
+
return Vue.computed(() => formatter.value.format(core.toValue(timestamp)));
|
|
47
|
+
}
|
|
48
|
+
function useFormatDateTime(timestamp = Date.now(), opts = {}) {
|
|
49
|
+
const formattedFullTime = useFormatTime(timestamp, opts);
|
|
50
|
+
const relativeTime = useFormatRelativeTime(timestamp, Vue.computed(() => {
|
|
51
|
+
const options = core.toValue(opts);
|
|
52
|
+
return {
|
|
53
|
+
...options,
|
|
54
|
+
relativeTime: typeof options.relativeTime === "string" ? options.relativeTime : "long"
|
|
55
|
+
};
|
|
56
|
+
}));
|
|
57
|
+
const formattedTime = Vue.computed(
|
|
58
|
+
() => core.toValue(opts).relativeTime !== false ? relativeTime.value : formattedFullTime.value
|
|
59
|
+
);
|
|
60
|
+
return {
|
|
61
|
+
formattedTime,
|
|
62
|
+
formattedFullTime
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
exports.useFormatDateTime = useFormatDateTime;
|
|
66
|
+
exports.useFormatRelativeTime = useFormatRelativeTime;
|
|
67
|
+
exports.useFormatTime = useFormatTime;
|
|
68
|
+
//# sourceMappingURL=useFormatDateTime.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormatDateTime.cjs","sources":["../../src/composables/useFormatDateTime/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { FormatDateOptions } from '@nextcloud/l10n'\nimport type { MaybeRefOrGetter } from '@vueuse/core'\nimport type { Ref } from 'vue'\n\nimport { formatRelativeTime, getCanonicalLocale } from '@nextcloud/l10n'\nimport { toValue } from '@vueuse/core'\nimport { computed, onUnmounted, readonly, ref, watchEffect } from 'vue'\nimport { t } from '../../l10n.js'\n\ninterface FormatRelativeTimeOptions extends Partial<Omit<FormatDateOptions, 'ignoreSeconds'>> {\n\tignoreSeconds?: boolean\n\n\t/**\n\t * If set to false the relative time will not be updated anymore.\n\t * @default true - Meaning the relative time will be updated if needed\n\t */\n\tupdate?: boolean\n}\n\ninterface FormatTimeOptions {\n\t/**\n\t * Locale to use for formatting.\n\t * @default current locale\n\t */\n\tlocale?: string\n\n\t/**\n\t * The format used for displaying.\n\t *\n\t * @default { timeStyle: 'medium', dateStyle: 'short' }\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n}\n\n/**\n * @deprecated\n */\ninterface LegacyFormatDateTimeOptions {\n\t/**\n\t * The format used for displaying, or if relative time is used the format used for the title\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n\t/**\n\t * Ignore seconds when displaying the relative time and just show `a few seconds ago`\n\t */\n\tignoreSeconds?: boolean\n\t/**\n\t * Wether to display the timestamp as time from now\n\t */\n\trelativeTime?: false | 'long' | 'short' | 'narrow'\n}\n\nconst FEW_SECONDS_AGO = {\n\tlong: t('a few seconds ago'),\n\tshort: t('seconds ago'), // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n\tnarrow: t('sec. ago'), // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n}\n\n/**\n * Format a timestamp or date object as relative time.\n *\n * This is a composable wrapper around `formatRelativeTime` from `@nextcloud/l10n`.\n *\n * @param timestamp - The timestamp to format\n * @param opts - Formatting options\n */\nexport function useFormatRelativeTime(\n\ttimestamp: MaybeRefOrGetter<Date | number> = Date.now(),\n\topts: MaybeRefOrGetter<FormatRelativeTimeOptions> = {},\n): Readonly<Ref<string>> {\n\tlet timeoutId: number\n\n\t/**\n\t * ECMA Date object of the timestamp\n\t */\n\tconst date = computed(() => new Date(toValue(timestamp)))\n\n\t/**\n\t * Reactive options for `formatRelativeTime` method\n\t */\n\tconst options = computed<FormatDateOptions>(() => {\n\t\tconst { language, relativeTime, ignoreSeconds } = toValue(opts)\n\t\treturn {\n\t\t\t...language && { language },\n\t\t\t...relativeTime && { relativeTime },\n\t\t\tignoreSeconds: ignoreSeconds\n\t\t\t\t? FEW_SECONDS_AGO[relativeTime || 'long']\n\t\t\t\t: false,\n\t\t}\n\t})\n\n\t/**\n\t * The formatted relative time\n\t */\n\tconst relativeTime = ref('')\n\twatchEffect(() => updateRelativeTime())\n\n\t/**\n\t * Update the relative time string.\n\t * This is the callback for the interval.\n\t */\n\tfunction updateRelativeTime() {\n\t\trelativeTime.value = formatRelativeTime(date.value, options.value)\n\n\t\tif (toValue(opts).update !== false) {\n\t\t\tconst diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime())\n\t\t\tconst interval = diff > 120000 || options.value.ignoreSeconds\n\t\t\t\t? Math.min(diff / 60, 1800000)\n\t\t\t\t: 1000\n\t\t\ttimeoutId = window.setTimeout(updateRelativeTime, interval)\n\t\t}\n\t}\n\n\t// when the component is unmounted we also clear the timeout\n\tonUnmounted(() => timeoutId && window.clearTimeout(timeoutId))\n\n\treturn readonly(relativeTime)\n}\n\n/**\n * Format a given timestamp or date object as a human readable string.\n *\n * @param timestamp - Timestamp or date object to format\n * @param opts - Formatting options\n */\nexport function useFormatTime(\n\ttimestamp: MaybeRefOrGetter<number | Date>,\n\topts: MaybeRefOrGetter<FormatTimeOptions>,\n): Readonly<Ref<string>> {\n\tconst options = computed<Required<FormatTimeOptions>>(() => ({\n\t\tlocale: getCanonicalLocale(),\n\t\tformat: { dateStyle: 'short', timeStyle: 'medium' },\n\t\t...toValue(opts),\n\t}))\n\n\tconst formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format))\n\n\treturn computed(() => formatter.value.format(toValue(timestamp)))\n}\n\n/**\n * Composable for formatting time stamps using current users locale and language\n *\n * @param {import('vue').MaybeRefOrGetter<Date | number>} timestamp Current timestamp\n * @param {object} opts Optional options\n * @param {Intl.DateTimeFormatOptions} opts.format The format used for displaying, or if relative time is used the format used for the title (optional)\n * @param {boolean} opts.ignoreSeconds Ignore seconds when displaying the relative time and just show `a few seconds ago`\n * @param {false | 'long' | 'short' | 'narrow'} opts.relativeTime Wether to display the timestamp as time from now (optional)\n *\n * @deprecated use `useFormatRelativeTime` or `useFormatTime` instead.\n */\nexport function useFormatDateTime(\n\ttimestamp: MaybeRefOrGetter<Date|number> = Date.now(),\n\topts: MaybeRefOrGetter<LegacyFormatDateTimeOptions> = {},\n) {\n\tconst formattedFullTime = useFormatTime(timestamp, opts)\n\tconst relativeTime = useFormatRelativeTime(timestamp, computed(() => {\n\t\tconst options = toValue(opts)\n\t\treturn {\n\t\t\t...options,\n\t\t\trelativeTime: typeof options.relativeTime === 'string'\n\t\t\t\t? options.relativeTime\n\t\t\t\t: 'long',\n\t\t}\n\t}))\n\n\tconst formattedTime = computed(() => toValue(opts).relativeTime !== false\n\t\t? relativeTime.value\n\t\t: formattedFullTime.value,\n\t)\n\n\treturn {\n\t\tformattedTime,\n\t\tformattedFullTime,\n\t}\n}\n"],"names":["t","computed","toValue","relativeTime","ref","watchEffect","formatRelativeTime","onUnmounted","readonly","getCanonicalLocale"],"mappings":";;;;;;;AAyDA,MAAM,kBAAkB;AAAA,EACvB,MAAMA,QAAE,mBAAmB;AAAA,EAC3B,OAAOA,QAAE,aAAa;AAAA;AAAA,EACtB,QAAQA,QAAE,UAAU;AAAA;AACrB;AAUO,SAAS,sBACf,YAA6C,KAAK,OAClD,OAAoD,CAAA,GAC5B;AACpB,MAAA;AAKE,QAAA,OAAOC,IAAAA,SAAS,MAAM,IAAI,KAAKC,KAAQ,QAAA,SAAS,CAAC,CAAC;AAKlD,QAAA,UAAUD,IAAAA,SAA4B,MAAM;AACjD,UAAM,EAAE,UAAU,cAAAE,eAAc,cAAc,IAAID,aAAQ,IAAI;AACvD,WAAA;AAAA,MACN,GAAG,YAAY,EAAE,SAAS;AAAA,MAC1B,GAAGC,iBAAgB,EAAE,cAAAA,cAAa;AAAA,MAClC,eAAe,gBACZ,gBAAgBA,iBAAgB,MAAM,IACtC;AAAA,IACJ;AAAA,EAAA,CACA;AAKK,QAAA,eAAeC,QAAI,EAAE;AACfC,MAAA,YAAA,MAAM,oBAAoB;AAMtC,WAAS,qBAAqB;AAC7B,iBAAa,QAAQC,KAAA,mBAAmB,KAAK,OAAO,QAAQ,KAAK;AAEjE,QAAIJ,aAAQ,IAAI,EAAE,WAAW,OAAO;AACnC,YAAM,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAKA,KAAAA,QAAQ,SAAS,CAAC,EAAE,SAAS;AACnE,YAAA,WAAW,OAAO,QAAU,QAAQ,MAAM,gBAC7C,KAAK,IAAI,OAAO,IAAI,IAAO,IAC3B;AACS,kBAAA,OAAO,WAAW,oBAAoB,QAAQ;AAAA,IAAA;AAAA,EAC3D;AAIDK,MAAAA,YAAY,MAAM,aAAa,OAAO,aAAa,SAAS,CAAC;AAE7D,SAAOC,IAAAA,SAAS,YAAY;AAC7B;AAQgB,SAAA,cACf,WACA,MACwB;AAClB,QAAA,UAAUP,IAAAA,SAAsC,OAAO;AAAA,IAC5D,QAAQQ,KAAAA,mBAAmB;AAAA,IAC3B,QAAQ,EAAE,WAAW,SAAS,WAAW,SAAS;AAAA,IAClD,GAAGP,aAAQ,IAAI;AAAA,EAAA,EACd;AAEF,QAAM,YAAYD,IAAAA,SAAS,MAAM,IAAI,KAAK,eAAe,QAAQ,MAAM,QAAQ,QAAQ,MAAM,MAAM,CAAC;AAE7F,SAAAA,IAAAA,SAAS,MAAM,UAAU,MAAM,OAAOC,KAAQ,QAAA,SAAS,CAAC,CAAC;AACjE;AAaO,SAAS,kBACf,YAA2C,KAAK,OAChD,OAAsD,CAAA,GACrD;AACK,QAAA,oBAAoB,cAAc,WAAW,IAAI;AACvD,QAAM,eAAe,sBAAsB,WAAWD,IAAA,SAAS,MAAM;AAC9D,UAAA,UAAUC,aAAQ,IAAI;AACrB,WAAA;AAAA,MACN,GAAG;AAAA,MACH,cAAc,OAAO,QAAQ,iBAAiB,WAC3C,QAAQ,eACR;AAAA,IACJ;AAAA,EAAA,CACA,CAAC;AAEF,QAAM,gBAAgBD,IAAA;AAAA,IAAS,MAAMC,KAAAA,QAAQ,IAAI,EAAE,iBAAiB,QACjE,aAAa,QACb,kBAAkB;AAAA,EACrB;AAEO,SAAA;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;;;;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { formatRelativeTime, getCanonicalLocale } from "@nextcloud/l10n";
|
|
2
|
+
import { toValue } from "@vueuse/core";
|
|
3
|
+
import { computed, ref, watchEffect, onUnmounted, readonly } from "vue";
|
|
4
|
+
import { r as register, e as t2, a as t } from "../chunks/_l10n-DIOHNc85.mjs";
|
|
5
|
+
register(t2);
|
|
6
|
+
const FEW_SECONDS_AGO = {
|
|
7
|
+
long: t("a few seconds ago"),
|
|
8
|
+
short: t("seconds ago"),
|
|
9
|
+
// FOR TRANSLATORS: Shorter version of 'a few seconds ago'
|
|
10
|
+
narrow: t("sec. ago")
|
|
11
|
+
// FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'
|
|
12
|
+
};
|
|
13
|
+
function useFormatRelativeTime(timestamp = Date.now(), opts = {}) {
|
|
14
|
+
let timeoutId;
|
|
15
|
+
const date = computed(() => new Date(toValue(timestamp)));
|
|
16
|
+
const options = computed(() => {
|
|
17
|
+
const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);
|
|
18
|
+
return {
|
|
19
|
+
...language && { language },
|
|
20
|
+
...relativeTime2 && { relativeTime: relativeTime2 },
|
|
21
|
+
ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || "long"] : false
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
const relativeTime = ref("");
|
|
25
|
+
watchEffect(() => updateRelativeTime());
|
|
26
|
+
function updateRelativeTime() {
|
|
27
|
+
relativeTime.value = formatRelativeTime(date.value, options.value);
|
|
28
|
+
if (toValue(opts).update !== false) {
|
|
29
|
+
const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());
|
|
30
|
+
const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;
|
|
31
|
+
timeoutId = window.setTimeout(updateRelativeTime, interval);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));
|
|
35
|
+
return readonly(relativeTime);
|
|
36
|
+
}
|
|
37
|
+
function useFormatTime(timestamp, opts) {
|
|
38
|
+
const options = computed(() => ({
|
|
39
|
+
locale: getCanonicalLocale(),
|
|
40
|
+
format: { dateStyle: "short", timeStyle: "medium" },
|
|
41
|
+
...toValue(opts)
|
|
42
|
+
}));
|
|
43
|
+
const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));
|
|
44
|
+
return computed(() => formatter.value.format(toValue(timestamp)));
|
|
45
|
+
}
|
|
46
|
+
function useFormatDateTime(timestamp = Date.now(), opts = {}) {
|
|
47
|
+
const formattedFullTime = useFormatTime(timestamp, opts);
|
|
48
|
+
const relativeTime = useFormatRelativeTime(timestamp, computed(() => {
|
|
49
|
+
const options = toValue(opts);
|
|
50
|
+
return {
|
|
51
|
+
...options,
|
|
52
|
+
relativeTime: typeof options.relativeTime === "string" ? options.relativeTime : "long"
|
|
53
|
+
};
|
|
54
|
+
}));
|
|
55
|
+
const formattedTime = computed(
|
|
56
|
+
() => toValue(opts).relativeTime !== false ? relativeTime.value : formattedFullTime.value
|
|
57
|
+
);
|
|
58
|
+
return {
|
|
59
|
+
formattedTime,
|
|
60
|
+
formattedFullTime
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export {
|
|
64
|
+
useFormatDateTime,
|
|
65
|
+
useFormatRelativeTime,
|
|
66
|
+
useFormatTime
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=useFormatDateTime.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormatDateTime.mjs","sources":["../../src/composables/useFormatDateTime/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { FormatDateOptions } from '@nextcloud/l10n'\nimport type { MaybeRefOrGetter } from '@vueuse/core'\nimport type { Ref } from 'vue'\n\nimport { formatRelativeTime, getCanonicalLocale } from '@nextcloud/l10n'\nimport { toValue } from '@vueuse/core'\nimport { computed, onUnmounted, readonly, ref, watchEffect } from 'vue'\nimport { t } from '../../l10n.js'\n\ninterface FormatRelativeTimeOptions extends Partial<Omit<FormatDateOptions, 'ignoreSeconds'>> {\n\tignoreSeconds?: boolean\n\n\t/**\n\t * If set to false the relative time will not be updated anymore.\n\t * @default true - Meaning the relative time will be updated if needed\n\t */\n\tupdate?: boolean\n}\n\ninterface FormatTimeOptions {\n\t/**\n\t * Locale to use for formatting.\n\t * @default current locale\n\t */\n\tlocale?: string\n\n\t/**\n\t * The format used for displaying.\n\t *\n\t * @default { timeStyle: 'medium', dateStyle: 'short' }\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n}\n\n/**\n * @deprecated\n */\ninterface LegacyFormatDateTimeOptions {\n\t/**\n\t * The format used for displaying, or if relative time is used the format used for the title\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n\t/**\n\t * Ignore seconds when displaying the relative time and just show `a few seconds ago`\n\t */\n\tignoreSeconds?: boolean\n\t/**\n\t * Wether to display the timestamp as time from now\n\t */\n\trelativeTime?: false | 'long' | 'short' | 'narrow'\n}\n\nconst FEW_SECONDS_AGO = {\n\tlong: t('a few seconds ago'),\n\tshort: t('seconds ago'), // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n\tnarrow: t('sec. ago'), // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n}\n\n/**\n * Format a timestamp or date object as relative time.\n *\n * This is a composable wrapper around `formatRelativeTime` from `@nextcloud/l10n`.\n *\n * @param timestamp - The timestamp to format\n * @param opts - Formatting options\n */\nexport function useFormatRelativeTime(\n\ttimestamp: MaybeRefOrGetter<Date | number> = Date.now(),\n\topts: MaybeRefOrGetter<FormatRelativeTimeOptions> = {},\n): Readonly<Ref<string>> {\n\tlet timeoutId: number\n\n\t/**\n\t * ECMA Date object of the timestamp\n\t */\n\tconst date = computed(() => new Date(toValue(timestamp)))\n\n\t/**\n\t * Reactive options for `formatRelativeTime` method\n\t */\n\tconst options = computed<FormatDateOptions>(() => {\n\t\tconst { language, relativeTime, ignoreSeconds } = toValue(opts)\n\t\treturn {\n\t\t\t...language && { language },\n\t\t\t...relativeTime && { relativeTime },\n\t\t\tignoreSeconds: ignoreSeconds\n\t\t\t\t? FEW_SECONDS_AGO[relativeTime || 'long']\n\t\t\t\t: false,\n\t\t}\n\t})\n\n\t/**\n\t * The formatted relative time\n\t */\n\tconst relativeTime = ref('')\n\twatchEffect(() => updateRelativeTime())\n\n\t/**\n\t * Update the relative time string.\n\t * This is the callback for the interval.\n\t */\n\tfunction updateRelativeTime() {\n\t\trelativeTime.value = formatRelativeTime(date.value, options.value)\n\n\t\tif (toValue(opts).update !== false) {\n\t\t\tconst diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime())\n\t\t\tconst interval = diff > 120000 || options.value.ignoreSeconds\n\t\t\t\t? Math.min(diff / 60, 1800000)\n\t\t\t\t: 1000\n\t\t\ttimeoutId = window.setTimeout(updateRelativeTime, interval)\n\t\t}\n\t}\n\n\t// when the component is unmounted we also clear the timeout\n\tonUnmounted(() => timeoutId && window.clearTimeout(timeoutId))\n\n\treturn readonly(relativeTime)\n}\n\n/**\n * Format a given timestamp or date object as a human readable string.\n *\n * @param timestamp - Timestamp or date object to format\n * @param opts - Formatting options\n */\nexport function useFormatTime(\n\ttimestamp: MaybeRefOrGetter<number | Date>,\n\topts: MaybeRefOrGetter<FormatTimeOptions>,\n): Readonly<Ref<string>> {\n\tconst options = computed<Required<FormatTimeOptions>>(() => ({\n\t\tlocale: getCanonicalLocale(),\n\t\tformat: { dateStyle: 'short', timeStyle: 'medium' },\n\t\t...toValue(opts),\n\t}))\n\n\tconst formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format))\n\n\treturn computed(() => formatter.value.format(toValue(timestamp)))\n}\n\n/**\n * Composable for formatting time stamps using current users locale and language\n *\n * @param {import('vue').MaybeRefOrGetter<Date | number>} timestamp Current timestamp\n * @param {object} opts Optional options\n * @param {Intl.DateTimeFormatOptions} opts.format The format used for displaying, or if relative time is used the format used for the title (optional)\n * @param {boolean} opts.ignoreSeconds Ignore seconds when displaying the relative time and just show `a few seconds ago`\n * @param {false | 'long' | 'short' | 'narrow'} opts.relativeTime Wether to display the timestamp as time from now (optional)\n *\n * @deprecated use `useFormatRelativeTime` or `useFormatTime` instead.\n */\nexport function useFormatDateTime(\n\ttimestamp: MaybeRefOrGetter<Date|number> = Date.now(),\n\topts: MaybeRefOrGetter<LegacyFormatDateTimeOptions> = {},\n) {\n\tconst formattedFullTime = useFormatTime(timestamp, opts)\n\tconst relativeTime = useFormatRelativeTime(timestamp, computed(() => {\n\t\tconst options = toValue(opts)\n\t\treturn {\n\t\t\t...options,\n\t\t\trelativeTime: typeof options.relativeTime === 'string'\n\t\t\t\t? options.relativeTime\n\t\t\t\t: 'long',\n\t\t}\n\t}))\n\n\tconst formattedTime = computed(() => toValue(opts).relativeTime !== false\n\t\t? relativeTime.value\n\t\t: formattedFullTime.value,\n\t)\n\n\treturn {\n\t\tformattedTime,\n\t\tformattedFullTime,\n\t}\n}\n"],"names":["relativeTime"],"mappings":";;;;;AAyDA,MAAM,kBAAkB;AAAA,EACvB,MAAM,EAAE,mBAAmB;AAAA,EAC3B,OAAO,EAAE,aAAa;AAAA;AAAA,EACtB,QAAQ,EAAE,UAAU;AAAA;AACrB;AAUO,SAAS,sBACf,YAA6C,KAAK,OAClD,OAAoD,CAAA,GAC5B;AACpB,MAAA;AAKE,QAAA,OAAO,SAAS,MAAM,IAAI,KAAK,QAAQ,SAAS,CAAC,CAAC;AAKlD,QAAA,UAAU,SAA4B,MAAM;AACjD,UAAM,EAAE,UAAU,cAAAA,eAAc,cAAc,IAAI,QAAQ,IAAI;AACvD,WAAA;AAAA,MACN,GAAG,YAAY,EAAE,SAAS;AAAA,MAC1B,GAAGA,iBAAgB,EAAE,cAAAA,cAAa;AAAA,MAClC,eAAe,gBACZ,gBAAgBA,iBAAgB,MAAM,IACtC;AAAA,IACJ;AAAA,EAAA,CACA;AAKK,QAAA,eAAe,IAAI,EAAE;AACf,cAAA,MAAM,oBAAoB;AAMtC,WAAS,qBAAqB;AAC7B,iBAAa,QAAQ,mBAAmB,KAAK,OAAO,QAAQ,KAAK;AAEjE,QAAI,QAAQ,IAAI,EAAE,WAAW,OAAO;AACnC,YAAM,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,SAAS,CAAC,EAAE,SAAS;AACnE,YAAA,WAAW,OAAO,QAAU,QAAQ,MAAM,gBAC7C,KAAK,IAAI,OAAO,IAAI,IAAO,IAC3B;AACS,kBAAA,OAAO,WAAW,oBAAoB,QAAQ;AAAA,IAAA;AAAA,EAC3D;AAID,cAAY,MAAM,aAAa,OAAO,aAAa,SAAS,CAAC;AAE7D,SAAO,SAAS,YAAY;AAC7B;AAQgB,SAAA,cACf,WACA,MACwB;AAClB,QAAA,UAAU,SAAsC,OAAO;AAAA,IAC5D,QAAQ,mBAAmB;AAAA,IAC3B,QAAQ,EAAE,WAAW,SAAS,WAAW,SAAS;AAAA,IAClD,GAAG,QAAQ,IAAI;AAAA,EAAA,EACd;AAEF,QAAM,YAAY,SAAS,MAAM,IAAI,KAAK,eAAe,QAAQ,MAAM,QAAQ,QAAQ,MAAM,MAAM,CAAC;AAE7F,SAAA,SAAS,MAAM,UAAU,MAAM,OAAO,QAAQ,SAAS,CAAC,CAAC;AACjE;AAaO,SAAS,kBACf,YAA2C,KAAK,OAChD,OAAsD,CAAA,GACrD;AACK,QAAA,oBAAoB,cAAc,WAAW,IAAI;AACvD,QAAM,eAAe,sBAAsB,WAAW,SAAS,MAAM;AAC9D,UAAA,UAAU,QAAQ,IAAI;AACrB,WAAA;AAAA,MACN,GAAG;AAAA,MACH,cAAc,OAAO,QAAQ,iBAAiB,WAC3C,QAAQ,eACR;AAAA,IACJ;AAAA,EAAA,CACA,CAAC;AAEF,QAAM,gBAAgB;AAAA,IAAS,MAAM,QAAQ,IAAI,EAAE,iBAAiB,QACjE,aAAa,QACb,kBAAkB;AAAA,EACrB;AAEO,SAAA;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;"}
|
|
@@ -3,31 +3,35 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const core = require("@vueuse/core");
|
|
4
4
|
const disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.();
|
|
5
5
|
const isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent);
|
|
6
|
+
const derivedKeysRegex = /^[a-zA-Z0-9]$/;
|
|
7
|
+
const nonAsciiPrintableRegex = /^[^\x20-\x7F]$/;
|
|
6
8
|
function shouldIgnoreEvent(event) {
|
|
7
|
-
if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target
|
|
9
|
+
if (!(event.target instanceof HTMLElement) || event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target.isContentEditable) {
|
|
8
10
|
return true;
|
|
9
11
|
}
|
|
10
12
|
return document.getElementsByClassName("modal-mask").length !== 0;
|
|
11
13
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
function eventHandler(callback, options) {
|
|
15
|
+
return (event) => {
|
|
16
|
+
const ctrlKeyPressed = isMac ? event.metaKey : event.ctrlKey;
|
|
17
|
+
if (ctrlKeyPressed !== Boolean(options.ctrl)) {
|
|
18
|
+
return;
|
|
19
|
+
} else if (event.altKey !== Boolean(options.alt)) {
|
|
20
|
+
return;
|
|
21
|
+
} else if (options.shift !== void 0 && event.shiftKey !== Boolean(options.shift)) {
|
|
22
|
+
return;
|
|
23
|
+
} else if (shouldIgnoreEvent(event)) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (options.prevent) {
|
|
27
|
+
event.preventDefault();
|
|
28
|
+
}
|
|
29
|
+
if (options.stop) {
|
|
30
|
+
event.stopPropagation();
|
|
31
|
+
}
|
|
32
|
+
callback(event);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
31
35
|
function useHotKey(keysOrFilter, callback = () => {
|
|
32
36
|
}, options = {}) {
|
|
33
37
|
if (disableKeyboardShortcuts) {
|
|
@@ -35,8 +39,18 @@ function useHotKey(keysOrFilter, callback = () => {
|
|
|
35
39
|
};
|
|
36
40
|
}
|
|
37
41
|
const validateKeyEvent = (event, key) => {
|
|
42
|
+
if (event.key === key) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
38
45
|
if (options.caseSensitive) {
|
|
39
|
-
|
|
46
|
+
const isKeyInLowerCase = key === key.toLowerCase();
|
|
47
|
+
const isEventKeyInLowerCase = event.key === event.key.toLowerCase();
|
|
48
|
+
if (isKeyInLowerCase !== isEventKeyInLowerCase) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {
|
|
53
|
+
return event.code.replace(/^(?:Key|Digit|Numpad)/, "") === key.toUpperCase();
|
|
40
54
|
}
|
|
41
55
|
return event.key.toLowerCase() === key.toLowerCase();
|
|
42
56
|
};
|