@nextcloud/vue 9.0.0-rc.2 → 9.0.0-rc.4

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.
Files changed (397) hide show
  1. package/CHANGELOG.md +147 -3
  2. package/dist/assets/{NcActionButton-B2G7zsju.css → NcActionButton-Dz2EBAuD.css} +20 -17
  3. package/dist/assets/{NcActionInput-SoC93uat.css → NcActionInput-BA67jS1l.css} +62 -62
  4. package/dist/assets/{NcActionText-CWAPsJmz.css → NcActionText-BtzLDZeJ.css} +18 -18
  5. package/dist/assets/{NcActions-DxcpMfrs.css → NcActions-DfCOtp0b.css} +11 -11
  6. package/dist/assets/{NcAppContent-Di-SbMxO.css → NcAppContent-RmHDNYBp.css} +23 -23
  7. package/dist/assets/{NcAppNavigation-BXItV5BV.css → NcAppNavigation-C6-8ErA_.css} +12 -12
  8. package/dist/assets/{NcAppNavigationItem-Cq6ZYdmT.css → NcAppNavigationItem-B-slGJHZ.css} +35 -31
  9. package/dist/assets/{NcAppNavigationNewItem-CsqJ6c8v.css → NcAppNavigationNewItem-CYsA6ZGQ.css} +37 -33
  10. package/dist/assets/{NcAppNavigationSettings-BDc6Mtek.css → NcAppNavigationSettings-B0I7HR1V.css} +14 -5
  11. package/dist/assets/NcAppNavigationSpacer-LST5uYYS.css +6 -0
  12. package/dist/assets/{NcAppNavigationToggle-DnTKNSH7.css → NcAppNavigationToggle-M0oDbwAS.css} +3 -3
  13. package/dist/assets/{NcAppSettingsDialog-DMWosHw9.css → NcAppSettingsDialog-DfBJYMdm.css} +10 -10
  14. package/dist/assets/{NcAppSidebar-exl90fRm.css → NcAppSidebar-BeRME1Bx.css} +44 -44
  15. package/dist/assets/{NcAppSidebarTab-BFy7uyWe.css → NcAppSidebarTab-cWhpTGp7.css} +4 -4
  16. package/dist/assets/{NcAvatar-B3wk2Xxl.css → NcAvatar-g7MoHyFd.css} +24 -24
  17. package/dist/assets/{NcButton-DbE0wInI.css → NcButton-Cpw_vPKw.css} +49 -49
  18. package/dist/assets/{NcCheckboxRadioSwitch-sqQXUuVB.css → NcCheckboxRadioSwitch-DKVMIvxJ.css} +47 -44
  19. package/dist/assets/{NcChip-VsVAGaG6.css → NcChip-rGBYOr-Q.css} +9 -9
  20. package/dist/assets/{NcCollectionList-DTJgOfCk.css → NcCollectionList-DVlSPO13.css} +27 -27
  21. package/dist/assets/{NcColorPicker-Clz7MjCA.css → NcColorPicker-DgByWqzp.css} +28 -28
  22. package/dist/assets/{NcContent-cRwic6r5.css → NcContent-1ivDf2e_.css} +9 -9
  23. package/dist/assets/{NcDashboardWidgetItem-B8_6-_k8.css → NcDashboardWidgetItem-V_jSEH-7.css} +12 -12
  24. package/dist/assets/NcDateTimePicker-_rRYVngX.css +1228 -0
  25. package/dist/assets/{NcDateTimePickerNative-CeuS8Oeg.css → NcDateTimePickerNative-BizATZfE.css} +13 -13
  26. package/dist/assets/{NcDialog-bP7Jt0ZE.css → NcDialog-Ch6FuMQo.css} +15 -15
  27. package/dist/assets/{NcEllipsisedOption-D-IsjXWc.css → NcEllipsisedOption-BNLv_eyF.css} +5 -5
  28. package/dist/assets/{NcEmojiPicker-DnMU8iEd.css → NcEmojiPicker-vTc7_EDA.css} +4 -4
  29. package/dist/assets/{NcHeaderMenu-zo6kw_jn.css → NcHeaderMenu-BAKwNTFx.css} +11 -11
  30. package/dist/assets/{NcIconSvgWrapper-cYxhjYue.css → NcIconSvgWrapper-CJfAwN6-.css} +11 -11
  31. package/dist/assets/{NcInputField-B8J2uFD4.css → NcInputField-CvP4PFAO.css} +44 -42
  32. package/dist/assets/{NcListItem-9eCenovm.css → NcListItem-BBaZDZQK.css} +44 -44
  33. package/dist/assets/{NcListItemIcon-DjEDwxRp.css → NcListItemIcon-BVhiRo5R.css} +13 -13
  34. package/dist/assets/{NcLoadingIcon-x1d284UU.css → NcLoadingIcon-DlDKflKI.css} +2 -2
  35. package/dist/assets/{NcMentionBubble-DLOTFwpl.css → NcMentionBubble-lpms2_3A.css} +9 -9
  36. package/dist/assets/{NcModal-DaHROv08.css → NcModal-BMVfhs7c.css} +61 -61
  37. package/dist/assets/{NcNoteCard-C6xb7vi0.css → NcNoteCard-DlW6RBOO.css} +11 -8
  38. package/dist/assets/{NcPasswordField-z9gbKnov.css → NcPasswordField-D7XrnwDs.css} +2 -2
  39. package/dist/assets/{NcRelatedResourcesPanel-DXfywiqL.css → NcRelatedResourcesPanel-BQkQvMMD.css} +3 -3
  40. package/dist/assets/{NcRichContenteditable-KsmFPJmm.css → NcRichContenteditable-1zTxLjsG.css} +20 -20
  41. package/dist/assets/{NcRichText-GnQKcHYO.css → NcRichText-cO2UCM_o.css} +88 -83
  42. package/dist/assets/{NcSettingsSection-Dyrgo_fF.css → NcSettingsSection-DLjgl3j1.css} +7 -7
  43. package/dist/assets/{NcTextArea-DHr9DPOJ.css → NcTextArea-DoBYU3IE.css} +20 -20
  44. package/dist/assets/{NcUserBubble-tSs2XTDQ.css → NcUserBubble-CqaL0Oxv.css} +8 -8
  45. package/dist/assets/{referencePickerModal-DAD-jv3F.css → referencePickerModal-DIHQ6_wW.css} +32 -32
  46. package/dist/chunks/{ArrowLeft-CanHG70H.mjs → ArrowLeft-BiZLJltw.mjs} +3 -3
  47. package/dist/chunks/{ArrowLeft-CanHG70H.mjs.map → ArrowLeft-BiZLJltw.mjs.map} +1 -1
  48. package/dist/chunks/{DotsHorizontal-AMVAlTNH.mjs → DotsHorizontal-BJ_GCGpi.mjs} +3 -3
  49. package/dist/chunks/{DotsHorizontal-AMVAlTNH.mjs.map → DotsHorizontal-BJ_GCGpi.mjs.map} +1 -1
  50. package/dist/chunks/{NcActionButton-CnX0dQzz.mjs → NcActionButton-Bd35_0n4.mjs} +5 -5
  51. package/dist/chunks/{NcActionButton-CnX0dQzz.mjs.map → NcActionButton-Bd35_0n4.mjs.map} +1 -1
  52. package/dist/chunks/{NcActionButtonGroup-3Da8b3EI.mjs → NcActionButtonGroup-BVbWDFaC.mjs} +2 -2
  53. package/dist/chunks/{NcActionButtonGroup-3Da8b3EI.mjs.map → NcActionButtonGroup-BVbWDFaC.mjs.map} +1 -1
  54. package/dist/chunks/{NcActionInput-DeFy255L.mjs → NcActionInput-B_f8z2fo.mjs} +12 -12
  55. package/dist/chunks/{NcActionInput-DeFy255L.mjs.map → NcActionInput-B_f8z2fo.mjs.map} +1 -1
  56. package/dist/chunks/{NcActionText-DJWBefhJ.mjs → NcActionText-16Mj4-P1.mjs} +3 -4
  57. package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +1 -0
  58. package/dist/chunks/{NcActionTextEditable-B7nemAOJ.mjs → NcActionTextEditable-B4nTAiHu.mjs} +3 -3
  59. package/dist/chunks/{NcActionTextEditable-B7nemAOJ.mjs.map → NcActionTextEditable-B4nTAiHu.mjs.map} +1 -1
  60. package/dist/chunks/{NcActions-DS88I6qk.mjs → NcActions-BM3DmGLW.mjs} +10 -10
  61. package/dist/chunks/{NcActions-DS88I6qk.mjs.map → NcActions-BM3DmGLW.mjs.map} +1 -1
  62. package/dist/chunks/{NcAppContent-DRhM7Gyz.mjs → NcAppContent-BZZyPqOo.mjs} +54 -50
  63. package/dist/chunks/NcAppContent-BZZyPqOo.mjs.map +1 -0
  64. package/dist/chunks/{NcAppNavigation-BVXVi9JQ.mjs → NcAppNavigation-BmACVQVW.mjs} +4 -4
  65. package/dist/chunks/{NcAppNavigation-BVXVi9JQ.mjs.map → NcAppNavigation-BmACVQVW.mjs.map} +1 -1
  66. package/dist/chunks/{NcAppNavigationCaption-DkiIEk6r.mjs → NcAppNavigationCaption-BrCiN8XK.mjs} +2 -2
  67. package/dist/chunks/{NcAppNavigationCaption-DkiIEk6r.mjs.map → NcAppNavigationCaption-BrCiN8XK.mjs.map} +1 -1
  68. package/dist/chunks/{NcAppNavigationItem-s3GC1n4o.mjs → NcAppNavigationItem-ClySLuSM.mjs} +12 -12
  69. package/dist/chunks/{NcAppNavigationItem-s3GC1n4o.mjs.map → NcAppNavigationItem-ClySLuSM.mjs.map} +1 -1
  70. package/dist/chunks/{NcAppNavigationNew-BUQgcKdv.mjs → NcAppNavigationNew-CMjaAY5A.mjs} +2 -2
  71. package/dist/chunks/{NcAppNavigationNew-BUQgcKdv.mjs.map → NcAppNavigationNew-CMjaAY5A.mjs.map} +1 -1
  72. package/dist/chunks/{NcAppNavigationNewItem-D1GWsi8R.mjs → NcAppNavigationNewItem-BUgPntuN.mjs} +7 -7
  73. package/dist/chunks/{NcAppNavigationNewItem-D1GWsi8R.mjs.map → NcAppNavigationNewItem-BUgPntuN.mjs.map} +1 -1
  74. package/dist/chunks/{NcAppNavigationSearch-Cy0s4XWp.mjs → NcAppNavigationSearch-DpjlWi9j.mjs} +3 -3
  75. package/dist/chunks/{NcAppNavigationSearch-Cy0s4XWp.mjs.map → NcAppNavigationSearch-DpjlWi9j.mjs.map} +1 -1
  76. package/dist/chunks/{NcAppNavigationSettings-GeCb9tlR.mjs → NcAppNavigationSettings-DGATbBqy.mjs} +16 -10
  77. package/dist/chunks/{NcAppNavigationSettings-GeCb9tlR.mjs.map → NcAppNavigationSettings-DGATbBqy.mjs.map} +1 -1
  78. package/dist/chunks/NcAppNavigationSpacer-BvkBfuVw.mjs +17 -0
  79. package/dist/chunks/NcAppNavigationSpacer-BvkBfuVw.mjs.map +1 -0
  80. package/dist/chunks/{NcAppNavigationToggle-CFw3W3_o.mjs → NcAppNavigationToggle-D9pouVyS.mjs} +46 -68
  81. package/dist/chunks/NcAppNavigationToggle-D9pouVyS.mjs.map +1 -0
  82. package/dist/chunks/{NcAppSettingsDialog-CBLZvdnK.mjs → NcAppSettingsDialog-Dgh5jydA.mjs} +6 -6
  83. package/dist/chunks/{NcAppSettingsDialog-CBLZvdnK.mjs.map → NcAppSettingsDialog-Dgh5jydA.mjs.map} +1 -1
  84. package/dist/chunks/{NcAppSidebar-BomlW59S.mjs → NcAppSidebar-DWRmX_-Y.mjs} +14 -14
  85. package/dist/chunks/{NcAppSidebar-BomlW59S.mjs.map → NcAppSidebar-DWRmX_-Y.mjs.map} +1 -1
  86. package/dist/chunks/{NcAppSidebarTab-DG51ajic.mjs → NcAppSidebarTab-D1RmFRTu.mjs} +5 -5
  87. package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +1 -0
  88. package/dist/chunks/{NcAvatar-CSk-1oFe.mjs → NcAvatar-PCbT0J_-.mjs} +42 -27
  89. package/dist/chunks/NcAvatar-PCbT0J_-.mjs.map +1 -0
  90. package/dist/chunks/{NcBreadcrumb-Bvsnecwa.mjs → NcBreadcrumb-D9gRzaYP.mjs} +3 -3
  91. package/dist/chunks/{NcBreadcrumb-Bvsnecwa.mjs.map → NcBreadcrumb-D9gRzaYP.mjs.map} +1 -1
  92. package/dist/chunks/{NcBreadcrumbs-DWU2ZRkM.mjs → NcBreadcrumbs-DjqDBMn-.mjs} +4 -4
  93. package/dist/chunks/{NcBreadcrumbs-DWU2ZRkM.mjs.map → NcBreadcrumbs-DjqDBMn-.mjs.map} +1 -1
  94. package/dist/chunks/{NcButton-Byg8-ta1.mjs → NcButton-yN4vYgXb.mjs} +3 -3
  95. package/dist/chunks/{NcButton-Byg8-ta1.mjs.map → NcButton-yN4vYgXb.mjs.map} +1 -1
  96. package/dist/chunks/{NcCheckboxRadioSwitch-Ca1ouh22.mjs → NcCheckboxRadioSwitch-D9N_BDHh.mjs} +8 -8
  97. package/dist/chunks/NcCheckboxRadioSwitch-D9N_BDHh.mjs.map +1 -0
  98. package/dist/chunks/{NcChip-Cl6RfDoK.mjs → NcChip-BPresRp1.mjs} +8 -8
  99. package/dist/chunks/{NcChip-Cl6RfDoK.mjs.map → NcChip-BPresRp1.mjs.map} +1 -1
  100. package/dist/chunks/{NcCollectionList-CxzQkCFq.mjs → NcCollectionList-BPDCogsB.mjs} +14 -11
  101. package/dist/chunks/NcCollectionList-BPDCogsB.mjs.map +1 -0
  102. package/dist/chunks/NcColorPicker-BNpZzN-p.mjs +182 -0
  103. package/dist/chunks/NcColorPicker-BNpZzN-p.mjs.map +1 -0
  104. package/dist/chunks/{NcContent-DtM8j8ub.mjs → NcContent-CZKDyVcI.mjs} +83 -112
  105. package/dist/chunks/{NcContent-DtM8j8ub.mjs.map → NcContent-CZKDyVcI.mjs.map} +1 -1
  106. package/dist/chunks/{NcDashboardWidget-uBobynyZ.mjs → NcDashboardWidget-DhZ5c4oF.mjs} +4 -4
  107. package/dist/chunks/{NcDashboardWidget-uBobynyZ.mjs.map → NcDashboardWidget-DhZ5c4oF.mjs.map} +1 -1
  108. package/dist/chunks/{NcDashboardWidgetItem-DnI9uLf1.mjs → NcDashboardWidgetItem-pJ-PctjL.mjs} +8 -8
  109. package/dist/chunks/NcDashboardWidgetItem-pJ-PctjL.mjs.map +1 -0
  110. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs +36 -0
  111. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BD-rj6Dr.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map} +1 -1
  112. package/dist/chunks/{NcDateTimePicker-DYNOGc6A.mjs → NcDateTimePicker-CKOTExmB.mjs} +149 -94
  113. package/dist/chunks/NcDateTimePicker-CKOTExmB.mjs.map +1 -0
  114. package/dist/chunks/NcDateTimePickerNative-NVYPDSmf.mjs +100 -0
  115. package/dist/chunks/NcDateTimePickerNative-NVYPDSmf.mjs.map +1 -0
  116. package/dist/chunks/NcDialog-DTbCOARa.mjs +169 -0
  117. package/dist/chunks/NcDialog-DTbCOARa.mjs.map +1 -0
  118. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DAZ2Budh.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs} +5 -5
  119. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DAZ2Budh.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs.map} +1 -1
  120. package/dist/chunks/{NcEllipsisedOption-4k07kvEr.mjs → NcEllipsisedOption-C8uNDC-j.mjs} +4 -4
  121. package/dist/chunks/{NcEllipsisedOption-4k07kvEr.mjs.map → NcEllipsisedOption-C8uNDC-j.mjs.map} +1 -1
  122. package/dist/chunks/{NcEmojiPicker-lhuMMbDy.mjs → NcEmojiPicker-DHXabPDE.mjs} +14 -14
  123. package/dist/chunks/NcEmojiPicker-DHXabPDE.mjs.map +1 -0
  124. package/dist/chunks/{NcHeaderButton-BXfTpkIm.mjs → NcHeaderButton-BTZ1WNux.mjs} +2 -2
  125. package/dist/chunks/{NcHeaderButton-BXfTpkIm.mjs.map → NcHeaderButton-BTZ1WNux.mjs.map} +1 -1
  126. package/dist/chunks/{NcHeaderMenu-o9FmNBI5.mjs → NcHeaderMenu-Bf_rW093.mjs} +5 -5
  127. package/dist/chunks/NcHeaderMenu-Bf_rW093.mjs.map +1 -0
  128. package/dist/chunks/{NcHighlight-Cu4UfEEO.mjs → NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs} +5 -9
  129. package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +1 -0
  130. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs → NcIconSvgWrapper-CprKb_SE.mjs} +4 -4
  131. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs.map → NcIconSvgWrapper-CprKb_SE.mjs.map} +1 -1
  132. package/dist/chunks/{NcInputConfirmCancel-C1K1gyQA.mjs → NcInputConfirmCancel-DCUXeKPz.mjs} +3 -3
  133. package/dist/chunks/{NcInputConfirmCancel-C1K1gyQA.mjs.map → NcInputConfirmCancel-DCUXeKPz.mjs.map} +1 -1
  134. package/dist/chunks/NcInputField-BZWRHkmQ.mjs +162 -0
  135. package/dist/chunks/NcInputField-BZWRHkmQ.mjs.map +1 -0
  136. package/dist/chunks/{NcListItem-C2LlJgjL.mjs → NcListItem-7BHAmqB0.mjs} +9 -9
  137. package/dist/chunks/{NcListItem-C2LlJgjL.mjs.map → NcListItem-7BHAmqB0.mjs.map} +1 -1
  138. package/dist/chunks/{NcListItemIcon-5ms0eK3w.mjs → NcListItemIcon-gkuv5FT8.mjs} +9 -7
  139. package/dist/chunks/{NcListItemIcon-5ms0eK3w.mjs.map → NcListItemIcon-gkuv5FT8.mjs.map} +1 -1
  140. package/dist/chunks/NcLoadingIcon-Dm3kRPrf.mjs +57 -0
  141. package/dist/chunks/NcLoadingIcon-Dm3kRPrf.mjs.map +1 -0
  142. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs +16 -0
  143. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +1 -0
  144. package/dist/chunks/{NcModal-BisVxXe_.mjs → NcModal-CX28vCtF.mjs} +13 -18
  145. package/dist/chunks/NcModal-CX28vCtF.mjs.map +1 -0
  146. package/dist/chunks/NcNoteCard-oGt6biyJ.mjs +62 -0
  147. package/dist/chunks/NcNoteCard-oGt6biyJ.mjs.map +1 -0
  148. package/dist/chunks/NcPasswordField-w13_Lpyn.mjs +128 -0
  149. package/dist/chunks/NcPasswordField-w13_Lpyn.mjs.map +1 -0
  150. package/dist/chunks/{NcPopover-MsWUAvsI.mjs → NcPopover-BUlWWIxc.mjs} +3 -3
  151. package/dist/chunks/{NcPopover-MsWUAvsI.mjs.map → NcPopover-BUlWWIxc.mjs.map} +1 -1
  152. package/dist/chunks/{NcRelatedResourcesPanel-CShyi9lg.mjs → NcRelatedResourcesPanel-CpOgjo9h.mjs} +11 -11
  153. package/dist/chunks/{NcRelatedResourcesPanel-CShyi9lg.mjs.map → NcRelatedResourcesPanel-CpOgjo9h.mjs.map} +1 -1
  154. package/dist/chunks/{NcRichContenteditable-DgH9H1qf.mjs → NcRichContenteditable-J9ILu0dF.mjs} +41 -32
  155. package/dist/chunks/NcRichContenteditable-J9ILu0dF.mjs.map +1 -0
  156. package/dist/chunks/{NcRichText-BkKK1moX.mjs → NcRichText-DvbC3aUR.mjs} +9 -7
  157. package/dist/chunks/{NcRichText-BkKK1moX.mjs.map → NcRichText-DvbC3aUR.mjs.map} +1 -1
  158. package/dist/chunks/{NcSelect-BSa2kSPW.mjs → NcSelect-D6XzjG4n.mjs} +4 -4
  159. package/dist/chunks/{NcSelect-BSa2kSPW.mjs.map → NcSelect-D6XzjG4n.mjs.map} +1 -1
  160. package/dist/chunks/{NcSelectTags-BW0QroJV.mjs → NcSelectTags-SNTGRj-n.mjs} +4 -4
  161. package/dist/chunks/{NcSelectTags-BW0QroJV.mjs.map → NcSelectTags-SNTGRj-n.mjs.map} +1 -1
  162. package/dist/chunks/{NcSelectUsers-Bhx9k-0v.mjs → NcSelectUsers-D_eu9Uqb.mjs} +3 -3
  163. package/dist/chunks/{NcSelectUsers-Bhx9k-0v.mjs.map → NcSelectUsers-D_eu9Uqb.mjs.map} +1 -1
  164. package/dist/chunks/{NcSettingsInputText-CrOqaL-x.mjs → NcSettingsInputText-D5N9XxkW.mjs} +3 -3
  165. package/dist/chunks/{NcSettingsInputText-CrOqaL-x.mjs.map → NcSettingsInputText-D5N9XxkW.mjs.map} +1 -1
  166. package/dist/chunks/{NcSettingsSection-D6ShpfeY.mjs → NcSettingsSection-93UQoiwe.mjs} +40 -65
  167. package/dist/chunks/NcSettingsSection-93UQoiwe.mjs.map +1 -0
  168. package/dist/chunks/{NcSettingsSelectGroup-DpNxkoZ2.mjs → NcSettingsSelectGroup-Dr4IRbi_.mjs} +4 -4
  169. package/dist/chunks/{NcSettingsSelectGroup-DpNxkoZ2.mjs.map → NcSettingsSelectGroup-Dr4IRbi_.mjs.map} +1 -1
  170. package/dist/chunks/NcTextArea-CWqnvMl2.mjs +122 -0
  171. package/dist/chunks/NcTextArea-CWqnvMl2.mjs.map +1 -0
  172. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs +92 -0
  173. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs.map +1 -0
  174. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs +30 -0
  175. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -0
  176. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-T3gPr-FV.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs} +3 -3
  177. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-T3gPr-FV.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs.map} +1 -1
  178. package/dist/chunks/NcUserBubble-BW0qu6mW.mjs +136 -0
  179. package/dist/chunks/NcUserBubble-BW0qu6mW.mjs.map +1 -0
  180. package/dist/chunks/{NcUserStatusIcon-CtOZd90o.mjs → NcUserStatusIcon-DqQYA-EE.mjs} +2 -2
  181. package/dist/chunks/{NcUserStatusIcon-CtOZd90o.mjs.map → NcUserStatusIcon-DqQYA-EE.mjs.map} +1 -1
  182. package/dist/chunks/{_l10n-Bg-fZ9R0.mjs → _l10n-tXci8WM1.mjs} +63 -79
  183. package/dist/chunks/_l10n-tXci8WM1.mjs.map +1 -0
  184. package/dist/chunks/{colors-BPGhD2C5.mjs → colors-BaTbJhvg.mjs} +2 -2
  185. package/dist/chunks/{colors-BPGhD2C5.mjs.map → colors-BaTbJhvg.mjs.map} +1 -1
  186. package/dist/chunks/constants-Bls5liKo.mjs +9 -0
  187. package/dist/chunks/constants-Bls5liKo.mjs.map +1 -0
  188. package/dist/chunks/{index-BF8joS9W.mjs → customPickerElements-CH9vlHLd.mjs} +46 -45
  189. package/dist/chunks/customPickerElements-CH9vlHLd.mjs.map +1 -0
  190. package/dist/chunks/mdi-D6fu5i4r.mjs +37 -0
  191. package/dist/chunks/{mdi-CR-3gwdl.mjs.map → mdi-D6fu5i4r.mjs.map} +1 -1
  192. package/dist/chunks/{referencePickerModal-Dw1szWUR.mjs → referencePickerModal-DREcDQKg.mjs} +65 -71
  193. package/dist/chunks/referencePickerModal-DREcDQKg.mjs.map +1 -0
  194. package/dist/chunks/{usernameToColor-CuTR6O_B.mjs → usernameToColor-2yV_Zdvb.mjs} +2 -2
  195. package/dist/chunks/{usernameToColor-CuTR6O_B.mjs.map → usernameToColor-2yV_Zdvb.mjs.map} +1 -1
  196. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +1 -1
  197. package/dist/components/NcActionButton/index.mjs +1 -1
  198. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  199. package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +1 -1
  200. package/dist/components/NcActionInput/index.mjs +1 -1
  201. package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +1 -1
  202. package/dist/components/NcActionText/index.mjs +1 -1
  203. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +1 -1
  204. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  205. package/dist/components/NcActions/index.mjs +1 -1
  206. package/dist/components/NcAppContent/NcAppContent.vue.d.ts +34 -32
  207. package/dist/components/NcAppContent/index.mjs +1 -1
  208. package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +66 -0
  209. package/dist/components/NcAppNavigation/index.mjs +1 -1
  210. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  211. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  212. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  213. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  214. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +275 -0
  215. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  216. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  217. package/dist/components/NcAppNavigationSpacer/NcAppNavigationSpacer.vue.d.ts +1 -1
  218. package/dist/components/NcAppNavigationSpacer/index.d.ts +4 -0
  219. package/dist/components/NcAppNavigationSpacer/index.mjs +1 -1
  220. package/dist/components/NcAppNavigationToggle/NcAppNavigationToggle.vue.d.ts +9 -0
  221. package/dist/components/NcAppNavigationToggle/index.d.ts +5 -3
  222. package/dist/components/NcAppNavigationToggle/index.mjs +2 -3
  223. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  224. package/dist/components/NcAppSidebar/index.mjs +1 -1
  225. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +3 -3
  226. package/dist/components/NcAppSidebarTab/index.mjs +1 -1
  227. package/dist/components/NcAvatar/index.mjs +1 -1
  228. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  229. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  230. package/dist/components/NcButton/NcButton.vue.d.ts +1 -1
  231. package/dist/components/NcButton/index.mjs +1 -1
  232. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  233. package/dist/components/NcChip/NcChip.vue.d.ts +2 -2
  234. package/dist/components/NcChip/index.mjs +1 -1
  235. package/dist/components/NcCollectionList/index.mjs +1 -1
  236. package/dist/components/NcColorPicker/NcColorPicker.vue.d.ts +54 -1
  237. package/dist/components/NcColorPicker/index.d.ts +4 -0
  238. package/dist/components/NcColorPicker/index.mjs +1 -1
  239. package/dist/components/NcContent/NcContent.vue.d.ts +33 -0
  240. package/dist/components/NcContent/index.d.ts +4 -0
  241. package/dist/components/NcContent/index.mjs +1 -1
  242. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  243. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  244. package/dist/components/NcDateTime/index.mjs +1 -1
  245. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +1072 -4
  246. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  247. package/dist/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +29 -151
  248. package/dist/components/NcDateTimePickerNative/index.d.ts +4 -0
  249. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  250. package/dist/components/NcDialog/NcDialog.vue.d.ts +73 -380
  251. package/dist/components/NcDialog/index.d.ts +4 -0
  252. package/dist/components/NcDialog/index.mjs +1 -1
  253. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +1 -1
  254. package/dist/components/NcDialogButton/index.mjs +1 -1
  255. package/dist/components/NcEllipsisedOption/index.mjs +1 -1
  256. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  257. package/dist/components/NcHeaderButton/index.mjs +1 -1
  258. package/dist/components/NcHeaderMenu/index.d.ts +4 -0
  259. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  260. package/dist/components/NcHighlight/NcHighlight.vue.d.ts +15 -8
  261. package/dist/components/NcHighlight/index.d.ts +4 -0
  262. package/dist/components/NcHighlight/index.mjs +1 -1
  263. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +1 -1
  264. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  265. package/dist/components/NcInputField/NcInputField.vue.d.ts +147 -0
  266. package/dist/components/NcInputField/index.d.ts +5 -0
  267. package/dist/components/NcInputField/index.mjs +1 -1
  268. package/dist/components/NcListItem/index.mjs +1 -1
  269. package/dist/components/NcListItemIcon/index.mjs +1 -1
  270. package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +10 -46
  271. package/dist/components/NcLoadingIcon/index.d.ts +4 -0
  272. package/dist/components/NcLoadingIcon/index.mjs +1 -1
  273. package/dist/components/NcModal/index.mjs +1 -1
  274. package/dist/components/NcNoteCard/NcNoteCard.vue.d.ts +37 -62
  275. package/dist/components/NcNoteCard/index.d.ts +4 -0
  276. package/dist/components/NcNoteCard/index.mjs +1 -1
  277. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +285 -0
  278. package/dist/components/NcPasswordField/index.d.ts +4 -0
  279. package/dist/components/NcPasswordField/index.mjs +1 -1
  280. package/dist/components/NcPopover/index.mjs +1 -1
  281. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  282. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
  283. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +4 -4
  284. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +2 -2
  285. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  286. package/dist/components/NcRichText/index.d.ts +3 -3
  287. package/dist/components/NcRichText/index.mjs +10 -10
  288. package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +1 -1
  289. package/dist/components/NcSelect/index.mjs +1 -1
  290. package/dist/components/NcSelectTags/index.mjs +1 -1
  291. package/dist/components/NcSelectUsers/index.mjs +1 -1
  292. package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +1 -1
  293. package/dist/components/NcSettingsInputText/index.mjs +1 -1
  294. package/dist/components/NcSettingsSection/NcSettingsSection.vue.d.ts +40 -34
  295. package/dist/components/NcSettingsSection/index.d.ts +4 -0
  296. package/dist/components/NcSettingsSection/index.mjs +1 -1
  297. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  298. package/dist/components/NcTextArea/NcTextArea.vue.d.ts +51 -170
  299. package/dist/components/NcTextArea/index.d.ts +4 -0
  300. package/dist/components/NcTextArea/index.mjs +1 -1
  301. package/dist/components/NcTextField/NcTextField.vue.d.ts +277 -0
  302. package/dist/components/NcTextField/index.d.ts +4 -0
  303. package/dist/components/NcTextField/index.mjs +2 -2
  304. package/dist/components/NcThemeProvider/NcThemeProvider.vue.d.ts +27 -0
  305. package/dist/components/NcThemeProvider/index.d.ts +5 -0
  306. package/dist/components/NcThemeProvider/index.mjs +5 -0
  307. package/dist/components/NcThemeProvider/index.mjs.map +1 -0
  308. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  309. package/dist/components/NcUserBubble/NcUserBubble.vue.d.ts +90 -0
  310. package/dist/components/NcUserBubble/NcUserBubbleDiv.vue.d.ts +16 -1
  311. package/dist/components/NcUserBubble/index.d.ts +4 -0
  312. package/dist/components/NcUserBubble/index.mjs +1 -1
  313. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  314. package/dist/components/index.d.ts +17 -16
  315. package/dist/composables/index.d.ts +1 -1
  316. package/dist/composables/useFormatDateTime/index.d.ts +40 -0
  317. package/dist/composables/useFormatDateTime/index.mjs +49 -0
  318. package/dist/composables/useFormatDateTime/index.mjs.map +1 -0
  319. package/dist/composables/useHotKey/index.mjs +13 -1
  320. package/dist/composables/useHotKey/index.mjs.map +1 -1
  321. package/dist/composables/useIsDarkTheme/constants.d.ts +7 -0
  322. package/dist/composables/useIsDarkTheme/index.d.ts +7 -4
  323. package/dist/composables/useIsDarkTheme/index.mjs +23 -6
  324. package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
  325. package/dist/functions/reference/customPickerElements.d.ts +48 -13
  326. package/dist/functions/reference/index.d.ts +8 -5
  327. package/dist/functions/reference/index.mjs +7 -7
  328. package/dist/functions/reference/providerHelper.d.ts +26 -15
  329. package/dist/functions/reference/referencePickerModal.d.ts +7 -4
  330. package/dist/functions/reference/widgets.d.ts +47 -28
  331. package/dist/functions/registerReference/index.d.ts +6 -2
  332. package/dist/functions/registerReference/index.mjs +4 -4
  333. package/dist/functions/usernameToColor/index.mjs +1 -1
  334. package/dist/index.mjs +90 -87
  335. package/dist/index.mjs.map +1 -1
  336. package/dist/utils/VueTypes.d.ts +6 -0
  337. package/dist/utils/getAvatarUrl.d.ts +23 -1
  338. package/package.json +3 -3
  339. package/dist/assets/NcAppNavigationSpacer-BJj8CIpA.css +0 -6
  340. package/dist/assets/NcDateTimePicker-pmbCzZnb.css +0 -83
  341. package/dist/chunks/AlertCircleOutline-DVzpKQVu.mjs +0 -49
  342. package/dist/chunks/AlertCircleOutline-DVzpKQVu.mjs.map +0 -1
  343. package/dist/chunks/NcActionText-DJWBefhJ.mjs.map +0 -1
  344. package/dist/chunks/NcAppContent-DRhM7Gyz.mjs.map +0 -1
  345. package/dist/chunks/NcAppNavigationSpacer-CzBLuQL8.mjs +0 -15
  346. package/dist/chunks/NcAppNavigationSpacer-CzBLuQL8.mjs.map +0 -1
  347. package/dist/chunks/NcAppNavigationToggle-CFw3W3_o.mjs.map +0 -1
  348. package/dist/chunks/NcAppSidebarTab-DG51ajic.mjs.map +0 -1
  349. package/dist/chunks/NcAvatar-CSk-1oFe.mjs.map +0 -1
  350. package/dist/chunks/NcCheckboxRadioSwitch-Ca1ouh22.mjs.map +0 -1
  351. package/dist/chunks/NcCollectionList-CxzQkCFq.mjs.map +0 -1
  352. package/dist/chunks/NcColorPicker-BjsBCkEt.mjs +0 -275
  353. package/dist/chunks/NcColorPicker-BjsBCkEt.mjs.map +0 -1
  354. package/dist/chunks/NcDashboardWidgetItem-DnI9uLf1.mjs.map +0 -1
  355. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BD-rj6Dr.mjs +0 -31
  356. package/dist/chunks/NcDateTimePicker-DYNOGc6A.mjs.map +0 -1
  357. package/dist/chunks/NcDateTimePickerNative-D0pjWawX.mjs +0 -202
  358. package/dist/chunks/NcDateTimePickerNative-D0pjWawX.mjs.map +0 -1
  359. package/dist/chunks/NcDialog-BQNR_-Ju.mjs +0 -319
  360. package/dist/chunks/NcDialog-BQNR_-Ju.mjs.map +0 -1
  361. package/dist/chunks/NcEmojiPicker-lhuMMbDy.mjs.map +0 -1
  362. package/dist/chunks/NcHeaderMenu-o9FmNBI5.mjs.map +0 -1
  363. package/dist/chunks/NcHighlight-Cu4UfEEO.mjs.map +0 -1
  364. package/dist/chunks/NcInputField-BBS1E7r-.mjs +0 -306
  365. package/dist/chunks/NcInputField-BBS1E7r-.mjs.map +0 -1
  366. package/dist/chunks/NcLoadingIcon-CsMn1bFR.mjs +0 -79
  367. package/dist/chunks/NcLoadingIcon-CsMn1bFR.mjs.map +0 -1
  368. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs +0 -13
  369. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs.map +0 -1
  370. package/dist/chunks/NcModal-BisVxXe_.mjs.map +0 -1
  371. package/dist/chunks/NcNoteCard-XoSOund1.mjs +0 -276
  372. package/dist/chunks/NcNoteCard-XoSOund1.mjs.map +0 -1
  373. package/dist/chunks/NcPasswordField-hZiEd3tC.mjs +0 -298
  374. package/dist/chunks/NcPasswordField-hZiEd3tC.mjs.map +0 -1
  375. package/dist/chunks/NcRichContenteditable-DgH9H1qf.mjs.map +0 -1
  376. package/dist/chunks/NcSettingsSection-D6ShpfeY.mjs.map +0 -1
  377. package/dist/chunks/NcTextArea-DKHjCur8.mjs +0 -217
  378. package/dist/chunks/NcTextArea-DKHjCur8.mjs.map +0 -1
  379. package/dist/chunks/NcTextField-DJ1KtSKd.mjs +0 -174
  380. package/dist/chunks/NcTextField-DJ1KtSKd.mjs.map +0 -1
  381. package/dist/chunks/NcUserBubble-Csot0WLv.mjs +0 -228
  382. package/dist/chunks/NcUserBubble-Csot0WLv.mjs.map +0 -1
  383. package/dist/chunks/_l10n-Bg-fZ9R0.mjs.map +0 -1
  384. package/dist/chunks/index-BF8joS9W.mjs.map +0 -1
  385. package/dist/chunks/mdi-CR-3gwdl.mjs +0 -21
  386. package/dist/chunks/referencePickerModal-Dw1szWUR.mjs.map +0 -1
  387. package/dist/chunks/useFormatDateTime-L411ysPm.mjs +0 -87
  388. package/dist/chunks/useFormatDateTime-L411ysPm.mjs.map +0 -1
  389. package/dist/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +0 -95
  390. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +0 -215
  391. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +0 -289
  392. package/dist/components/NcRichText/NcReferencePicker/NcSearchResult.vue.d.ts +0 -69
  393. package/dist/components/NcSelect/NcSelect.vue.d.ts +0 -121
  394. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +0 -205
  395. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +0 -265
  396. package/dist/composables/useFormatDateTime.d.ts +0 -84
  397. /package/dist/components/NcAppContent/{NcAppDetailsToggle.vue.d.ts → NcAppContentDetailsToggle.vue.d.ts} +0 -0
@@ -1,13 +1,15 @@
1
- import '../assets/NcDateTimePicker-pmbCzZnb.css';
2
- import { defineComponent, mergeModels, useModel, computed, createBlock, openBlock, unref, mergeProps, createSlots, withCtx, createVNode } from "vue";
3
- import { c as mdiChevronUp, d as mdiChevronDown, m as mdiChevronRight, e as mdiChevronLeft, f as mdiClock, g as mdiClose, h as mdiCalendarBlank } from "./mdi-CR-3gwdl.mjs";
1
+ import '../assets/NcDateTimePicker-_rRYVngX.css';
2
+ import { defineComponent, mergeModels, useModel, useTemplateRef, computed, createElementBlock, openBlock, createVNode, createBlock, unref, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, Teleport, createElementVNode } from "vue";
3
+ import { l as mdiChevronUp, n as mdiChevronDown, c as mdiChevronRight, o as mdiChevronLeft, p as mdiClock, q as mdiCalendarBlank, b as mdiClose } from "./mdi-D6fu5i4r.mjs";
4
4
  import { getCanonicalLocale, getDayNamesMin, getFirstDay, getDayNames } from "@nextcloud/l10n";
5
- import { r as register, a as t } from "./_l10n-Bg-fZ9R0.mjs";
5
+ import { r as register, a as t } from "./_l10n-tXci8WM1.mjs";
6
6
  import VueDatePicker from "@vuepic/vue-datepicker";
7
- import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-BOiCKv0b.mjs";
8
- import { _ as _sfc_main$1 } from "./NcTimezonePicker.vue_vue_type_script_setup_true_lang-T3gPr-FV.mjs";
7
+ import { N as NcButton } from "./NcButton-yN4vYgXb.mjs";
8
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-CprKb_SE.mjs";
9
+ import { _ as _sfc_main$1 } from "./NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs";
9
10
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
10
11
  register();
12
+ const _hoisted_1 = { class: "vue-date-time-picker__wrapper" };
11
13
  const _sfc_main = /* @__PURE__ */ defineComponent({
12
14
  __name: "NcDateTimePicker",
13
15
  props: /* @__PURE__ */ mergeModels({
@@ -19,7 +21,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
19
21
  format: { type: [String, Function], default: void 0 },
20
22
  locale: { default: getCanonicalLocale() },
21
23
  minuteStep: { default: 10 },
22
- modelValue: { default: void 0 },
24
+ modelValue: { default: null },
23
25
  placeholder: { default: void 0 },
24
26
  showTimezoneSelect: { type: Boolean },
25
27
  showWeekNumber: { type: Boolean },
@@ -32,9 +34,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
32
34
  setup(__props, { emit: __emit }) {
33
35
  const props = __props;
34
36
  const timezoneId = useModel(__props, "timezoneId");
37
+ const target = useTemplateRef("target");
38
+ const picker = useTemplateRef("picker");
35
39
  const emit = __emit;
36
40
  const value = computed(() => {
37
- if (props.modelValue === void 0 && props.clearable) {
41
+ if (props.modelValue === null && props.clearable) {
38
42
  return null;
39
43
  }
40
44
  if (props.type === "week") {
@@ -203,97 +207,148 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
203
207
  monthPicker: (overlay) => overlay ? t("Month picker overlay") : t("Month picker"),
204
208
  yearPicker: (overlay) => overlay ? t("Year picker overlay") : t("Year picker")
205
209
  }));
210
+ function selectDate() {
211
+ picker.value.selectDate();
212
+ }
213
+ function cancelSelection() {
214
+ picker.value.closeMenu();
215
+ }
206
216
  return (_ctx, _cache) => {
207
- return openBlock(), createBlock(unref(VueDatePicker), mergeProps({
208
- "aria-labels": ariaLabels.value,
209
- "auto-apply": !_ctx.confirm,
210
- class: "vue-date-time-picker",
211
- "cancel-text": unref(t)("Cancel"),
212
- clearable: _ctx.clearable,
213
- "day-names": unref(dayNames),
214
- placeholder: _ctx.placeholder ?? placeholderFallback.value,
215
- format: realFormat.value,
216
- locale: _ctx.locale,
217
- "minutes-increment": _ctx.minuteStep,
218
- "model-value": value.value,
219
- "now-button-label": unref(t)("Now"),
220
- "select-text": unref(t)("Pick"),
221
- "six-weeks": "fair",
222
- teleport: _ctx.appendToBody || void 0,
223
- "text-input": "",
224
- "week-num-name": unref(weekNumName),
225
- "week-numbers": _ctx.showWeekNumber ? { type: "iso" } : void 0,
226
- "week-start": unref(weekStart)
227
- }, pickerType.value, { "onUpdate:modelValue": onUpdateModelValue }), createSlots({
228
- "input-icon": withCtx(() => [
229
- createVNode(NcIconSvgWrapper, {
230
- path: unref(mdiCalendarBlank),
231
- size: 20
232
- }, null, 8, ["path"])
233
- ]),
234
- "clear-icon": withCtx(() => [
235
- createVNode(NcIconSvgWrapper, {
236
- inline: "",
237
- path: unref(mdiClose),
238
- size: 20
239
- }, null, 8, ["path"])
240
- ]),
241
- "clock-icon": withCtx(() => [
242
- createVNode(NcIconSvgWrapper, {
243
- inline: "",
244
- path: unref(mdiClock),
245
- size: 20
246
- }, null, 8, ["path"])
247
- ]),
248
- "arrow-left": withCtx(() => [
249
- createVNode(NcIconSvgWrapper, {
250
- inline: "",
251
- path: unref(mdiChevronLeft),
252
- size: 20
253
- }, null, 8, ["path"])
254
- ]),
255
- "arrow-right": withCtx(() => [
256
- createVNode(NcIconSvgWrapper, {
257
- inline: "",
258
- path: unref(mdiChevronRight),
259
- size: 20
260
- }, null, 8, ["path"])
261
- ]),
262
- "arrow-down": withCtx(() => [
263
- createVNode(NcIconSvgWrapper, {
264
- inline: "",
265
- path: unref(mdiChevronDown),
266
- size: 20
267
- }, null, 8, ["path"])
268
- ]),
269
- "arrow-up": withCtx(() => [
270
- createVNode(NcIconSvgWrapper, {
271
- inline: "",
272
- path: unref(mdiChevronUp),
273
- size: 20
274
- }, null, 8, ["path"])
275
- ]),
276
- _: 2
277
- }, [
278
- _ctx.showTimezoneSelect ? {
279
- name: "action-extra",
280
- fn: withCtx(() => [
281
- createVNode(_sfc_main$1, {
282
- modelValue: timezoneId.value,
283
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),
284
- class: "vue-date-time-picker__timezone",
285
- "append-to-body": false,
286
- "input-label": unref(t)("Timezone")
287
- }, null, 8, ["modelValue", "input-label"])
217
+ return openBlock(), createElementBlock("div", _hoisted_1, [
218
+ createVNode(unref(VueDatePicker), mergeProps({
219
+ ref_key: "picker",
220
+ ref: picker,
221
+ "aria-labels": ariaLabels.value,
222
+ "auto-apply": !_ctx.confirm,
223
+ class: "vue-date-time-picker",
224
+ "cancel-text": unref(t)("Cancel"),
225
+ clearable: _ctx.clearable,
226
+ "day-names": unref(dayNames),
227
+ placeholder: _ctx.placeholder ?? placeholderFallback.value,
228
+ format: realFormat.value,
229
+ locale: _ctx.locale,
230
+ "minutes-increment": _ctx.minuteStep,
231
+ "model-value": value.value,
232
+ "now-button-label": unref(t)("Now"),
233
+ "select-text": unref(t)("Pick"),
234
+ "six-weeks": "fair",
235
+ teleport: _ctx.appendToBody ? unref(target) || void 0 : false,
236
+ "text-input": "",
237
+ "week-num-name": unref(weekNumName),
238
+ "week-numbers": _ctx.showWeekNumber ? { type: "iso" } : void 0,
239
+ "week-start": unref(weekStart)
240
+ }, pickerType.value, { "onUpdate:modelValue": onUpdateModelValue }), createSlots({
241
+ "action-buttons": withCtx(() => [
242
+ createVNode(unref(NcButton), {
243
+ size: "small",
244
+ variant: "tertiary",
245
+ onClick: cancelSelection
246
+ }, {
247
+ default: withCtx(() => [
248
+ createTextVNode(toDisplayString(unref(t)("Cancel")), 1)
249
+ ]),
250
+ _: 1
251
+ }),
252
+ createVNode(unref(NcButton), {
253
+ size: "small",
254
+ variant: "primary",
255
+ onClick: selectDate
256
+ }, {
257
+ default: withCtx(() => [
258
+ createTextVNode(toDisplayString(unref(t)("Pick")), 1)
259
+ ]),
260
+ _: 1
261
+ })
262
+ ]),
263
+ "clear-icon": withCtx(({ clear }) => [
264
+ createVNode(unref(NcButton), {
265
+ "aria-label": unref(t)("Clear value"),
266
+ variant: "tertiary-no-background",
267
+ onClick: clear
268
+ }, {
269
+ icon: withCtx(() => [
270
+ createVNode(NcIconSvgWrapper, {
271
+ inline: "",
272
+ path: unref(mdiClose),
273
+ size: 20
274
+ }, null, 8, ["path"])
275
+ ]),
276
+ _: 2
277
+ }, 1032, ["aria-label", "onClick"])
278
+ ]),
279
+ "input-icon": withCtx(() => [
280
+ createVNode(NcIconSvgWrapper, {
281
+ path: unref(mdiCalendarBlank),
282
+ size: 20
283
+ }, null, 8, ["path"])
284
+ ]),
285
+ "clock-icon": withCtx(() => [
286
+ createVNode(NcIconSvgWrapper, {
287
+ inline: "",
288
+ path: unref(mdiClock),
289
+ size: 20
290
+ }, null, 8, ["path"])
291
+ ]),
292
+ "arrow-left": withCtx(() => [
293
+ createVNode(NcIconSvgWrapper, {
294
+ inline: "",
295
+ path: unref(mdiChevronLeft),
296
+ size: 20
297
+ }, null, 8, ["path"])
298
+ ]),
299
+ "arrow-right": withCtx(() => [
300
+ createVNode(NcIconSvgWrapper, {
301
+ inline: "",
302
+ path: unref(mdiChevronRight),
303
+ size: 20
304
+ }, null, 8, ["path"])
305
+ ]),
306
+ "arrow-down": withCtx(() => [
307
+ createVNode(NcIconSvgWrapper, {
308
+ inline: "",
309
+ path: unref(mdiChevronDown),
310
+ size: 20
311
+ }, null, 8, ["path"])
312
+ ]),
313
+ "arrow-up": withCtx(() => [
314
+ createVNode(NcIconSvgWrapper, {
315
+ inline: "",
316
+ path: unref(mdiChevronUp),
317
+ size: 20
318
+ }, null, 8, ["path"])
288
319
  ]),
289
- key: "0"
290
- } : void 0
291
- ]), 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"]);
320
+ _: 2
321
+ }, [
322
+ _ctx.showTimezoneSelect ? {
323
+ name: "action-extra",
324
+ fn: withCtx(() => [
325
+ createVNode(_sfc_main$1, {
326
+ modelValue: timezoneId.value,
327
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => timezoneId.value = $event),
328
+ class: "vue-date-time-picker__timezone",
329
+ "append-to-body": false,
330
+ "input-label": unref(t)("Timezone")
331
+ }, null, 8, ["modelValue", "input-label"])
332
+ ]),
333
+ key: "0"
334
+ } : 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"]),
336
+ (openBlock(), createBlock(Teleport, {
337
+ to: "body",
338
+ disabled: !_ctx.appendToBody
339
+ }, [
340
+ createElementVNode("div", {
341
+ ref_key: "target",
342
+ ref: target,
343
+ class: "vue-date-time-picker__wrapper"
344
+ }, null, 512)
345
+ ], 8, ["disabled"]))
346
+ ]);
292
347
  };
293
348
  }
294
349
  });
295
- const NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-629e70a5"]]);
350
+ const NcDateTimePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5223cded"]]);
296
351
  export {
297
352
  NcDateTimePicker as N
298
353
  };
299
- //# sourceMappingURL=NcDateTimePicker-DYNOGc6A.mjs.map
354
+ //# sourceMappingURL=NcDateTimePicker-CKOTExmB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDateTimePicker-CKOTExmB.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 emitted object for time picker\n\tTimeObj as LibraryTimeObject,\n\t// The accepted model value\n\tModelValue as LibraryModelValue,\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\tgetFirstDay,\n\tgetDayNames,\n\tgetDayNamesMin,\n\tgetCanonicalLocale,\n} from '@nextcloud/l10n'\nimport { computed, useTemplateRef } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport VueDatePicker from '@vuepic/vue-datepicker'\nimport NcButton from '../NcButton/index.ts'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcTimezonePicker from '../NcTimezonePicker/NcTimezonePicker.vue'\n\ntype LibraryFormatOptions = VueDatePickerProps['format']\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 * @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 * @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\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 target = useTemplateRef('target')\nconst picker = useTemplateRef('picker')\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\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' || props.type === 'time-range') {\n\t\tconst time = [props.modelValue ?? (props.type === 'time-range' ? [new Date(), new Date()] : new Date())].flat()\n\t\t// default time range is 1 hour\n\t\tif (props.modelValue === undefined && props.type === 'time-range') {\n\t\t\ttime[1].setHours(time[1].getHours() + 1)\n\t\t}\n\t\tconst timeValue = time.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\treturn props.type === 'time' ? timeValue[0] : timeValue\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 * @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 ref=\"picker\"\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: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 :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 v-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\" 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 30px 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__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-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"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import '../assets/NcDateTimePickerNative-BizATZfE.css';
2
+ import { defineComponent, mergeModels, useModel, computed, createElementBlock, openBlock, normalizeClass, createElementVNode, toDisplayString, mergeProps } from "vue";
3
+ import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
4
+ import { r as register, a as t } from "./_l10n-tXci8WM1.mjs";
5
+ import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
6
+ register();
7
+ const _hoisted_1 = ["for"];
8
+ const _hoisted_2 = ["id", "type", "value", "min", "max"];
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ ...{ inheritAttrs: false },
11
+ __name: "NcDateTimePickerNative",
12
+ props: /* @__PURE__ */ mergeModels({
13
+ class: { default: void 0 },
14
+ id: { default: () => createElementId() },
15
+ inputClass: { default: "" },
16
+ type: { default: "date" },
17
+ label: { default: () => t("Please choose a date") },
18
+ min: { default: null },
19
+ max: { default: null },
20
+ hideLabel: { type: Boolean }
21
+ }, {
22
+ "modelValue": { default: null },
23
+ "modelModifiers": {}
24
+ }),
25
+ emits: ["update:modelValue"],
26
+ setup(__props) {
27
+ const props = __props;
28
+ const modelValue = useModel(__props, "modelValue");
29
+ const formattedValue = computed(() => modelValue.value ? formatValue(modelValue.value) : "");
30
+ const formattedMax = computed(() => props.max ? formatValue(props.max) : void 0);
31
+ const formattedMin = computed(() => props.min ? formatValue(props.min) : void 0);
32
+ function getReadableDate(value) {
33
+ const yyyy = value.getFullYear().toString().padStart(4, "0");
34
+ const MM = (value.getMonth() + 1).toString().padStart(2, "0");
35
+ const dd = value.getDate().toString().padStart(2, "0");
36
+ const hh = value.getHours().toString().padStart(2, "0");
37
+ const mm = value.getMinutes().toString().padStart(2, "0");
38
+ return { yyyy, MM, dd, hh, mm };
39
+ }
40
+ function formatValue(value) {
41
+ const { yyyy, MM, dd, hh, mm } = getReadableDate(value);
42
+ if (props.type === "datetime-local") {
43
+ return `${yyyy}-${MM}-${dd}T${hh}:${mm}`;
44
+ } else if (props.type === "date") {
45
+ return `${yyyy}-${MM}-${dd}`;
46
+ } else if (props.type === "month") {
47
+ return `${yyyy}-${MM}`;
48
+ } else if (props.type === "time") {
49
+ return `${hh}:${mm}`;
50
+ } else if (props.type === "week") {
51
+ const startDate = new Date(Number.parseInt(yyyy), 0, 1);
52
+ const daysSinceBeginningOfYear = Math.floor((value.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1e3));
53
+ const weekNumber = Math.ceil(daysSinceBeginningOfYear / 7);
54
+ return `${yyyy}-W${weekNumber}`;
55
+ }
56
+ return "";
57
+ }
58
+ function onInput(event) {
59
+ const input = event.target;
60
+ if (!input || isNaN(input.valueAsNumber)) {
61
+ modelValue.value = null;
62
+ } else if (props.type === "time") {
63
+ const time = input.value;
64
+ const { yyyy, MM, dd } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());
65
+ modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${time}`);
66
+ } else if (props.type === "month") {
67
+ const MM = (new Date(input.value).getMonth() + 1).toString().padStart(2, "0");
68
+ const { yyyy, dd, hh, mm } = getReadableDate(modelValue.value || /* @__PURE__ */ new Date());
69
+ modelValue.value = /* @__PURE__ */ new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`);
70
+ } else {
71
+ const timezoneOffsetSeconds = new Date(input.valueAsNumber).getTimezoneOffset() * 1e3 * 60;
72
+ const inputDateWithTimezone = input.valueAsNumber + timezoneOffsetSeconds;
73
+ modelValue.value = new Date(inputDateWithTimezone);
74
+ }
75
+ }
76
+ return (_ctx, _cache) => {
77
+ return openBlock(), createElementBlock("div", {
78
+ class: normalizeClass(["native-datetime-picker", _ctx.$props.class])
79
+ }, [
80
+ createElementVNode("label", {
81
+ class: normalizeClass(["native-datetime-picker__label", { "hidden-visually": _ctx.hideLabel }]),
82
+ for: _ctx.id
83
+ }, toDisplayString(_ctx.label), 11, _hoisted_1),
84
+ createElementVNode("input", mergeProps({
85
+ id: _ctx.id,
86
+ class: ["native-datetime-picker__input", _ctx.inputClass],
87
+ type: _ctx.type,
88
+ value: formattedValue.value,
89
+ min: formattedMin.value,
90
+ max: formattedMax.value
91
+ }, _ctx.$attrs, { onInput }), null, 16, _hoisted_2)
92
+ ], 2);
93
+ };
94
+ }
95
+ });
96
+ const NcDateTimePickerNative = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5815f485"]]);
97
+ export {
98
+ NcDateTimePickerNative as N
99
+ };
100
+ //# sourceMappingURL=NcDateTimePickerNative-NVYPDSmf.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcDateTimePickerNative-NVYPDSmf.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 { createElementId } from '../../utils/createElementId.ts'\nimport { t } from '../../l10n.js'\n\ndefineOptions({ inheritAttrs: false })\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\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 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 class=\"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 :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-large) + 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAkGA,UAAM,QAAQ;AA6DR,UAAA,aAAaA,SAA0C,SAAA,YAAA;AAEvD,UAAA,iBAAiB,SAAS,MAAM,WAAW,QAAQ,YAAY,WAAW,KAAK,IAAI,EAAE;AACrF,UAAA,eAAe,SAAS,MAAM,MAAM,MAAM,YAAY,MAAM,GAAG,IAAI,MAAS;AAC5E,UAAA,eAAe,SAAS,MAAM,MAAM,MAAM,YAAY,MAAM,GAAG,IAAI,MAAS;AAOlF,aAAS,gBAAgB,OAAa;AAC/B,YAAA,OAAO,MAAM,YAAY,EAAE,WAAW,SAAS,GAAG,GAAG;AACrD,YAAA,MAAM,MAAM,SAAS,IAAI,GAAG,WAAW,SAAS,GAAG,GAAG;AACtD,YAAA,KAAK,MAAM,QAAQ,EAAE,WAAW,SAAS,GAAG,GAAG;AAC/C,YAAA,KAAK,MAAM,SAAS,EAAE,WAAW,SAAS,GAAG,GAAG;AAChD,YAAA,KAAK,MAAM,WAAW,EAAE,WAAW,SAAS,GAAG,GAAG;AAExD,aAAO,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG;AAAA,IAAA;AAQ/B,aAAS,YAAY,OAAqB;AACnC,YAAA,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,gBAAgB,KAAK;AAClD,UAAA,MAAM,SAAS,kBAAkB;AAC7B,eAAA,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAAA,MAAA,WAC5B,MAAM,SAAS,QAAQ;AACjC,eAAO,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE;AAAA,MAAA,WAChB,MAAM,SAAS,SAAS;AAC3B,eAAA,GAAG,IAAI,IAAI,EAAE;AAAA,MAAA,WACV,MAAM,SAAS,QAAQ;AAC1B,eAAA,GAAG,EAAE,IAAI,EAAE;AAAA,MAAA,WACR,MAAM,SAAS,QAAQ;AAC3B,cAAA,YAAY,IAAI,KAAK,OAAO,SAAS,IAAI,GAAG,GAAG,CAAC;AACtD,cAAM,2BAA2B,KAAK,OAAO,MAAM,QAAQ,IAAI,UAAU,QACrE,MAAA,KAAK,KAAK,KAAK,IAAK;AACxB,cAAM,aAAa,KAAK,KAAK,2BAA2B,CAAC;AAClD,eAAA,GAAG,IAAI,KAAK,UAAU;AAAA,MAAA;AAEvB,aAAA;AAAA,IAAA;AAQR,aAAS,QAAQ,OAAoB;AACpC,YAAM,QAAQ,MAAM;AACpB,UAAI,CAAC,SAAS,MAAM,MAAM,aAAa,GAAG;AACzC,mBAAW,QAAQ;AAAA,MAAA,WACT,MAAM,SAAS,QAAQ;AACjC,cAAM,OAAO,MAAM;AAEb,cAAA,EAAE,MAAM,IAAI,GAAG,IAAI,gBAAgB,WAAW,SAAa,oBAAA,MAAM;AAC5D,mBAAA,QAAY,oBAAA,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;AAAA,MAAA,WAC/C,MAAM,SAAS,SAAS;AAClC,cAAM,MAAM,IAAI,KAAK,MAAM,KAAK,EAAE,SAAS,IAAI,GAAG,SAAA,EAAW,SAAS,GAAG,GAAG;AACtE,cAAA,EAAE,MAAM,IAAI,IAAI,GAAA,IAAO,gBAAgB,WAAW,SAAa,oBAAA,MAAM;AAC3E,mBAAW,QAAQ,oBAAI,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;AAAA,MAAA,OACvD;AACA,cAAA,wBAAwB,IAAI,KAAK,MAAM,aAAa,EAAE,kBAAA,IAAsB,MAAO;AACnF,cAAA,wBAAwB,MAAM,gBAAgB;AACzC,mBAAA,QAAQ,IAAI,KAAK,qBAAqB;AAAA,MAAA;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;"}