@nova-design-system/nova-webcomponents 3.0.0-beta.41 → 3.0.0-beta.43

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 (524) hide show
  1. package/dist/cjs/_commonjsHelpers-b3309d7b.js +12 -0
  2. package/dist/cjs/_commonjsHelpers-b3309d7b.js.map +1 -0
  3. package/dist/cjs/{constants-79d2cdfc.js → constants-bcd6b2e2.js} +100 -2
  4. package/dist/cjs/constants-bcd6b2e2.js.map +1 -0
  5. package/dist/cjs/{index-5910ba06.js → index-9bda5507.js} +1364 -1182
  6. package/dist/cjs/index-9bda5507.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +1 -1
  8. package/dist/cjs/inputmask-76b7b93f.js +3763 -0
  9. package/dist/cjs/inputmask-76b7b93f.js.map +1 -0
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/native.cjs.js +3 -3
  12. package/dist/cjs/native.cjs.js.map +1 -1
  13. package/dist/cjs/nv-alert.cjs.entry.js +3 -3
  14. package/dist/cjs/nv-alert.cjs.entry.js.map +1 -1
  15. package/dist/cjs/nv-avatar.cjs.entry.js +3 -3
  16. package/dist/cjs/nv-avatar.cjs.entry.js.map +1 -1
  17. package/dist/cjs/nv-badge_2.cjs.entry.js +16 -5
  18. package/dist/cjs/nv-badge_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/nv-base.cjs.entry.js +2 -2
  20. package/dist/cjs/nv-breadcrumb.cjs.entry.js +2 -2
  21. package/dist/cjs/nv-breadcrumbs.cjs.entry.js +2 -2
  22. package/dist/cjs/nv-button.cjs.entry.js +3 -3
  23. package/dist/cjs/nv-calendar.cjs.entry.js +77 -22
  24. package/dist/cjs/nv-calendar.cjs.entry.js.map +1 -1
  25. package/dist/cjs/nv-col.cjs.entry.js +2 -2
  26. package/dist/cjs/nv-datagrid.cjs.entry.js +267 -5
  27. package/dist/cjs/nv-datagrid.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nv-datagridcolumn.cjs.entry.js +2 -2
  29. package/dist/cjs/nv-dialog.cjs.entry.js +15 -10
  30. package/dist/cjs/nv-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/nv-dialogfooter_2.cjs.entry.js +4 -4
  32. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js +6 -6
  33. package/dist/cjs/nv-fieldcheckbox.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nv-fielddate.cjs.entry.js +281 -0
  35. package/dist/cjs/nv-fielddate.cjs.entry.js.map +1 -0
  36. package/dist/cjs/nv-fielddaterange.cjs.entry.js +358 -0
  37. package/dist/cjs/nv-fielddaterange.cjs.entry.js.map +1 -0
  38. package/dist/cjs/nv-fielddropdown.cjs.entry.js +13 -24
  39. package/dist/cjs/nv-fielddropdown.cjs.entry.js.map +1 -1
  40. package/dist/cjs/nv-fielddropdownitem.cjs.entry.js +2 -2
  41. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js +22 -30
  42. package/dist/cjs/nv-fieldmultiselect.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nv-fieldnumber.cjs.entry.js +9 -6
  44. package/dist/cjs/nv-fieldnumber.cjs.entry.js.map +1 -1
  45. package/dist/cjs/nv-fieldpassword.cjs.entry.js +5 -13
  46. package/dist/cjs/nv-fieldpassword.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nv-fieldradio.cjs.entry.js +4 -4
  48. package/dist/cjs/nv-fieldradio.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nv-fieldselect.cjs.entry.js +7 -7
  50. package/dist/cjs/nv-fieldselect.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nv-fieldtext.cjs.entry.js +5 -5
  52. package/dist/cjs/nv-fieldtext.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nv-fieldtextarea.cjs.entry.js +4 -4
  54. package/dist/cjs/nv-fieldtextarea.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nv-fieldtime.cjs.entry.js +12 -12
  56. package/dist/cjs/nv-fieldtime.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nv-icon.cjs.entry.js +4 -4
  58. package/dist/cjs/nv-icon.cjs.entry.js.map +1 -1
  59. package/dist/cjs/{nv-iconbutton.cjs.entry.js → nv-iconbutton_2.cjs.entry.js} +44 -3
  60. package/dist/cjs/nv-iconbutton_2.cjs.entry.js.map +1 -0
  61. package/dist/cjs/nv-menu.cjs.entry.js +5 -5
  62. package/dist/cjs/nv-menu.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nv-menuitem.cjs.entry.js +5 -5
  64. package/dist/cjs/nv-menuitem.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nv-popover.cjs.entry.js +31 -18
  66. package/dist/cjs/nv-popover.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nv-row.cjs.entry.js +2 -2
  68. package/dist/cjs/nv-stack.cjs.entry.js +2 -2
  69. package/dist/cjs/nv-table.cjs.entry.js +3 -3
  70. package/dist/cjs/nv-tablecolumn.cjs.entry.js +1 -1
  71. package/dist/cjs/nv-toggle.cjs.entry.js +3 -3
  72. package/dist/cjs/nv-toggle.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nv-tooltip.cjs.entry.js +3 -3
  74. package/dist/cjs/nv-tooltip.cjs.entry.js.map +1 -1
  75. package/dist/collection/collection-manifest.json +4 -2
  76. package/dist/collection/components/nv-alert/nv-alert.js +2 -2
  77. package/dist/collection/components/nv-alert/nv-alert.js.map +1 -1
  78. package/dist/collection/components/nv-avatar/nv-avatar.js +8 -8
  79. package/dist/collection/components/nv-avatar/nv-avatar.js.map +1 -1
  80. package/dist/collection/components/nv-badge/nv-badge.js +4 -4
  81. package/dist/collection/components/nv-badge/nv-badge.js.map +1 -1
  82. package/dist/collection/components/nv-base/nv-base.js +1 -1
  83. package/dist/collection/components/nv-breadcrumb/nv-breadcrumb.js +1 -1
  84. package/dist/collection/components/nv-breadcrumbs/nv-breadcrumbs.js +1 -1
  85. package/dist/collection/components/nv-button/nv-button.js +1 -1
  86. package/dist/collection/components/nv-calendar/nv-calendar.css +13 -8
  87. package/dist/collection/components/nv-calendar/nv-calendar.js +82 -24
  88. package/dist/collection/components/nv-calendar/nv-calendar.js.map +1 -1
  89. package/dist/collection/components/nv-col/nv-col.js +1 -1
  90. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js +24 -0
  91. package/dist/collection/components/nv-datagrid/nv-datagrid.docs.js.map +1 -1
  92. package/dist/collection/components/nv-datagrid/nv-datagrid.js +89 -6
  93. package/dist/collection/components/nv-datagrid/nv-datagrid.js.map +1 -1
  94. package/dist/collection/components/nv-datagridcolumn/nv-datagridcolumn.js +1 -1
  95. package/dist/collection/components/nv-dialog/nv-dialog.js +13 -8
  96. package/dist/collection/components/nv-dialog/nv-dialog.js.map +1 -1
  97. package/dist/collection/components/nv-dialogfooter/nv-dialogfooter.js +1 -1
  98. package/dist/collection/components/nv-dialogheader/nv-dialogheader.js +1 -1
  99. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.css +56 -40
  100. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js +7 -7
  101. package/dist/collection/components/nv-fieldcheckbox/nv-fieldcheckbox.js.map +1 -1
  102. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js +335 -0
  103. package/dist/collection/components/nv-fielddate/nv-fielddate.docs.js.map +1 -0
  104. package/dist/collection/components/nv-fielddate/nv-fielddate.js +845 -0
  105. package/dist/collection/components/nv-fielddate/nv-fielddate.js.map +1 -0
  106. package/dist/collection/components/nv-fielddate/styles/nv-fielddate.css +165 -0
  107. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js +284 -0
  108. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.docs.js.map +1 -0
  109. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js +988 -0
  110. package/dist/collection/components/nv-fielddaterange/nv-fielddaterange.js.map +1 -0
  111. package/dist/collection/components/nv-fielddaterange/styles/nv-fielddaterange.css +192 -0
  112. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js +11 -22
  113. package/dist/collection/components/nv-fielddropdown/nv-fielddropdown.js.map +1 -1
  114. package/dist/collection/components/nv-fielddropdown/styles/nv-fielddropdown.css +14 -16
  115. package/dist/collection/components/nv-fielddropdownitem/nv-fielddropdownitem.js +1 -1
  116. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.css +1 -0
  117. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js +12 -1
  118. package/dist/collection/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.js.map +1 -1
  119. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.css +22 -24
  120. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js +1 -4
  121. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.docs.js.map +1 -1
  122. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js +19 -48
  123. package/dist/collection/components/nv-fieldmultiselect/nv-fieldmultiselect.js.map +1 -1
  124. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.css +17 -21
  125. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js +1 -1
  126. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.docs.js.map +1 -1
  127. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js +9 -6
  128. package/dist/collection/components/nv-fieldnumber/nv-fieldnumber.js.map +1 -1
  129. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.css +9 -10
  130. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js +1 -1
  131. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.docs.js.map +1 -1
  132. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js +3 -11
  133. package/dist/collection/components/nv-fieldpassword/nv-fieldpassword.js.map +1 -1
  134. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js +5 -5
  135. package/dist/collection/components/nv-fieldradio/nv-fieldradio.js.map +1 -1
  136. package/dist/collection/components/nv-fieldselect/nv-fieldselect.css +30 -15
  137. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js +8 -8
  138. package/dist/collection/components/nv-fieldselect/nv-fieldselect.js.map +1 -1
  139. package/dist/collection/components/nv-fieldtext/nv-fieldtext.css +15 -16
  140. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js +1 -1
  141. package/dist/collection/components/nv-fieldtext/nv-fieldtext.docs.js.map +1 -1
  142. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js +6 -6
  143. package/dist/collection/components/nv-fieldtext/nv-fieldtext.js.map +1 -1
  144. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js +5 -5
  145. package/dist/collection/components/nv-fieldtextarea/nv-fieldtextarea.js.map +1 -1
  146. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js +11 -11
  147. package/dist/collection/components/nv-fieldtime/nv-fieldtime.js.map +1 -1
  148. package/dist/collection/components/nv-fieldtime/{nv-fieldtime.css → styles/nv-fieldtime.css} +20 -32
  149. package/dist/collection/components/nv-icon/nv-icon.js +8 -8
  150. package/dist/collection/components/nv-icon/nv-icon.js.map +1 -1
  151. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js +31 -1
  152. package/dist/collection/components/nv-iconbutton/nv-iconbutton.js.map +1 -1
  153. package/dist/collection/components/nv-loader/nv-loader.js +1 -1
  154. package/dist/collection/components/nv-menu/nv-menu.css +3 -0
  155. package/dist/collection/components/nv-menu/nv-menu.docs.js +6 -6
  156. package/dist/collection/components/nv-menu/nv-menu.docs.js.map +1 -1
  157. package/dist/collection/components/nv-menu/nv-menu.js +11 -12
  158. package/dist/collection/components/nv-menu/nv-menu.js.map +1 -1
  159. package/dist/collection/components/nv-menuitem/nv-menuitem.css +3 -0
  160. package/dist/collection/components/nv-menuitem/nv-menuitem.js +27 -9
  161. package/dist/collection/components/nv-menuitem/nv-menuitem.js.map +1 -1
  162. package/dist/collection/components/nv-popover/nv-popover.css +5 -5
  163. package/dist/collection/components/nv-popover/nv-popover.docs.js +3 -3
  164. package/dist/collection/components/nv-popover/nv-popover.docs.js.map +1 -1
  165. package/dist/collection/components/nv-popover/nv-popover.js +38 -37
  166. package/dist/collection/components/nv-popover/nv-popover.js.map +1 -1
  167. package/dist/collection/components/nv-row/nv-row.js +1 -1
  168. package/dist/collection/components/nv-stack/nv-stack.js +1 -1
  169. package/dist/collection/components/nv-table/nv-table.js +2 -2
  170. package/dist/collection/components/nv-toggle/nv-toggle.js +9 -9
  171. package/dist/collection/components/nv-toggle/nv-toggle.js.map +1 -1
  172. package/dist/collection/components/nv-tooltip/nv-tooltip.css +1 -1
  173. package/dist/collection/components/nv-tooltip/nv-tooltip.js +4 -4
  174. package/dist/collection/components/nv-tooltip/nv-tooltip.js.map +1 -1
  175. package/dist/collection/utils/constants.js +94 -0
  176. package/dist/collection/utils/constants.js.map +1 -1
  177. package/dist/collection/utils/input.utils.js +20 -0
  178. package/dist/collection/utils/input.utils.js.map +1 -0
  179. package/dist/collection/utils/test/input.utils.test.js +42 -0
  180. package/dist/collection/utils/test/input.utils.test.js.map +1 -0
  181. package/dist/components/index.js +2 -2
  182. package/dist/components/nv-alert.js +5 -5
  183. package/dist/components/nv-alert.js.map +1 -1
  184. package/dist/components/nv-avatar.js +11 -11
  185. package/dist/components/nv-avatar.js.map +1 -1
  186. package/dist/components/nv-badge.js +1 -1
  187. package/dist/components/nv-base.js +2 -2
  188. package/dist/components/nv-breadcrumb.js +4 -4
  189. package/dist/components/nv-breadcrumbs.js +2 -2
  190. package/dist/components/nv-button.js +1 -1
  191. package/dist/components/nv-calendar.js +1 -1039
  192. package/dist/components/nv-calendar.js.map +1 -1
  193. package/dist/components/nv-col.js +2 -2
  194. package/dist/components/nv-datagrid.js +272 -7
  195. package/dist/components/nv-datagrid.js.map +1 -1
  196. package/dist/components/nv-datagridcolumn.js +2 -2
  197. package/dist/components/nv-dialog.js +20 -15
  198. package/dist/components/nv-dialog.js.map +1 -1
  199. package/dist/components/nv-dialogfooter.js +1 -1
  200. package/dist/components/nv-dialogheader.js +1 -1
  201. package/dist/components/nv-fieldcheckbox.js +1 -1
  202. package/dist/components/nv-fielddate.d.ts +11 -0
  203. package/dist/components/nv-fielddate.js +359 -0
  204. package/dist/components/nv-fielddate.js.map +1 -0
  205. package/dist/components/nv-fielddaterange.d.ts +11 -0
  206. package/dist/components/nv-fielddaterange.js +440 -0
  207. package/dist/components/nv-fielddaterange.js.map +1 -0
  208. package/dist/components/nv-fielddropdown.js +18 -29
  209. package/dist/components/nv-fielddropdown.js.map +1 -1
  210. package/dist/components/nv-fielddropdownitem.js +1 -1
  211. package/dist/components/nv-fielddropdownitemcheck.js +1 -1
  212. package/dist/components/nv-fieldmultiselect.js +30 -40
  213. package/dist/components/nv-fieldmultiselect.js.map +1 -1
  214. package/dist/components/nv-fieldnumber.js +25 -10
  215. package/dist/components/nv-fieldnumber.js.map +1 -1
  216. package/dist/components/nv-fieldpassword.js +8 -16
  217. package/dist/components/nv-fieldpassword.js.map +1 -1
  218. package/dist/components/nv-fieldradio.js +6 -6
  219. package/dist/components/nv-fieldradio.js.map +1 -1
  220. package/dist/components/nv-fieldselect.js +24 -12
  221. package/dist/components/nv-fieldselect.js.map +1 -1
  222. package/dist/components/nv-fieldtext.js +9 -9
  223. package/dist/components/nv-fieldtext.js.map +1 -1
  224. package/dist/components/nv-fieldtextarea.js +6 -6
  225. package/dist/components/nv-fieldtextarea.js.map +1 -1
  226. package/dist/components/nv-fieldtime.js +16 -16
  227. package/dist/components/nv-fieldtime.js.map +1 -1
  228. package/dist/components/nv-icon.js +1 -1
  229. package/dist/components/nv-iconbutton.js +1 -1
  230. package/dist/components/nv-loader.js +1 -1
  231. package/dist/components/nv-menu.js +12 -12
  232. package/dist/components/nv-menu.js.map +1 -1
  233. package/dist/components/nv-menuitem.js +1 -1
  234. package/dist/components/nv-popover.js +1 -1
  235. package/dist/components/nv-row.js +2 -2
  236. package/dist/components/nv-stack.js +2 -2
  237. package/dist/components/nv-table.js +3 -3
  238. package/dist/components/nv-tablecolumn.js +1 -1
  239. package/dist/components/nv-toggle.js +10 -10
  240. package/dist/components/nv-toggle.js.map +1 -1
  241. package/dist/components/nv-tooltip.js +1 -1
  242. package/dist/components/{p-d17558a8.js → p-057ae4f2.js} +41 -1201
  243. package/dist/components/p-057ae4f2.js.map +1 -0
  244. package/dist/components/{p-ba145f46.js → p-1a4f9c97.js} +5 -5
  245. package/dist/components/{p-ba145f46.js.map → p-1a4f9c97.js.map} +1 -1
  246. package/dist/components/{p-77d0fedc.js → p-1c45c0f2.js} +1283 -1208
  247. package/dist/components/p-1c45c0f2.js.map +1 -0
  248. package/dist/components/{p-11cc38e0.js → p-1e095bba.js} +21 -6
  249. package/dist/components/p-1e095bba.js.map +1 -0
  250. package/dist/components/{p-4bb5eb79.js → p-1fad2529.js} +16 -5
  251. package/dist/components/p-1fad2529.js.map +1 -0
  252. package/dist/components/{p-f201db34.js → p-3a3ba5b1.js} +3 -3
  253. package/dist/components/{p-f201db34.js.map → p-3a3ba5b1.js.map} +1 -1
  254. package/dist/components/p-3aa6f6dc.js +1104 -0
  255. package/dist/components/p-3aa6f6dc.js.map +1 -0
  256. package/dist/components/{p-69543282.js → p-4c6ba63c.js} +8 -7
  257. package/dist/components/p-4c6ba63c.js.map +1 -0
  258. package/dist/components/{p-a633892a.js → p-4c6d8df7.js} +3 -3
  259. package/dist/components/{p-a633892a.js.map → p-4c6d8df7.js.map} +1 -1
  260. package/dist/components/p-55202370.js +172 -0
  261. package/dist/components/p-55202370.js.map +1 -0
  262. package/dist/components/{p-1657eba4.js → p-56716b97.js} +7 -7
  263. package/dist/components/{p-1657eba4.js.map → p-56716b97.js.map} +1 -1
  264. package/dist/components/{p-33f9bdb1.js → p-7f142767.js} +7 -7
  265. package/dist/components/{p-33f9bdb1.js.map → p-7f142767.js.map} +1 -1
  266. package/dist/components/{p-b316c35d.js → p-8348db09.js} +99 -3
  267. package/dist/components/p-8348db09.js.map +1 -0
  268. package/dist/components/p-89fb308b.js +3761 -0
  269. package/dist/components/p-89fb308b.js.map +1 -0
  270. package/dist/components/{p-4b184820.js → p-9476354d.js} +4 -4
  271. package/dist/components/{p-4b184820.js.map → p-9476354d.js.map} +1 -1
  272. package/dist/components/{p-fad78896.js → p-a8b5969f.js} +8 -8
  273. package/dist/components/p-a8b5969f.js.map +1 -0
  274. package/dist/components/{p-f77c3072.js → p-ebf24fd0.js} +11 -11
  275. package/dist/components/p-ebf24fd0.js.map +1 -0
  276. package/dist/docs.json +1822 -151
  277. package/dist/esm/_commonjsHelpers-1789f0cf.js +9 -0
  278. package/dist/esm/_commonjsHelpers-1789f0cf.js.map +1 -0
  279. package/dist/esm/{constants-75e6d7f0.js → constants-98e2dcc2.js} +99 -3
  280. package/dist/esm/constants-98e2dcc2.js.map +1 -0
  281. package/dist/esm/{index-fac2d5d2.js → index-1fb7a9a6.js} +1364 -1182
  282. package/dist/esm/index-1fb7a9a6.js.map +1 -0
  283. package/dist/esm/index.js +1 -1
  284. package/dist/esm/inputmask-edcad3c1.js +3761 -0
  285. package/dist/esm/inputmask-edcad3c1.js.map +1 -0
  286. package/dist/esm/loader.js +3 -3
  287. package/dist/esm/native.js +4 -4
  288. package/dist/esm/native.js.map +1 -1
  289. package/dist/esm/nv-alert.entry.js +3 -3
  290. package/dist/esm/nv-alert.entry.js.map +1 -1
  291. package/dist/esm/nv-avatar.entry.js +3 -3
  292. package/dist/esm/nv-avatar.entry.js.map +1 -1
  293. package/dist/esm/nv-badge_2.entry.js +16 -5
  294. package/dist/esm/nv-badge_2.entry.js.map +1 -1
  295. package/dist/esm/nv-base.entry.js +2 -2
  296. package/dist/esm/nv-breadcrumb.entry.js +2 -2
  297. package/dist/esm/nv-breadcrumbs.entry.js +2 -2
  298. package/dist/esm/nv-button.entry.js +3 -3
  299. package/dist/esm/nv-calendar.entry.js +73 -18
  300. package/dist/esm/nv-calendar.entry.js.map +1 -1
  301. package/dist/esm/nv-col.entry.js +2 -2
  302. package/dist/esm/nv-datagrid.entry.js +267 -5
  303. package/dist/esm/nv-datagrid.entry.js.map +1 -1
  304. package/dist/esm/nv-datagridcolumn.entry.js +2 -2
  305. package/dist/esm/nv-dialog.entry.js +15 -10
  306. package/dist/esm/nv-dialog.entry.js.map +1 -1
  307. package/dist/esm/nv-dialogfooter_2.entry.js +4 -4
  308. package/dist/esm/nv-fieldcheckbox.entry.js +6 -6
  309. package/dist/esm/nv-fieldcheckbox.entry.js.map +1 -1
  310. package/dist/esm/nv-fielddate.entry.js +277 -0
  311. package/dist/esm/nv-fielddate.entry.js.map +1 -0
  312. package/dist/esm/nv-fielddaterange.entry.js +354 -0
  313. package/dist/esm/nv-fielddaterange.entry.js.map +1 -0
  314. package/dist/esm/nv-fielddropdown.entry.js +13 -24
  315. package/dist/esm/nv-fielddropdown.entry.js.map +1 -1
  316. package/dist/esm/nv-fielddropdownitem.entry.js +2 -2
  317. package/dist/esm/nv-fieldmultiselect.entry.js +22 -30
  318. package/dist/esm/nv-fieldmultiselect.entry.js.map +1 -1
  319. package/dist/esm/nv-fieldnumber.entry.js +9 -6
  320. package/dist/esm/nv-fieldnumber.entry.js.map +1 -1
  321. package/dist/esm/nv-fieldpassword.entry.js +5 -13
  322. package/dist/esm/nv-fieldpassword.entry.js.map +1 -1
  323. package/dist/esm/nv-fieldradio.entry.js +4 -4
  324. package/dist/esm/nv-fieldradio.entry.js.map +1 -1
  325. package/dist/esm/nv-fieldselect.entry.js +7 -7
  326. package/dist/esm/nv-fieldselect.entry.js.map +1 -1
  327. package/dist/esm/nv-fieldtext.entry.js +5 -5
  328. package/dist/esm/nv-fieldtext.entry.js.map +1 -1
  329. package/dist/esm/nv-fieldtextarea.entry.js +4 -4
  330. package/dist/esm/nv-fieldtextarea.entry.js.map +1 -1
  331. package/dist/esm/nv-fieldtime.entry.js +12 -12
  332. package/dist/esm/nv-fieldtime.entry.js.map +1 -1
  333. package/dist/esm/nv-icon.entry.js +4 -4
  334. package/dist/esm/nv-icon.entry.js.map +1 -1
  335. package/dist/esm/{nv-iconbutton.entry.js → nv-iconbutton_2.entry.js} +44 -4
  336. package/dist/esm/nv-iconbutton_2.entry.js.map +1 -0
  337. package/dist/esm/nv-menu.entry.js +5 -5
  338. package/dist/esm/nv-menu.entry.js.map +1 -1
  339. package/dist/esm/nv-menuitem.entry.js +5 -5
  340. package/dist/esm/nv-menuitem.entry.js.map +1 -1
  341. package/dist/esm/nv-popover.entry.js +31 -18
  342. package/dist/esm/nv-popover.entry.js.map +1 -1
  343. package/dist/esm/nv-row.entry.js +2 -2
  344. package/dist/esm/nv-stack.entry.js +2 -2
  345. package/dist/esm/nv-table.entry.js +3 -3
  346. package/dist/esm/nv-tablecolumn.entry.js +1 -1
  347. package/dist/esm/nv-toggle.entry.js +3 -3
  348. package/dist/esm/nv-toggle.entry.js.map +1 -1
  349. package/dist/esm/nv-tooltip.entry.js +3 -3
  350. package/dist/esm/nv-tooltip.entry.js.map +1 -1
  351. package/dist/native/index.esm.js +1 -1
  352. package/dist/native/native.esm.js +1 -1
  353. package/dist/native/native.esm.js.map +1 -1
  354. package/dist/native/p-0462f723.js +2 -0
  355. package/dist/native/p-0462f723.js.map +1 -0
  356. package/dist/native/{p-8664ab16.entry.js → p-048486e0.entry.js} +3 -3
  357. package/dist/native/p-048486e0.entry.js.map +1 -0
  358. package/dist/native/{p-fca807b4.entry.js → p-04c6048a.entry.js} +3 -3
  359. package/dist/native/{p-fca807b4.entry.js.map → p-04c6048a.entry.js.map} +1 -1
  360. package/dist/native/p-1a46cb52.entry.js +2 -0
  361. package/dist/native/p-2281d5ef.entry.js +2 -0
  362. package/dist/native/p-2281d5ef.entry.js.map +1 -0
  363. package/dist/native/p-22a45102.entry.js +2 -0
  364. package/dist/native/p-22a45102.entry.js.map +1 -0
  365. package/dist/native/p-2ed540e3.entry.js +2 -0
  366. package/dist/native/p-2ed540e3.entry.js.map +1 -0
  367. package/dist/native/p-31184fdd.entry.js +2 -0
  368. package/dist/native/p-31184fdd.entry.js.map +1 -0
  369. package/dist/native/p-314d2b34.entry.js +2 -0
  370. package/dist/native/p-314d2b34.entry.js.map +1 -0
  371. package/dist/native/p-332c5d6c.entry.js +2 -0
  372. package/dist/native/p-332c5d6c.entry.js.map +1 -0
  373. package/dist/native/p-3af5bcc1.entry.js +2 -0
  374. package/dist/native/p-3af5bcc1.entry.js.map +1 -0
  375. package/dist/native/{p-e36e956b.entry.js → p-442f04f9.entry.js} +2 -2
  376. package/dist/native/{p-af60740c.entry.js → p-45577c7f.entry.js} +2 -2
  377. package/dist/native/p-45577c7f.entry.js.map +1 -0
  378. package/dist/native/p-464ef88f.entry.js +2 -0
  379. package/dist/native/p-464ef88f.entry.js.map +1 -0
  380. package/dist/native/p-46aa1136.entry.js +2 -0
  381. package/dist/native/{p-27ad7af2.entry.js → p-4a440970.entry.js} +2 -2
  382. package/dist/native/p-4a440970.entry.js.map +1 -0
  383. package/dist/native/p-4dc1d036.entry.js +2 -0
  384. package/dist/native/{p-e9e77494.entry.js → p-514101d6.entry.js} +2 -2
  385. package/dist/native/p-514101d6.entry.js.map +1 -0
  386. package/dist/native/p-53aa81dd.js +10 -0
  387. package/dist/native/p-53aa81dd.js.map +1 -0
  388. package/dist/native/{p-1a3d2a74.entry.js → p-56e98443.entry.js} +2 -2
  389. package/dist/native/p-56e98443.entry.js.map +1 -0
  390. package/dist/native/{p-b316c35d.js → p-59768ee5.js} +2 -2
  391. package/dist/native/p-59768ee5.js.map +1 -0
  392. package/dist/native/{p-edee1c1f.entry.js → p-62df7dd4.entry.js} +2 -2
  393. package/dist/native/p-665db087.entry.js +2 -0
  394. package/dist/native/p-68b5a92c.entry.js +2 -0
  395. package/dist/native/{p-b58c661b.entry.js → p-6a629671.entry.js} +2 -2
  396. package/dist/native/p-7fade532.entry.js +2 -0
  397. package/dist/native/p-7fade532.entry.js.map +1 -0
  398. package/dist/native/p-913907fb.entry.js +2 -0
  399. package/dist/native/p-913907fb.entry.js.map +1 -0
  400. package/dist/native/p-942f8e92.entry.js +2 -0
  401. package/dist/native/p-942f8e92.entry.js.map +1 -0
  402. package/dist/native/p-9f5e4dfc.entry.js +2 -0
  403. package/dist/native/p-9f5e4dfc.entry.js.map +1 -0
  404. package/dist/native/p-ab002252.js +3 -0
  405. package/dist/native/p-ab002252.js.map +1 -0
  406. package/dist/native/{p-fde56f9c.entry.js → p-ab84ff42.entry.js} +2 -2
  407. package/dist/native/{p-fde56f9c.entry.js.map → p-ab84ff42.entry.js.map} +1 -1
  408. package/dist/native/{p-487b81bd.entry.js → p-b052f1cb.entry.js} +2 -2
  409. package/dist/native/{p-9795090f.entry.js → p-bdabd495.entry.js} +2 -2
  410. package/dist/native/p-bdabd495.entry.js.map +1 -0
  411. package/dist/native/p-be4fc827.entry.js +2 -0
  412. package/dist/native/p-be4fc827.entry.js.map +1 -0
  413. package/dist/native/{p-184cd119.entry.js → p-c10e5113.entry.js} +2 -2
  414. package/dist/native/{p-491f4605.entry.js → p-d5cbf5c8.entry.js} +2 -2
  415. package/dist/native/{p-491f4605.entry.js.map → p-d5cbf5c8.entry.js.map} +1 -1
  416. package/dist/native/{p-69fb1c9d.entry.js → p-db2902d6.entry.js} +2 -2
  417. package/dist/native/p-ecc28398.entry.js +2 -0
  418. package/dist/native/p-ecc28398.entry.js.map +1 -0
  419. package/dist/native/p-ed595c96.entry.js +2 -0
  420. package/dist/native/p-ed595c96.entry.js.map +1 -0
  421. package/dist/native/p-f5e0d5c5.entry.js +2 -0
  422. package/dist/native/p-f5e0d5c5.entry.js.map +1 -0
  423. package/dist/native/p-f89b7d06.entry.js +2 -0
  424. package/dist/types/components/nv-calendar/nv-calendar.d.ts +7 -0
  425. package/dist/types/components/nv-datagrid/nv-datagrid.d.ts +21 -0
  426. package/dist/types/components/nv-dialog/nv-dialog.d.ts +1 -0
  427. package/dist/types/components/nv-fielddate/nv-fielddate.d.ts +192 -0
  428. package/dist/types/components/nv-fielddate/nv-fielddate.docs.d.ts +4 -0
  429. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.d.ts +206 -0
  430. package/dist/types/components/nv-fielddaterange/nv-fielddaterange.docs.d.ts +4 -0
  431. package/dist/types/components/nv-fielddropdown/nv-fielddropdown.d.ts +1 -3
  432. package/dist/types/components/nv-fielddropdownitemcheck/nv-fielddropdownitemcheck.d.ts +2 -0
  433. package/dist/types/components/nv-fieldmultiselect/nv-fieldmultiselect.d.ts +1 -11
  434. package/dist/types/components/nv-fieldnumber/nv-fieldnumber.d.ts +1 -0
  435. package/dist/types/components/nv-fieldpassword/nv-fieldpassword.d.ts +0 -1
  436. package/dist/types/components/nv-iconbutton/nv-iconbutton.d.ts +3 -0
  437. package/dist/types/components/nv-menu/nv-menu.d.ts +2 -3
  438. package/dist/types/components/nv-menuitem/nv-menuitem.d.ts +20 -16
  439. package/dist/types/components/nv-popover/nv-popover.d.ts +7 -4
  440. package/dist/types/components.d.ts +2344 -974
  441. package/dist/types/utils/constants.d.ts +6 -0
  442. package/dist/types/utils/input.utils.d.ts +8 -0
  443. package/dist/types/utils/test/input.utils.test.d.ts +1 -0
  444. package/hydrate/index.d.ts +22 -5
  445. package/hydrate/index.js +6403 -1242
  446. package/hydrate/index.mjs +6403 -1242
  447. package/package.json +7 -3
  448. package/dist/cjs/constants-79d2cdfc.js.map +0 -1
  449. package/dist/cjs/index-5910ba06.js.map +0 -1
  450. package/dist/cjs/nv-iconbutton.cjs.entry.js.map +0 -1
  451. package/dist/cjs/nv-loader.cjs.entry.js +0 -35
  452. package/dist/cjs/nv-loader.cjs.entry.js.map +0 -1
  453. package/dist/components/p-11cc38e0.js.map +0 -1
  454. package/dist/components/p-4bb5eb79.js.map +0 -1
  455. package/dist/components/p-69543282.js.map +0 -1
  456. package/dist/components/p-77d0fedc.js.map +0 -1
  457. package/dist/components/p-96605453.js +0 -172
  458. package/dist/components/p-96605453.js.map +0 -1
  459. package/dist/components/p-b316c35d.js.map +0 -1
  460. package/dist/components/p-d17558a8.js.map +0 -1
  461. package/dist/components/p-f77c3072.js.map +0 -1
  462. package/dist/components/p-fad78896.js.map +0 -1
  463. package/dist/esm/constants-75e6d7f0.js.map +0 -1
  464. package/dist/esm/index-fac2d5d2.js.map +0 -1
  465. package/dist/esm/nv-iconbutton.entry.js.map +0 -1
  466. package/dist/esm/nv-loader.entry.js +0 -31
  467. package/dist/esm/nv-loader.entry.js.map +0 -1
  468. package/dist/native/p-0a2a9f8b.entry.js +0 -2
  469. package/dist/native/p-0a2a9f8b.entry.js.map +0 -1
  470. package/dist/native/p-12d08abc.entry.js +0 -2
  471. package/dist/native/p-12d08abc.entry.js.map +0 -1
  472. package/dist/native/p-15be3d96.entry.js +0 -2
  473. package/dist/native/p-15be3d96.entry.js.map +0 -1
  474. package/dist/native/p-1a3d2a74.entry.js.map +0 -1
  475. package/dist/native/p-27ad7af2.entry.js.map +0 -1
  476. package/dist/native/p-2b2a10f9.entry.js +0 -2
  477. package/dist/native/p-2b2a10f9.entry.js.map +0 -1
  478. package/dist/native/p-359f0f53.entry.js +0 -2
  479. package/dist/native/p-359f0f53.entry.js.map +0 -1
  480. package/dist/native/p-3b65037c.entry.js +0 -2
  481. package/dist/native/p-3be2c9a1.entry.js +0 -2
  482. package/dist/native/p-4283f375.entry.js +0 -2
  483. package/dist/native/p-5439afb8.js +0 -3
  484. package/dist/native/p-5439afb8.js.map +0 -1
  485. package/dist/native/p-554f7b44.entry.js +0 -2
  486. package/dist/native/p-554f7b44.entry.js.map +0 -1
  487. package/dist/native/p-729c9d45.entry.js +0 -2
  488. package/dist/native/p-729c9d45.entry.js.map +0 -1
  489. package/dist/native/p-78f08578.entry.js +0 -2
  490. package/dist/native/p-78f08578.entry.js.map +0 -1
  491. package/dist/native/p-8664ab16.entry.js.map +0 -1
  492. package/dist/native/p-87bd53df.entry.js +0 -2
  493. package/dist/native/p-87bd53df.entry.js.map +0 -1
  494. package/dist/native/p-8d6516a3.entry.js +0 -2
  495. package/dist/native/p-8d6516a3.entry.js.map +0 -1
  496. package/dist/native/p-951baf95.entry.js +0 -2
  497. package/dist/native/p-9795090f.entry.js.map +0 -1
  498. package/dist/native/p-af60740c.entry.js.map +0 -1
  499. package/dist/native/p-b316c35d.js.map +0 -1
  500. package/dist/native/p-b7bc918b.entry.js +0 -2
  501. package/dist/native/p-cda56476.entry.js +0 -2
  502. package/dist/native/p-cda56476.entry.js.map +0 -1
  503. package/dist/native/p-d1bf4d77.entry.js +0 -2
  504. package/dist/native/p-d7665a07.entry.js +0 -2
  505. package/dist/native/p-d7665a07.entry.js.map +0 -1
  506. package/dist/native/p-daeb7e22.entry.js +0 -2
  507. package/dist/native/p-daeb7e22.entry.js.map +0 -1
  508. package/dist/native/p-e9e77494.entry.js.map +0 -1
  509. package/dist/native/p-f1585fc2.entry.js +0 -2
  510. package/dist/native/p-f1585fc2.entry.js.map +0 -1
  511. package/dist/native/p-f3579407.entry.js +0 -2
  512. package/dist/native/p-f3579407.entry.js.map +0 -1
  513. /package/dist/native/{p-3be2c9a1.entry.js.map → p-1a46cb52.entry.js.map} +0 -0
  514. /package/dist/native/{p-e36e956b.entry.js.map → p-442f04f9.entry.js.map} +0 -0
  515. /package/dist/native/{p-d1bf4d77.entry.js.map → p-46aa1136.entry.js.map} +0 -0
  516. /package/dist/native/{p-4283f375.entry.js.map → p-4dc1d036.entry.js.map} +0 -0
  517. /package/dist/native/{p-edee1c1f.entry.js.map → p-62df7dd4.entry.js.map} +0 -0
  518. /package/dist/native/{p-951baf95.entry.js.map → p-665db087.entry.js.map} +0 -0
  519. /package/dist/native/{p-b7bc918b.entry.js.map → p-68b5a92c.entry.js.map} +0 -0
  520. /package/dist/native/{p-b58c661b.entry.js.map → p-6a629671.entry.js.map} +0 -0
  521. /package/dist/native/{p-487b81bd.entry.js.map → p-b052f1cb.entry.js.map} +0 -0
  522. /package/dist/native/{p-184cd119.entry.js.map → p-c10e5113.entry.js.map} +0 -0
  523. /package/dist/native/{p-69fb1c9d.entry.js.map → p-db2902d6.entry.js.map} +0 -0
  524. /package/dist/native/{p-3b65037c.entry.js.map → p-f89b7d06.entry.js.map} +0 -0
@@ -1,1042 +1,4 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-77d0fedc.js';
2
- import { W as WEEK_ABBREVIATIONS } from './p-b316c35d.js';
3
- import { d as defineCustomElement$5 } from './p-ba145f46.js';
4
- import { d as defineCustomElement$4 } from './p-f77c3072.js';
5
- import { d as defineCustomElement$3 } from './p-11cc38e0.js';
6
- import { d as defineCustomElement$2 } from './p-f201db34.js';
7
-
8
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
9
-
10
- var dayjs_min = {exports: {}};
11
-
12
- (function (module, exports) {
13
- !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0;}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return b},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g;}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
14
- }(dayjs_min));
15
-
16
- const dayjs = dayjs_min.exports;
17
-
18
- var customParseFormat$1 = {exports: {}};
19
-
20
- (function (module, exports) {
21
- !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,o=/\d*[^-_:/,()\s\d]+/,s={},a=function(e){return (e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t;}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e);}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},c={A:[o,function(e){this.afternoon=d(e,!1);}],a:[o,function(e){this.afternoon=d(e,!0);}],Q:[n,function(e){this.month=3*(e-1)+1;}],S:[n,function(e){this.milliseconds=100*+e;}],SS:[r,function(e){this.milliseconds=10*+e;}],SSS:[/\d{3}/,function(e){this.milliseconds=+e;}],s:[i,f("seconds")],ss:[i,f("seconds")],m:[i,f("minutes")],mm:[i,f("minutes")],H:[i,f("hours")],h:[i,f("hours")],HH:[i,f("hours")],hh:[i,f("hours")],D:[i,f("day")],DD:[r,f("day")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r);}],w:[i,f("week")],ww:[r,f("week")],M:[i,f("month")],MM:[r,f("month")],MMM:[o,function(e){var t=u("months"),n=(u("monthsShort")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n;}],MMMM:[o,function(e){var t=u("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t;}],Y:[/[+-]?\d+/,f("year")],YY:[r,function(e){this.year=a(e);}],YYYY:[/\d{4}/,f("year")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f<a;f+=1){var h=o[f],u=c[h],d=u&&u[0],l=u&&u[1];o[f]=l?{regex:d,parser:l}:h.replace(/^\[|\]$/g,"");}return function(e){for(var t={},n=0,r=0;n<a;n+=1){var i=o[n];if("string"==typeof i)r+=i.length;else {var s=i.regex,f=i.parser,h=e.slice(r),u=s.exec(h)[0];f.call(t,u),e=e.replace(u,"");}}return function(e){var t=e.afternoon;if(void 0!==t){var n=e.hours;t?n<12&&(e.hours+=12):12===n&&(e.hours=0),delete e.afternoon;}}(t),t}}return function(e,t,n){n.p.customParseFormat=!0,e&&e.parseTwoDigitYear&&(a=e.parseTwoDigitYear);var r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,o=e.args;this.$u=r;var a=o[1];if("string"==typeof a){var f=!0===o[2],h=!0===o[3],u=f||h,d=o[2];h&&(d=o[2]),s=this.$locale(),!f&&d&&(s=n.Ls[d]),this.$d=function(e,t,n,r){try{if(["x","X"].indexOf(t)>-1)return new Date(("X"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date("")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date("")),s={};}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(""));}else i.call(this,e);};}}));
22
- }(customParseFormat$1));
23
-
24
- const customParseFormat = customParseFormat$1.exports;
25
-
26
- var utc$1 = {exports: {}};
27
-
28
- (function (module, exports) {
29
- !function(t,i){module.exports=i();}(commonjsGlobal,(function(){var t="minute",i=/[+-]\d\d(?::?\d\d)?/g,e=/([+-]|\d\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t);};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else r.call(this);};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if("string"==typeof s&&(s=function(t){void 0===t&&(t="");var s=t.match(i);if(!s)return null;var f=(""+s[0]).match(e)||["-",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:"+"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r;}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return !!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return "s"===t&&this.$offset?n(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)};}}));
30
- }(utc$1));
31
-
32
- const utc = utc$1.exports;
33
-
34
- var weekOfYear$1 = {exports: {}};
35
-
36
- (function (module, exports) {
37
- !function(e,t){module.exports=t();}(commonjsGlobal,(function(){var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)};}}));
38
- }(weekOfYear$1));
39
-
40
- const weekOfYear = weekOfYear$1.exports;
41
-
42
- const nvCalendarCss = "nv-calendar{display:block}.datepicker-root{display:flex;justify-content:center;align-items:flex-start;width:auto}.datepicker-container{font-family:system-ui, sans-serif;display:flex;flex-direction:column;align-items:stretch;background:var(--color-level-00-background);border-radius:var(--menu-contextual-radius);padding:0.25rem;box-shadow:0 2px 6px 1px solid var(--components-button-medium-border);border:1px solid var(--components-button-medium-border);width:auto;max-width:100%}.datepicker-container-single{width:300px}.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-left),.datepicker-container-single .datepicker-wrapper:has(.shortcuts-placement-right){width:410px !important}.datepicker-container-single:has(.shortcuts-placement-left),.datepicker-container-single:has(.shortcuts-placement-right){width:410px !important}.datepicker-wrapper{display:flex;justify-content:center;align-items:flex-start;gap:0.5rem;width:auto;overflow-x:hidden}.datepicker-wrapper.single{justify-content:center}.calendar-container{display:flex;flex-direction:column;align-items:center;padding:0.25rem;width:auto;position:relative}.calendar-separator{width:1px;background:var(--components-button-medium-border);height:auto;min-height:100%;margin:0 10px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.25rem;width:100%}.nav-buttons{display:flex;gap:0.15rem;margin-left:auto}.nav-left{order:-1}.date-controls{display:flex;gap:0.25rem;align-items:center;min-height:34px;justify-content:center}.datepicker-container-single .date-controls{justify-content:flex-start !important}.datepicker-container:not(.datepicker-container-single) .date-controls{justify-content:center !important}.calendar-grid{display:grid;grid-template-columns:auto 1fr;gap:0.25rem;position:relative}.calendar-grid.slide-left{animation:slideLeft 0.3s ease-out}.calendar-grid.slide-right{animation:slideRight 0.3s ease-out}.week-numbers{display:grid;grid-template-rows:2rem repeat(6, 2rem);background:var(--color-level-30-background);border-radius:var(--menu-contextual-radius);width:2.5rem}.week-numbers .clickable{cursor:pointer}.week-numbers .clickable:hover{background:var(--components-button-high-background-hover);color:white;border-radius:var(--menu-contextual-radius)}.week-header,.week-number{display:grid;place-items:center;font-size:0.875rem}.week-header{font-weight:600;color:var(--components-form-text-label-default)}.week-number{color:var(--components-form-text-description-default)}.days-container{display:grid;grid-template-rows:auto 1fr}.days-header{display:grid;grid-template-columns:repeat(7, 2rem);height:2rem}.day-header{display:grid;place-items:center;font-size:0.875rem;color:var(--components-form-text-description-default)}.days-grid{display:grid;grid-template-columns:repeat(7, 2rem);grid-template-rows:repeat(6, 2rem);animation:fadeIn 0.2s ease-in}.day{display:grid;place-items:center;width:2rem;height:2rem;font-size:0.875rem;border-radius:var(--menu-contextual-radius);cursor:pointer;border:none;background:transparent;transition:all 0.2s ease;text-align:center;animation:scaleIn 0.2s ease-out}.day:hover:not(.disabled,.empty,.selected){background:var(--components-button-high-background-hover);color:white}.day.selected,.day.selected:hover{background:var(--components-button-high-background);color:white}.day.disabled{color:color-mix(in srgb, var(--components-form-shape-background-selected) 50%, transparent);cursor:not-allowed}.day.outside-month{color:var(--components-form-text-description-default);opacity:0.6}.day.outside-month.selected,.day.outside-month.in-range{opacity:1 !important;color:inherit}.day.in-range{background:color-mix(in srgb, var(--components-form-shape-background-selected) 50%, transparent);color:white;border-radius:0;position:relative}.day.range-start,.day.range-end{background:var(--components-button-high-background);color:white;position:relative}.day.range-start{border-radius:var(--menu-contextual-radius) 0 0 var(--menu-contextual-radius)}.day.range-end{border-radius:0 var(--menu-contextual-radius) var(--menu-contextual-radius) 0}.day.outside-month.range-start,.day.outside-month.range-end{background:var(--components-button-high-background) !important;color:white;opacity:1 !important}.day.outside-month.in-range{background:color-mix(in srgb, var(--components-form-shape-background-selected) 50%, transparent);color:white}.day.is-today{font-weight:600;position:relative}.day.is-today::after{content:\"\";position:absolute;bottom:0.15rem;left:50%;transform:translateX(-50%);width:0.15rem;height:0.15rem;background-color:currentColor;border-radius:50%}.day.is-today.selected::after{background-color:white}.calendar-footer{display:flex;gap:0.25rem;justify-content:flex-start;width:100%;flex-wrap:wrap}.footer-placement-left{justify-content:flex-start}.footer-placement-right{justify-content:flex-end}.footer-placement-center{justify-content:center}.datepicker-actions{display:flex;justify-content:flex-end;gap:0.25rem}.calendar-footer+.datepicker-actions{margin-top:0}.datepicker-controls{display:flex;flex-direction:column;border-top:1px solid var(--components-button-medium-border);padding:1rem;gap:0.25rem}.shortcuts-placement-left,.shortcuts-placement-right{display:flex;flex-direction:column;gap:0.25rem;margin-top:1rem}.shortcuts-placement-left{align-items:flex-end}.shortcuts-placement-right{align-items:flex-start}@keyframes slideLeft{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideRight{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{from{opacity:0;transform:scale(0.9)}to{opacity:1;transform:scale(1)}}";
43
- const NvCalendarStyle0 = nvCalendarCss;
44
-
45
- // Extend dayjs with plugins
46
- dayjs.extend(customParseFormat);
47
- dayjs.extend(utc);
48
- dayjs.extend(weekOfYear);
49
- const NvCalendar$1 = /*@__PURE__*/ proxyCustomElement(class NvCalendar extends H {
50
- constructor() {
51
- super();
52
- this.__registerHost();
53
- this.singleDateChange = createEvent(this, "singleDateChange", 7);
54
- this.rangeDateChange = createEvent(this, "rangeDateChange", 7);
55
- /****************************************************************************/
56
- //#region PROPERTIES
57
- /**
58
- * First day of the week (0 = Sunday, 1 = Monday, etc.)
59
- * @default 0
60
- */
61
- this.firstDayOfWeek = 0;
62
- /**
63
- * Number of calendars to display
64
- * @default 1
65
- */
66
- this.numberOfCalendars = 1;
67
- /**
68
- * Selected date (ISO string format)
69
- * ex: "2025-03-15"
70
- */
71
- this.singleValue = '';
72
- /**
73
- * Selected date range
74
- * format: { start: ISO string, end: ISO string }
75
- * ex: { start: "2025-03-15", end: "2025-03-20" }
76
- */
77
- this.rangeValue = '';
78
- /**
79
- * Minimum date for selection (ISO string format, ex: "2025-01-01")
80
- */
81
- this.min = '';
82
- /**
83
- * Maximum date for selection (ISO string format, ex: "2025-12-31")
84
- */
85
- this.max = '';
86
- /** Disabled dates (ISO string array)
87
- * @default '[]'
88
- */
89
- this.disabledDates = '';
90
- /** Locale for date formatting
91
- * @default 'en-BE'
92
- */
93
- this.locale = 'en-BE';
94
- /** Date format (ex: 'YYYY-MM-DD', 'DD-MM-YYYY', etc.)
95
- * @default 'YYYY-MM-DD'
96
- * @note If the date format is in UTC mode, the date will be displayed in UTC time.
97
- * @note If the date format is not in UTC mode, the date will be displayed in the local time.
98
- */
99
- this.dateFormat = 'YYYY-MM-DD';
100
- /**
101
- * Footer placement
102
- * @default 'bottom'
103
- */
104
- this.shortcutsPlacement = 'bottom';
105
- /**
106
- * Selection type (single date or date range)
107
- * @default 'single'
108
- */
109
- this.selectionType = 'single';
110
- /**
111
- * Show action buttons
112
- * @default false
113
- */
114
- this.showActions = false;
115
- /**
116
- * Custom actions to display in the footer
117
- * JSON array of objects with the following properties:
118
- * - label: string
119
- * - onClick: function
120
- * @default '[]'
121
- */
122
- this.shortcuts = '[]';
123
- /** Cache for parsed disabled dates */
124
- this.parsedDisabledDates = [];
125
- /** Selected date */
126
- this.selectedDate = null;
127
- /** Start date */
128
- this.startDate = null;
129
- /** End date */
130
- this.endDate = null;
131
- /** List of formatted months for the selector */
132
- this.months = [];
133
- /**
134
- * Resets the current selection
135
- */
136
- this.resetSelection = () => {
137
- if (this.selectionType === 'single') {
138
- this.selectedDate = null;
139
- this.singleValue = '';
140
- this.singleDateChange.emit('');
141
- }
142
- else {
143
- this.startDate = null;
144
- this.endDate = null;
145
- this.rangeValue = '';
146
- this.rangeDateChange.emit({ start: '', end: '' });
147
- }
148
- };
149
- /**
150
- * Confirms the current selection
151
- */
152
- this.confirmSelection = () => {
153
- if (this.selectionType === 'single' && this.selectedDate) {
154
- const dateStr = this.formatDate(this.selectedDate);
155
- this.singleDateChange.emit(dateStr);
156
- this.singleValue = dateStr;
157
- }
158
- else if (this.selectionType === 'range' &&
159
- this.startDate &&
160
- this.endDate) {
161
- this.rangeDateChange.emit({
162
- start: this.formatDate(this.startDate),
163
- end: this.formatDate(this.endDate),
164
- });
165
- this.rangeValue = JSON.stringify({
166
- start: this.formatDate(this.startDate),
167
- end: this.formatDate(this.endDate),
168
- });
169
- }
170
- };
171
- }
172
- //#endregion EVENTS
173
- /****************************************************************************/
174
- //#region LIFECYCLE
175
- componentWillLoad() {
176
- this.parseDisabledDates();
177
- if (this.selectionType === 'single' && this.singleValue) {
178
- this.selectedDate = this.parseDate(this.singleValue);
179
- this.currentDate = this.selectedDate;
180
- }
181
- else if (this.selectionType === 'range' && this.rangeValue) {
182
- try {
183
- let parsed;
184
- if (typeof this.rangeValue === 'string') {
185
- parsed = JSON.parse(this.rangeValue);
186
- }
187
- else {
188
- parsed = this.rangeValue;
189
- }
190
- if (parsed.start && parsed.end) {
191
- this.startDate = this.parseDate(parsed.start);
192
- this.endDate = this.parseDate(parsed.end);
193
- this.currentDate = this.startDate;
194
- if (this.startDate && this.endDate && this.startDate > this.endDate) {
195
- console.warn(`Warning: startDate (${this.formatDate(this.startDate)}) is after endDate (${this.formatDate(this.endDate)})`);
196
- // [this.startDate, this.endDate] = [this.endDate, this.startDate];
197
- throw new Error('startDate cannot be after endDate');
198
- }
199
- }
200
- }
201
- catch (error) {
202
- console.error('Invalid JSON for rangeValue:', error);
203
- }
204
- }
205
- else {
206
- this.currentDate = new Date();
207
- }
208
- this.initializeMonths();
209
- }
210
- // componentDidLoad() {
211
- // if (this.rangeValue) {
212
- // this.onRangeValueChange(this.rangeValue);
213
- // }
214
- // }
215
- //#endregion LIFECYCLE
216
- /****************************************************************************/
217
- //#region METHODS
218
- /**
219
- * Change the displayed month
220
- * @param {number} offset - Month offset (-1 for previous, 1 for next)
221
- * @param {number} calendarOffset - Month offset for the calendar (0 by default)
222
- */
223
- changeMonth(offset, calendarOffset = 0) {
224
- const newDate = new Date(this.currentDate);
225
- newDate.setUTCMonth(newDate.getUTCMonth() + offset + calendarOffset);
226
- // Add the appropriate animation class
227
- const containers = this.el.querySelectorAll('.calendar-grid');
228
- containers.forEach(container => {
229
- // Remove existing animation classes
230
- container.classList.remove('slide-left', 'slide-right');
231
- // Add the new animation class
232
- const animationClass = offset > 0 ? 'slide-left' : 'slide-right';
233
- container.classList.add(animationClass);
234
- // Remove the class after the animation
235
- setTimeout(() => {
236
- container.classList.remove(animationClass);
237
- }, 300); // 300ms corresponds to $slide-duration in the SCSS
238
- });
239
- this.currentDate = newDate;
240
- }
241
- /**
242
- * Handles date selection based on the mode
243
- * @param {Date} date - Selected date
244
- */
245
- handleDateSelection(date) {
246
- if (this.isDateDisabled(date)) {
247
- return;
248
- }
249
- if (this.selectionType === 'single') {
250
- this.handleSingleSelection(date);
251
- }
252
- else {
253
- this.handleRangeSelection(date);
254
- }
255
- }
256
- /**
257
- * Handles single date selection
258
- * @param {Date} date - Selected date
259
- */
260
- handleSingleSelection(date) {
261
- if (!date)
262
- return;
263
- const formattedDate = this.formatDate(date);
264
- this.selectedDate = date;
265
- this.selectedDate = date;
266
- console.info('handleSingleSelection => selectedDate =', this.selectedDate);
267
- console.info('📤 Emitting singleDateChange:', {
268
- selectedDate: formattedDate,
269
- });
270
- this.singleDateChange.emit(formattedDate);
271
- }
272
- /**
273
- * Handles range date selection
274
- * @param {Date} date - Selected date
275
- */
276
- handleRangeSelection(date) {
277
- if (!this.startDate || (this.startDate && this.endDate)) {
278
- this.startDate = date;
279
- this.endDate = null;
280
- }
281
- else {
282
- this.endDate = date;
283
- if (this.startDate > this.endDate) {
284
- [this.startDate, this.endDate] = [this.endDate, this.startDate];
285
- }
286
- this.rangeDateChange.emit({
287
- start: this.formatDate(this.startDate),
288
- end: this.formatDate(this.endDate),
289
- });
290
- }
291
- }
292
- /**
293
- * Calculates the ISO week number
294
- * @param {Date} date - Date to calculate
295
- * @returns {number} Week number
296
- */
297
- getWeekNumber(date) {
298
- const startOfYear = new Date(date.getFullYear(), 0, 1);
299
- const pastDaysOfYear = (date.getTime() - startOfYear.getTime()) / 86400000;
300
- return Math.ceil((pastDaysOfYear + startOfYear.getDay() + 1) / 7);
301
- }
302
- /**
303
- * Checks if a date is disabled.
304
- * Disabled if:
305
- * - The date is before min (if defined)
306
- * - The date is after max (if defined)
307
- * - The date is in the disabledDates array
308
- * @param {Date} date - Date to check
309
- * @returns {boolean} true if the date is disabled
310
- */
311
- isDateDisabled(date) {
312
- if (!date)
313
- return true;
314
- // Minimum bound check
315
- if (this.min) {
316
- const minDate = this.parseDate(this.min);
317
- if (minDate && date < minDate) {
318
- return true;
319
- }
320
- }
321
- // Maximum bound check
322
- if (this.max) {
323
- const maxDate = this.parseDate(this.max);
324
- if (maxDate && date > maxDate) {
325
- return true;
326
- }
327
- }
328
- // Check disabled dates
329
- return this.parsedDisabledDates.some(disabledDate => this.isSameDate(date, disabledDate));
330
- }
331
- /**
332
- * Checks if a date is in the selected range
333
- * @param {Date} date - Date to check
334
- * @returns {boolean} true if the date is in the range
335
- */
336
- isDateInRange(date) {
337
- if (!date || !this.startDate || !this.endDate)
338
- return false;
339
- const checkDate = this.parseDate(date);
340
- const startDate = this.parseDate(this.startDate);
341
- const endDate = this.parseDate(this.endDate);
342
- // Verify if startDate and endDate are valid
343
- if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
344
- return false;
345
- }
346
- // Verify that startDate is before endDate (additional security)
347
- if (startDate > endDate)
348
- return false;
349
- // Comparison based only on the date (year, month, day)
350
- return (this.isSameOrAfter(checkDate, startDate) &&
351
- this.isSameOrBefore(checkDate, endDate));
352
- }
353
- /**
354
- * Retrieves the localized day names
355
- * @returns {string[]} Array of short day names
356
- */
357
- getDayNames() {
358
- const formatter = new Intl.DateTimeFormat(this.locale, {
359
- weekday: 'short',
360
- });
361
- return [...Array(7)].map((_, i) => formatter.format(new Date(2023, 0, i + 1 + this.firstDayOfWeek)));
362
- }
363
- /**
364
- * Generates the days of the current month
365
- * @param {number} offset - Month offset (0 by default)
366
- * @param {number} totalCalendars - Number of calendars to display (1 by default)
367
- * @returns {Array<{ dayOfMonth: number | null, date: Date | null, isSelected: boolean, isDisabled: boolean }>} Array of formatted days
368
- */
369
- getDaysInMonth(offset = 0, totalCalendars = 1) {
370
- const year = this.currentDate.getUTCFullYear();
371
- const month = this.currentDate.getUTCMonth() + offset;
372
- const firstDay = new Date(Date.UTC(year, month, 1));
373
- const lastDay = new Date(Date.UTC(year, month + 1, 0));
374
- const days = [];
375
- // Calculate the offset to include the days of the previous month only for the first calendar
376
- const offsetDays = offset === 0 ? (firstDay.getUTCDay() - this.firstDayOfWeek + 7) % 7 : 0;
377
- // Add the days of the previous month for the first calendar
378
- if (offset === 0) {
379
- const prevMonthLastDay = new Date(Date.UTC(year, month, 0)).getUTCDate();
380
- for (let i = offsetDays; i > 0; i--) {
381
- const date = new Date(Date.UTC(year, month - 1, prevMonthLastDay - i + 1));
382
- days.push({
383
- dayOfMonth: date.getUTCDate(),
384
- date,
385
- isCurrentMonth: false,
386
- isDisabled: this.isDateDisabled(date),
387
- });
388
- }
389
- }
390
- // Add the days of the current month
391
- for (let i = 1; i <= lastDay.getUTCDate(); i++) {
392
- const date = new Date(Date.UTC(year, month, i));
393
- days.push({
394
- dayOfMonth: i,
395
- date,
396
- isCurrentMonth: true,
397
- isDisabled: this.isDateDisabled(date),
398
- });
399
- }
400
- // Add the days of the next month only for the last calendar
401
- if (offset === totalCalendars - 1) {
402
- const nextMonthDaysNeeded = 7 - (days.length % 7 || 7);
403
- for (let i = 1; i <= nextMonthDaysNeeded; i++) {
404
- const date = new Date(Date.UTC(year, month + 1, i));
405
- days.push({
406
- dayOfMonth: i,
407
- date,
408
- isCurrentMonth: false,
409
- isDisabled: this.isDateDisabled(date),
410
- });
411
- }
412
- }
413
- return days;
414
- }
415
- /** Initializes the list of formatted months according to the locale */
416
- initializeMonths() {
417
- const formatter = new Intl.DateTimeFormat(this.locale, { month: 'long' });
418
- this.months = Array.from({ length: 12 }, (_, i) => ({
419
- value: i,
420
- label: formatter.format(new Date(2000, i, 1)),
421
- }));
422
- }
423
- /**
424
- * Retrieves the localized abbreviation for "week"
425
- * @returns {string} Localized abbreviation for "week"
426
- */
427
- getLocalizedWeekText() {
428
- return WEEK_ABBREVIATIONS[this.locale] || 'W';
429
- }
430
- /**
431
- * Handles month change in the selector
432
- * @param {Event} event - Month change event
433
- * @param {number} calendarOffset - Calendar offset (0 by default)
434
- */
435
- handleMonthChange(event, calendarOffset = 0) {
436
- const select = event.target;
437
- const selectedMonth = parseInt(select.value, 10);
438
- const currentMonth = this.currentDate.getUTCMonth();
439
- // Calculate the difference considering the calendar offset
440
- const monthDiff = selectedMonth - ((currentMonth + calendarOffset) % 12);
441
- const newDate = new Date(this.currentDate);
442
- newDate.setUTCMonth(newDate.getUTCMonth() + monthDiff);
443
- this.currentDate = newDate;
444
- }
445
- /**
446
- * Handles year change in the numeric entry
447
- * @param {Event} event - Year change event
448
- * @param {number} calendarOffset - Calendar offset (0 by default)
449
- */
450
- handleYearChange(event, calendarOffset = 0) {
451
- const input = event.target;
452
- const year = parseInt(input.value, 10);
453
- if (!isNaN(year) && year >= 1900 && year <= 2100) {
454
- const newDate = new Date(this.currentDate);
455
- newDate.setUTCFullYear(year);
456
- newDate.setUTCMonth(newDate.getUTCMonth() + calendarOffset);
457
- this.currentDate = newDate;
458
- }
459
- }
460
- /**
461
- * Handles week selection
462
- * @param {Date[]} weekDays - Selected week days
463
- * @param {number} calendarIndex - Calendar index from which the selection is made
464
- */
465
- handleWeekSelection(weekDays, calendarIndex) {
466
- if (this.selectionType !== 'range')
467
- return;
468
- // Retrieves the days of the month adjusted according to the calendar index
469
- const allDays = this.getDaysInMonth(calendarIndex, this.numberOfCalendars);
470
- const weekStart = weekDays[0];
471
- const weekEnd = weekDays[weekDays.length - 1];
472
- if (!weekStart || !weekEnd)
473
- return;
474
- const selectedWeekDays = allDays.filter(day => day.date && day.date >= weekStart && day.date <= weekEnd);
475
- const validDays = selectedWeekDays.filter(day => !this.isDateDisabled(day.date));
476
- if (validDays.length > 0) {
477
- this.startDate = validDays[0].date;
478
- this.endDate = validDays[validDays.length - 1].date;
479
- this.rangeDateChange.emit({
480
- start: this.startDate.toISOString(),
481
- end: this.endDate.toISOString(),
482
- });
483
- }
484
- }
485
- /**
486
- * Checks if a date corresponds to today
487
- * @param {Date} date - Date to check
488
- * @returns {boolean} true if the date is today
489
- */
490
- isToday(date) {
491
- const today = new Date();
492
- return (date.getDate() === today.getDate() &&
493
- date.getMonth() === today.getMonth() &&
494
- date.getFullYear() === today.getFullYear());
495
- }
496
- /**
497
- * Watches the changes of the number of calendars
498
- * @watch numberOfCalendars
499
- * @param {number} newValue - New number of calendars
500
- */
501
- validateNumberOfCalendars(newValue) {
502
- if (newValue < 1 || newValue > 4) {
503
- console.warn('numberOfCalendars must be between 1 and 4. Defaulting to 1.');
504
- this.numberOfCalendars = 1;
505
- }
506
- }
507
- /**
508
- * Watches the changes of the selected date range
509
- * @watch rangeValue
510
- * @param {Object} newValue - New rangeValue value
511
- * @param {string} newValue.start - Start date
512
- * @param {string} newValue.end - End date
513
- */
514
- onRangeValueChange(newValue) {
515
- if (newValue) {
516
- try {
517
- const parsed = JSON.parse(newValue);
518
- if (parsed.start && parsed.end) {
519
- this.startDate = this.parseDate(parsed.start);
520
- this.endDate = this.parseDate(parsed.end);
521
- this.currentDate = this.parseDate(parsed.start);
522
- }
523
- }
524
- catch (error) {
525
- console.error('Invalid JSON for rangeValue:', error);
526
- }
527
- }
528
- }
529
- /**
530
- * Watches the changes of the disabled dates
531
- * @watch disabledDates
532
- * @description Watches the changes of the disabled dates
533
- */
534
- handleDisabledDatesChange() {
535
- this.parseDisabledDates();
536
- }
537
- /**
538
- * Convert a date string/Date to a Date without timezone offset
539
- * @param {string | Date} dateInput - Date under string or Date object form
540
- * @returns {Date} Date in Date form without timezone offset
541
- */
542
- parseDate(dateInput) {
543
- if (dateInput instanceof Date)
544
- return dateInput;
545
- // Handling Unix Seconds ("X") formats
546
- if (this.dateFormat === 'X') {
547
- const unixSeconds = Number(dateInput);
548
- if (isNaN(unixSeconds))
549
- return null;
550
- return this.isUTCMode
551
- ? dayjs.unix(unixSeconds).utc().toDate()
552
- : dayjs.unix(unixSeconds).toDate();
553
- }
554
- // Handling Unix Milliseconds ("x") formats
555
- if (this.dateFormat === 'x') {
556
- const unixMilliseconds = Number(dateInput);
557
- if (isNaN(unixMilliseconds))
558
- return null;
559
- return this.isUTCMode
560
- ? dayjs(unixMilliseconds).utc().toDate()
561
- : dayjs(unixMilliseconds).toDate();
562
- }
563
- // Handling C# Ticks format
564
- if (this.dateFormat === 'Ticks') {
565
- const ticks = Number(dateInput);
566
- if (isNaN(ticks))
567
- return null;
568
- // Conversion of .NET ticks to milliseconds since Unix epoch
569
- const unixMilliseconds = (ticks - 621355968000000000) / 10000;
570
- return this.isUTCMode
571
- ? dayjs(unixMilliseconds).utc().toDate()
572
- : dayjs(unixMilliseconds).toDate();
573
- }
574
- // For all other formats, use customParseFormat in strict mode
575
- let parsed;
576
- if (this.isUTCMode) {
577
- parsed = dayjs.utc(dateInput, this.dateFormat, true);
578
- }
579
- else {
580
- parsed = dayjs(dateInput, this.dateFormat, true);
581
- }
582
- if (!parsed.isValid()) {
583
- console.error(`Parsing error:`, {
584
- dateInput,
585
- dateFormat: this.dateFormat,
586
- });
587
- return null;
588
- }
589
- return parsed.toDate();
590
- }
591
- /**
592
- * Formats a date to a string according to the format
593
- * @param {Date} date - Date to format
594
- * @returns {string} Formatted date
595
- */
596
- formatDate(date) {
597
- if (!date)
598
- return '';
599
- // If the format is "Ticks", convert the time to C# ticks
600
- if (this.dateFormat === 'Ticks') {
601
- const ticks = date.getTime() * 10000 + 621355968000000000;
602
- return ticks.toString();
603
- }
604
- // If the format is "X" (Unix Seconds)
605
- if (this.dateFormat === 'X') {
606
- return dayjs(date).unix().toString();
607
- }
608
- // If the format is "x" (Unix Milliseconds)
609
- if (this.dateFormat === 'x') {
610
- return date.getTime().toString();
611
- }
612
- // Otherwise, format according to the mode (UTC or local)
613
- return this.isUTCMode
614
- ? dayjs(date).utc().format(this.dateFormat)
615
- : dayjs(date).format(this.dateFormat);
616
- }
617
- /**
618
- * Parse and cache the disabled dates
619
- * @description Parse and cache the disabled dates
620
- */
621
- parseDisabledDates() {
622
- if (!this.disabledDates) {
623
- this.parsedDisabledDates = [];
624
- return;
625
- }
626
- try {
627
- const disabledDatesArray = JSON.parse(this.disabledDates);
628
- this.parsedDisabledDates = disabledDatesArray
629
- .map(date => this.parseDate(date))
630
- .filter(date => date !== null);
631
- }
632
- catch (error) {
633
- console.error('Error parsing disabled dates:', error);
634
- this.parsedDisabledDates = [];
635
- }
636
- }
637
- /**
638
- * Checks if two dates are identical
639
- * @param {Date | null} date1 - First date
640
- * @param {Date | null} date2 - Second date
641
- * @returns {boolean} true if the dates are identical
642
- */
643
- isSameDate(date1, date2) {
644
- if (!date1 || !date2)
645
- return false;
646
- if (this.isUTCMode) {
647
- return (date1.getUTCFullYear() === date2.getUTCFullYear() &&
648
- date1.getUTCMonth() === date2.getUTCMonth() &&
649
- date1.getUTCDate() === date2.getUTCDate());
650
- }
651
- else {
652
- return (date1.getFullYear() === date2.getFullYear() &&
653
- date1.getMonth() === date2.getMonth() &&
654
- date1.getDate() === date2.getDate());
655
- }
656
- }
657
- /**
658
- * Checks if a date is identical or after another date
659
- * @param {Date} date - Date to check
660
- * @param {Date} compareDate - Reference date
661
- * @returns {boolean} true if `date` >= `compareDate`
662
- */
663
- isSameOrAfter(date, compareDate) {
664
- if (this.isUTCMode) {
665
- return (date.getUTCFullYear() > compareDate.getUTCFullYear() ||
666
- (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
667
- date.getUTCMonth() > compareDate.getUTCMonth()) ||
668
- (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
669
- date.getUTCMonth() === compareDate.getUTCMonth() &&
670
- date.getUTCDate() >= compareDate.getUTCDate()));
671
- }
672
- else {
673
- return (date.getFullYear() > compareDate.getFullYear() ||
674
- (date.getFullYear() === compareDate.getFullYear() &&
675
- date.getMonth() > compareDate.getMonth()) ||
676
- (date.getFullYear() === compareDate.getFullYear() &&
677
- date.getMonth() === compareDate.getMonth() &&
678
- date.getDate() >= compareDate.getDate()));
679
- }
680
- }
681
- /**
682
- * Checks if a date is identical or before another date
683
- * @param {Date} date - Date to check
684
- * @param {Date} compareDate - Reference date
685
- * @returns {boolean} true if `date` <= `compareDate`
686
- */
687
- isSameOrBefore(date, compareDate) {
688
- if (this.isUTCMode) {
689
- return (date.getUTCFullYear() < compareDate.getUTCFullYear() ||
690
- (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
691
- date.getUTCMonth() < compareDate.getUTCMonth()) ||
692
- (date.getUTCFullYear() === compareDate.getUTCFullYear() &&
693
- date.getUTCMonth() === compareDate.getUTCMonth() &&
694
- date.getUTCDate() <= compareDate.getUTCDate()));
695
- }
696
- else {
697
- return (date.getFullYear() < compareDate.getFullYear() ||
698
- (date.getFullYear() === compareDate.getFullYear() &&
699
- date.getMonth() < compareDate.getMonth()) ||
700
- (date.getFullYear() === compareDate.getFullYear() &&
701
- date.getMonth() === compareDate.getMonth() &&
702
- date.getDate() <= compareDate.getDate()));
703
- }
704
- }
705
- /**
706
- * Applies a shortcut selection
707
- * @param {Object} shortcut - Shortcut to apply
708
- * @param {string | Date} shortcut.singleValue - Selected date value
709
- * @param {Object} shortcut.rangeValue - Start and end date values
710
- * @param {string | Date} shortcut.rangeValue.start - Start date value
711
- * @param {string | Date} shortcut.rangeValue.end - End date value
712
- * @param {string} shortcut.label - Label
713
- */
714
- applyShortcut(shortcut) {
715
- this.selectedDate = null;
716
- this.startDate = null;
717
- this.endDate = null;
718
- if (shortcut.singleValue) {
719
- const newDate = this.parseDate(shortcut.singleValue);
720
- this.selectedDate = newDate;
721
- this.singleDateChange.emit(this.formatDate(newDate));
722
- this.singleValue = this.formatDate(newDate);
723
- this.forceCalendarUpdate(newDate);
724
- }
725
- else {
726
- const start = this.parseDate(shortcut.rangeValue.start);
727
- const end = this.parseDate(shortcut.rangeValue.end);
728
- this.startDate = start;
729
- this.endDate = end;
730
- this.rangeDateChange.emit({
731
- start: this.formatDate(start),
732
- end: this.formatDate(end),
733
- });
734
- this.rangeValue = JSON.stringify({
735
- start: this.formatDate(start),
736
- end: this.formatDate(end),
737
- });
738
- this.forceCalendarUpdate(end);
739
- }
740
- }
741
- /**
742
- * Method to force the complete calendar update (and fix the persistent hover problem)
743
- * @param {Date} newDate - Date to force
744
- */
745
- forceCalendarUpdate(newDate) {
746
- this.currentDate = new Date(newDate);
747
- this.currentDate = new Date(this.currentDate); // Force a re-render
748
- // Reset visually the hover/touch effect
749
- requestAnimationFrame(() => {
750
- const days = document.querySelectorAll('.day');
751
- days.forEach(el => {
752
- el.classList.remove('hover', 'active', 'touched');
753
- el.style.pointerEvents = 'none';
754
- });
755
- // Add specific touch handling (for mobile)
756
- document.body.addEventListener('touchstart', this.clearTouchState, {
757
- passive: true,
758
- });
759
- // Reset the touch state after 50ms
760
- setTimeout(() => {
761
- days.forEach(el => {
762
- el.style.pointerEvents = '';
763
- });
764
- }, 50);
765
- });
766
- }
767
- /**
768
- * Function to reset the touch effect (Mobile fix)
769
- */
770
- clearTouchState() {
771
- document.querySelectorAll('.day').forEach(el => {
772
- el.classList.remove('touched');
773
- });
774
- // Remove the listener after the first interaction
775
- document.body.removeEventListener('touchstart', this.clearTouchState);
776
- }
777
- /**
778
- * Handles month change with an offset
779
- * @param {number} direction - Direction (-1 for previous, 1 for next)
780
- * @param {number} offset - Month offset (0 by default)
781
- * @returns {Function} Change month handler
782
- */
783
- getChangeMonthHandler(direction, offset) {
784
- return () => this.changeMonth(direction, offset);
785
- }
786
- /**
787
- * Handles month change from an event (ex: dropdown)
788
- * @param {number} offset - Month offset (0 by default)
789
- * @returns {Function} Change month handler
790
- */
791
- getHandleMonthChange(offset) {
792
- return (event) => this.handleMonthChange(event, offset);
793
- }
794
- /**
795
- * Handles year change from an event (ex: dropdown)
796
- * @param {number} offset - Year offset (0 by default)
797
- * @returns {Function} Change year handler
798
- */
799
- getHandleYearChange(offset) {
800
- return (event) => this.handleYearChange(event, offset);
801
- }
802
- /**
803
- * Handles day click
804
- * @param {Date} date - Date to handle
805
- * @param {boolean} isDisabled - Whether the date is disabled
806
- * @returns {Function} Day click handler
807
- */
808
- getDayClickHandler(date, isDisabled) {
809
- return isDisabled ? undefined : () => this.handleDateSelection(date);
810
- }
811
- /**
812
- * Handles shortcut selection
813
- * @param {Object} shortcut - Shortcut to handle
814
- * @param {string | Date} shortcut.singleValue - Selected date value
815
- * @param {Object} shortcut.rangeValue - Start and end date values
816
- * @param {string | Date} shortcut.rangeValue.start - Start date value
817
- * @param {string | Date} shortcut.rangeValue.end - End date value
818
- * @param {string} shortcut.label - Label
819
- * @returns {Function} Shortcut selection handler
820
- */
821
- getShortcutHandler(shortcut) {
822
- return () => this.applyShortcut(shortcut);
823
- }
824
- /**
825
- * Handles week selection
826
- * @param {Date[]} dates - Dates to handle
827
- * @param {number} index - Calendar index
828
- * @returns {Function} Week selection handler
829
- */
830
- getWeekSelectionHandler(dates, index) {
831
- return () => {
832
- if (this.selectionType === 'range') {
833
- this.handleWeekSelection(dates, index);
834
- }
835
- };
836
- }
837
- parsedShortcuts() {
838
- try {
839
- return this.shortcuts ? JSON.parse(this.shortcuts) : [];
840
- }
841
- catch (error) {
842
- console.error('Invalid JSON for shortcuts:', error);
843
- return [];
844
- }
845
- }
846
- /**
847
- * Checks if the date format is in UTC mode
848
- * @returns {boolean} true if the date format is in UTC mode
849
- */
850
- get isUTCMode() {
851
- return this.dateFormat.includes('Z');
852
- }
853
- /**
854
- * Checks if shortcuts are visible
855
- * @returns {boolean} true if shortcuts are visible
856
- */
857
- get hasShortcuts() {
858
- return (this.shortcutsPlacement === 'bottom' && this.parsedShortcuts().length > 0);
859
- }
860
- /**
861
- * Checks if actions are visible
862
- * @returns {boolean} true if actions are visible
863
- */
864
- get hasActions() {
865
- return this.showActions;
866
- }
867
- //#endregion METHODS
868
- /****************************************************************************/
869
- //#region RENDER
870
- /**
871
- * Renders the header
872
- * @param {number} offset - Month offset
873
- * @param {number} index - Calendar index
874
- * @returns {JSX.Element} Header
875
- * @description Renders the header of the calendar
876
- */
877
- renderHeader(offset, index) {
878
- return (h("div", { class: "header" }, this.numberOfCalendars > 1 && index === 0 && (h("nv-iconbutton", { class: "nav-left", emphasis: "low", name: "chevron-left", size: "sm", onClick: this.getChangeMonthHandler(-1, offset) })), h("div", { class: "date-controls" }, h("select", { class: "month-select mr-4", onChange: this.getHandleMonthChange(offset) }, this.months.map(month => (h("option", { key: month.value, value: month.value, selected: month.value === (this.currentDate.getUTCMonth() + offset) % 12 }, month.label)))), h("input", { type: "number", class: "year-input", min: "1950", max: "2100", value: this.currentDate.getUTCFullYear() +
879
- Math.floor((this.currentDate.getUTCMonth() + offset) / 12), onChange: this.getHandleYearChange(offset) })), this.numberOfCalendars === 1 && (h("div", { class: "nav-buttons" }, h("nv-iconbutton", { emphasis: "low", name: "chevron-left", onClick: this.getChangeMonthHandler(-1, offset) }), h("nv-iconbutton", { emphasis: "low", name: "chevron-right", onClick: this.getChangeMonthHandler(1, offset) }))), this.numberOfCalendars > 1 && index === this.numberOfCalendars - 1 && (h("nv-iconbutton", { emphasis: "low", name: "chevron-right", size: "sm", onClick: this.getChangeMonthHandler(1, offset), class: "nav-right" }))));
880
- }
881
- /**
882
- * Renders the week numbers
883
- * @param {Array<{date: Date}>} weeks - Weeks to render
884
- * @param {number} index - Calendar index
885
- * @returns {JSX.Element} Week numbers
886
- * @description Renders the week numbers of the calendar
887
- */
888
- renderWeekNumbers(
889
- /** Weeks to render */
890
- weeks,
891
- /** Calendar index */
892
- index) {
893
- return (h("div", { class: "week-numbers" }, h("div", { class: "week-header" }, this.getLocalizedWeekText()), weeks.map((week, weekIndex) => {
894
- var _a;
895
- const dates = week.map(d => d.date);
896
- return (h("div", { class: `week-number ${this.selectionType === 'range' ? 'clickable' : ''}`, onClick: this.getWeekSelectionHandler(dates, index), key: `week-${weekIndex}` }, this.getWeekNumber(((_a = week.find(d => d.date)) === null || _a === void 0 ? void 0 : _a.date) || new Date())));
897
- })));
898
- }
899
- renderDaysGrid(
900
- /** Days to render */
901
- days) {
902
- return (h("div", { class: "days-grid" }, days.map(day => {
903
- const date = day.date;
904
- if (!date)
905
- return null;
906
- const isSelected = this.selectionType === 'single' &&
907
- this.isSameDate(date, this.selectedDate);
908
- const isInRange = this.isDateInRange(date);
909
- const isStart = this.isSameDate(date, this.startDate);
910
- const isEnd = this.isSameDate(date, this.endDate);
911
- const isToday = this.isToday(date);
912
- const isOutsideMonth = !day.isCurrentMonth;
913
- const dayClasses = [
914
- 'day',
915
- isSelected ? 'selected' : '',
916
- isStart ? 'range-start' : '',
917
- isEnd ? 'range-end' : '',
918
- isInRange ? 'in-range' : '',
919
- day.isDisabled ? 'disabled' : '',
920
- isOutsideMonth ? 'outside-month' : '',
921
- isToday ? 'is-today' : '',
922
- ];
923
- return (h("div", { class: dayClasses.filter(Boolean).join(' '), onClick: this.getDayClickHandler(date, day.isDisabled), "aria-disabled": day.isDisabled, key: `day-${date.toISOString()}` }, day.dayOfMonth));
924
- })));
925
- }
926
- /**
927
- * Renders the calendar
928
- * @param {number} index - Calendar index
929
- * @param {number} offset - Month offset
930
- * @returns {JSX.Element} Calendar
931
- * @description Renders the calendar of the calendar
932
- */
933
- renderCalendar(
934
- /** Calendar index */
935
- index,
936
- /** Month offset */
937
- offset) {
938
- const days = this.getDaysInMonth(offset, this.numberOfCalendars);
939
- const weeks = [];
940
- for (let i = 0; i < days.length; i += 7) {
941
- weeks.push(days.slice(i, i + 7));
942
- }
943
- return (h("div", { class: "calendar-wrapper" }, h("div", { class: "calendar-container", key: `calendar-${index}` }, this.renderHeader(offset, index), h("div", { class: "calendar-grid" }, this.showWeekNumbers && this.renderWeekNumbers(weeks, index), h("div", { class: "days-container" }, h("div", { class: "days-header" }, this.getDayNames().map(day => (h("div", { class: "day-header" }, day)))), this.renderDaysGrid(days)))), index < this.numberOfCalendars - 1 && (h("div", { class: "calendar-separator" }))));
944
- }
945
- /**
946
- * Renders the shortcuts
947
- * @returns {JSX.Element} Shortcuts
948
- * @description Renders the shortcuts of the calendar
949
- */
950
- renderShortcuts() {
951
- if (!this.parsedShortcuts().length) {
952
- return null;
953
- }
954
- return (h("div", { class: `shortcuts-container shortcuts-placement-${this.shortcutsPlacement}` }, this.parsedShortcuts().map(shortcut => (h("nv-button", { emphasis: "lower", size: "xs", "aria-label": shortcut.label, onClick: this.getShortcutHandler(shortcut) }, shortcut.label)))));
955
- }
956
- /**
957
- * Renders the actions
958
- * @returns {JSX.Element} Actions
959
- * @description Renders the actions of the calendar
960
- * @slot actions - Child content of the component.
961
- */
962
- renderActions() {
963
- return (h("div", { class: "datepicker-actions" }, h("slot", { name: "actions" }, h("nv-button", { emphasis: "low", size: "sm", onClick: this.resetSelection }, "Cancel"), h("nv-button", { size: "sm", onClick: this.confirmSelection }, "OK"))));
964
- }
965
- /**
966
- * Renders the datepicker
967
- * @returns {JSX.Element} Datepicker
968
- * @description Renders the datepicker of the calendar
969
- * @slot default - Child content of the component.
970
- */
971
- render() {
972
- return (h(Host, { key: '0d9b8c85ed51f8a82b8d2159b064e480cec49df6' }, h("div", { key: '558f698edfe33c50af19ac7466279185bbf5b87a', class: "datepicker-root" }, h("div", { key: '9cc0b7ad17f438afb292c729af826a00501a44c5', class: `datepicker-container ${this.numberOfCalendars === 1 ? 'datepicker-container-single' : ''}` }, h("div", { key: '14d17b4e73525537060dea627ebfe6c3e84387ab', class: `datepicker-wrapper ${this.numberOfCalendars === 1 ? 'single' : ''}` }, this.shortcutsPlacement === 'left' && this.renderShortcuts(), Array.from({ length: this.numberOfCalendars }, (_, index) => this.renderCalendar(index, index)), this.shortcutsPlacement === 'right' && this.renderShortcuts()), (this.hasShortcuts || this.hasActions) && (h("div", { key: '7fe8a36601d434da834bc934bafa11c3fdbd40f8', class: "datepicker-controls" }, this.hasShortcuts && this.renderShortcuts(), this.hasActions && this.renderActions())))), h("slot", { key: 'bebf0f034ee70b5abfd99b692a60ca3b4cbe09a0' })));
973
- }
974
- get el() { return this; }
975
- static get watchers() { return {
976
- "numberOfCalendars": ["validateNumberOfCalendars"],
977
- "rangeValue": ["onRangeValueChange"],
978
- "disabledDates": ["handleDisabledDatesChange"]
979
- }; }
980
- static get style() { return NvCalendarStyle0; }
981
- }, [4, "nv-calendar", {
982
- "firstDayOfWeek": [2, "first-day-of-week"],
983
- "numberOfCalendars": [1538, "number-of-calendars"],
984
- "singleValue": [1537, "single-value"],
985
- "rangeValue": [1537, "range-value"],
986
- "min": [1],
987
- "max": [1],
988
- "disabledDates": [1, "disabled-dates"],
989
- "locale": [1],
990
- "dateFormat": [1, "date-format"],
991
- "shortcutsPlacement": [1, "shortcuts-placement"],
992
- "selectionType": [1, "selection-type"],
993
- "showActions": [4, "show-actions"],
994
- "shortcuts": [1],
995
- "showWeekNumbers": [4, "show-week-numbers"],
996
- "currentDate": [32],
997
- "selectedDate": [32],
998
- "startDate": [32],
999
- "endDate": [32],
1000
- "months": [32]
1001
- }, undefined, {
1002
- "numberOfCalendars": ["validateNumberOfCalendars"],
1003
- "rangeValue": ["onRangeValueChange"],
1004
- "disabledDates": ["handleDisabledDatesChange"]
1005
- }]);
1006
- function defineCustomElement$1() {
1007
- if (typeof customElements === "undefined") {
1008
- return;
1009
- }
1010
- const components = ["nv-calendar", "nv-button", "nv-icon", "nv-iconbutton", "nv-loader"];
1011
- components.forEach(tagName => { switch (tagName) {
1012
- case "nv-calendar":
1013
- if (!customElements.get(tagName)) {
1014
- customElements.define(tagName, NvCalendar$1);
1015
- }
1016
- break;
1017
- case "nv-button":
1018
- if (!customElements.get(tagName)) {
1019
- defineCustomElement$5();
1020
- }
1021
- break;
1022
- case "nv-icon":
1023
- if (!customElements.get(tagName)) {
1024
- defineCustomElement$4();
1025
- }
1026
- break;
1027
- case "nv-iconbutton":
1028
- if (!customElements.get(tagName)) {
1029
- defineCustomElement$3();
1030
- }
1031
- break;
1032
- case "nv-loader":
1033
- if (!customElements.get(tagName)) {
1034
- defineCustomElement$2();
1035
- }
1036
- break;
1037
- } });
1038
- }
1039
- defineCustomElement$1();
1
+ import { N as NvCalendar$1, d as defineCustomElement$1 } from './p-3aa6f6dc.js';
1040
2
 
1041
3
  const NvCalendar = NvCalendar$1;
1042
4
  const defineCustomElement = defineCustomElement$1;