@zanichelli/albe-web-components 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/dist/cjs/{index-69339d64.js → index-a8bdcb9c.js} +5 -0
  2. package/dist/cjs/index.cjs.js +2 -2
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{utils-bfd07a33.js → utils-21d41d92.js} +17 -2
  5. package/dist/cjs/{utils-98ed20af.js → utils-eca6932d.js} +1 -1
  6. package/dist/cjs/web-components-library.cjs.js +1 -1
  7. package/dist/cjs/z-app-switcher_9.cjs.entry.js +216 -190
  8. package/dist/cjs/z-aria-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/z-avatar.cjs.entry.js +1 -1
  10. package/dist/cjs/z-button-deprecated.cjs.entry.js +1 -1
  11. package/dist/cjs/z-button.cjs.entry.js +1 -1
  12. package/dist/cjs/z-card.cjs.entry.js +1 -1
  13. package/dist/cjs/z-chip.cjs.entry.js +3 -3
  14. package/dist/cjs/z-combobox.cjs.entry.js +2 -2
  15. package/dist/cjs/z-contextual-menu.cjs.entry.js +1 -1
  16. package/dist/cjs/z-cookiebar.cjs.entry.js +1 -1
  17. package/dist/cjs/z-date-picker.cjs.entry.js +95 -26
  18. package/dist/cjs/z-file-upload.cjs.entry.js +2 -2
  19. package/dist/cjs/z-file.cjs.entry.js +1 -1
  20. package/dist/cjs/z-footer.cjs.entry.js +1 -1
  21. package/dist/cjs/z-info-reveal.cjs.entry.js +1 -1
  22. package/dist/cjs/z-input-deprecated.cjs.entry.js +2 -2
  23. package/dist/cjs/z-input-label_2.cjs.entry.js +2 -2
  24. package/dist/cjs/z-list-group.cjs.entry.js +1 -1
  25. package/dist/cjs/z-list_2.cjs.entry.js +1 -1
  26. package/dist/cjs/z-menu-dropdown_2.cjs.entry.js +2 -2
  27. package/dist/cjs/z-messages-pocket.cjs.entry.js +1 -1
  28. package/dist/cjs/z-modal-login.cjs.entry.js +1 -1
  29. package/dist/cjs/z-myz-card-alert.cjs.entry.js +1 -1
  30. package/dist/cjs/z-myz-card-dictionary.cjs.entry.js +1 -1
  31. package/dist/cjs/z-myz-card-footer.cjs.entry.js +1 -1
  32. package/dist/cjs/z-myz-card-info.cjs.entry.js +2 -2
  33. package/dist/cjs/z-myz-card_4.cjs.entry.js +1 -1
  34. package/dist/cjs/z-myz-list-item.cjs.entry.js +2 -2
  35. package/dist/cjs/z-myz-topbar.cjs.entry.js +1 -1
  36. package/dist/cjs/z-navigation-tab-link.cjs.entry.js +1 -1
  37. package/dist/cjs/z-navigation-tab.cjs.entry.js +1 -1
  38. package/dist/cjs/z-navigation-tabs.cjs.entry.js +1 -1
  39. package/dist/cjs/z-offcanvas.cjs.entry.js +1 -1
  40. package/dist/cjs/z-otp.cjs.entry.js +1 -1
  41. package/dist/cjs/z-pagination-bar.cjs.entry.js +2 -2
  42. package/dist/cjs/z-pocket_3.cjs.entry.js +2 -2
  43. package/dist/cjs/z-popover-deprecated.cjs.entry.js +2 -2
  44. package/dist/cjs/z-popover.cjs.entry.js +1 -1
  45. package/dist/cjs/z-section-title.cjs.entry.js +1 -1
  46. package/dist/cjs/z-skip-to-content.cjs.entry.js +2 -2
  47. package/dist/cjs/z-slideshow.cjs.entry.js +2 -2
  48. package/dist/cjs/z-status-tag.cjs.entry.js +1 -1
  49. package/dist/cjs/z-table-cell.cjs.entry.js +1 -1
  50. package/dist/cjs/z-table-header.cjs.entry.js +2 -2
  51. package/dist/cjs/z-table-row.cjs.entry.js +1 -1
  52. package/dist/cjs/z-table.cjs.entry.js +1 -1
  53. package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
  54. package/dist/cjs/z-toast-notification.cjs.entry.js +1 -1
  55. package/dist/cjs/z-toggle-switch.cjs.entry.js +2 -2
  56. package/dist/cjs/z-tooltip-deprecated.cjs.entry.js +1 -1
  57. package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
  58. package/dist/collection/beans/index.js +5 -0
  59. package/dist/collection/components/buttons/z-chip/styles.css +2 -9
  60. package/dist/collection/components/date-picker/styles.css +32 -26
  61. package/dist/collection/components/date-picker/utils.js +15 -1
  62. package/dist/collection/components/date-picker/z-date-picker/index.js +102 -27
  63. package/dist/collection/components/date-picker/z-range-picker/index.js +230 -207
  64. package/dist/esm/{index-0944317b.js → index-e5e2b27f.js} +6 -1
  65. package/dist/esm/index.js +2 -2
  66. package/dist/esm/loader.js +1 -1
  67. package/dist/esm/{utils-20383a26.js → utils-34c0d609.js} +17 -3
  68. package/dist/esm/{utils-0d95f520.js → utils-9fa9c37c.js} +1 -1
  69. package/dist/esm/web-components-library.js +1 -1
  70. package/dist/esm/z-app-switcher_9.entry.js +216 -190
  71. package/dist/esm/z-aria-alert.entry.js +1 -1
  72. package/dist/esm/z-avatar.entry.js +1 -1
  73. package/dist/esm/z-button-deprecated.entry.js +1 -1
  74. package/dist/esm/z-button.entry.js +1 -1
  75. package/dist/esm/z-card.entry.js +1 -1
  76. package/dist/esm/z-chip.entry.js +3 -3
  77. package/dist/esm/z-combobox.entry.js +2 -2
  78. package/dist/esm/z-contextual-menu.entry.js +1 -1
  79. package/dist/esm/z-cookiebar.entry.js +1 -1
  80. package/dist/esm/z-date-picker.entry.js +95 -26
  81. package/dist/esm/z-file-upload.entry.js +2 -2
  82. package/dist/esm/z-file.entry.js +1 -1
  83. package/dist/esm/z-footer.entry.js +1 -1
  84. package/dist/esm/z-info-reveal.entry.js +1 -1
  85. package/dist/esm/z-input-deprecated.entry.js +2 -2
  86. package/dist/esm/z-input-label_2.entry.js +2 -2
  87. package/dist/esm/z-list-group.entry.js +1 -1
  88. package/dist/esm/z-list_2.entry.js +1 -1
  89. package/dist/esm/z-menu-dropdown_2.entry.js +2 -2
  90. package/dist/esm/z-messages-pocket.entry.js +1 -1
  91. package/dist/esm/z-modal-login.entry.js +1 -1
  92. package/dist/esm/z-myz-card-alert.entry.js +1 -1
  93. package/dist/esm/z-myz-card-dictionary.entry.js +1 -1
  94. package/dist/esm/z-myz-card-footer.entry.js +1 -1
  95. package/dist/esm/z-myz-card-info.entry.js +2 -2
  96. package/dist/esm/z-myz-card_4.entry.js +1 -1
  97. package/dist/esm/z-myz-list-item.entry.js +2 -2
  98. package/dist/esm/z-myz-topbar.entry.js +1 -1
  99. package/dist/esm/z-navigation-tab-link.entry.js +1 -1
  100. package/dist/esm/z-navigation-tab.entry.js +1 -1
  101. package/dist/esm/z-navigation-tabs.entry.js +1 -1
  102. package/dist/esm/z-offcanvas.entry.js +1 -1
  103. package/dist/esm/z-otp.entry.js +1 -1
  104. package/dist/esm/z-pagination-bar.entry.js +2 -2
  105. package/dist/esm/z-pocket_3.entry.js +2 -2
  106. package/dist/esm/z-popover-deprecated.entry.js +2 -2
  107. package/dist/esm/z-popover.entry.js +1 -1
  108. package/dist/esm/z-section-title.entry.js +1 -1
  109. package/dist/esm/z-skip-to-content.entry.js +2 -2
  110. package/dist/esm/z-slideshow.entry.js +2 -2
  111. package/dist/esm/z-status-tag.entry.js +1 -1
  112. package/dist/esm/z-table-cell.entry.js +1 -1
  113. package/dist/esm/z-table-header.entry.js +2 -2
  114. package/dist/esm/z-table-row.entry.js +1 -1
  115. package/dist/esm/z-table.entry.js +1 -1
  116. package/dist/esm/z-toast-notification-list.entry.js +1 -1
  117. package/dist/esm/z-toast-notification.entry.js +1 -1
  118. package/dist/esm/z-toggle-switch.entry.js +2 -2
  119. package/dist/esm/z-tooltip-deprecated.entry.js +1 -1
  120. package/dist/esm/z-tooltip.entry.js +1 -1
  121. package/dist/types/beans/index.d.ts +4 -0
  122. package/dist/types/components/date-picker/utils.d.ts +4 -3
  123. package/dist/types/components/date-picker/z-date-picker/index.d.ts +6 -1
  124. package/dist/types/components/date-picker/z-range-picker/index.d.ts +16 -15
  125. package/dist/types/components.d.ts +5 -5
  126. package/dist/web-components-library/index.esm.js +1 -1
  127. package/dist/web-components-library/p-0146081c.entry.js +16 -0
  128. package/{www/build/p-c36ad471.entry.js → dist/web-components-library/p-040ea013.entry.js} +1 -1
  129. package/dist/web-components-library/{p-bfccbf81.entry.js → p-07ae4f7d.entry.js} +1 -1
  130. package/dist/web-components-library/p-0c3e7bc3.js +1 -0
  131. package/dist/web-components-library/{p-ac4f1a90.entry.js → p-1356eb90.entry.js} +1 -1
  132. package/dist/web-components-library/{p-84d7a0ed.entry.js → p-1c790896.entry.js} +1 -1
  133. package/dist/web-components-library/{p-ea4a063a.entry.js → p-215adfd1.entry.js} +1 -1
  134. package/dist/web-components-library/{p-0818a02f.entry.js → p-27666111.entry.js} +1 -1
  135. package/dist/web-components-library/{p-bfa1813d.entry.js → p-2ed37f62.entry.js} +1 -1
  136. package/{www/build/p-adb293aa.entry.js → dist/web-components-library/p-35573e0e.entry.js} +1 -1
  137. package/dist/web-components-library/{p-2275728f.entry.js → p-3700ad63.entry.js} +1 -1
  138. package/dist/web-components-library/{p-275bebf2.entry.js → p-39dbb042.entry.js} +1 -1
  139. package/dist/web-components-library/{p-0a7ebd31.entry.js → p-3a991f9c.entry.js} +1 -1
  140. package/dist/web-components-library/{p-0be8daa3.entry.js → p-3ade68ff.entry.js} +1 -1
  141. package/dist/web-components-library/{p-f24e569d.entry.js → p-3d748f0d.entry.js} +1 -1
  142. package/dist/web-components-library/p-47a55354.entry.js +1 -0
  143. package/dist/web-components-library/{p-ac41dd18.entry.js → p-4965b6db.entry.js} +1 -1
  144. package/dist/web-components-library/p-4b9b6487.entry.js +1 -0
  145. package/dist/web-components-library/{p-122f0f28.js → p-5aa819f8.js} +1 -1
  146. package/dist/web-components-library/p-5e3b8207.entry.js +1 -0
  147. package/dist/web-components-library/{p-854f5b2e.entry.js → p-766eb9cf.entry.js} +1 -1
  148. package/{www/build/p-fb7d64f2.js → dist/web-components-library/p-7a5ecafb.js} +1 -1
  149. package/dist/web-components-library/{p-269a9ec5.entry.js → p-7e691a4e.entry.js} +1 -1
  150. package/dist/web-components-library/{p-cd6ec70f.entry.js → p-7f48b622.entry.js} +1 -1
  151. package/dist/web-components-library/{p-6f18a0fc.entry.js → p-80f26a20.entry.js} +1 -1
  152. package/{www/build/p-3a57ff32.entry.js → dist/web-components-library/p-818c073b.entry.js} +1 -1
  153. package/dist/web-components-library/{p-cdabcb55.entry.js → p-846f16e8.entry.js} +1 -1
  154. package/dist/web-components-library/{p-721d1645.entry.js → p-8712d63f.entry.js} +1 -1
  155. package/{www/build/p-546616a7.entry.js → dist/web-components-library/p-878e62e2.entry.js} +1 -1
  156. package/dist/web-components-library/{p-6aa8b260.entry.js → p-91cbf793.entry.js} +1 -1
  157. package/dist/web-components-library/{p-9b873fe5.entry.js → p-9504d075.entry.js} +1 -1
  158. package/dist/web-components-library/{p-6ff49230.entry.js → p-96bf5b15.entry.js} +1 -1
  159. package/dist/web-components-library/{p-e150820d.entry.js → p-977c81d3.entry.js} +1 -1
  160. package/dist/web-components-library/{p-251fce3e.entry.js → p-97d62d2a.entry.js} +1 -1
  161. package/dist/web-components-library/{p-687ba257.entry.js → p-a73195b6.entry.js} +1 -1
  162. package/dist/web-components-library/{p-37e06523.entry.js → p-aba00527.entry.js} +1 -1
  163. package/dist/web-components-library/{p-939662fa.entry.js → p-ac52264c.entry.js} +1 -1
  164. package/dist/web-components-library/{p-9ac122ea.entry.js → p-afed0692.entry.js} +1 -1
  165. package/{www/build/p-de2b2858.entry.js → dist/web-components-library/p-b369bf2f.entry.js} +1 -1
  166. package/dist/web-components-library/{p-db7dbb44.entry.js → p-b621a765.entry.js} +1 -1
  167. package/dist/web-components-library/{p-8d50bfa9.entry.js → p-b6794d0f.entry.js} +1 -1
  168. package/dist/web-components-library/{p-095a0982.entry.js → p-ba76f52b.entry.js} +1 -1
  169. package/dist/web-components-library/{p-919cdfbf.entry.js → p-cb3663e6.entry.js} +1 -1
  170. package/dist/web-components-library/{p-98350ea9.entry.js → p-cb4a854e.entry.js} +1 -1
  171. package/dist/web-components-library/{p-b5b5e5e3.entry.js → p-d4c5085b.entry.js} +1 -1
  172. package/dist/web-components-library/{p-a72503d2.entry.js → p-d5e67db8.entry.js} +1 -1
  173. package/dist/web-components-library/p-e4a2811a.entry.js +1 -0
  174. package/{www/build/p-f1eee91e.entry.js → dist/web-components-library/p-e5eb1fa4.entry.js} +1 -1
  175. package/dist/web-components-library/{p-1fae466d.entry.js → p-e6fb8b76.entry.js} +1 -1
  176. package/dist/web-components-library/p-e82cee27.entry.js +1 -0
  177. package/dist/web-components-library/{p-ebcda09e.entry.js → p-eddde828.entry.js} +1 -1
  178. package/{www/build/p-d3ce433b.entry.js → dist/web-components-library/p-f2962121.entry.js} +1 -1
  179. package/dist/web-components-library/{p-bdf5ab5b.entry.js → p-f5f15b8e.entry.js} +1 -1
  180. package/dist/web-components-library/{p-5cbe4445.entry.js → p-faeb0c6e.entry.js} +1 -1
  181. package/dist/web-components-library/web-components-library.css +1 -1
  182. package/dist/web-components-library/web-components-library.esm.js +1 -1
  183. package/package.json +1 -1
  184. package/www/build/index.esm.js +1 -1
  185. package/www/build/p-0146081c.entry.js +16 -0
  186. package/{dist/web-components-library/p-c36ad471.entry.js → www/build/p-040ea013.entry.js} +1 -1
  187. package/www/build/{p-bfccbf81.entry.js → p-07ae4f7d.entry.js} +1 -1
  188. package/www/build/p-0c3e7bc3.js +1 -0
  189. package/www/build/{p-ac4f1a90.entry.js → p-1356eb90.entry.js} +1 -1
  190. package/www/build/{p-84d7a0ed.entry.js → p-1c790896.entry.js} +1 -1
  191. package/www/build/{p-ea4a063a.entry.js → p-215adfd1.entry.js} +1 -1
  192. package/www/build/{p-0818a02f.entry.js → p-27666111.entry.js} +1 -1
  193. package/www/build/{p-bfa1813d.entry.js → p-2ed37f62.entry.js} +1 -1
  194. package/{dist/web-components-library/p-adb293aa.entry.js → www/build/p-35573e0e.entry.js} +1 -1
  195. package/www/build/{p-2275728f.entry.js → p-3700ad63.entry.js} +1 -1
  196. package/www/build/{p-275bebf2.entry.js → p-39dbb042.entry.js} +1 -1
  197. package/www/build/{p-0a7ebd31.entry.js → p-3a991f9c.entry.js} +1 -1
  198. package/www/build/{p-0be8daa3.entry.js → p-3ade68ff.entry.js} +1 -1
  199. package/www/build/{p-f24e569d.entry.js → p-3d748f0d.entry.js} +1 -1
  200. package/www/build/p-47a55354.entry.js +1 -0
  201. package/www/build/{p-ac41dd18.entry.js → p-4965b6db.entry.js} +1 -1
  202. package/www/build/p-4b9b6487.entry.js +1 -0
  203. package/www/build/{p-88b56b6e.css → p-4c9c83c0.css} +1 -1
  204. package/www/build/{p-122f0f28.js → p-5aa819f8.js} +1 -1
  205. package/www/build/p-5e3b8207.entry.js +1 -0
  206. package/www/build/{p-854f5b2e.entry.js → p-766eb9cf.entry.js} +1 -1
  207. package/{dist/web-components-library/p-fb7d64f2.js → www/build/p-7a5ecafb.js} +1 -1
  208. package/www/build/{p-269a9ec5.entry.js → p-7e691a4e.entry.js} +1 -1
  209. package/www/build/{p-cd6ec70f.entry.js → p-7f48b622.entry.js} +1 -1
  210. package/www/build/{p-6f18a0fc.entry.js → p-80f26a20.entry.js} +1 -1
  211. package/{dist/web-components-library/p-3a57ff32.entry.js → www/build/p-818c073b.entry.js} +1 -1
  212. package/www/build/{p-cdabcb55.entry.js → p-846f16e8.entry.js} +1 -1
  213. package/www/build/{p-721d1645.entry.js → p-8712d63f.entry.js} +1 -1
  214. package/{dist/web-components-library/p-546616a7.entry.js → www/build/p-878e62e2.entry.js} +1 -1
  215. package/www/build/p-8b26a19e.js +1 -0
  216. package/www/build/{p-6aa8b260.entry.js → p-91cbf793.entry.js} +1 -1
  217. package/www/build/{p-9b873fe5.entry.js → p-9504d075.entry.js} +1 -1
  218. package/www/build/{p-6ff49230.entry.js → p-96bf5b15.entry.js} +1 -1
  219. package/www/build/{p-e150820d.entry.js → p-977c81d3.entry.js} +1 -1
  220. package/www/build/{p-251fce3e.entry.js → p-97d62d2a.entry.js} +1 -1
  221. package/www/build/{p-687ba257.entry.js → p-a73195b6.entry.js} +1 -1
  222. package/www/build/{p-37e06523.entry.js → p-aba00527.entry.js} +1 -1
  223. package/www/build/{p-939662fa.entry.js → p-ac52264c.entry.js} +1 -1
  224. package/www/build/{p-9ac122ea.entry.js → p-afed0692.entry.js} +1 -1
  225. package/{dist/web-components-library/p-de2b2858.entry.js → www/build/p-b369bf2f.entry.js} +1 -1
  226. package/www/build/{p-db7dbb44.entry.js → p-b621a765.entry.js} +1 -1
  227. package/www/build/{p-8d50bfa9.entry.js → p-b6794d0f.entry.js} +1 -1
  228. package/www/build/{p-095a0982.entry.js → p-ba76f52b.entry.js} +1 -1
  229. package/www/build/{p-919cdfbf.entry.js → p-cb3663e6.entry.js} +1 -1
  230. package/www/build/{p-98350ea9.entry.js → p-cb4a854e.entry.js} +1 -1
  231. package/www/build/{p-b5b5e5e3.entry.js → p-d4c5085b.entry.js} +1 -1
  232. package/www/build/{p-a72503d2.entry.js → p-d5e67db8.entry.js} +1 -1
  233. package/www/build/p-e4a2811a.entry.js +1 -0
  234. package/{dist/web-components-library/p-f1eee91e.entry.js → www/build/p-e5eb1fa4.entry.js} +1 -1
  235. package/www/build/{p-1fae466d.entry.js → p-e6fb8b76.entry.js} +1 -1
  236. package/www/build/p-e82cee27.entry.js +1 -0
  237. package/www/build/{p-ebcda09e.entry.js → p-eddde828.entry.js} +1 -1
  238. package/{dist/web-components-library/p-d3ce433b.entry.js → www/build/p-f2962121.entry.js} +1 -1
  239. package/www/build/{p-bdf5ab5b.entry.js → p-f5f15b8e.entry.js} +1 -1
  240. package/www/build/{p-5cbe4445.entry.js → p-faeb0c6e.entry.js} +1 -1
  241. package/www/build/web-components-library.css +1 -1
  242. package/www/build/web-components-library.esm.js +1 -1
  243. package/www/index.html +1 -1
  244. package/CHANGELOG.md +0 -1850
  245. package/dist/web-components-library/p-717c5e20.entry.js +0 -1
  246. package/dist/web-components-library/p-9247f214.js +0 -1
  247. package/dist/web-components-library/p-955942fc.entry.js +0 -16
  248. package/dist/web-components-library/p-af353020.entry.js +0 -1
  249. package/dist/web-components-library/p-b40d8313.entry.js +0 -1
  250. package/dist/web-components-library/p-ce351931.entry.js +0 -1
  251. package/dist/web-components-library/p-ed40ca4d.entry.js +0 -1
  252. package/src-react/index.ts +0 -1
  253. package/www/build/p-717c5e20.entry.js +0 -1
  254. package/www/build/p-7ed835e0.js +0 -1
  255. package/www/build/p-9247f214.js +0 -1
  256. package/www/build/p-955942fc.entry.js +0 -16
  257. package/www/build/p-af353020.entry.js +0 -1
  258. package/www/build/p-b40d8313.entry.js +0 -1
  259. package/www/build/p-ce351931.entry.js +0 -1
  260. package/www/build/p-ed40ca4d.entry.js +0 -1
@@ -1,4 +1,13 @@
1
1
  import { ZDatePickerMode, ZDatePickerModeValues, ZDatePickerPosition, } from "../../beans";
2
+ export function validateDate(dateStr, hasTime = false) {
3
+ const regex = hasTime
4
+ ? /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4} - \d{2}:\d{2}$/
5
+ : /^\d{1,2}[\/-]\d{1,2}[\/-]\d{2,4}$/;
6
+ if (dateStr.match(regex) === null) {
7
+ return false;
8
+ }
9
+ return true;
10
+ }
2
11
  export function setFlatpickrPosition(element, mode) {
3
12
  const toggleHeight = element.children[0].clientHeight;
4
13
  element.style.setProperty("--z-range-picker--toggle-height", `${toggleHeight}px`);
@@ -25,6 +34,11 @@ export function setAriaOptions(element, mode) {
25
34
  let nextMonthArrow = element.getElementsByClassName("flatpickr-next-month")[0];
26
35
  let tabindexElements = element.querySelectorAll('[tabindex = "-1"]');
27
36
  tabindexElements.forEach((element) => element.setAttribute("tabindex", "0"));
37
+ Array.from(element.getElementsByClassName("flatpickr-day")).forEach((date) => {
38
+ if (date.classList.contains("flatpickr-disabled")) {
39
+ date.setAttribute("tabindex", "-1");
40
+ }
41
+ });
28
42
  prevMonthArrow.setAttribute("tabindex", "0");
29
43
  nextMonthArrow.setAttribute("tabindex", "0");
30
44
  prevMonthArrow.setAttribute("role", "button");
@@ -39,7 +53,7 @@ export function setAriaOptions(element, mode) {
39
53
  setDateTimeAriaOptions(element, prevMonthArrow, nextMonthArrow);
40
54
  }
41
55
  if (mode === ZDatePickerMode.months) {
42
- setMonthsAriaOptions(calendar, prevMonthArrow, nextMonthArrow);
56
+ setMonthsAriaOptions(element, prevMonthArrow, nextMonthArrow);
43
57
  }
44
58
  });
45
59
  }
@@ -1,54 +1,76 @@
1
- import { Component, Prop, Element, h, Event, Listen, State, } from "@stencil/core";
1
+ import { Component, Prop, Element, h, Event, Listen, State, Watch, } from "@stencil/core";
2
2
  import flatpickr from "flatpickr";
3
3
  import { Italian } from "flatpickr/dist/l10n/it.js";
4
4
  import monthSelectPlugin from "flatpickr/dist/plugins/monthSelect";
5
5
  import classNames from "classnames";
6
- import { ZDatePickerMode, ZDatePickerPosition } from "../../../beans";
7
- import { setAriaOptions, setFlatpickrPosition } from "../utils";
6
+ import { InputTypeEnum, ZDatePickerMode, ZDatePickerPosition, } from "../../../beans";
7
+ import { setAriaOptions, setFlatpickrPosition, validateDate } from "../utils";
8
8
  export class ZDatePicker {
9
9
  constructor() {
10
10
  /** [Optional] datepicker mode: date, datetime, only months */
11
11
  this.mode = ZDatePickerMode.date;
12
12
  this.flatpickrPosition = ZDatePickerPosition.bottom;
13
+ this.inputError = false;
14
+ }
15
+ watchMode() {
16
+ this.setupPickers();
13
17
  }
14
18
  emitDateSelect(date) {
15
19
  this.dateSelect.emit(date);
16
20
  }
17
21
  handleKeyDown(ev) {
22
+ var _a, _b, _c, _d, _e, _f, _g;
23
+ if (ev.key === "Escape") {
24
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.close();
25
+ }
18
26
  if (ev.key === "Enter" || ev.key === " ") {
27
+ !this.hasChildren && ((_b = this.picker) === null || _b === void 0 ? void 0 : _b.open());
28
+ let isCrossIconEntered = document.activeElement.classList.contains("resetIcon");
29
+ if (isCrossIconEntered) {
30
+ this.inputError = false;
31
+ (_c = this.picker) === null || _c === void 0 ? void 0 : _c.setDate([]);
32
+ this.dateSelect.emit(null);
33
+ }
34
+ let flatpickrDayPressed = document.activeElement.classList.contains("flatpickr-day");
35
+ if (flatpickrDayPressed) {
36
+ //Sistemare il toggle
37
+ }
19
38
  let isPrevArrowEntered = document.activeElement.classList.contains("flatpickr-prev-month");
20
39
  let isNextArrowEntered = document.activeElement.classList.contains("flatpickr-next-month");
21
40
  let arrowPressed = isPrevArrowEntered || isNextArrowEntered;
22
41
  arrowPressed && ev.key === " " && ev.preventDefault();
23
42
  if (this.mode === ZDatePickerMode.months) {
24
43
  isPrevArrowEntered &&
25
- this.flatpickrInstance.changeYear(this.flatpickrInstance.currentYear - 1);
44
+ ((_d = this.picker) === null || _d === void 0 ? void 0 : _d.changeYear(this.picker.currentYear - 1));
26
45
  isNextArrowEntered &&
27
- this.flatpickrInstance.changeYear(this.flatpickrInstance.currentYear + 1);
46
+ ((_e = this.picker) === null || _e === void 0 ? void 0 : _e.changeYear(this.picker.currentYear + 1));
28
47
  if (arrowPressed) {
29
48
  let calendar = this.element.getElementsByClassName("flatpickr-calendar")[0];
30
- let months = calendar.querySelectorAll(".flatpickr-monthSelect-month");
31
- months.forEach((element) => {
32
- element.setAttribute("aria-label", `${element.innerHTML} ${this.flatpickrInstance.currentYear}`);
49
+ let months = calendar === null || calendar === void 0 ? void 0 : calendar.querySelectorAll(".flatpickr-monthSelect-month");
50
+ months === null || months === void 0 ? void 0 : months.forEach((element) => {
51
+ var _a;
52
+ element.setAttribute("aria-label", `${element.innerHTML} ${(_a = this.picker) === null || _a === void 0 ? void 0 : _a.currentYear}`);
33
53
  });
34
54
  //Force check of the current day
35
- Array.from(months).forEach((element, index) => {
36
- let curMonth = new Date().getMonth();
37
- let curYear = new Date().getFullYear();
38
- if (index === curMonth) {
39
- if (this.flatpickrInstance.currentYear === curYear) {
40
- element.setAttribute("class", "flatpickr-monthSelect-month today");
41
- }
42
- else {
43
- element.setAttribute("class", "flatpickr-monthSelect-month");
55
+ months &&
56
+ Array.from(months).forEach((element, index) => {
57
+ var _a;
58
+ let curMonth = new Date().getMonth();
59
+ let curYear = new Date().getFullYear();
60
+ if (index === curMonth) {
61
+ if (((_a = this.picker) === null || _a === void 0 ? void 0 : _a.currentYear) === curYear) {
62
+ element.setAttribute("class", "flatpickr-monthSelect-month today");
63
+ }
64
+ else {
65
+ element.setAttribute("class", "flatpickr-monthSelect-month");
66
+ }
44
67
  }
45
- }
46
- });
68
+ });
47
69
  }
48
70
  }
49
71
  else {
50
- isPrevArrowEntered && this.flatpickrInstance.changeMonth(-1);
51
- isNextArrowEntered && this.flatpickrInstance.changeMonth(1);
72
+ isPrevArrowEntered && ((_f = this.picker) === null || _f === void 0 ? void 0 : _f.changeMonth(-1));
73
+ isNextArrowEntered && ((_g = this.picker) === null || _g === void 0 ? void 0 : _g.changeMonth(1));
52
74
  }
53
75
  }
54
76
  }
@@ -58,7 +80,13 @@ export class ZDatePicker {
58
80
  this.hasChildren && customToggle.setAttribute("data-toggle", "data-toggle");
59
81
  }
60
82
  componentDidLoad() {
61
- this.flatpickrInstance = flatpickr(`.${this.datePickerId}`, {
83
+ this.setupPickers();
84
+ }
85
+ setupPickers() {
86
+ const classToAppend = this.hasChildren
87
+ ? `${this.datePickerId}-hidden`
88
+ : `${this.datePickerId}-container`;
89
+ this.picker = flatpickr(`.${classToAppend}`, {
62
90
  appendTo: this.element.children[0],
63
91
  enableTime: this.mode === ZDatePickerMode.dateTime,
64
92
  locale: Italian,
@@ -77,7 +105,7 @@ export class ZDatePicker {
77
105
  onKeyDown: () => {
78
106
  setAriaOptions(this.element, this.mode);
79
107
  },
80
- wrap: this.hasChildren,
108
+ wrap: true,
81
109
  plugins: this.mode === ZDatePickerMode.months && [
82
110
  monthSelectPlugin({
83
111
  dateFormat: "m-Y",
@@ -89,16 +117,58 @@ export class ZDatePicker {
89
117
  element.innerHTML = element.innerHTML.trim().charAt(0);
90
118
  });
91
119
  }
120
+ formatDate(date) {
121
+ if (this.mode === ZDatePickerMode.date) {
122
+ return `${flatpickr.formatDate(date, "d-m-Y")}`;
123
+ }
124
+ else if (this.mode === ZDatePickerMode.months) {
125
+ return `${flatpickr.formatDate(date, "m-Y")}`;
126
+ }
127
+ else {
128
+ return `${flatpickr.formatDate(date, "d-m-Y - H:i")}`;
129
+ }
130
+ }
131
+ onStopTyping(value) {
132
+ let text = value.detail.value;
133
+ if (this.mode === ZDatePickerMode.months) {
134
+ text = "01-".concat(value.detail.value);
135
+ }
136
+ let englishData = text.split("-");
137
+ let time = this.mode === ZDatePickerMode.dateTime ? `T${englishData[3]}:00` : "";
138
+ let englishParsedData = `${englishData[2]}-${englishData[1]}-${englishData[0]}${time}`
139
+ .split(" ")
140
+ .join("");
141
+ let isValidDate = validateDate(englishParsedData, this.mode === ZDatePickerMode.dateTime);
142
+ if (text === "") {
143
+ this.inputError = false;
144
+ this.picker.setDate([]);
145
+ this.dateSelect.emit(null);
146
+ }
147
+ else if (!isValidDate) {
148
+ this.inputError = true;
149
+ this.dateSelect.emit(null);
150
+ }
151
+ else if (isValidDate) {
152
+ this.inputError = false;
153
+ this.picker.setDate([value.detail.value]);
154
+ this.dateSelect.emit(this.formatDate(new Date(englishParsedData)));
155
+ }
156
+ }
92
157
  renderSlottedContent() {
93
- return (h("div", null,
158
+ return (h("div", { class: `${this.datePickerId}-hidden` },
94
159
  h("input", { class: "hidden-input", "data-input": true }),
95
160
  h("slot", { name: "toggle" })));
96
161
  }
97
162
  renderZInput() {
98
- return (h("z-input", { ariaLabel: this.ariaLabel, label: this.label, class: classNames(this.datePickerId), type: "text", icon: "event", message: false, tabindex: "0" }));
163
+ return (h("div", { class: `${this.datePickerId}-container` },
164
+ h("z-input", { "data-input": "data-input", ariaLabel: this.ariaLabel, label: this.label, class: classNames(this.datePickerId), type: InputTypeEnum.text, icon: "event", message: false, tabindex: "0", value: "", onStopTyping: (value) => {
165
+ this.onStopTyping(value);
166
+ }, onStartTyping: () => {
167
+ this.inputError = false;
168
+ } })));
99
169
  }
100
170
  render() {
101
- return (h("div", { class: classNames("flatpickr-toggle-container", this.hasChildren && this.datePickerId, this.flatpickrPosition, this.mode) }, this.hasChildren ? this.renderSlottedContent() : this.renderZInput()));
171
+ return (h("div", { class: classNames("flatpickr-toggle-container", this.flatpickrPosition, this.mode) }, this.hasChildren ? this.renderSlottedContent() : this.renderZInput()));
102
172
  }
103
173
  static get is() { return "z-date-picker"; }
104
174
  static get originalStyleUrls() { return {
@@ -184,7 +254,8 @@ export class ZDatePicker {
184
254
  }
185
255
  }; }
186
256
  static get states() { return {
187
- "flatpickrPosition": {}
257
+ "flatpickrPosition": {},
258
+ "inputError": {}
188
259
  }; }
189
260
  static get events() { return [{
190
261
  "method": "dateSelect",
@@ -203,6 +274,10 @@ export class ZDatePicker {
203
274
  }
204
275
  }]; }
205
276
  static get elementRef() { return "element"; }
277
+ static get watchers() { return [{
278
+ "propName": "mode",
279
+ "methodName": "watchMode"
280
+ }]; }
206
281
  static get listeners() { return [{
207
282
  "name": "keydown",
208
283
  "method": "handleKeyDown",