@six-group/ui-library 3.0.0-beta.1.7 → 4.0.0-beta.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 (1002) hide show
  1. package/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +40 -38
  2. package/dist/cjs/event-listeners-74715e62.js.map +1 -0
  3. package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +37 -35
  4. package/dist/cjs/execution-control-46f388e0.js.map +1 -0
  5. package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +42 -40
  6. package/dist/cjs/focus-visible-0b352c74.js.map +1 -0
  7. package/dist/cjs/{form-control-9e4dffd1.js → form-control-8e2ae807.js} +28 -26
  8. package/dist/cjs/form-control-8e2ae807.js.map +1 -0
  9. package/dist/cjs/{index-341df120.js → index-b3257a77.js} +603 -279
  10. package/dist/cjs/index-b3257a77.js.map +1 -0
  11. package/dist/cjs/index.cjs.js +2 -0
  12. package/dist/cjs/index.cjs.js.map +1 -0
  13. package/dist/cjs/loader.cjs.js +6 -3
  14. package/dist/cjs/loader.cjs.js.map +1 -0
  15. package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +43 -41
  16. package/dist/cjs/modal-48d42228.js.map +1 -0
  17. package/dist/cjs/{popover-e3781f5a.js → popover-f743f62b.js} +100 -99
  18. package/dist/cjs/popover-f743f62b.js.map +1 -0
  19. package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +59 -57
  20. package/dist/cjs/scroll-76e6f5d7.js.map +1 -0
  21. package/dist/cjs/set-attributes_2.cjs.entry.js +58 -58
  22. package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -0
  23. package/dist/cjs/six-alert.cjs.entry.js +127 -132
  24. package/dist/cjs/six-alert.cjs.entry.js.map +1 -0
  25. package/dist/cjs/six-avatar.cjs.entry.js +27 -29
  26. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -0
  27. package/dist/cjs/six-badge.cjs.entry.js +26 -27
  28. package/dist/cjs/six-badge.cjs.entry.js.map +1 -0
  29. package/dist/cjs/six-button.cjs.entry.js +96 -98
  30. package/dist/cjs/six-button.cjs.entry.js.map +1 -0
  31. package/dist/cjs/six-card.cjs.entry.js +11 -9
  32. package/dist/cjs/six-card.cjs.entry.js.map +1 -0
  33. package/dist/cjs/six-checkbox.cjs.entry.js +149 -153
  34. package/dist/cjs/six-checkbox.cjs.entry.js.map +1 -0
  35. package/dist/cjs/six-datepicker.cjs.entry.js +1137 -1190
  36. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -0
  37. package/dist/cjs/six-details.cjs.entry.js +137 -140
  38. package/dist/cjs/six-details.cjs.entry.js.map +1 -0
  39. package/dist/cjs/six-dialog.cjs.entry.js +146 -153
  40. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -0
  41. package/dist/cjs/six-drawer.cjs.entry.js +163 -175
  42. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -0
  43. package/dist/cjs/six-dropdown_3.cjs.entry.js +682 -729
  44. package/dist/cjs/six-dropdown_3.cjs.entry.js.map +1 -0
  45. package/dist/cjs/six-error-page.cjs.entry.js +98 -95
  46. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -0
  47. package/dist/cjs/six-file-list-item.cjs.entry.js +37 -39
  48. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -0
  49. package/dist/cjs/six-file-list.cjs.entry.js +11 -9
  50. package/dist/cjs/six-file-list.cjs.entry.js.map +1 -0
  51. package/dist/cjs/six-file-upload.cjs.entry.js +110 -97
  52. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -0
  53. package/dist/cjs/six-footer.cjs.entry.js +11 -9
  54. package/dist/cjs/six-footer.cjs.entry.js.map +1 -0
  55. package/dist/cjs/six-form.cjs.entry.js +221 -220
  56. package/dist/cjs/six-form.cjs.entry.js.map +1 -0
  57. package/dist/cjs/six-group-label.cjs.entry.js +46 -47
  58. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -0
  59. package/dist/cjs/six-header.cjs.entry.js +150 -150
  60. package/dist/cjs/six-header.cjs.entry.js.map +1 -0
  61. package/dist/cjs/six-icon-button.cjs.entry.js +37 -34
  62. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -0
  63. package/dist/cjs/six-icon.cjs.entry.js +25 -25
  64. package/dist/cjs/six-icon.cjs.entry.js.map +1 -0
  65. package/dist/cjs/six-input.cjs.entry.js +229 -231
  66. package/dist/cjs/six-input.cjs.entry.js.map +1 -0
  67. package/dist/cjs/six-item-picker.cjs.entry.js +347 -362
  68. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -0
  69. package/dist/cjs/six-language-switcher.cjs.entry.js +55 -53
  70. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -0
  71. package/dist/cjs/six-layout-grid.cjs.entry.js +23 -20
  72. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -0
  73. package/dist/cjs/six-main-container.cjs.entry.js +13 -12
  74. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -0
  75. package/dist/cjs/six-menu-divider.cjs.entry.js +11 -9
  76. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -0
  77. package/dist/cjs/six-menu-label.cjs.entry.js +11 -9
  78. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -0
  79. package/dist/cjs/six-picto.cjs.entry.js +15 -16
  80. package/dist/cjs/six-picto.cjs.entry.js.map +1 -0
  81. package/dist/cjs/six-progress-bar.cjs.entry.js +18 -18
  82. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -0
  83. package/dist/cjs/six-progress-ring.cjs.entry.js +33 -32
  84. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -0
  85. package/dist/cjs/six-radio.cjs.entry.js +120 -122
  86. package/dist/cjs/six-radio.cjs.entry.js.map +1 -0
  87. package/dist/cjs/six-range.cjs.entry.js +188 -199
  88. package/dist/cjs/six-range.cjs.entry.js.map +1 -0
  89. package/dist/cjs/six-root.cjs.entry.js +34 -35
  90. package/dist/cjs/six-root.cjs.entry.js.map +1 -0
  91. package/dist/cjs/six-search-field.cjs.entry.js +43 -44
  92. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -0
  93. package/dist/cjs/six-select.cjs.entry.js +422 -448
  94. package/dist/cjs/six-select.cjs.entry.js.map +1 -0
  95. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +44 -43
  96. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -0
  97. package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -19
  98. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -0
  99. package/dist/cjs/six-sidebar.cjs.entry.js +170 -172
  100. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -0
  101. package/dist/cjs/six-spinner.cjs.entry.js +18 -17
  102. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -0
  103. package/dist/cjs/six-switch.cjs.entry.js +101 -101
  104. package/dist/cjs/six-switch.cjs.entry.js.map +1 -0
  105. package/dist/cjs/six-tab-group.cjs.entry.js +227 -227
  106. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -0
  107. package/dist/cjs/six-tab-panel.cjs.entry.js +18 -18
  108. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -0
  109. package/dist/cjs/six-tab.cjs.entry.js +41 -43
  110. package/dist/cjs/six-tab.cjs.entry.js.map +1 -0
  111. package/dist/cjs/six-table-cell_4.cjs.entry.js +77 -72
  112. package/dist/cjs/six-table-cell_4.cjs.entry.js.map +1 -0
  113. package/dist/cjs/six-table.cjs.entry.js +145 -146
  114. package/dist/cjs/six-table.cjs.entry.js.map +1 -0
  115. package/dist/cjs/six-tag.cjs.entry.js +39 -41
  116. package/dist/cjs/six-tag.cjs.entry.js.map +1 -0
  117. package/dist/cjs/six-textarea.cjs.entry.js +209 -212
  118. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -0
  119. package/dist/cjs/six-tile.cjs.entry.js +87 -90
  120. package/dist/cjs/six-tile.cjs.entry.js.map +1 -0
  121. package/dist/cjs/six-timepicker.cjs.entry.js +441 -490
  122. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -0
  123. package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +45 -43
  124. package/dist/cjs/six-timepicker.types-c19ebff3.js.map +1 -0
  125. package/dist/cjs/six-tooltip.cjs.entry.js +163 -173
  126. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -0
  127. package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +44 -42
  128. package/dist/cjs/slot-ad537f24.js.map +1 -0
  129. package/dist/cjs/{types-0c28e484.js → types-64878648.js} +14 -12
  130. package/dist/cjs/types-64878648.js.map +1 -0
  131. package/dist/cjs/ui-library.cjs.js +12 -3
  132. package/dist/cjs/ui-library.cjs.js.map +1 -0
  133. package/dist/collection/collection-manifest.json +2 -2
  134. package/dist/collection/components/six-alert/six-alert.js +368 -366
  135. package/dist/collection/components/six-alert/six-alert.js.map +1 -0
  136. package/dist/collection/components/six-avatar/six-avatar.js +131 -131
  137. package/dist/collection/components/six-avatar/six-avatar.js.map +1 -0
  138. package/dist/collection/components/six-badge/six-badge.js +104 -101
  139. package/dist/collection/components/six-badge/six-badge.js.map +1 -0
  140. package/dist/collection/components/six-button/six-button.js +464 -466
  141. package/dist/collection/components/six-button/six-button.js.map +1 -0
  142. package/dist/collection/components/six-card/six-card.js +25 -21
  143. package/dist/collection/components/six-card/six-card.js.map +1 -0
  144. package/dist/collection/components/six-checkbox/six-checkbox.js +541 -550
  145. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -0
  146. package/dist/collection/components/six-datepicker/components/day-selection.js +12 -13
  147. package/dist/collection/components/six-datepicker/components/day-selection.js.map +1 -0
  148. package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
  149. package/dist/collection/components/six-datepicker/components/month-selection.js.map +1 -0
  150. package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
  151. package/dist/collection/components/six-datepicker/components/year-selection.js.map +1 -0
  152. package/dist/collection/components/six-datepicker/six-date-formats.js +24 -23
  153. package/dist/collection/components/six-datepicker/six-date-formats.js.map +1 -0
  154. package/dist/collection/components/six-datepicker/six-datepicker.js +1271 -1343
  155. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -0
  156. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +17 -16
  157. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js.map +1 -0
  158. package/dist/collection/components/six-details/six-details.js +434 -432
  159. package/dist/collection/components/six-details/six-details.js.map +1 -0
  160. package/dist/collection/components/six-dialog/six-dialog.js +397 -401
  161. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -0
  162. package/dist/collection/components/six-drawer/six-drawer.js +449 -458
  163. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -0
  164. package/dist/collection/components/six-dropdown/six-dropdown.js +919 -939
  165. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -0
  166. package/dist/collection/components/six-error-page/six-error-page.js +203 -199
  167. package/dist/collection/components/six-error-page/six-error-page.js.map +1 -0
  168. package/dist/collection/components/six-file-list/six-file-list.js +24 -20
  169. package/dist/collection/components/six-file-list/six-file-list.js.map +1 -0
  170. package/dist/collection/components/six-file-list-item/six-file-list-item.js +204 -203
  171. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -0
  172. package/dist/collection/components/six-file-upload/six-file-upload.js +307 -272
  173. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -0
  174. package/dist/collection/components/six-footer/six-footer.js +25 -21
  175. package/dist/collection/components/six-footer/six-footer.js.map +1 -0
  176. package/dist/collection/components/six-form/six-form.js +419 -408
  177. package/dist/collection/components/six-form/six-form.js.map +1 -0
  178. package/dist/collection/components/six-group-label/six-group-label.js +173 -166
  179. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -0
  180. package/dist/collection/components/six-header/six-header.js +412 -420
  181. package/dist/collection/components/six-header/six-header.js.map +1 -0
  182. package/dist/collection/components/six-icon/six-icon.js +81 -77
  183. package/dist/collection/components/six-icon/six-icon.js.map +1 -0
  184. package/dist/collection/components/six-icon-button/six-icon-button.js +146 -142
  185. package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -0
  186. package/dist/collection/components/six-input/six-input.js +1140 -1141
  187. package/dist/collection/components/six-input/six-input.js.map +1 -0
  188. package/dist/collection/components/six-item-picker/six-item-picker.js +681 -688
  189. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -0
  190. package/dist/collection/components/six-item-picker/types.js +14 -13
  191. package/dist/collection/components/six-item-picker/types.js.map +1 -0
  192. package/dist/collection/components/six-language-switcher/six-language-switcher.js +139 -128
  193. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -0
  194. package/dist/collection/components/six-layout-grid/six-layout-grid.js +63 -52
  195. package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -0
  196. package/dist/collection/components/six-main-container/six-main-container.js +55 -53
  197. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -0
  198. package/dist/collection/components/six-menu/six-menu.js +398 -406
  199. package/dist/collection/components/six-menu/six-menu.js.map +1 -0
  200. package/dist/collection/components/six-menu-divider/six-menu-divider.js +27 -22
  201. package/dist/collection/components/six-menu-divider/six-menu-divider.js.map +1 -0
  202. package/dist/collection/components/six-menu-item/six-menu-item.js +198 -177
  203. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -0
  204. package/dist/collection/components/six-menu-label/six-menu-label.js +29 -25
  205. package/dist/collection/components/six-menu-label/six-menu-label.js.map +1 -0
  206. package/dist/collection/components/six-picto/six-picto.js +53 -50
  207. package/dist/collection/components/six-picto/six-picto.js.map +1 -0
  208. package/dist/collection/components/six-progress-bar/six-progress-bar.js +80 -77
  209. package/dist/collection/components/six-progress-bar/six-progress-bar.js.map +1 -0
  210. package/dist/collection/components/six-progress-ring/six-progress-ring.js +114 -111
  211. package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -0
  212. package/dist/collection/components/six-radio/six-radio.js +412 -410
  213. package/dist/collection/components/six-radio/six-radio.js.map +1 -0
  214. package/dist/collection/components/six-range/six-range.js +619 -620
  215. package/dist/collection/components/six-range/six-range.js.map +1 -0
  216. package/dist/collection/components/six-root/six-root.js +165 -167
  217. package/dist/collection/components/six-root/six-root.js.map +1 -0
  218. package/dist/collection/components/six-search-field/six-search-field.js +177 -171
  219. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -0
  220. package/dist/collection/components/six-select/six-select.css +1 -2
  221. package/dist/collection/components/six-select/six-select.js +1081 -1105
  222. package/dist/collection/components/six-select/six-select.js.map +1 -0
  223. package/dist/collection/components/six-sidebar/six-sidebar.js +464 -455
  224. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -0
  225. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +92 -89
  226. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -0
  227. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +159 -158
  228. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -0
  229. package/dist/collection/components/six-spinner/six-spinner.js +58 -55
  230. package/dist/collection/components/six-spinner/six-spinner.js.map +1 -0
  231. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +49 -46
  232. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js.map +1 -0
  233. package/dist/collection/components/six-switch/six-switch.js +401 -393
  234. package/dist/collection/components/six-switch/six-switch.js.map +1 -0
  235. package/dist/collection/components/six-tab/six-tab.js +202 -198
  236. package/dist/collection/components/six-tab/six-tab.js.map +1 -0
  237. package/dist/collection/components/six-tab-group/six-tab-group.js +368 -362
  238. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -0
  239. package/dist/collection/components/six-tab-panel/six-tab-panel.js +78 -75
  240. package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -0
  241. package/dist/collection/components/six-table/six-table.js +219 -209
  242. package/dist/collection/components/six-table/six-table.js.map +1 -0
  243. package/dist/collection/components/six-table/test/helpers.js +14 -13
  244. package/dist/collection/components/six-table/test/helpers.js.map +1 -0
  245. package/dist/collection/components/six-table/types.js +9 -8
  246. package/dist/collection/components/six-table/types.js.map +1 -0
  247. package/dist/collection/components/six-table/util/filter-by.js +34 -34
  248. package/dist/collection/components/six-table/util/filter-by.js.map +1 -0
  249. package/dist/collection/components/six-table/util/from-data.js +32 -33
  250. package/dist/collection/components/six-table/util/from-data.js.map +1 -0
  251. package/dist/collection/components/six-table/util/is.js +4 -3
  252. package/dist/collection/components/six-table/util/is.js.map +1 -0
  253. package/dist/collection/components/six-table/util/quick-filter-by.js +14 -13
  254. package/dist/collection/components/six-table/util/quick-filter-by.js.map +1 -0
  255. package/dist/collection/components/six-table/util/sort-by.js +25 -25
  256. package/dist/collection/components/six-table/util/sort-by.js.map +1 -0
  257. package/dist/collection/components/six-table-cell/six-table-cell.js +25 -21
  258. package/dist/collection/components/six-table-cell/six-table-cell.js.map +1 -0
  259. package/dist/collection/components/six-table-header/six-table-header.js +25 -21
  260. package/dist/collection/components/six-table-header/six-table-header.js.map +1 -0
  261. package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
  262. package/dist/collection/components/six-table-header-cell/get-next-state.js.map +1 -0
  263. package/dist/collection/components/six-table-header-cell/icons.js +12 -12
  264. package/dist/collection/components/six-table-header-cell/icons.js.map +1 -0
  265. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +179 -174
  266. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js.map +1 -0
  267. package/dist/collection/components/six-table-header-cell/types.js +2 -13
  268. package/dist/collection/components/six-table-header-cell/types.js.map +1 -0
  269. package/dist/collection/components/six-table-header-cell/util/create-model.js +7 -6
  270. package/dist/collection/components/six-table-header-cell/util/create-model.js.map +1 -0
  271. package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
  272. package/dist/collection/components/six-table-header-cell/util/get-next-state.js.map +1 -0
  273. package/dist/collection/components/six-table-row/six-table-row.js +25 -21
  274. package/dist/collection/components/six-table-row/six-table-row.js.map +1 -0
  275. package/dist/collection/components/six-tag/six-tag.js +159 -157
  276. package/dist/collection/components/six-tag/six-tag.js.map +1 -0
  277. package/dist/collection/components/six-textarea/six-textarea.js +920 -912
  278. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -0
  279. package/dist/collection/components/six-tile/six-tile.js +314 -315
  280. package/dist/collection/components/six-tile/six-tile.js.map +1 -0
  281. package/dist/collection/components/six-timepicker/six-time-format.js +15 -14
  282. package/dist/collection/components/six-timepicker/six-time-format.js.map +1 -0
  283. package/dist/collection/components/six-timepicker/six-timepicker.js +936 -980
  284. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -0
  285. package/dist/collection/components/six-timepicker/six-timepicker.types.js +41 -40
  286. package/dist/collection/components/six-timepicker/six-timepicker.types.js.map +1 -0
  287. package/dist/collection/components/six-tooltip/six-tooltip.js +432 -435
  288. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -0
  289. package/dist/collection/functional-components/form-control/form-control.js +23 -28
  290. package/dist/collection/functional-components/form-control/form-control.js.map +1 -0
  291. package/dist/collection/index.js +2 -1
  292. package/dist/collection/index.js.map +1 -0
  293. package/dist/collection/testUtil/delay.js +4 -3
  294. package/dist/collection/testUtil/delay.js.map +1 -0
  295. package/dist/collection/utils/as-array.js +2 -1
  296. package/dist/collection/utils/as-array.js.map +1 -0
  297. package/dist/collection/utils/date-util.js +713 -712
  298. package/dist/collection/utils/date-util.js.map +1 -0
  299. package/dist/collection/utils/event-listeners.js +40 -39
  300. package/dist/collection/utils/event-listeners.js.map +1 -0
  301. package/dist/collection/utils/execution-control.js +39 -38
  302. package/dist/collection/utils/execution-control.js.map +1 -0
  303. package/dist/collection/utils/focus-visible.js +42 -41
  304. package/dist/collection/utils/focus-visible.js.map +1 -0
  305. package/dist/collection/utils/matchers.js +3 -2
  306. package/dist/collection/utils/matchers.js.map +1 -0
  307. package/dist/collection/utils/modal.js +29 -28
  308. package/dist/collection/utils/modal.js.map +1 -0
  309. package/dist/collection/utils/offset.js +14 -13
  310. package/dist/collection/utils/offset.js.map +1 -0
  311. package/dist/collection/utils/popover.js +114 -113
  312. package/dist/collection/utils/popover.js.map +1 -0
  313. package/dist/collection/utils/scroll.js +48 -47
  314. package/dist/collection/utils/scroll.js.map +1 -0
  315. package/dist/collection/utils/slot.js +60 -59
  316. package/dist/collection/utils/slot.js.map +1 -0
  317. package/dist/collection/utils/support.js +16 -15
  318. package/dist/collection/utils/support.js.map +1 -0
  319. package/dist/collection/utils/tabbable.js +23 -22
  320. package/dist/collection/utils/tabbable.js.map +1 -0
  321. package/dist/collection/utils/testing.js +39 -38
  322. package/dist/collection/utils/testing.js.map +1 -0
  323. package/dist/collection/utils/time.util.js +75 -74
  324. package/dist/collection/utils/time.util.js.map +1 -0
  325. package/dist/collection/utils/type-check.js +6 -5
  326. package/dist/collection/utils/type-check.js.map +1 -0
  327. package/dist/collection/utils/types.js +2 -1
  328. package/dist/collection/utils/types.js.map +1 -0
  329. package/dist/collection/wrappers/set-attributes/set-attributes.js +72 -68
  330. package/dist/collection/wrappers/set-attributes/set-attributes.js.map +1 -0
  331. package/dist/{esm/event-listeners-1bef934e.js → components/event-listeners.js} +40 -38
  332. package/dist/components/event-listeners.js.map +1 -0
  333. package/dist/{esm/execution-control-235f5126.js → components/execution-control.js} +37 -35
  334. package/dist/components/execution-control.js.map +1 -0
  335. package/dist/{esm/focus-visible-4b7946aa.js → components/focus-visible.js} +42 -40
  336. package/dist/components/focus-visible.js.map +1 -0
  337. package/dist/components/form-control.js +32 -0
  338. package/dist/components/form-control.js.map +1 -0
  339. package/dist/components/index.d.ts +39 -0
  340. package/dist/components/index.js +132 -0
  341. package/dist/components/index.js.map +1 -0
  342. package/dist/{esm/modal-e5709f6b.js → components/modal.js} +43 -41
  343. package/dist/components/modal.js.map +1 -0
  344. package/dist/{esm/popover-5a51f84d.js → components/popover.js} +100 -99
  345. package/dist/components/popover.js.map +1 -0
  346. package/dist/{esm/scroll-99b214c2.js → components/scroll.js} +59 -57
  347. package/dist/components/scroll.js.map +1 -0
  348. package/dist/components/set-attributes.d.ts +11 -0
  349. package/dist/components/set-attributes.js +8 -0
  350. package/dist/components/set-attributes.js.map +1 -0
  351. package/dist/components/set-attributes2.js +69 -0
  352. package/dist/components/set-attributes2.js.map +1 -0
  353. package/dist/components/six-alert.d.ts +11 -0
  354. package/dist/components/six-alert.js +172 -0
  355. package/dist/components/six-alert.js.map +1 -0
  356. package/dist/components/six-avatar.d.ts +11 -0
  357. package/dist/components/six-avatar.js +63 -0
  358. package/dist/components/six-avatar.js.map +1 -0
  359. package/dist/components/six-badge.d.ts +11 -0
  360. package/dist/components/six-badge.js +54 -0
  361. package/dist/components/six-badge.js.map +1 -0
  362. package/dist/components/six-button.d.ts +11 -0
  363. package/dist/components/six-button.js +147 -0
  364. package/dist/components/six-button.js.map +1 -0
  365. package/dist/components/six-card.d.ts +11 -0
  366. package/dist/components/six-card.js +35 -0
  367. package/dist/components/six-card.js.map +1 -0
  368. package/dist/components/six-checkbox.d.ts +11 -0
  369. package/dist/components/six-checkbox.js +193 -0
  370. package/dist/components/six-checkbox.js.map +1 -0
  371. package/dist/components/six-datepicker.d.ts +11 -0
  372. package/dist/components/six-datepicker.js +1229 -0
  373. package/dist/components/six-datepicker.js.map +1 -0
  374. package/dist/components/six-details.d.ts +11 -0
  375. package/dist/components/six-details.js +8 -0
  376. package/dist/components/six-details.js.map +1 -0
  377. package/dist/components/six-details2.js +176 -0
  378. package/dist/components/six-details2.js.map +1 -0
  379. package/dist/components/six-dialog.d.ts +11 -0
  380. package/dist/components/six-dialog.js +190 -0
  381. package/dist/components/six-dialog.js.map +1 -0
  382. package/dist/components/six-drawer.d.ts +11 -0
  383. package/dist/components/six-drawer.js +209 -0
  384. package/dist/components/six-drawer.js.map +1 -0
  385. package/dist/components/six-dropdown.d.ts +11 -0
  386. package/dist/components/six-dropdown.js +8 -0
  387. package/dist/components/six-dropdown.js.map +1 -0
  388. package/dist/components/six-dropdown2.js +499 -0
  389. package/dist/components/six-dropdown2.js.map +1 -0
  390. package/dist/components/six-error-page.d.ts +11 -0
  391. package/dist/components/six-error-page.js +134 -0
  392. package/dist/components/six-error-page.js.map +1 -0
  393. package/dist/components/six-file-list-item.d.ts +11 -0
  394. package/dist/components/six-file-list-item.js +74 -0
  395. package/dist/components/six-file-list-item.js.map +1 -0
  396. package/dist/components/six-file-list.d.ts +11 -0
  397. package/dist/components/six-file-list.js +35 -0
  398. package/dist/components/six-file-list.js.map +1 -0
  399. package/dist/components/six-file-upload.d.ts +11 -0
  400. package/dist/components/six-file-upload.js +147 -0
  401. package/dist/components/six-file-upload.js.map +1 -0
  402. package/dist/components/six-footer.d.ts +11 -0
  403. package/dist/components/six-footer.js +35 -0
  404. package/dist/components/six-footer.js.map +1 -0
  405. package/dist/components/six-form.d.ts +11 -0
  406. package/dist/components/six-form.js +252 -0
  407. package/dist/components/six-form.js.map +1 -0
  408. package/dist/components/six-group-label.d.ts +11 -0
  409. package/dist/components/six-group-label.js +78 -0
  410. package/dist/components/six-group-label.js.map +1 -0
  411. package/dist/components/six-header.d.ts +11 -0
  412. package/dist/components/six-header.js +219 -0
  413. package/dist/components/six-header.js.map +1 -0
  414. package/dist/components/six-icon-button.d.ts +11 -0
  415. package/dist/components/six-icon-button.js +8 -0
  416. package/dist/components/six-icon-button.js.map +1 -0
  417. package/dist/components/six-icon-button2.js +70 -0
  418. package/dist/components/six-icon-button2.js.map +1 -0
  419. package/dist/components/six-icon.d.ts +11 -0
  420. package/dist/components/six-icon.js +8 -0
  421. package/dist/components/six-icon.js.map +1 -0
  422. package/dist/components/six-icon2.js +49 -0
  423. package/dist/components/six-icon2.js.map +1 -0
  424. package/dist/components/six-input.d.ts +11 -0
  425. package/dist/components/six-input.js +8 -0
  426. package/dist/components/six-input.js.map +1 -0
  427. package/dist/components/six-input2.js +303 -0
  428. package/dist/components/six-input2.js.map +1 -0
  429. package/dist/components/six-item-picker.d.ts +11 -0
  430. package/dist/components/six-item-picker.js +8 -0
  431. package/dist/components/six-item-picker.js.map +1 -0
  432. package/dist/components/six-item-picker2.js +404 -0
  433. package/dist/components/six-item-picker2.js.map +1 -0
  434. package/dist/components/six-language-switcher.d.ts +11 -0
  435. package/dist/components/six-language-switcher.js +82 -0
  436. package/dist/components/six-language-switcher.js.map +1 -0
  437. package/dist/components/six-layout-grid.d.ts +11 -0
  438. package/dist/components/six-layout-grid.js +49 -0
  439. package/dist/components/six-layout-grid.js.map +1 -0
  440. package/dist/components/six-main-container.d.ts +11 -0
  441. package/dist/components/six-main-container.js +39 -0
  442. package/dist/components/six-main-container.js.map +1 -0
  443. package/dist/components/six-menu-divider.d.ts +11 -0
  444. package/dist/components/six-menu-divider.js +35 -0
  445. package/dist/components/six-menu-divider.js.map +1 -0
  446. package/dist/components/six-menu-item.d.ts +11 -0
  447. package/dist/components/six-menu-item.js +8 -0
  448. package/dist/components/six-menu-item.js.map +1 -0
  449. package/dist/components/six-menu-item2.js +86 -0
  450. package/dist/components/six-menu-item2.js.map +1 -0
  451. package/dist/components/six-menu-label.d.ts +11 -0
  452. package/dist/components/six-menu-label.js +35 -0
  453. package/dist/components/six-menu-label.js.map +1 -0
  454. package/dist/components/six-menu.d.ts +11 -0
  455. package/dist/components/six-menu.js +8 -0
  456. package/dist/components/six-menu.js.map +1 -0
  457. package/dist/components/six-menu2.js +252 -0
  458. package/dist/components/six-menu2.js.map +1 -0
  459. package/dist/components/six-picto.d.ts +11 -0
  460. package/dist/components/six-picto.js +8 -0
  461. package/dist/components/six-picto.js.map +1 -0
  462. package/dist/{custom-elements/index.js → components/six-picto2.js} +30 -9749
  463. package/dist/components/six-picto2.js.map +1 -0
  464. package/dist/components/six-progress-bar.d.ts +11 -0
  465. package/dist/components/six-progress-bar.js +45 -0
  466. package/dist/components/six-progress-bar.js.map +1 -0
  467. package/dist/components/six-progress-ring.d.ts +11 -0
  468. package/dist/components/six-progress-ring.js +61 -0
  469. package/dist/components/six-progress-ring.js.map +1 -0
  470. package/dist/components/six-radio.d.ts +11 -0
  471. package/dist/components/six-radio.js +157 -0
  472. package/dist/components/six-radio.js.map +1 -0
  473. package/dist/components/six-range.d.ts +11 -0
  474. package/dist/components/six-range.js +236 -0
  475. package/dist/components/six-range.js.map +1 -0
  476. package/dist/components/six-root.d.ts +11 -0
  477. package/dist/components/six-root.js +82 -0
  478. package/dist/components/six-root.js.map +1 -0
  479. package/dist/components/six-search-field.d.ts +11 -0
  480. package/dist/components/six-search-field.js +85 -0
  481. package/dist/components/six-search-field.js.map +1 -0
  482. package/dist/components/six-select.d.ts +11 -0
  483. package/dist/components/six-select.js +526 -0
  484. package/dist/components/six-select.js.map +1 -0
  485. package/dist/components/six-sidebar-item-group.d.ts +11 -0
  486. package/dist/components/six-sidebar-item-group.js +88 -0
  487. package/dist/components/six-sidebar-item-group.js.map +1 -0
  488. package/dist/components/six-sidebar-item.d.ts +11 -0
  489. package/dist/components/six-sidebar-item.js +46 -0
  490. package/dist/components/six-sidebar-item.js.map +1 -0
  491. package/dist/components/six-sidebar.d.ts +11 -0
  492. package/dist/components/six-sidebar.js +205 -0
  493. package/dist/components/six-sidebar.js.map +1 -0
  494. package/dist/components/six-spinner.d.ts +11 -0
  495. package/dist/components/six-spinner.js +8 -0
  496. package/dist/components/six-spinner.js.map +1 -0
  497. package/dist/components/six-spinner2.js +41 -0
  498. package/dist/components/six-spinner2.js.map +1 -0
  499. package/dist/components/six-stage-indicator.d.ts +11 -0
  500. package/dist/components/six-stage-indicator.js +8 -0
  501. package/dist/components/six-stage-indicator.js.map +1 -0
  502. package/dist/components/six-stage-indicator2.js +41 -0
  503. package/dist/components/six-stage-indicator2.js.map +1 -0
  504. package/dist/components/six-switch.d.ts +11 -0
  505. package/dist/components/six-switch.js +139 -0
  506. package/dist/components/six-switch.js.map +1 -0
  507. package/dist/components/six-tab-group.d.ts +11 -0
  508. package/dist/components/six-tab-group.js +268 -0
  509. package/dist/components/six-tab-group.js.map +1 -0
  510. package/dist/components/six-tab-panel.d.ts +11 -0
  511. package/dist/components/six-tab-panel.js +45 -0
  512. package/dist/components/six-tab-panel.js.map +1 -0
  513. package/dist/components/six-tab.d.ts +11 -0
  514. package/dist/components/six-tab.js +84 -0
  515. package/dist/components/six-tab.js.map +1 -0
  516. package/dist/components/six-table-cell.d.ts +11 -0
  517. package/dist/components/six-table-cell.js +8 -0
  518. package/dist/components/six-table-cell.js.map +1 -0
  519. package/dist/components/six-table-cell2.js +32 -0
  520. package/dist/components/six-table-cell2.js.map +1 -0
  521. package/dist/components/six-table-header-cell.d.ts +11 -0
  522. package/dist/components/six-table-header-cell.js +8 -0
  523. package/dist/components/six-table-header-cell.js.map +1 -0
  524. package/dist/components/six-table-header-cell2.js +120 -0
  525. package/dist/components/six-table-header-cell2.js.map +1 -0
  526. package/dist/components/six-table-header.d.ts +11 -0
  527. package/dist/components/six-table-header.js +8 -0
  528. package/dist/components/six-table-header.js.map +1 -0
  529. package/dist/components/six-table-header2.js +32 -0
  530. package/dist/components/six-table-header2.js.map +1 -0
  531. package/dist/components/six-table-row.d.ts +11 -0
  532. package/dist/components/six-table-row.js +8 -0
  533. package/dist/components/six-table-row.js.map +1 -0
  534. package/dist/components/six-table-row2.js +32 -0
  535. package/dist/components/six-table-row2.js.map +1 -0
  536. package/dist/components/six-table.d.ts +11 -0
  537. package/dist/components/six-table.js +252 -0
  538. package/dist/components/six-table.js.map +1 -0
  539. package/dist/components/six-tag.d.ts +11 -0
  540. package/dist/components/six-tag.js +8 -0
  541. package/dist/components/six-tag.js.map +1 -0
  542. package/dist/components/six-tag2.js +77 -0
  543. package/dist/components/six-tag2.js.map +1 -0
  544. package/dist/components/six-textarea.d.ts +11 -0
  545. package/dist/components/six-textarea.js +269 -0
  546. package/dist/components/six-textarea.js.map +1 -0
  547. package/dist/components/six-tile.d.ts +11 -0
  548. package/dist/components/six-tile.js +142 -0
  549. package/dist/components/six-tile.js.map +1 -0
  550. package/dist/components/six-timepicker.d.ts +11 -0
  551. package/dist/components/six-timepicker.js +8 -0
  552. package/dist/components/six-timepicker.js.map +1 -0
  553. package/dist/components/six-timepicker2.js +559 -0
  554. package/dist/components/six-timepicker2.js.map +1 -0
  555. package/dist/components/six-tooltip.d.ts +11 -0
  556. package/dist/components/six-tooltip.js +8 -0
  557. package/dist/components/six-tooltip.js.map +1 -0
  558. package/dist/components/six-tooltip2.js +194 -0
  559. package/dist/components/six-tooltip2.js.map +1 -0
  560. package/dist/{esm/slot-5253e199.js → components/slot.js} +44 -42
  561. package/dist/components/slot.js.map +1 -0
  562. package/dist/components.d.ts +27 -0
  563. package/dist/components.json +61 -28
  564. package/dist/esm/event-listeners-570a24ea.js +43 -0
  565. package/dist/esm/event-listeners-570a24ea.js.map +1 -0
  566. package/dist/esm/execution-control-1a60d709.js +40 -0
  567. package/dist/esm/execution-control-1a60d709.js.map +1 -0
  568. package/dist/esm/focus-visible-97933ea9.js +45 -0
  569. package/dist/esm/focus-visible-97933ea9.js.map +1 -0
  570. package/dist/esm/{form-control-17478ad2.js → form-control-bdd1478a.js} +28 -26
  571. package/dist/esm/form-control-bdd1478a.js.map +1 -0
  572. package/dist/esm/{index-a2605a62.js → index-96b1af5d.js} +603 -279
  573. package/dist/esm/index-96b1af5d.js.map +1 -0
  574. package/dist/esm/index.js +2 -0
  575. package/dist/esm/index.js.map +1 -0
  576. package/dist/esm/loader.js +6 -3
  577. package/dist/esm/loader.js.map +1 -0
  578. package/dist/esm/modal-5ebdc320.js +48 -0
  579. package/dist/esm/modal-5ebdc320.js.map +1 -0
  580. package/dist/esm/polyfills/core-js.js +0 -0
  581. package/dist/esm/polyfills/css-shim.js +1 -1
  582. package/dist/esm/polyfills/dom.js +0 -0
  583. package/dist/esm/polyfills/es5-html-element.js +0 -0
  584. package/dist/esm/polyfills/index.js +0 -0
  585. package/dist/esm/polyfills/system.js +0 -0
  586. package/dist/esm/popover-bd2c2fca.js +1897 -0
  587. package/dist/esm/popover-bd2c2fca.js.map +1 -0
  588. package/dist/esm/scroll-180b53fd.js +64 -0
  589. package/dist/esm/scroll-180b53fd.js.map +1 -0
  590. package/dist/esm/set-attributes_2.entry.js +58 -58
  591. package/dist/esm/set-attributes_2.entry.js.map +1 -0
  592. package/dist/esm/six-alert.entry.js +127 -132
  593. package/dist/esm/six-alert.entry.js.map +1 -0
  594. package/dist/esm/six-avatar.entry.js +27 -29
  595. package/dist/esm/six-avatar.entry.js.map +1 -0
  596. package/dist/esm/six-badge.entry.js +26 -27
  597. package/dist/esm/six-badge.entry.js.map +1 -0
  598. package/dist/esm/six-button.entry.js +96 -98
  599. package/dist/esm/six-button.entry.js.map +1 -0
  600. package/dist/esm/six-card.entry.js +11 -9
  601. package/dist/esm/six-card.entry.js.map +1 -0
  602. package/dist/esm/six-checkbox.entry.js +149 -153
  603. package/dist/esm/six-checkbox.entry.js.map +1 -0
  604. package/dist/esm/six-datepicker.entry.js +1137 -1190
  605. package/dist/esm/six-datepicker.entry.js.map +1 -0
  606. package/dist/esm/six-details.entry.js +137 -140
  607. package/dist/esm/six-details.entry.js.map +1 -0
  608. package/dist/esm/six-dialog.entry.js +146 -153
  609. package/dist/esm/six-dialog.entry.js.map +1 -0
  610. package/dist/esm/six-drawer.entry.js +163 -175
  611. package/dist/esm/six-drawer.entry.js.map +1 -0
  612. package/dist/esm/six-dropdown_3.entry.js +682 -729
  613. package/dist/esm/six-dropdown_3.entry.js.map +1 -0
  614. package/dist/esm/six-error-page.entry.js +98 -95
  615. package/dist/esm/six-error-page.entry.js.map +1 -0
  616. package/dist/esm/six-file-list-item.entry.js +37 -39
  617. package/dist/esm/six-file-list-item.entry.js.map +1 -0
  618. package/dist/esm/six-file-list.entry.js +11 -9
  619. package/dist/esm/six-file-list.entry.js.map +1 -0
  620. package/dist/esm/six-file-upload.entry.js +110 -97
  621. package/dist/esm/six-file-upload.entry.js.map +1 -0
  622. package/dist/esm/six-footer.entry.js +11 -9
  623. package/dist/esm/six-footer.entry.js.map +1 -0
  624. package/dist/esm/six-form.entry.js +221 -220
  625. package/dist/esm/six-form.entry.js.map +1 -0
  626. package/dist/esm/six-group-label.entry.js +46 -47
  627. package/dist/esm/six-group-label.entry.js.map +1 -0
  628. package/dist/esm/six-header.entry.js +150 -150
  629. package/dist/esm/six-header.entry.js.map +1 -0
  630. package/dist/esm/six-icon-button.entry.js +37 -34
  631. package/dist/esm/six-icon-button.entry.js.map +1 -0
  632. package/dist/esm/six-icon.entry.js +25 -25
  633. package/dist/esm/six-icon.entry.js.map +1 -0
  634. package/dist/esm/six-input.entry.js +229 -231
  635. package/dist/esm/six-input.entry.js.map +1 -0
  636. package/dist/esm/six-item-picker.entry.js +347 -362
  637. package/dist/esm/six-item-picker.entry.js.map +1 -0
  638. package/dist/esm/six-language-switcher.entry.js +55 -53
  639. package/dist/esm/six-language-switcher.entry.js.map +1 -0
  640. package/dist/esm/six-layout-grid.entry.js +23 -20
  641. package/dist/esm/six-layout-grid.entry.js.map +1 -0
  642. package/dist/esm/six-main-container.entry.js +13 -12
  643. package/dist/esm/six-main-container.entry.js.map +1 -0
  644. package/dist/esm/six-menu-divider.entry.js +11 -9
  645. package/dist/esm/six-menu-divider.entry.js.map +1 -0
  646. package/dist/esm/six-menu-label.entry.js +11 -9
  647. package/dist/esm/six-menu-label.entry.js.map +1 -0
  648. package/dist/esm/six-picto.entry.js +15 -16
  649. package/dist/esm/six-picto.entry.js.map +1 -0
  650. package/dist/esm/six-progress-bar.entry.js +18 -18
  651. package/dist/esm/six-progress-bar.entry.js.map +1 -0
  652. package/dist/esm/six-progress-ring.entry.js +33 -32
  653. package/dist/esm/six-progress-ring.entry.js.map +1 -0
  654. package/dist/esm/six-radio.entry.js +120 -122
  655. package/dist/esm/six-radio.entry.js.map +1 -0
  656. package/dist/esm/six-range.entry.js +188 -199
  657. package/dist/esm/six-range.entry.js.map +1 -0
  658. package/dist/esm/six-root.entry.js +34 -35
  659. package/dist/esm/six-root.entry.js.map +1 -0
  660. package/dist/esm/six-search-field.entry.js +43 -44
  661. package/dist/esm/six-search-field.entry.js.map +1 -0
  662. package/dist/esm/six-select.entry.js +422 -448
  663. package/dist/esm/six-select.entry.js.map +1 -0
  664. package/dist/esm/six-sidebar-item-group.entry.js +44 -43
  665. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -0
  666. package/dist/esm/six-sidebar-item.entry.js +18 -19
  667. package/dist/esm/six-sidebar-item.entry.js.map +1 -0
  668. package/dist/esm/six-sidebar.entry.js +170 -172
  669. package/dist/esm/six-sidebar.entry.js.map +1 -0
  670. package/dist/esm/six-spinner.entry.js +18 -17
  671. package/dist/esm/six-spinner.entry.js.map +1 -0
  672. package/dist/esm/six-switch.entry.js +101 -101
  673. package/dist/esm/six-switch.entry.js.map +1 -0
  674. package/dist/esm/six-tab-group.entry.js +227 -227
  675. package/dist/esm/six-tab-group.entry.js.map +1 -0
  676. package/dist/esm/six-tab-panel.entry.js +18 -18
  677. package/dist/esm/six-tab-panel.entry.js.map +1 -0
  678. package/dist/esm/six-tab.entry.js +41 -43
  679. package/dist/esm/six-tab.entry.js.map +1 -0
  680. package/dist/esm/six-table-cell_4.entry.js +77 -72
  681. package/dist/esm/six-table-cell_4.entry.js.map +1 -0
  682. package/dist/esm/six-table.entry.js +145 -146
  683. package/dist/esm/six-table.entry.js.map +1 -0
  684. package/dist/esm/six-tag.entry.js +39 -41
  685. package/dist/esm/six-tag.entry.js.map +1 -0
  686. package/dist/esm/six-textarea.entry.js +209 -212
  687. package/dist/esm/six-textarea.entry.js.map +1 -0
  688. package/dist/esm/six-tile.entry.js +87 -90
  689. package/dist/esm/six-tile.entry.js.map +1 -0
  690. package/dist/esm/six-timepicker.entry.js +441 -490
  691. package/dist/esm/six-timepicker.entry.js.map +1 -0
  692. package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +45 -43
  693. package/dist/esm/six-timepicker.types-e161a447.js.map +1 -0
  694. package/dist/esm/six-tooltip.entry.js +163 -173
  695. package/dist/esm/six-tooltip.entry.js.map +1 -0
  696. package/dist/esm/slot-6f3984c7.js +47 -0
  697. package/dist/esm/slot-6f3984c7.js.map +1 -0
  698. package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +14 -12
  699. package/dist/esm/types-4b10b413.js.map +1 -0
  700. package/dist/esm/ui-library.js +9 -3
  701. package/dist/esm/ui-library.js.map +1 -0
  702. package/dist/types/components/six-alert/six-alert.d.ts +60 -60
  703. package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
  704. package/dist/types/components/six-badge/six-badge.d.ts +20 -20
  705. package/dist/types/components/six-button/six-button.d.ts +69 -69
  706. package/dist/types/components/six-card/six-card.d.ts +9 -9
  707. package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
  708. package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
  709. package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
  710. package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
  711. package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
  712. package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
  713. package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
  714. package/dist/types/components/six-details/six-details.d.ts +61 -61
  715. package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
  716. package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
  717. package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
  718. package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
  719. package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
  720. package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
  721. package/dist/types/components/six-file-upload/six-file-upload.d.ts +49 -42
  722. package/dist/types/components/six-footer/six-footer.d.ts +9 -9
  723. package/dist/types/components/six-form/six-form.d.ts +69 -69
  724. package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
  725. package/dist/types/components/six-header/six-header.d.ts +90 -90
  726. package/dist/types/components/six-icon/six-icon.d.ts +13 -13
  727. package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
  728. package/dist/types/components/six-input/six-input.d.ts +165 -165
  729. package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
  730. package/dist/types/components/six-item-picker/types.d.ts +11 -11
  731. package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
  732. package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
  733. package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
  734. package/dist/types/components/six-menu/six-menu.d.ts +81 -81
  735. package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
  736. package/dist/types/components/six-menu-item/six-menu-item.d.ts +39 -36
  737. package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
  738. package/dist/types/components/six-picto/six-picto.d.ts +14 -14
  739. package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
  740. package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
  741. package/dist/types/components/six-radio/six-radio.d.ts +66 -66
  742. package/dist/types/components/six-range/six-range.d.ts +101 -101
  743. package/dist/types/components/six-root/six-root.d.ts +34 -34
  744. package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
  745. package/dist/types/components/six-select/six-select.d.ts +164 -163
  746. package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
  747. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
  748. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
  749. package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
  750. package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
  751. package/dist/types/components/six-switch/six-switch.d.ts +62 -62
  752. package/dist/types/components/six-tab/six-tab.d.ts +35 -35
  753. package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
  754. package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
  755. package/dist/types/components/six-table/six-table.d.ts +30 -30
  756. package/dist/types/components/six-table/test/helpers.d.ts +2 -2
  757. package/dist/types/components/six-table/types.d.ts +33 -33
  758. package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
  759. package/dist/types/components/six-table/util/from-data.d.ts +8 -8
  760. package/dist/types/components/six-table/util/is.d.ts +3 -3
  761. package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
  762. package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
  763. package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
  764. package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
  765. package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
  766. package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
  767. package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
  768. package/dist/types/components/six-table-header-cell/types.d.ts +2 -11
  769. package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
  770. package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
  771. package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
  772. package/dist/types/components/six-tag/six-tag.d.ts +30 -30
  773. package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
  774. package/dist/types/components/six-tile/six-tile.d.ts +40 -40
  775. package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
  776. package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
  777. package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
  778. package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
  779. package/dist/types/components.d.ts +1254 -106
  780. package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
  781. package/dist/types/index.d.ts +1 -1
  782. package/dist/types/stencil-public-runtime.d.ts +91 -19
  783. package/dist/types/testUtil/delay.d.ts +1 -1
  784. package/dist/types/utils/as-array.d.ts +1 -1
  785. package/dist/types/utils/date-util.d.ts +194 -194
  786. package/dist/types/utils/event-listeners.d.ts +15 -15
  787. package/dist/types/utils/execution-control.d.ts +26 -26
  788. package/dist/types/utils/focus-visible.d.ts +6 -6
  789. package/dist/types/utils/matchers.d.ts +2 -2
  790. package/dist/types/utils/modal.d.ts +13 -13
  791. package/dist/types/utils/offset.d.ts +4 -4
  792. package/dist/types/utils/popover.d.ts +27 -27
  793. package/dist/types/utils/scroll.d.ts +3 -3
  794. package/dist/types/utils/slot.d.ts +9 -9
  795. package/dist/types/utils/support.d.ts +1 -1
  796. package/dist/types/utils/tabbable.d.ts +2 -2
  797. package/dist/types/utils/testing.d.ts +2 -2
  798. package/dist/types/utils/time.util.d.ts +10 -10
  799. package/dist/types/utils/type-check.d.ts +4 -4
  800. package/dist/types/utils/types.d.ts +4 -4
  801. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
  802. package/dist/ui-library/index.esm.js +2 -0
  803. package/dist/ui-library/index.esm.js.map +1 -0
  804. package/dist/ui-library/p-00507165.entry.js +2 -0
  805. package/dist/ui-library/p-00507165.entry.js.map +1 -0
  806. package/dist/ui-library/p-028a2c54.entry.js +2 -0
  807. package/dist/ui-library/p-028a2c54.entry.js.map +1 -0
  808. package/dist/ui-library/p-028a2f77.entry.js +2 -0
  809. package/dist/ui-library/p-028a2f77.entry.js.map +1 -0
  810. package/dist/ui-library/p-0786fa7c.js +2 -0
  811. package/dist/ui-library/p-0786fa7c.js.map +1 -0
  812. package/dist/ui-library/p-0c89817e.entry.js +2 -0
  813. package/dist/ui-library/p-0c89817e.entry.js.map +1 -0
  814. package/dist/ui-library/p-0d1fdc4e.entry.js +2 -0
  815. package/dist/ui-library/p-0d1fdc4e.entry.js.map +1 -0
  816. package/dist/ui-library/p-0d9cbb51.entry.js +2 -0
  817. package/dist/ui-library/p-0d9cbb51.entry.js.map +1 -0
  818. package/dist/ui-library/p-12000282.entry.js +2 -0
  819. package/dist/ui-library/p-12000282.entry.js.map +1 -0
  820. package/dist/ui-library/p-1414a242.entry.js +2 -0
  821. package/dist/ui-library/p-1414a242.entry.js.map +1 -0
  822. package/dist/ui-library/p-14db57aa.entry.js +2 -0
  823. package/dist/ui-library/p-14db57aa.entry.js.map +1 -0
  824. package/dist/ui-library/p-16732ac1.entry.js +2 -0
  825. package/dist/ui-library/p-16732ac1.entry.js.map +1 -0
  826. package/dist/ui-library/p-16b99232.js +3 -0
  827. package/dist/ui-library/p-16b99232.js.map +1 -0
  828. package/dist/ui-library/p-18ea0c56.js +2 -0
  829. package/dist/ui-library/p-18ea0c56.js.map +1 -0
  830. package/dist/ui-library/p-232d43a6.entry.js +2 -0
  831. package/dist/ui-library/p-232d43a6.entry.js.map +1 -0
  832. package/dist/ui-library/p-25a3bf57.js +2 -0
  833. package/dist/ui-library/p-25a3bf57.js.map +1 -0
  834. package/dist/ui-library/p-28e6c2eb.entry.js +2 -0
  835. package/dist/ui-library/p-28e6c2eb.entry.js.map +1 -0
  836. package/dist/ui-library/p-2a02734a.entry.js +2 -0
  837. package/dist/ui-library/p-2a02734a.entry.js.map +1 -0
  838. package/dist/ui-library/p-2a61cc66.entry.js +2 -0
  839. package/dist/ui-library/p-2a61cc66.entry.js.map +1 -0
  840. package/dist/ui-library/p-3c100309.js +2 -0
  841. package/dist/ui-library/p-3c100309.js.map +1 -0
  842. package/dist/ui-library/p-3d5cad2d.entry.js +2 -0
  843. package/dist/ui-library/p-3d5cad2d.entry.js.map +1 -0
  844. package/dist/ui-library/p-3e3edcbc.entry.js +2 -0
  845. package/dist/ui-library/p-3e3edcbc.entry.js.map +1 -0
  846. package/dist/ui-library/p-3efe46cf.entry.js +2 -0
  847. package/dist/ui-library/p-3efe46cf.entry.js.map +1 -0
  848. package/dist/ui-library/p-4b44fa83.entry.js +2 -0
  849. package/dist/ui-library/p-4b44fa83.entry.js.map +1 -0
  850. package/dist/ui-library/p-4bcebd5a.entry.js +2 -0
  851. package/dist/ui-library/p-4bcebd5a.entry.js.map +1 -0
  852. package/dist/ui-library/p-4d4829db.entry.js +2 -0
  853. package/dist/ui-library/p-4d4829db.entry.js.map +1 -0
  854. package/dist/ui-library/p-4f8394d7.js +2 -0
  855. package/dist/ui-library/p-4f8394d7.js.map +1 -0
  856. package/dist/ui-library/p-524e5804.entry.js +2 -0
  857. package/dist/ui-library/p-524e5804.entry.js.map +1 -0
  858. package/dist/ui-library/p-52cb61bd.entry.js +2 -0
  859. package/dist/ui-library/p-52cb61bd.entry.js.map +1 -0
  860. package/dist/ui-library/p-55dc28ad.entry.js +2 -0
  861. package/dist/ui-library/p-55dc28ad.entry.js.map +1 -0
  862. package/dist/ui-library/p-57a84d7f.entry.js +2 -0
  863. package/dist/ui-library/p-57a84d7f.entry.js.map +1 -0
  864. package/dist/ui-library/p-5eb21538.entry.js +2 -0
  865. package/dist/ui-library/p-5eb21538.entry.js.map +1 -0
  866. package/dist/ui-library/p-60c5395c.entry.js +2 -0
  867. package/dist/ui-library/p-60c5395c.entry.js.map +1 -0
  868. package/dist/ui-library/p-694829b8.entry.js +2 -0
  869. package/dist/ui-library/p-694829b8.entry.js.map +1 -0
  870. package/dist/ui-library/p-6cc82df5.entry.js +2 -0
  871. package/dist/ui-library/p-6cc82df5.entry.js.map +1 -0
  872. package/dist/ui-library/p-7115416e.entry.js +2 -0
  873. package/dist/ui-library/p-7115416e.entry.js.map +1 -0
  874. package/dist/ui-library/p-788281d0.entry.js +2 -0
  875. package/dist/ui-library/p-788281d0.entry.js.map +1 -0
  876. package/dist/ui-library/p-7cbc261b.entry.js +2 -0
  877. package/dist/ui-library/p-7cbc261b.entry.js.map +1 -0
  878. package/dist/ui-library/p-80f32909.entry.js +2 -0
  879. package/dist/ui-library/p-80f32909.entry.js.map +1 -0
  880. package/dist/ui-library/p-8187701c.entry.js +2 -0
  881. package/dist/ui-library/p-8187701c.entry.js.map +1 -0
  882. package/dist/ui-library/p-94ab37b2.entry.js +2 -0
  883. package/dist/ui-library/p-94ab37b2.entry.js.map +1 -0
  884. package/dist/ui-library/p-9a860acc.js +2 -0
  885. package/dist/ui-library/p-9a860acc.js.map +1 -0
  886. package/dist/ui-library/p-9eba5c71.entry.js +2 -0
  887. package/dist/ui-library/p-9eba5c71.entry.js.map +1 -0
  888. package/dist/ui-library/p-9f9bef35.entry.js +2 -0
  889. package/dist/ui-library/p-9f9bef35.entry.js.map +1 -0
  890. package/dist/ui-library/p-b1683e9c.entry.js +2 -0
  891. package/dist/ui-library/p-b1683e9c.entry.js.map +1 -0
  892. package/dist/ui-library/p-b1e66136.js +2 -0
  893. package/dist/ui-library/p-b1e66136.js.map +1 -0
  894. package/dist/ui-library/p-b3974ad4.entry.js +2 -0
  895. package/dist/ui-library/p-b3974ad4.entry.js.map +1 -0
  896. package/dist/ui-library/p-b4dfb7cf.js +2 -0
  897. package/dist/ui-library/p-b4dfb7cf.js.map +1 -0
  898. package/dist/ui-library/p-b66c5c48.entry.js +2 -0
  899. package/dist/ui-library/p-b66c5c48.entry.js.map +1 -0
  900. package/dist/ui-library/p-ba6e1f0e.entry.js +2 -0
  901. package/dist/ui-library/p-ba6e1f0e.entry.js.map +1 -0
  902. package/dist/ui-library/p-c799a6bf.entry.js +2 -0
  903. package/dist/ui-library/p-c799a6bf.entry.js.map +1 -0
  904. package/dist/ui-library/p-ccee090e.entry.js +2 -0
  905. package/dist/ui-library/p-ccee090e.entry.js.map +1 -0
  906. package/dist/ui-library/p-cf2bdd34.entry.js +2 -0
  907. package/dist/ui-library/p-cf2bdd34.entry.js.map +1 -0
  908. package/dist/ui-library/p-d12c6092.js +2 -0
  909. package/dist/ui-library/p-d12c6092.js.map +1 -0
  910. package/dist/ui-library/p-dd0ac344.entry.js +2 -0
  911. package/dist/ui-library/p-dd0ac344.entry.js.map +1 -0
  912. package/dist/ui-library/p-def4a925.entry.js +2 -0
  913. package/dist/ui-library/p-def4a925.entry.js.map +1 -0
  914. package/dist/ui-library/p-e0bda772.entry.js +2 -0
  915. package/dist/ui-library/p-e0bda772.entry.js.map +1 -0
  916. package/dist/ui-library/p-e1aed7ed.entry.js +2 -0
  917. package/dist/ui-library/p-e1aed7ed.entry.js.map +1 -0
  918. package/dist/ui-library/p-e4b6264b.entry.js +2 -0
  919. package/dist/ui-library/p-e4b6264b.entry.js.map +1 -0
  920. package/dist/ui-library/p-eb1ec1b7.entry.js +2 -0
  921. package/dist/ui-library/p-eb1ec1b7.entry.js.map +1 -0
  922. package/dist/ui-library/p-eb8f05a9.js +2 -0
  923. package/dist/ui-library/p-eb8f05a9.js.map +1 -0
  924. package/dist/ui-library/p-f65aa796.entry.js +2 -0
  925. package/dist/ui-library/p-f65aa796.entry.js.map +1 -0
  926. package/dist/ui-library/p-f68b5c54.entry.js +2 -0
  927. package/dist/ui-library/p-f68b5c54.entry.js.map +1 -0
  928. package/dist/ui-library/p-f9c50f81.entry.js +2 -0
  929. package/dist/ui-library/p-f9c50f81.entry.js.map +1 -0
  930. package/dist/ui-library/ui-library.esm.js +2 -1
  931. package/dist/ui-library/ui-library.esm.js.map +1 -0
  932. package/loader/index.d.ts +9 -0
  933. package/loader/package.json +1 -0
  934. package/package.json +8 -12
  935. package/readme.md +41 -39
  936. package/dist/cjs/types-65e5c95b.js +0 -15
  937. package/dist/custom-elements/index.d.ts +0 -387
  938. package/dist/esm/types-33d15673.js +0 -15
  939. package/dist/ui-library/p-044c6bf9.js +0 -1
  940. package/dist/ui-library/p-0493c926.entry.js +0 -1
  941. package/dist/ui-library/p-1005d1a8.entry.js +0 -1
  942. package/dist/ui-library/p-12cc24c3.js +0 -1
  943. package/dist/ui-library/p-191f958b.js +0 -1
  944. package/dist/ui-library/p-19543c96.entry.js +0 -1
  945. package/dist/ui-library/p-19ff1079.entry.js +0 -1
  946. package/dist/ui-library/p-1b92cc7a.entry.js +0 -1
  947. package/dist/ui-library/p-1c9f0dc6.js +0 -1
  948. package/dist/ui-library/p-2053c61a.entry.js +0 -1
  949. package/dist/ui-library/p-2ff97cdf.entry.js +0 -1
  950. package/dist/ui-library/p-30ebc1e7.js +0 -1
  951. package/dist/ui-library/p-34e6d8e8.js +0 -1
  952. package/dist/ui-library/p-354704e5.entry.js +0 -1
  953. package/dist/ui-library/p-376b8f30.entry.js +0 -1
  954. package/dist/ui-library/p-3a7daff8.entry.js +0 -1
  955. package/dist/ui-library/p-3f577392.entry.js +0 -1
  956. package/dist/ui-library/p-48ea4419.entry.js +0 -1
  957. package/dist/ui-library/p-4cc01afc.entry.js +0 -1
  958. package/dist/ui-library/p-572e3690.js +0 -1
  959. package/dist/ui-library/p-5ead7b2f.entry.js +0 -1
  960. package/dist/ui-library/p-60491176.entry.js +0 -1
  961. package/dist/ui-library/p-6494e92d.entry.js +0 -1
  962. package/dist/ui-library/p-66601906.entry.js +0 -1
  963. package/dist/ui-library/p-68d31736.js +0 -1
  964. package/dist/ui-library/p-6a4f0542.entry.js +0 -1
  965. package/dist/ui-library/p-6f67f986.entry.js +0 -1
  966. package/dist/ui-library/p-76bfa55f.entry.js +0 -1
  967. package/dist/ui-library/p-7735d99f.js +0 -1
  968. package/dist/ui-library/p-7fe09462.entry.js +0 -1
  969. package/dist/ui-library/p-88e1e390.entry.js +0 -1
  970. package/dist/ui-library/p-89f68e76.entry.js +0 -1
  971. package/dist/ui-library/p-8bd0873f.entry.js +0 -1
  972. package/dist/ui-library/p-8e8e922b.entry.js +0 -1
  973. package/dist/ui-library/p-968c5169.entry.js +0 -1
  974. package/dist/ui-library/p-9f2dc381.entry.js +0 -1
  975. package/dist/ui-library/p-a77a6442.entry.js +0 -1
  976. package/dist/ui-library/p-a8c225f2.entry.js +0 -1
  977. package/dist/ui-library/p-a98198bd.entry.js +0 -1
  978. package/dist/ui-library/p-af3d757c.js +0 -1
  979. package/dist/ui-library/p-b391f704.entry.js +0 -1
  980. package/dist/ui-library/p-b9377445.entry.js +0 -1
  981. package/dist/ui-library/p-b9fb8455.entry.js +0 -1
  982. package/dist/ui-library/p-bf110ea9.entry.js +0 -1
  983. package/dist/ui-library/p-c09dc3a9.js +0 -1
  984. package/dist/ui-library/p-c4b22513.entry.js +0 -1
  985. package/dist/ui-library/p-c536792e.entry.js +0 -1
  986. package/dist/ui-library/p-c733dead.js +0 -1
  987. package/dist/ui-library/p-c948d3db.entry.js +0 -1
  988. package/dist/ui-library/p-ce02c34f.entry.js +0 -1
  989. package/dist/ui-library/p-d724bbc9.entry.js +0 -1
  990. package/dist/ui-library/p-e96dcf96.entry.js +0 -1
  991. package/dist/ui-library/p-ea1fcff2.entry.js +0 -1
  992. package/dist/ui-library/p-ea781e94.entry.js +0 -1
  993. package/dist/ui-library/p-eae232c3.entry.js +0 -1
  994. package/dist/ui-library/p-eb0956d2.entry.js +0 -1
  995. package/dist/ui-library/p-ebaea182.entry.js +0 -1
  996. package/dist/ui-library/p-ec1ecc2a.entry.js +0 -1
  997. package/dist/ui-library/p-ed21cc57.entry.js +0 -1
  998. package/dist/ui-library/p-f00c1783.entry.js +0 -1
  999. package/dist/ui-library/p-f0e91e17.entry.js +0 -1
  1000. package/dist/ui-library/p-f9c0cfb7.entry.js +0 -1
  1001. package/dist/ui-library/p-fcd2356c.entry.js +0 -1
  1002. package/dist/ui-library/p-fdb455d7.entry.js +0 -1
@@ -2,1209 +2,1156 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-341df120.js');
6
- const sixTimepicker_types = require('./six-timepicker.types-c58cc88b.js');
7
- const eventListeners = require('./event-listeners-4a8d66d5.js');
8
- const executionControl = require('./execution-control-3bc9c7c4.js');
9
- const slot = require('./slot-8abe833c.js');
5
+ const index = require('./index-b3257a77.js');
6
+ const sixTimepicker_types = require('./six-timepicker.types-c19ebff3.js');
7
+ const eventListeners = require('./event-listeners-74715e62.js');
8
+ const executionControl = require('./execution-control-46f388e0.js');
9
+ const slot = require('./slot-ad537f24.js');
10
10
 
11
- const i18nDate = {
12
- en: {
13
- months: [
14
- 'January',
15
- 'February',
16
- 'March',
17
- 'April',
18
- 'May',
19
- 'June',
20
- 'July',
21
- 'August',
22
- 'September',
23
- 'October',
24
- 'November',
25
- 'December',
26
- ],
27
- monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
28
- monthsShortGrouped: [
29
- ['Jan', 'Feb', 'Mar', 'Apr'],
30
- ['May', 'Jun', 'Jul', 'Aug'],
31
- ['Sep', 'Oct', 'Nov', 'Dec'],
32
- ],
33
- weekdays: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
34
- weekdaysShort: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
35
- weekdaysMin: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
36
- },
37
- de: {
38
- months: [
39
- 'Januar',
40
- 'Februar',
41
- 'März',
42
- 'April',
43
- 'Mai',
44
- 'Juni',
45
- 'Juli',
46
- 'August',
47
- 'September',
48
- 'Oktober',
49
- 'November',
50
- 'Dezember',
51
- ],
52
- monthsShort: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],
53
- monthsShortGrouped: [
54
- ['Jan.', 'Feb.', 'März', 'Apr.'],
55
- ['Mai', 'Juni', 'Juli', 'Aug.'],
56
- ['Sep.', 'Okt.', 'Nov.', 'Dez.'],
57
- ],
58
- weekdays: ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'],
59
- weekdaysShort: ['Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.', 'So.'],
60
- weekdaysMin: ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'],
61
- },
62
- fr: {
63
- months: [
64
- 'janvier',
65
- 'février',
66
- 'mars',
67
- 'avril',
68
- 'mai',
69
- 'juin',
70
- 'juillet',
71
- 'août',
72
- 'septembre',
73
- 'octobre',
74
- 'novembre',
75
- 'décembre',
76
- ],
77
- monthsShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
78
- monthsShortGrouped: [
79
- ['janv.', 'févr.', 'mars', 'avr.'],
80
- ['mai', 'juin', 'juil.', 'août'],
81
- ['sept.', 'oct.', 'nov.', 'déc.'],
82
- ],
83
- weekdays: ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche'],
84
- weekdaysShort: ['lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.', 'dim.'],
85
- weekdaysMin: ['lu', 'ma', 'me', 'je', 've', 'sa', 'di'],
86
- },
87
- it: {
88
- months: [
89
- 'gennaio',
90
- 'febbraio',
91
- 'marzo',
92
- 'aprile',
93
- 'maggio',
94
- 'giugno',
95
- 'luglio',
96
- 'agosto',
97
- 'settembre',
98
- 'ottobre',
99
- 'novembre',
100
- 'dicembre',
101
- ],
102
- monthsShort: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
103
- monthsShortGrouped: [
104
- ['gen', 'feb', 'mar', 'apr'],
105
- ['mag', 'giu', 'lug', 'ago'],
106
- ['set', 'ott', 'nov', 'dic'],
107
- ],
108
- weekdays: ['lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato', 'domenica'],
109
- weekdaysShort: ['lun', 'mar', 'mer', 'gio', 'ven', 'sab', 'dom'],
110
- weekdaysMin: ['lu', 'ma', 'me', 'gi', 've', 'sa', 'do'],
111
- },
112
- };
113
- /**
114
- * Returns a JS Date instance of the exact moment
115
- *
116
- * ```typescript
117
- * const date = now()
118
- * // Wed Mar 10 2021 20:30:32 GMT+0100 (Central European Standard Time)
119
- * ```
120
- */
121
- const now = () => new Date();
122
- /**
123
- * Returns `true` if the given date is valid
124
- */
125
- const isValidDate = (value) => {
126
- if (sixTimepicker_types.isNil(value)) {
127
- return false;
128
- }
129
- if (sixTimepicker_types.isNumber(value)) {
130
- return false;
131
- }
132
- if (sixTimepicker_types.isDate(value)) {
133
- return !isNaN(value.getTime());
134
- }
135
- return new Date(value).toString() !== 'Invalid Date';
136
- };
137
- /**
138
- * Returns the year number of the given date
139
- *
140
- * ```typescript
141
- * year(new Date(2020, 0, 1)) // 2020
142
- * ```
143
- */
144
- const year = (date) => {
145
- if (date && isValidDate(date)) {
146
- return date.getFullYear();
147
- }
148
- throw new Error('Not a valid date');
149
- };
150
- /**
151
- * Returns the month number of the given date
152
- *
153
- * ```typescript
154
- * month(new Date(2020, 0, 1)) // 0
155
- * ```
156
- */
157
- const month = (date) => {
158
- if (date && isValidDate(date)) {
159
- return date.getMonth();
160
- }
161
- throw new Error('Not a valid date');
162
- };
163
- /**
164
- * Returns the day number of the given date
165
- *
166
- * ```typescript
167
- * day(new Date(2020, 0, 1)) // 1
168
- * ```
169
- */
170
- const day = (date) => {
171
- if (date && isValidDate(date)) {
172
- return date.getDate();
173
- }
174
- throw new Error('Not a valid date');
175
- };
176
- /**
177
- * Returns the hours of the given date
178
- */
179
- const hours = (date) => {
180
- if (date && isValidDate(date)) {
181
- return date.getHours();
182
- }
183
- throw new Error('Not a valid date');
184
- };
185
- /**
186
- * Returns the minutes of the given date
187
- */
188
- const minutes = (date) => {
189
- if (date && isValidDate(date)) {
190
- return date.getMinutes();
191
- }
192
- throw new Error('Not a valid date');
193
- };
194
- /**
195
- * Returns the seconds of the given date
196
- */
197
- const seconds = (date) => {
198
- if (date && isValidDate(date)) {
199
- return date.getSeconds();
200
- }
201
- throw new Error('Not a valid date');
202
- };
203
- /**
204
- * Returns the first day of the week of the given date.
205
- */
206
- const getFirstDayOfTheWeek = (date) => {
207
- const weekdayDiff = [6, 0, 1, 2, 3, 4, 5];
208
- const day = new Date(date);
209
- day.setDate(day.getDate() - weekdayDiff[day.getDay()]);
210
- return day;
211
- };
212
- /**
213
- * Returns `true` when the year of the dates are the same
214
- */
215
- const isSameYear = (a, b) => (a === null || a === void 0 ? void 0 : a.getFullYear()) === (b === null || b === void 0 ? void 0 : b.getFullYear());
216
- /**
217
- * Returns `true` when the month of the dates are the same
218
- */
219
- const isSameMonth = (a, b) => isSameYear(a, b) && (a === null || a === void 0 ? void 0 : a.getMonth()) === (b === null || b === void 0 ? void 0 : b.getMonth());
220
- /**
221
- * Returns `true` when the day of the dates are the same
222
- */
223
- const isSameDay = (a, b) => isSameMonth(a, b) && (a === null || a === void 0 ? void 0 : a.getDate()) === (b === null || b === void 0 ? void 0 : b.getDate());
224
- /**
225
- * Returns `true` when the week of the dates are the same
226
- */
227
- const isSameWeek = (a, b) => isSameDay(getFirstDayOfTheWeek(a), getFirstDayOfTheWeek(b));
228
- /**
229
- * Returns `true` if the given datestring is valid
230
- */
231
- const isValidDateString = (datestring, format) => {
232
- if (!sixTimepicker_types.isString(datestring) || !sixTimepicker_types.isString(format)) {
233
- return false;
234
- }
235
- if (datestring.length < 6 || format.length < 6) {
236
- return false;
237
- }
238
- const { day, month } = getDateParts(datestring, format);
239
- if (day > 31 || month > 11 || day <= 0 || month < 0) {
240
- return false;
241
- }
242
- const date = toDate(datestring, format);
243
- if (sixTimepicker_types.isNil(date)) {
244
- return false;
245
- }
246
- return date.toString() !== 'Invalid Date';
247
- };
248
- /**
249
- * Returns `true` when the given date is not smaller than the minDate and not bigger than the maxDate.
250
- *
251
- * ```typescript
252
- * isInRange(new Date(2020, 1, 1), new Date(2020, 0, 1), new Date(2020, 2, 1)) // true
253
- * ```
254
- */
255
- const isInRange = (date, minDate, maxDate) => {
256
- if (!date) {
257
- return true;
258
- }
259
- if (minDate && date < minDate) {
260
- return false;
261
- }
262
- if (maxDate && maxDate < date) {
263
- return false;
264
- }
265
- return true;
266
- };
267
- const lookAhead = (iFormat, format, match, length = 2) => {
268
- const increment = length - 1;
269
- const followingCharacterMatches = format.charAt(iFormat + increment) === match;
270
- const hasProperLength = iFormat + increment < format.length;
271
- return hasProperLength && followingCharacterMatches;
272
- };
273
- const formatNumber = (value, len) => {
274
- let num = String(value);
275
- while (num.length < len) {
276
- num = '0' + num;
277
- }
278
- return num;
279
- };
280
- const formatDate = (date, format) => {
281
- if (!date) {
282
- return '';
283
- }
284
- let output = '';
285
- for (let iFormat = 0; iFormat < format.length; iFormat++) {
286
- switch (format.charAt(iFormat)) {
287
- case 'd':
288
- if (lookAhead(iFormat, format, 'd')) {
289
- output += formatNumber(date.getDate(), 2);
290
- iFormat++;
291
- }
292
- else {
293
- output += String(date.getDate());
294
- }
295
- break;
296
- case 'm':
297
- if (lookAhead(iFormat, format, 'm')) {
298
- output += formatNumber(date.getMonth() + 1, 2);
299
- iFormat++;
300
- }
301
- else {
302
- output += String(date.getMonth() + 1);
303
- }
304
- break;
305
- case 'y':
306
- if (lookAhead(iFormat, format, 'y', 4)) {
307
- iFormat += 3;
308
- output += date.getFullYear();
309
- }
310
- else {
311
- output += (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);
312
- iFormat++;
313
- }
314
- break;
315
- case 'h':
316
- if (lookAhead(iFormat, format, 'h')) {
317
- output += formatNumber(date.getHours(), 2);
318
- iFormat++;
319
- }
320
- else {
321
- output += String(date.getHours());
322
- }
323
- break;
324
- case 'M':
325
- if (lookAhead(iFormat, format, 'M')) {
326
- output += formatNumber(date.getMinutes(), 2);
327
- iFormat++;
328
- }
329
- else {
330
- output += String(date.getMinutes());
331
- }
332
- break;
333
- case 's':
334
- if (lookAhead(iFormat, format, 's')) {
335
- output += formatNumber(date.getSeconds(), 2);
336
- iFormat++;
337
- }
338
- else {
339
- output += String(date.getSeconds());
340
- }
341
- break;
342
- default:
343
- output += format.charAt(iFormat);
344
- }
345
- }
346
- return output;
347
- };
348
- const FORMATTING_TOKENS = /(\[[^\[]*\])|(mm|dd|yyyy|yy|hh|MM|ss|.)/g;
349
- const TWO_NUMERICS_REGEX = /\d\d/; // 00 - 99
350
- const FOUR_NUMERICS_REGEX = /\d{4}/; // 0000 - 9999
351
- const NON_NUMERIC_REGEX = /[^0-9]/g;
352
- const YEAR = 'year';
353
- const MONTH = 'month';
354
- const DAY = 'day';
355
- const HOUR = 'hour';
356
- const MINUTE = 'minute';
357
- const SECOND = 'second';
358
- const parseFlags = {};
359
- const addParseFlag = (token, regex, callback) => {
360
- const tokens = Array.isArray(token) ? token : [token];
361
- let func;
362
- if (typeof callback === 'string') {
363
- func = (input) => {
364
- const value = parseInt(input, 10);
365
- return { [callback]: value };
366
- };
367
- }
368
- else {
369
- func = callback;
370
- }
371
- tokens.forEach((key) => {
372
- parseFlags[key] = [regex, func];
373
- });
374
- };
375
- addParseFlag('yy', TWO_NUMERICS_REGEX, (input) => {
376
- const year = new Date().getFullYear();
377
- const cent = Math.floor(year / 100);
378
- let value = parseInt(input, 10);
379
- value = (value > 68 ? cent - 1 : cent) * 100 + value;
380
- return { [YEAR]: value };
381
- });
382
- addParseFlag('yyyy', FOUR_NUMERICS_REGEX, YEAR);
383
- addParseFlag('mm', TWO_NUMERICS_REGEX, (input) => ({ [MONTH]: parseInt(input, 10) - 1 }));
384
- addParseFlag('dd', TWO_NUMERICS_REGEX, DAY);
385
- addParseFlag('hh', TWO_NUMERICS_REGEX, HOUR);
386
- addParseFlag('MM', TWO_NUMERICS_REGEX, MINUTE);
387
- addParseFlag('ss', TWO_NUMERICS_REGEX, SECOND);
388
- const getFullInputArray = (input, backupDate = new Date()) => {
389
- const result = [0, 0, 1, 0, 0, 0];
390
- const backupArr = [
391
- backupDate.getFullYear(),
392
- backupDate.getMonth(),
393
- backupDate.getDate(),
394
- backupDate.getHours(),
395
- backupDate.getMinutes(),
396
- backupDate.getSeconds(),
397
- ];
398
- let useBackup = true;
399
- for (let i = 0; i < 7; i++) {
400
- if (input[i] === undefined) {
401
- result[i] = useBackup ? backupArr[i] : result[i];
402
- }
403
- else {
404
- result[i] = input[i];
405
- useBackup = false;
406
- }
407
- }
408
- return result;
409
- };
410
- const createDate = (year, month, day, hour, minute, second) => {
411
- if (!(year < 100 && year >= 0)) {
412
- return new Date(year, month, day, hour, minute, second);
413
- }
414
- const date = new Date(year + 400, month, day, hour, minute, second);
415
- if (isFinite(date.getFullYear())) {
416
- date.setFullYear(year);
417
- }
418
- return date;
419
- };
420
- const makeParser = (dateString, format) => {
421
- const tokens = format.match(FORMATTING_TOKENS);
422
- if (!tokens) {
423
- throw new Error();
424
- }
425
- const { length } = tokens;
426
- let mark = {};
427
- for (let i = 0; i < length; i += 1) {
428
- const token = tokens[i];
429
- const parseTo = parseFlags[token];
430
- if (!parseTo) {
431
- const word = token.replace(/^\[|\]$/g, '');
432
- if (dateString.indexOf(word) === 0) {
433
- dateString = dateString.substr(word.length);
434
- }
435
- else {
436
- throw new Error('not match');
437
- }
438
- }
439
- else {
440
- const regex = parseTo[0];
441
- const parser = parseTo[1];
442
- const value = (regex.exec(dateString) || [])[0];
443
- const obj = parser(value);
444
- mark = Object.assign(Object.assign({}, mark), obj);
445
- dateString = dateString.replace(value, '');
446
- }
447
- }
448
- return mark;
449
- };
450
- const getCleanDateString = (dirtyDateString, format) => {
451
- if (dirtyDateString.length === format.length) {
452
- return dirtyDateString;
453
- }
454
- const separator = dirtyDateString.match(NON_NUMERIC_REGEX)[0];
455
- // pad signle digits to follow supported dateformats
456
- return dirtyDateString
457
- .split(separator)
458
- .map((s) => (s.length === 1 ? '0' + s : s))
459
- .join(separator);
460
- };
461
- const getDateParts = (dirtyDateString, format) => {
462
- const dateString = getCleanDateString(dirtyDateString, format);
463
- return makeParser(dateString, format);
464
- };
465
- const toDate = (dirtyDateString, format) => {
466
- try {
467
- const { backupDate = new Date() } = {};
468
- const { year, month, day, hour, minute, second, date } = getDateParts(dirtyDateString, format);
469
- if (date) {
470
- return date;
471
- }
472
- const inputArray = [year, month, day, hour, minute, second];
473
- let parsedDate;
474
- const result = getFullInputArray(inputArray, backupDate);
475
- parsedDate = createDate(...result);
476
- return parsedDate;
477
- }
478
- catch (e) {
479
- return new Date(NaN);
480
- }
481
- };
482
- const createCalendarGrid = (calendarGridArguments) => {
483
- const { firstDateOfBox, allowedDates, dateFormat, selectedDate, minDate, maxDate, pointerDate } = calendarGridArguments;
484
- const weekDatePointer = new Date(firstDateOfBox);
485
- const dayDatePointer = new Date(firstDateOfBox);
486
- let calendar = [];
487
- do {
488
- let row = [];
489
- do {
490
- row = [
491
- ...row,
492
- {
493
- date: new Date(dayDatePointer),
494
- display: formatDate(dayDatePointer, dateFormat),
495
- dateString: formatDate(dayDatePointer, dateFormat),
496
- label: day(dayDatePointer).toString(),
497
- isToday: isSameDay(dayDatePointer, now()),
498
- isSelected: selectedDate && isSameDay(dayDatePointer, selectedDate),
499
- isDisabled: !allowedDates(dayDatePointer) || !isInRange(dayDatePointer, minDate, maxDate),
500
- isOutdated: pointerDate.month !== dayDatePointer.getMonth() || !isInRange(dayDatePointer, minDate, maxDate),
501
- },
502
- ];
503
- dayDatePointer.setDate(dayDatePointer.getDate() + 1);
504
- } while (isSameWeek(dayDatePointer, weekDatePointer));
505
- calendar = [...calendar, row];
506
- weekDatePointer.setDate(weekDatePointer.getDate() + 7);
507
- } while (isSameMonth(new Date(pointerDate.year, pointerDate.month, pointerDate.day), dayDatePointer));
508
- return calendar;
11
+ const i18nDate = {
12
+ en: {
13
+ months: [
14
+ 'January',
15
+ 'February',
16
+ 'March',
17
+ 'April',
18
+ 'May',
19
+ 'June',
20
+ 'July',
21
+ 'August',
22
+ 'September',
23
+ 'October',
24
+ 'November',
25
+ 'December',
26
+ ],
27
+ monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
28
+ monthsShortGrouped: [
29
+ ['Jan', 'Feb', 'Mar', 'Apr'],
30
+ ['May', 'Jun', 'Jul', 'Aug'],
31
+ ['Sep', 'Oct', 'Nov', 'Dec'],
32
+ ],
33
+ weekdays: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
34
+ weekdaysShort: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
35
+ weekdaysMin: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'],
36
+ },
37
+ de: {
38
+ months: [
39
+ 'Januar',
40
+ 'Februar',
41
+ 'März',
42
+ 'April',
43
+ 'Mai',
44
+ 'Juni',
45
+ 'Juli',
46
+ 'August',
47
+ 'September',
48
+ 'Oktober',
49
+ 'November',
50
+ 'Dezember',
51
+ ],
52
+ monthsShort: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],
53
+ monthsShortGrouped: [
54
+ ['Jan.', 'Feb.', 'März', 'Apr.'],
55
+ ['Mai', 'Juni', 'Juli', 'Aug.'],
56
+ ['Sep.', 'Okt.', 'Nov.', 'Dez.'],
57
+ ],
58
+ weekdays: ['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag'],
59
+ weekdaysShort: ['Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.', 'So.'],
60
+ weekdaysMin: ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'],
61
+ },
62
+ fr: {
63
+ months: [
64
+ 'janvier',
65
+ 'février',
66
+ 'mars',
67
+ 'avril',
68
+ 'mai',
69
+ 'juin',
70
+ 'juillet',
71
+ 'août',
72
+ 'septembre',
73
+ 'octobre',
74
+ 'novembre',
75
+ 'décembre',
76
+ ],
77
+ monthsShort: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
78
+ monthsShortGrouped: [
79
+ ['janv.', 'févr.', 'mars', 'avr.'],
80
+ ['mai', 'juin', 'juil.', 'août'],
81
+ ['sept.', 'oct.', 'nov.', 'déc.'],
82
+ ],
83
+ weekdays: ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche'],
84
+ weekdaysShort: ['lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.', 'dim.'],
85
+ weekdaysMin: ['lu', 'ma', 'me', 'je', 've', 'sa', 'di'],
86
+ },
87
+ it: {
88
+ months: [
89
+ 'gennaio',
90
+ 'febbraio',
91
+ 'marzo',
92
+ 'aprile',
93
+ 'maggio',
94
+ 'giugno',
95
+ 'luglio',
96
+ 'agosto',
97
+ 'settembre',
98
+ 'ottobre',
99
+ 'novembre',
100
+ 'dicembre',
101
+ ],
102
+ monthsShort: ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
103
+ monthsShortGrouped: [
104
+ ['gen', 'feb', 'mar', 'apr'],
105
+ ['mag', 'giu', 'lug', 'ago'],
106
+ ['set', 'ott', 'nov', 'dic'],
107
+ ],
108
+ weekdays: ['lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato', 'domenica'],
109
+ weekdaysShort: ['lun', 'mar', 'mer', 'gio', 'ven', 'sab', 'dom'],
110
+ weekdaysMin: ['lu', 'ma', 'me', 'gi', 've', 'sa', 'do'],
111
+ },
112
+ };
113
+ /**
114
+ * Returns a JS Date instance of the exact moment
115
+ *
116
+ * ```typescript
117
+ * const date = now()
118
+ * // Wed Mar 10 2021 20:30:32 GMT+0100 (Central European Standard Time)
119
+ * ```
120
+ */
121
+ const now = () => new Date();
122
+ /**
123
+ * Returns `true` if the given date is valid
124
+ */
125
+ const isValidDate = (value) => {
126
+ if (sixTimepicker_types.isNil(value)) {
127
+ return false;
128
+ }
129
+ if (sixTimepicker_types.isNumber(value)) {
130
+ return false;
131
+ }
132
+ if (sixTimepicker_types.isDate(value)) {
133
+ return !isNaN(value.getTime());
134
+ }
135
+ return new Date(value).toString() !== 'Invalid Date';
136
+ };
137
+ /**
138
+ * Returns the year number of the given date
139
+ *
140
+ * ```typescript
141
+ * year(new Date(2020, 0, 1)) // 2020
142
+ * ```
143
+ */
144
+ const year = (date) => {
145
+ if (date && isValidDate(date)) {
146
+ return date.getFullYear();
147
+ }
148
+ throw new Error('Not a valid date');
149
+ };
150
+ /**
151
+ * Returns the month number of the given date
152
+ *
153
+ * ```typescript
154
+ * month(new Date(2020, 0, 1)) // 0
155
+ * ```
156
+ */
157
+ const month = (date) => {
158
+ if (date && isValidDate(date)) {
159
+ return date.getMonth();
160
+ }
161
+ throw new Error('Not a valid date');
162
+ };
163
+ /**
164
+ * Returns the day number of the given date
165
+ *
166
+ * ```typescript
167
+ * day(new Date(2020, 0, 1)) // 1
168
+ * ```
169
+ */
170
+ const day = (date) => {
171
+ if (date && isValidDate(date)) {
172
+ return date.getDate();
173
+ }
174
+ throw new Error('Not a valid date');
175
+ };
176
+ /**
177
+ * Returns the hours of the given date
178
+ */
179
+ const hours = (date) => {
180
+ if (date && isValidDate(date)) {
181
+ return date.getHours();
182
+ }
183
+ throw new Error('Not a valid date');
184
+ };
185
+ /**
186
+ * Returns the minutes of the given date
187
+ */
188
+ const minutes = (date) => {
189
+ if (date && isValidDate(date)) {
190
+ return date.getMinutes();
191
+ }
192
+ throw new Error('Not a valid date');
193
+ };
194
+ /**
195
+ * Returns the seconds of the given date
196
+ */
197
+ const seconds = (date) => {
198
+ if (date && isValidDate(date)) {
199
+ return date.getSeconds();
200
+ }
201
+ throw new Error('Not a valid date');
202
+ };
203
+ /**
204
+ * Returns the first day of the week of the given date.
205
+ */
206
+ const getFirstDayOfTheWeek = (date) => {
207
+ const weekdayDiff = [6, 0, 1, 2, 3, 4, 5];
208
+ const day = new Date(date);
209
+ day.setDate(day.getDate() - weekdayDiff[day.getDay()]);
210
+ return day;
211
+ };
212
+ /**
213
+ * Returns `true` when the year of the dates are the same
214
+ */
215
+ const isSameYear = (a, b) => (a === null || a === void 0 ? void 0 : a.getFullYear()) === (b === null || b === void 0 ? void 0 : b.getFullYear());
216
+ /**
217
+ * Returns `true` when the month of the dates are the same
218
+ */
219
+ const isSameMonth = (a, b) => isSameYear(a, b) && (a === null || a === void 0 ? void 0 : a.getMonth()) === (b === null || b === void 0 ? void 0 : b.getMonth());
220
+ /**
221
+ * Returns `true` when the day of the dates are the same
222
+ */
223
+ const isSameDay = (a, b) => isSameMonth(a, b) && (a === null || a === void 0 ? void 0 : a.getDate()) === (b === null || b === void 0 ? void 0 : b.getDate());
224
+ /**
225
+ * Returns `true` when the week of the dates are the same
226
+ */
227
+ const isSameWeek = (a, b) => isSameDay(getFirstDayOfTheWeek(a), getFirstDayOfTheWeek(b));
228
+ /**
229
+ * Returns `true` if the given datestring is valid
230
+ */
231
+ const isValidDateString = (datestring, format) => {
232
+ if (!sixTimepicker_types.isString(datestring) || !sixTimepicker_types.isString(format)) {
233
+ return false;
234
+ }
235
+ if (datestring.length < 6 || format.length < 6) {
236
+ return false;
237
+ }
238
+ const { day, month } = getDateParts(datestring, format);
239
+ if (day > 31 || month > 11 || day <= 0 || month < 0) {
240
+ return false;
241
+ }
242
+ const date = toDate(datestring, format);
243
+ if (sixTimepicker_types.isNil(date)) {
244
+ return false;
245
+ }
246
+ return date.toString() !== 'Invalid Date';
247
+ };
248
+ /**
249
+ * Returns `true` when the given date is not smaller than the minDate and not bigger than the maxDate.
250
+ *
251
+ * ```typescript
252
+ * isInRange(new Date(2020, 1, 1), new Date(2020, 0, 1), new Date(2020, 2, 1)) // true
253
+ * ```
254
+ */
255
+ const isInRange = (date, minDate, maxDate) => {
256
+ if (!date) {
257
+ return true;
258
+ }
259
+ if (minDate && date < minDate) {
260
+ return false;
261
+ }
262
+ if (maxDate && maxDate < date) {
263
+ return false;
264
+ }
265
+ return true;
266
+ };
267
+ const lookAhead = (iFormat, format, match, length = 2) => {
268
+ const increment = length - 1;
269
+ const followingCharacterMatches = format.charAt(iFormat + increment) === match;
270
+ const hasProperLength = iFormat + increment < format.length;
271
+ return hasProperLength && followingCharacterMatches;
272
+ };
273
+ const formatNumber = (value, len) => {
274
+ let num = String(value);
275
+ while (num.length < len) {
276
+ num = '0' + num;
277
+ }
278
+ return num;
279
+ };
280
+ const formatDate = (date, format) => {
281
+ if (!date) {
282
+ return '';
283
+ }
284
+ let output = '';
285
+ for (let iFormat = 0; iFormat < format.length; iFormat++) {
286
+ switch (format.charAt(iFormat)) {
287
+ case 'd':
288
+ if (lookAhead(iFormat, format, 'd')) {
289
+ output += formatNumber(date.getDate(), 2);
290
+ iFormat++;
291
+ }
292
+ else {
293
+ output += String(date.getDate());
294
+ }
295
+ break;
296
+ case 'm':
297
+ if (lookAhead(iFormat, format, 'm')) {
298
+ output += formatNumber(date.getMonth() + 1, 2);
299
+ iFormat++;
300
+ }
301
+ else {
302
+ output += String(date.getMonth() + 1);
303
+ }
304
+ break;
305
+ case 'y':
306
+ if (lookAhead(iFormat, format, 'y', 4)) {
307
+ iFormat += 3;
308
+ output += date.getFullYear();
309
+ }
310
+ else {
311
+ output += (date.getFullYear() % 100 < 10 ? '0' : '') + (date.getFullYear() % 100);
312
+ iFormat++;
313
+ }
314
+ break;
315
+ case 'h':
316
+ if (lookAhead(iFormat, format, 'h')) {
317
+ output += formatNumber(date.getHours(), 2);
318
+ iFormat++;
319
+ }
320
+ else {
321
+ output += String(date.getHours());
322
+ }
323
+ break;
324
+ case 'M':
325
+ if (lookAhead(iFormat, format, 'M')) {
326
+ output += formatNumber(date.getMinutes(), 2);
327
+ iFormat++;
328
+ }
329
+ else {
330
+ output += String(date.getMinutes());
331
+ }
332
+ break;
333
+ case 's':
334
+ if (lookAhead(iFormat, format, 's')) {
335
+ output += formatNumber(date.getSeconds(), 2);
336
+ iFormat++;
337
+ }
338
+ else {
339
+ output += String(date.getSeconds());
340
+ }
341
+ break;
342
+ default:
343
+ output += format.charAt(iFormat);
344
+ }
345
+ }
346
+ return output;
347
+ };
348
+ const FORMATTING_TOKENS = /(\[[^\[]*\])|(mm|dd|yyyy|yy|hh|MM|ss|.)/g;
349
+ const TWO_NUMERICS_REGEX = /\d\d/; // 00 - 99
350
+ const FOUR_NUMERICS_REGEX = /\d{4}/; // 0000 - 9999
351
+ const NON_NUMERIC_REGEX = /[^0-9]/g;
352
+ const YEAR = 'year';
353
+ const MONTH = 'month';
354
+ const DAY = 'day';
355
+ const HOUR = 'hour';
356
+ const MINUTE = 'minute';
357
+ const SECOND = 'second';
358
+ const parseFlags = {};
359
+ const addParseFlag = (token, regex, callback) => {
360
+ const tokens = Array.isArray(token) ? token : [token];
361
+ let func;
362
+ if (typeof callback === 'string') {
363
+ func = (input) => {
364
+ const value = parseInt(input, 10);
365
+ return { [callback]: value };
366
+ };
367
+ }
368
+ else {
369
+ func = callback;
370
+ }
371
+ tokens.forEach((key) => {
372
+ parseFlags[key] = [regex, func];
373
+ });
374
+ };
375
+ addParseFlag('yy', TWO_NUMERICS_REGEX, (input) => {
376
+ const year = new Date().getFullYear();
377
+ const cent = Math.floor(year / 100);
378
+ let value = parseInt(input, 10);
379
+ value = (value > 68 ? cent - 1 : cent) * 100 + value;
380
+ return { [YEAR]: value };
381
+ });
382
+ addParseFlag('yyyy', FOUR_NUMERICS_REGEX, YEAR);
383
+ addParseFlag('mm', TWO_NUMERICS_REGEX, (input) => ({ [MONTH]: parseInt(input, 10) - 1 }));
384
+ addParseFlag('dd', TWO_NUMERICS_REGEX, DAY);
385
+ addParseFlag('hh', TWO_NUMERICS_REGEX, HOUR);
386
+ addParseFlag('MM', TWO_NUMERICS_REGEX, MINUTE);
387
+ addParseFlag('ss', TWO_NUMERICS_REGEX, SECOND);
388
+ const getFullInputArray = (input, backupDate = new Date()) => {
389
+ const result = [0, 0, 1, 0, 0, 0];
390
+ const backupArr = [
391
+ backupDate.getFullYear(),
392
+ backupDate.getMonth(),
393
+ backupDate.getDate(),
394
+ backupDate.getHours(),
395
+ backupDate.getMinutes(),
396
+ backupDate.getSeconds(),
397
+ ];
398
+ let useBackup = true;
399
+ for (let i = 0; i < 7; i++) {
400
+ if (input[i] === undefined) {
401
+ result[i] = useBackup ? backupArr[i] : result[i];
402
+ }
403
+ else {
404
+ result[i] = input[i];
405
+ useBackup = false;
406
+ }
407
+ }
408
+ return result;
409
+ };
410
+ const createDate = (year, month, day, hour, minute, second) => {
411
+ if (!(year < 100 && year >= 0)) {
412
+ return new Date(year, month, day, hour, minute, second);
413
+ }
414
+ const date = new Date(year + 400, month, day, hour, minute, second);
415
+ if (isFinite(date.getFullYear())) {
416
+ date.setFullYear(year);
417
+ }
418
+ return date;
419
+ };
420
+ const makeParser = (dateString, format) => {
421
+ const tokens = format.match(FORMATTING_TOKENS);
422
+ if (!tokens) {
423
+ throw new Error();
424
+ }
425
+ const { length } = tokens;
426
+ let mark = {};
427
+ for (let i = 0; i < length; i += 1) {
428
+ const token = tokens[i];
429
+ const parseTo = parseFlags[token];
430
+ if (!parseTo) {
431
+ const word = token.replace(/^\[|\]$/g, '');
432
+ if (dateString.indexOf(word) === 0) {
433
+ dateString = dateString.substr(word.length);
434
+ }
435
+ else {
436
+ throw new Error('not match');
437
+ }
438
+ }
439
+ else {
440
+ const regex = parseTo[0];
441
+ const parser = parseTo[1];
442
+ const value = (regex.exec(dateString) || [])[0];
443
+ const obj = parser(value);
444
+ mark = Object.assign(Object.assign({}, mark), obj);
445
+ dateString = dateString.replace(value, '');
446
+ }
447
+ }
448
+ return mark;
449
+ };
450
+ const getCleanDateString = (dirtyDateString, format) => {
451
+ if (dirtyDateString.length === format.length) {
452
+ return dirtyDateString;
453
+ }
454
+ const separator = dirtyDateString.match(NON_NUMERIC_REGEX)[0];
455
+ // pad signle digits to follow supported dateformats
456
+ return dirtyDateString
457
+ .split(separator)
458
+ .map((s) => (s.length === 1 ? '0' + s : s))
459
+ .join(separator);
460
+ };
461
+ const getDateParts = (dirtyDateString, format) => {
462
+ const dateString = getCleanDateString(dirtyDateString, format);
463
+ return makeParser(dateString, format);
464
+ };
465
+ const toDate = (dirtyDateString, format) => {
466
+ try {
467
+ const { backupDate = new Date() } = {};
468
+ const { year, month, day, hour, minute, second, date } = getDateParts(dirtyDateString, format);
469
+ if (date) {
470
+ return date;
471
+ }
472
+ const inputArray = [year, month, day, hour, minute, second];
473
+ let parsedDate;
474
+ const result = getFullInputArray(inputArray, backupDate);
475
+ parsedDate = createDate(...result);
476
+ return parsedDate;
477
+ }
478
+ catch (e) {
479
+ return new Date(NaN);
480
+ }
481
+ };
482
+ const createCalendarGrid = (calendarGridArguments) => {
483
+ const { firstDateOfBox, allowedDates, dateFormat, selectedDate, minDate, maxDate, pointerDate } = calendarGridArguments;
484
+ const weekDatePointer = new Date(firstDateOfBox);
485
+ const dayDatePointer = new Date(firstDateOfBox);
486
+ let calendar = [];
487
+ do {
488
+ let row = [];
489
+ do {
490
+ row = [
491
+ ...row,
492
+ {
493
+ date: new Date(dayDatePointer),
494
+ display: formatDate(dayDatePointer, dateFormat),
495
+ dateString: formatDate(dayDatePointer, dateFormat),
496
+ label: day(dayDatePointer).toString(),
497
+ isToday: isSameDay(dayDatePointer, now()),
498
+ isSelected: selectedDate && isSameDay(dayDatePointer, selectedDate),
499
+ isDisabled: !allowedDates(dayDatePointer) || !isInRange(dayDatePointer, minDate, maxDate),
500
+ isOutdated: pointerDate.month !== dayDatePointer.getMonth() || !isInRange(dayDatePointer, minDate, maxDate),
501
+ },
502
+ ];
503
+ dayDatePointer.setDate(dayDatePointer.getDate() + 1);
504
+ } while (isSameWeek(dayDatePointer, weekDatePointer));
505
+ calendar = [...calendar, row];
506
+ weekDatePointer.setDate(weekDatePointer.getDate() + 7);
507
+ } while (isSameMonth(new Date(pointerDate.year, pointerDate.month, pointerDate.day), dayDatePointer));
508
+ return calendar;
509
509
  };
510
510
 
511
- var SixDateFormats;
512
- (function (SixDateFormats) {
513
- SixDateFormats["DDMMYYY_DOT"] = "dd.mm.yyyy";
514
- SixDateFormats["YYYYMMDD_DASH"] = "yyyy-mm-dd";
515
- SixDateFormats["DDMMYYYY_DASH"] = "dd-mm-yyyy";
516
- SixDateFormats["DDMMYYYY_SLASH"] = "dd/mm/yyyy";
517
- SixDateFormats["YYYYMMDD_SLASH"] = "yyyy/mm/dd";
518
- SixDateFormats["DDMMYY_DOT"] = "dd.mm.yy";
519
- SixDateFormats["YYMMDD_DASH"] = "yy-mm-dd";
520
- SixDateFormats["DDMMYY_DASH"] = "dd-mm-yy";
521
- SixDateFormats["DDMMYY_SLASH"] = "dd/mm/yy";
522
- SixDateFormats["YYMMDD_SLASH"] = "yy/mm/dd";
523
- SixDateFormats["DDMMYYY_DOT_TIME"] = "dd.mm.yyyy hh:MM:ss";
524
- SixDateFormats["YYYYMMDD_DASH_TIME"] = "yyyy-mm-dd hh:MM:ss";
525
- SixDateFormats["DDMMYYYY_DASH_TIME"] = "dd-mm-yyyy hh:MM:ss";
526
- SixDateFormats["DDMMYYYY_SLASH_TIME"] = "dd/mm/yyyy hh:MM:ss";
527
- SixDateFormats["YYYYMMDD_SLASH_TIME"] = "yyyy/mm/dd hh:MM:ss";
528
- SixDateFormats["DDMMYY_DOT_TIME"] = "dd.mm.yy hh:MM:ss";
529
- SixDateFormats["YYMMDD_DASH_TIME"] = "yy-mm-dd hh:MM:ss";
530
- SixDateFormats["DDMMYY_DASH_TIME"] = "dd-mm-yy hh:MM:ss";
531
- SixDateFormats["DDMMYY_SLASH_TIME"] = "dd/mm/yy hh:MM:ss";
532
- SixDateFormats["YYMMDD_SLASH_TIME"] = "yy/mm/dd hh:MM:ss";
511
+ var SixDateFormats;
512
+ (function (SixDateFormats) {
513
+ SixDateFormats["DDMMYYY_DOT"] = "dd.mm.yyyy";
514
+ SixDateFormats["YYYYMMDD_DASH"] = "yyyy-mm-dd";
515
+ SixDateFormats["DDMMYYYY_DASH"] = "dd-mm-yyyy";
516
+ SixDateFormats["DDMMYYYY_SLASH"] = "dd/mm/yyyy";
517
+ SixDateFormats["YYYYMMDD_SLASH"] = "yyyy/mm/dd";
518
+ SixDateFormats["DDMMYY_DOT"] = "dd.mm.yy";
519
+ SixDateFormats["YYMMDD_DASH"] = "yy-mm-dd";
520
+ SixDateFormats["DDMMYY_DASH"] = "dd-mm-yy";
521
+ SixDateFormats["DDMMYY_SLASH"] = "dd/mm/yy";
522
+ SixDateFormats["YYMMDD_SLASH"] = "yy/mm/dd";
523
+ SixDateFormats["DDMMYYY_DOT_TIME"] = "dd.mm.yyyy hh:MM:ss";
524
+ SixDateFormats["YYYYMMDD_DASH_TIME"] = "yyyy-mm-dd hh:MM:ss";
525
+ SixDateFormats["DDMMYYYY_DASH_TIME"] = "dd-mm-yyyy hh:MM:ss";
526
+ SixDateFormats["DDMMYYYY_SLASH_TIME"] = "dd/mm/yyyy hh:MM:ss";
527
+ SixDateFormats["YYYYMMDD_SLASH_TIME"] = "yyyy/mm/dd hh:MM:ss";
528
+ SixDateFormats["DDMMYY_DOT_TIME"] = "dd.mm.yy hh:MM:ss";
529
+ SixDateFormats["YYMMDD_DASH_TIME"] = "yy-mm-dd hh:MM:ss";
530
+ SixDateFormats["DDMMYY_DASH_TIME"] = "dd-mm-yy hh:MM:ss";
531
+ SixDateFormats["DDMMYY_SLASH_TIME"] = "dd/mm/yy hh:MM:ss";
532
+ SixDateFormats["YYMMDD_SLASH_TIME"] = "yy/mm/dd hh:MM:ss";
533
533
  })(SixDateFormats || (SixDateFormats = {}));
534
534
 
535
- const MonthSelection = ({ locale, selectedDate, onClickMonthCell }) => {
536
- const isToday = (value) => locale.monthsShort[now().getMonth()] === value;
537
- const isSelectedMonth = (value) => (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.getMonth()) === locale.monthsShort.findIndex((m) => m === value);
538
- return (index.h("table", { class: "datepicker-table", part: "month-selection" },
539
- index.h("tbody", null, locale.monthsShortGrouped.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((month) => (index.h("td", { onClick: () => onClickMonthCell(month), class: {
540
- 'datepicker-table__cell': true,
541
- 'datepicker-table__cell--is-today': isToday(month),
542
- 'datepicker-table__cell--is-selected': isSelectedMonth(month),
543
- } }, month)))))))));
535
+ const MonthSelection = ({ locale, selectedDate, onClickMonthCell }) => {
536
+ const isToday = (value) => locale.monthsShort[now().getMonth()] === value;
537
+ const isSelectedMonth = (value) => (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.getMonth()) === locale.monthsShort.findIndex((m) => m === value);
538
+ return (index.h("table", { class: "datepicker-table", part: "month-selection" },
539
+ index.h("tbody", null, locale.monthsShortGrouped.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((month) => (index.h("td", { onClick: () => onClickMonthCell(month), class: {
540
+ 'datepicker-table__cell': true,
541
+ 'datepicker-table__cell--is-today': isToday(month),
542
+ 'datepicker-table__cell--is-selected': isSelectedMonth(month),
543
+ } }, month)))))))));
544
544
  };
545
545
 
546
- const DaySelection = ({ locale, calendarGrid, onClickDateCell }) => {
547
- return (index.h("table", { class: "datepicker-table", part: "day-selection" },
548
- index.h("thead", { part: "weekday-header" }, locale.weekdaysMin.map((weekday) => (index.h("th", { class: "datepicker__cell" }, weekday)))),
549
- index.h("tbody", null, calendarGrid.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((cell) => (index.h("td", { "data-date": cell.dateString, onClick: () => onClickDateCell(cell), class: {
550
- 'datepicker-table__cell': true,
551
- 'datepicker-table__cell--is-today': cell.isToday,
552
- 'datepicker-table__cell--is-selected': cell.isSelected,
553
- 'datepicker-table__cell--is-outdated': cell.isOutdated,
554
- 'datepicker-table__cell--is-disabled': cell.isDisabled,
555
- 'datepicker-table__cell--is-selectable': !cell.isDisabled,
556
- } }, cell.label)))))))));
546
+ const DaySelection = ({ locale, calendarGrid, onClickDateCell }) => {
547
+ return (index.h("table", { class: "datepicker-table", part: "day-selection" },
548
+ index.h("thead", { part: "weekday-header" }, locale.weekdaysMin.map((weekday) => (index.h("th", { class: "datepicker__cell" }, weekday)))),
549
+ index.h("tbody", null, calendarGrid.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((cell) => (index.h("td", { "data-date": cell.dateString, onClick: () => onClickDateCell(cell), class: {
550
+ 'datepicker-table__cell': true,
551
+ 'datepicker-table__cell--is-today': cell.isToday,
552
+ 'datepicker-table__cell--is-selected': cell.isSelected,
553
+ 'datepicker-table__cell--is-outdated': cell.isOutdated,
554
+ 'datepicker-table__cell--is-disabled': cell.isDisabled,
555
+ 'datepicker-table__cell--is-selectable': !cell.isDisabled,
556
+ } }, cell.label)))))))));
557
557
  };
558
558
 
559
- const YearSelection = ({ selectedDate, yearSelection, onClickYearCell }) => {
560
- return (index.h("table", { class: "datepicker-table", part: "year-selection" },
561
- index.h("tbody", null, yearSelection.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((year) => (index.h("td", { onClick: () => onClickYearCell(year), class: {
562
- 'datepicker-table__cell': true,
563
- 'datepicker-table__cell--is-today': now().getFullYear() === year,
564
- 'datepicker-table__cell--is-selected': (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.getFullYear()) === year,
565
- } }, year)))))))));
559
+ const YearSelection = ({ selectedDate, yearSelection, onClickYearCell }) => {
560
+ return (index.h("table", { class: "datepicker-table", part: "year-selection" },
561
+ index.h("tbody", null, yearSelection.map((row) => (index.h("tr", { class: "datepicker-table__row" }, row.map((year) => (index.h("td", { onClick: () => onClickYearCell(year), class: {
562
+ 'datepicker-table__cell': true,
563
+ 'datepicker-table__cell--is-today': now().getFullYear() === year,
564
+ 'datepicker-table__cell--is-selected': (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.getFullYear()) === year,
565
+ } }, year)))))))));
566
566
  };
567
567
 
568
568
  const sixDatepickerCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block;font-family:var(--six-font-family)}.datepicker__container{position:relative}.datepicker__popup{min-width:400px;background-color:white;padding:0.5em 0.5em 1.5em;box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);user-select:none;position:absolute;z-index:var(--six-z-index-dropdown);right:0;left:0}.datepicker__popup--is-up{bottom:100%;min-height:382px}.datepicker__popup--is-inline{position:initial;box-shadow:none;border:1px solid var(--six-color-web-rock-400)}.datepicker-header{display:flex;justify-content:space-between;border-bottom:1px solid var(--six-color-web-rock-400);padding:0.5em;margin-bottom:1em}.datepicker-header svg{fill:var(--six-color-web-rock-900);stroke:none}.datepicker-header__btn{cursor:pointer;width:2.5em;height:2.5em;display:flex;vertical-align:middle;align-items:center;justify-content:center}.datepicker-header__btn:hover{background-color:var(--six-color-web-rock-100);border-radius:100%}.datepicker-header__label{display:flex}.datepicker-header__label>div{cursor:pointer;padding:0.5em;display:flex;vertical-align:middle;align-items:center;justify-content:center}.datepicker-header__label>div:hover{background-color:var(--six-color-web-rock-100)}.datepicker-table{width:100%}.datepicker-table__cell{text-align:center;width:2.5rem;height:2.5rem;cursor:pointer}.datepicker-table__cell:hover{background-color:var(--six-table-row-background-color-hover)}.datepicker-table__cell--is-today{border:1px solid var(--six-color-web-rock-400)}.datepicker-table__cell--is-selected{background-color:var(--six-color-red);color:var(--six-color-white)}.datepicker-table__cell--is-disabled{background-color:var(--six-color-web-rock-200);cursor:initial}.datepicker-table__cell--is-disabled:hover{background-color:var(--six-color-web-rock-200)}.datepicker-table__cell--is-outdated{color:var(--six-color-web-rock-400)}.datepicker-clear{display:inline-flex;align-items:center;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;padding:0;transition:var(--six-transition-fast) color;cursor:pointer}.datepicker-clear:hover{color:var(--six-input-icon-color-hover)}.datepicker-clear:focus{outline:none}.datepicker-clear--right{right:0;position:absolute}.datepicker-clear--left{right:35px;position:absolute}.input--empty .datepicker-clear{visibility:hidden}.prefix{cursor:pointer}.prefix--right{right:0;display:inline-flex;position:absolute;font-size:inherit;color:var(--six-input-icon-color);border:none;background:none;margin-right:var(--six-input-spacing-medium);transition:var(--six-transition-fast) color}six-timepicker::part(popup){border:none;padding:0.5em 0.5em 0;min-height:0}";
569
569
 
570
- const NUMBER_OF_YEARS_SHOWN = 25;
571
- const MIN_POPUP_HEIGHT = 400;
572
- var SelectionMode;
573
- (function (SelectionMode) {
574
- SelectionMode["DAY"] = "day";
575
- SelectionMode["MONTH"] = "month";
576
- SelectionMode["YEAR"] = "year";
577
- })(SelectionMode || (SelectionMode = {}));
578
- const getYearSelectionAroundYear = (year) => {
579
- const numberOfElementsPerRow = 5;
580
- return Array.from(new Array(NUMBER_OF_YEARS_SHOWN).keys())
581
- .map((n) => n + year - Math.floor(NUMBER_OF_YEARS_SHOWN / 2))
582
- .reduce((curr, item, index) => {
583
- if (index % numberOfElementsPerRow === 0) {
584
- curr.push([]);
585
- }
586
- curr[curr.length - 1].push(item);
587
- return curr;
588
- }, []);
589
- };
590
- let SixDatepicker = class {
591
- constructor(hostRef) {
592
- index.registerInstance(this, hostRef);
593
- this.sixSelect = index.createEvent(this, "six-datepicker-select", 7);
594
- this.sixClear = index.createEvent(this, "six-datepicker-clear", 7);
595
- this.sixBlur = index.createEvent(this, "six-datepicker-blur", 7);
596
- this.eventListeners = new eventListeners.EventListeners();
597
- this.selectedDate = null;
598
- this.pointerDate = SixDatepicker.getCurrentDateAsPointer();
599
- this.selectionMode = SelectionMode.DAY;
600
- this.isDropDownContentUp = false;
601
- /**
602
- * Set the type.
603
- */
604
- this.type = 'date';
605
- /**
606
- * The language used to render the weekdays and months.
607
- */
608
- this.locale = 'en';
609
- /** Indicates whether or not the calendar dropdown is open on startup. You can use this in lieu of the show/hide methods. */
610
- this.open = false;
611
- /** Indicates whether or not the calendar should be shown as an inline (always open) component */
612
- this.inline = false;
613
- /**
614
- * If `true` the user can only select a date via the component in the popup, but not directly edit the input field.
615
- */
616
- this.readonly = false;
617
- /**
618
- * If `true` the component is disabled.
619
- */
620
- this.disabled = false;
621
- /**
622
- * Callback to determine which date in the datepicker should be selectable.
623
- * the callback function will get a datestring as an argument, e.g. '2021-07-04'
624
- *
625
- * Usage e.g.:
626
- * const datepicker = document.getElementById('allowed-date-picker');
627
- * datepicker.allowedDates = datestring => parseInt(datestring.split('-')[2], 10) % 2 === 0;
628
- */
629
- this.allowedDates = () => true;
630
- /**
631
- * The minimum datetime allowed. Value must be a date object
632
- */
633
- this.min = null;
634
- /**
635
- * The maximum datetime allowed. Value must be a date object
636
- */
637
- this.max = null;
638
- /**
639
- * Closes the datepicker dropdown after selection
640
- */
641
- this.closeOnSelect = this.type === 'date';
642
- /** Datepicker size. */
643
- this.size = 'medium';
644
- /**
645
- * The value of the form field, which accepts a date object.
646
- */
647
- this.value = null;
648
- /** Define the dateFormat. Valid formats are:
649
- * 'dd.mm.yyyy'
650
- * 'yyyy-mm-dd'
651
- * 'dd-mm-yyyy'
652
- * 'dd/mm/yyyy'
653
- * 'yyyy/mm/dd'
654
- * 'dd.mm.yy'
655
- * 'yy-mm-dd'
656
- * 'dd-mm-yy'
657
- * 'dd/mm/yy'
658
- * 'yy/mm/dd'
659
- * */
660
- this.dateFormat = SixDateFormats.DDMMYYY_DOT;
661
- /**
662
- * Set the amount of time, in milliseconds, to wait to trigger the `dateChange` event after each keystroke.
663
- */
664
- this.debounce = executionControl.DEFAULT_DEBOUNCE_FAST;
665
- /** Set to display the error text on blur and not when typing */
666
- this.errorOnBlur = false;
667
- /** The input's error text. Alternatively, you can use the error-text slot. */
668
- this.errorText = '';
669
- /** The input's label. Alternatively, you can use the label slot. */
670
- this.label = '';
671
- /** The input's name attribute. */
672
- this.name = '';
673
- /** Set to true to add a clear button when the input is populated. */
674
- this.clearable = false;
675
- /** Set the position of the icon */
676
- this.iconPosition = 'left';
677
- /**
678
- * Enable this option to prevent the panel from being clipped when the component is placed inside a container with
679
- * `overflow: auto|scroll`.
680
- */
681
- this.hoist = false;
682
- this.defaultValue = null;
683
- this.handleDocumentKeyDown = (event) => {
684
- // Close when escape is pressed
685
- if (this.open && event.key === 'Escape') {
686
- event.stopPropagation();
687
- this.closePopup();
688
- void this.inputElement.setFocus();
689
- }
690
- // Handle tabbing
691
- if (event.key === 'Tab') {
692
- this.closePopup();
693
- }
694
- };
695
- this.handleDocumentMouseDown = (event) => {
696
- // Close when clicking outside of the containing element
697
- const path = event.composedPath();
698
- if (!path.includes(this.container)) {
699
- this.closePopup();
700
- return;
701
- }
702
- };
703
- this.onTimepickerChange = (sixTimepickerChange) => {
704
- const time = sixTimepickerChange.detail.value;
705
- const newDate = new Date();
706
- if (this.selectedDate) {
707
- newDate.setFullYear(this.selectedDate.getFullYear(), this.selectedDate.getMonth(), this.selectedDate.getDate());
708
- }
709
- newDate.setHours(time[sixTimepicker_types.SixTimePropertyName.HOURS], time[sixTimepicker_types.SixTimePropertyName.MINUTES], time[sixTimepicker_types.SixTimePropertyName.SECONDS]);
710
- this.updateValue(newDate);
711
- this.updatePointerDates();
712
- };
713
- this.onClickDateCell = (cell) => {
714
- if (!cell.isDisabled) {
715
- void this.select(cell.dateString);
716
- }
717
- };
718
- this.onClickMonthCell = (selectedMonth) => {
719
- const month = i18nDate[this.locale].monthsShort.findIndex((monthShort) => monthShort === selectedMonth);
720
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { month });
721
- this.selectionMode = SelectionMode.DAY;
722
- };
723
- this.onClickYearCell = (year) => {
724
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year });
725
- this.selectionMode = SelectionMode.DAY;
726
- };
727
- this.handleInputChange = (event) => {
728
- const inputValue = this.inputElement.value;
729
- if (!isValidDateString(inputValue, this.dateFormat)) {
730
- return;
731
- }
732
- const inputValueDate = toDate(inputValue, this.dateFormat);
733
- if (inputValueDate === undefined) {
734
- return;
735
- }
736
- if (this.min && this.min.getTime() > inputValueDate.getTime()) {
737
- return;
738
- }
739
- if (this.max && this.max.getTime() < inputValueDate.getTime()) {
740
- return;
741
- }
742
- this.updateIfChanged(inputValueDate);
743
- event.stopPropagation();
744
- const datesOnly = inputValue.replace(/[^\d]/g, '');
745
- let isDateValid = !inputValue;
746
- if (inputValue && datesOnly.length >= 6) {
747
- const date = toDate(inputValue, this.dateFormat);
748
- const datestring = formatDate(date, this.dateFormat);
749
- if (isValidDateString(datestring, this.dateFormat)) {
750
- this.selectedDate = toDate(datestring, this.dateFormat);
751
- this.updatePointerDates();
752
- this.updateValue(this.selectedDate);
753
- isDateValid = true;
754
- }
755
- }
756
- this.displayCustomMessage(isDateValid);
757
- };
758
- this.handleOnBlur = (event) => {
759
- // clear the value if the user deleted the date
760
- if (this.inputElement.value === '' && isValidDate(this.value)) {
761
- this.value = undefined;
762
- }
763
- event.stopPropagation();
764
- const inputValue = this.inputElement.value;
765
- const inputValueDate = toDate(inputValue, this.dateFormat);
766
- const formattedDate = formatDate(this.value, this.dateFormat);
767
- if (inputValueDate && inputValue !== formattedDate) {
768
- // properly format date if necessary
769
- this.inputElement.value = formattedDate;
770
- }
771
- this.sixBlur.emit(this.value);
772
- };
773
- }
774
- debounceChanged() {
775
- this.sixSelect = executionControl.debounceEvent(this.sixSelect, this.debounce);
776
- }
777
- /**
778
- * Update the native input element when the value changes
779
- */
780
- valueChanged() {
781
- // map unreadable values to undefined to make the datepicker fault-tolerant
782
- if (this.isValidValue()) {
783
- console.warn('Encountered unreadable date, will map to undefined. Received value', this.value);
784
- this.value = undefined;
785
- return;
786
- }
787
- this.selectedDate = this.value;
788
- this.updatePointerDates();
789
- this.sixSelect.emit(this.value);
790
- }
791
- async resizeHandler() {
792
- this.calcIsDropDownContentUp();
793
- this.moveOpenHoistedPopup();
794
- this.adjustPopupPosition();
795
- }
796
- async scrollHandler() {
797
- this.calcIsDropDownContentUp();
798
- this.moveOpenHoistedPopup();
799
- }
800
- get container() {
801
- return this.containingElement || this.host;
802
- }
803
- get firstDateOfBox() {
804
- const date = new Date(this.pointerDate.year, this.pointerDate.month, 1);
805
- return getFirstDayOfTheWeek(date);
806
- }
807
- /** Checks for validity and shows the browser's validation message if the control is invalid. */
808
- async reportValidity() {
809
- return this.inputElement.reportValidity();
810
- }
811
- /** Checks for validity. */
812
- async checkValidity() {
813
- return this.inputElement.checkValidity();
814
- }
815
- /** Sets a custom validation message. If `message` is not empty, the field will be considered invalid. */
816
- async setCustomValidity(message) {
817
- await this.inputElement.setCustomValidity(message);
818
- }
819
- /** Resets the formcontrol */
820
- async reset() {
821
- this.value = this.defaultValue;
822
- this.inputElement.value = formatDate(this.defaultValue, this.dateFormat);
823
- await this.inputElement.reset();
824
- }
825
- isValidValue() {
826
- if (this.value === undefined || this.value === null) {
827
- return false;
828
- }
829
- if (!(this.value instanceof Date)) {
830
- return true;
831
- }
832
- return this.value instanceof Date && isNaN(this.value);
833
- }
834
- get calendarGrid() {
835
- return createCalendarGrid({
836
- firstDateOfBox: this.firstDateOfBox,
837
- allowedDates: this.allowedDates,
838
- dateFormat: this.dateFormat,
839
- locale: this.locale,
840
- selectedDate: this.selectedDate,
841
- minDate: this.min,
842
- maxDate: this.max,
843
- pointerDate: this.pointerDate,
844
- });
845
- }
846
- calcIsDropDownContentUp() {
847
- if (!this.inputElement || !this.wrapper) {
848
- return;
849
- }
850
- const inputBoundingRect = this.inputElement.getBoundingClientRect();
851
- const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
852
- const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
853
- const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
854
- this.isDropDownContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
855
- }
856
- getMonthStringForIndex(index) {
857
- return i18nDate[this.locale].months[index];
858
- }
859
- previousUnit() {
860
- if (this.selectionMode === SelectionMode.DAY) {
861
- this.previousMonth();
862
- }
863
- else if (this.selectionMode === SelectionMode.MONTH) {
864
- this.previousYear();
865
- }
866
- else if (this.selectionMode === SelectionMode.YEAR) {
867
- this.previousYearGroup();
868
- }
869
- }
870
- previousYear() {
871
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year - 1 });
872
- }
873
- previousYearGroup() {
874
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year - NUMBER_OF_YEARS_SHOWN });
875
- }
876
- previousMonth() {
877
- if (this.pointerDate.month === 0) {
878
- this.pointerDate = { year: this.pointerDate.year - 1, month: 11, day: 1, hours: 0, minutes: 0, seconds: 0 };
879
- }
880
- else {
881
- this.pointerDate = {
882
- year: this.pointerDate.year,
883
- month: this.pointerDate.month - 1,
884
- day: 1,
885
- hours: 0,
886
- minutes: 0,
887
- seconds: 0,
888
- };
889
- }
890
- }
891
- nextUnit() {
892
- if (this.selectionMode === SelectionMode.DAY) {
893
- this.nextMonth();
894
- }
895
- else if (this.selectionMode === SelectionMode.MONTH) {
896
- this.nextYear();
897
- }
898
- else if (this.selectionMode === SelectionMode.YEAR) {
899
- this.nextYearGroup();
900
- }
901
- }
902
- nextMonth() {
903
- if (this.pointerDate.month === 11) {
904
- this.pointerDate = { year: this.pointerDate.year + 1, month: 0, day: 1, hours: 0, minutes: 0, seconds: 0 };
905
- }
906
- else {
907
- this.pointerDate = {
908
- year: this.pointerDate.year,
909
- month: this.pointerDate.month + 1,
910
- day: 1,
911
- hours: 0,
912
- minutes: 0,
913
- seconds: 0,
914
- };
915
- }
916
- }
917
- nextYear() {
918
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year + 1 });
919
- }
920
- nextYearGroup() {
921
- this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year + NUMBER_OF_YEARS_SHOWN });
922
- }
923
- openCalendar() {
924
- if (!this.open && !this.disabled) {
925
- this.open = true;
926
- this.setupEventListenersForOpenPopup();
927
- }
928
- }
929
- setupEventListenersForOpenPopup() {
930
- this.eventListeners.add(document, 'keydown', this.handleDocumentKeyDown);
931
- this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
932
- }
933
- handleClearClick(event) {
934
- event.stopPropagation();
935
- void this.select(undefined);
936
- this.sixClear.emit();
937
- }
938
- closePopup() {
939
- if (this.inline) {
940
- return;
941
- }
942
- this.open = false;
943
- this.eventListeners.remove(document, 'keydown', this.handleDocumentKeyDown);
944
- this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);
945
- this.selectionMode = SelectionMode.DAY;
946
- }
947
- updatePointerDates() {
948
- const date = this.getPointerDate();
949
- if (this.differsFromPointerDate(date)) {
950
- this.pointerDate = {
951
- year: year(date),
952
- month: month(date),
953
- day: day(date),
954
- hours: hours(date),
955
- minutes: minutes(date),
956
- seconds: seconds(date),
957
- };
958
- }
959
- }
960
- differsFromPointerDate(date) {
961
- return (this.pointerDate.day !== day(date) ||
962
- this.pointerDate.month !== month(date) ||
963
- this.pointerDate.year !== year(date) ||
964
- this.pointerDate.hours !== hours(date) ||
965
- this.pointerDate.minutes !== minutes(date) ||
966
- this.pointerDate.seconds !== seconds(date));
967
- }
968
- getPointerDate() {
969
- if (this.selectedDate !== undefined && this.selectedDate !== null) {
970
- return this.selectedDate;
971
- }
972
- if (sixTimepicker_types.isNil(this.defaultDate)) {
973
- return now();
974
- }
975
- else {
976
- return this.defaultDate && toDate(this.defaultDate, this.dateFormat);
977
- }
978
- }
979
- updateValue(newDate) {
980
- this.displayCustomMessage(true);
981
- this.updateIfChanged(newDate);
982
- }
983
- updateIfChanged(newDate) {
984
- var _a;
985
- if (((_a = this.value) === null || _a === void 0 ? void 0 : _a.getTime()) === (newDate === null || newDate === void 0 ? void 0 : newDate.getTime())) {
986
- return;
987
- }
988
- this.value = newDate;
989
- }
990
- /**
991
- * Selects an option
992
- */
993
- async select(datestring) {
994
- if (!datestring) {
995
- this.updateValue(undefined);
996
- }
997
- else {
998
- const newDate = toDate(datestring, this.dateFormat);
999
- newDate.setHours(this.pointerDate.hours, this.pointerDate.minutes, this.pointerDate.seconds);
1000
- this.updateValue(newDate);
1001
- }
1002
- this.updatePointerDates();
1003
- if (this.closeOnSelect) {
1004
- this.closePopup();
1005
- }
1006
- }
1007
- componentWillLoad() {
1008
- this.validateProps();
1009
- this.defaultValue = this.value;
1010
- this.selectedDate = this.value;
1011
- this.updatePointerDates();
1012
- this.updateValue(this.value);
1013
- if (this.inline) {
1014
- this.open = true;
1015
- }
1016
- if (this.open) {
1017
- this.setupEventListenersForOpenPopup();
1018
- }
1019
- }
1020
- validateProps() {
1021
- if (this.value !== null && this.value !== undefined && !(this.value instanceof Date)) {
1022
- throw new Error('Datepicker no longer supports strings as value. Use a date object instead!');
1023
- }
1024
- if (this.min !== null && this.min !== undefined && !(this.min instanceof Date)) {
1025
- throw new Error('Datepicker no longer supports strings as min. Use a date object instead!');
1026
- }
1027
- if (this.max !== null && this.max !== undefined && !(this.max instanceof Date)) {
1028
- throw new Error('Datepicker no longer supports strings as min. Use a date object instead!');
1029
- }
1030
- }
1031
- componentDidLoad() {
1032
- this.eventListeners.add(this.inputElement, 'six-input-input', executionControl.debounce(this.handleInputChange, this.debounce));
1033
- this.eventListeners.add(this.inputElement, 'six-input-blur', this.handleOnBlur);
1034
- }
1035
- renderHeader() {
1036
- return (index.h("header", { class: "datepicker-header", part: "header" }, index.h("div", { class: "datepicker-header__btn prev", onClick: () => this.previousUnit() }, index.h("svg", { viewBox: "0 5 13 13", width: "14", height: "23" }, index.h("path", { d: "M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z" }))), index.h("div", { class: "datepicker-header__label" }, this.selectionMode === SelectionMode.DAY && (index.h("div", { onClick: () => (this.selectionMode = SelectionMode.MONTH) }, index.h("span", { class: "datepicker-header__label-month" }, this.getMonthStringForIndex(this.pointerDate.month)), index.h("span", null, index.h("svg", { viewBox: "-3 -4 24 24", width: "20", height: "20" }, index.h("polyline", { points: "6 9 12 15 18 9" }))))), this.selectionMode !== SelectionMode.YEAR && (index.h("div", { onClick: () => (this.selectionMode = SelectionMode.YEAR) }, index.h("span", { class: "datepicker-header__label-year" }, this.pointerDate.year), index.h("span", null, index.h("svg", { viewBox: "-3 -4 24 24", width: "20", height: "20" }, index.h("polyline", { points: "6 9 12 15 18 9" }))))), this.selectionMode === SelectionMode.YEAR && (index.h("div", null, this.pointerDate.year - Math.floor(NUMBER_OF_YEARS_SHOWN / 2), " \u2013", ' ', this.pointerDate.year + Math.floor(NUMBER_OF_YEARS_SHOWN / 2)))), index.h("div", { class: "datepicker-header__btn next", onClick: () => this.nextUnit() }, index.h("svg", { viewBox: "5 5 13 13", width: "14", height: "23" }, index.h("path", { d: "M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z" })))));
1037
- }
1038
- renderBody() {
1039
- switch (this.selectionMode) {
1040
- case SelectionMode.DAY:
1041
- return (index.h(DaySelection, { locale: i18nDate[this.locale], calendarGrid: this.calendarGrid, onClickDateCell: this.onClickDateCell }));
1042
- case SelectionMode.MONTH:
1043
- return (index.h(MonthSelection, { locale: i18nDate[this.locale], selectedDate: this.selectedDate, onClickMonthCell: this.onClickMonthCell }));
1044
- case SelectionMode.YEAR:
1045
- return (index.h(YearSelection, { selectedDate: this.selectedDate, yearSelection: getYearSelectionAroundYear(this.pointerDate.year), onClickYearCell: this.onClickYearCell }));
1046
- }
1047
- }
1048
- renderCustomIcon() {
1049
- const icon = slot.hasSlot(this.host, 'custom-icon') ? (index.h("slot", { name: "custom-icon" })) : (index.h("six-icon", { size: this.size === 'large' ? 'medium' : this.size }, "today"));
1050
- return (index.h("span", { slot: "prefix", part: "icon", class: {
1051
- prefix: true,
1052
- 'prefix--right': this.iconPosition === 'right',
1053
- } }, icon));
1054
- }
1055
- renderClearable() {
1056
- return (this.clearable && (index.h("button", { slot: "suffix", class: {
1057
- 'datepicker-clear': true,
1058
- 'datepicker-clear--right': this.iconPosition === 'left',
1059
- 'datepicker-clear--left': this.iconPosition === 'right',
1060
- }, type: "button", onClick: this.handleClearClick, tabindex: "-1" }, index.h("six-icon", { size: "small" }, "clear"))));
1061
- }
1062
- render() {
1063
- var _a, _b, _c;
1064
- this.adjustPopupPosition();
1065
- return (index.h("div", { ref: (el) => (this.wrapper = el), class: "datepicker__container" }, index.h("six-input", { part: "base", value: formatDate(this.value, this.dateFormat), ref: (el) => (this.inputElement = el), placeholder: this.placeholder, readonly: this.readonly, disabled: this.disabled, name: this.name, label: this.label, required: this.required, "error-text": this.errorText, "error-on-blur": this.errorOnBlur, onClick: () => this.openCalendar(), size: this.size, class: { 'input--empty': !this.value } }, this.renderCustomIcon(), this.renderClearable(), slot.hasSlot(this.host, 'error-text') ? (index.h("span", { slot: "error-text" }, index.h("slot", { name: "error-text" }))) : null, slot.hasSlot(this.host, 'label') ? (index.h("span", { slot: "label" }, index.h("slot", { name: "label" }))) : null), this.open && (index.h("div", { part: "popup", ref: (el) => (this.popup = el), class: {
1066
- datepicker__popup: true,
1067
- 'datepicker__popup--is-up': this.placement ? this.placement === 'top' : this.isDropDownContentUp,
1068
- 'datepicker__popup--is-inline': this.inline,
1069
- } }, this.renderHeader(), this.renderBody(), this.type === 'date-time' && (index.h("six-timepicker", { inline: true, "onSix-timepicker-change-debounced": (event) => this.onTimepickerChange(event), value: ((_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.getHours()) +
1070
- ':' +
1071
- ((_b = this.selectedDate) === null || _b === void 0 ? void 0 : _b.getMinutes()) +
1072
- ':' +
1073
- ((_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.getSeconds()) })), index.h("div", { class: "datepicker__footer" }, index.h("slot", null))))));
1074
- }
1075
- adjustPopupPosition() {
1076
- this.adjustPopupForHoisting();
1077
- this.adjustPopupForSmallScreens();
1078
- }
1079
- /*
1080
- * The position of the hoisted datepicker needs to be correctly calculated since the position changes to fixed.
1081
- * Thus if the user scrolls or adjusts the screen size we need to recalculate the datepicker position.
1082
- */
1083
- moveOpenHoistedPopup() {
1084
- if (!this.hoist || !this.open) {
1085
- return;
1086
- }
1087
- const popupBoundingClientRect = this.popup.getBoundingClientRect();
1088
- const popupHeight = popupBoundingClientRect.height;
1089
- const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
1090
- const inputTop = inputBoundingClientRect.top;
1091
- const inputHeight = inputBoundingClientRect.height;
1092
- this.calcIsDropDownContentUp();
1093
- if (this.isDropDownContentUp) {
1094
- this.popup.style.top = `${inputTop - popupHeight}px`;
1095
- }
1096
- else {
1097
- this.popup.style.top = `${inputTop + inputHeight}px`;
1098
- }
1099
- }
1100
- /*
1101
- * For small screens the datepicker popup could be cut-off even though there might still be space within the viewport.
1102
- * This is because the popup is always aligned with the trigger input field. However in the scenario of small screens
1103
- * we should reposition the popup to use the space available.
1104
- */
1105
- adjustPopupForSmallScreens() {
1106
- // execute after dropdown has been rendered to make sure the popup reference is correctly set
1107
- setTimeout(() => {
1108
- if (!this.popup) {
1109
- return;
1110
- }
1111
- const popupBoundingClientRect = this.popup.getBoundingClientRect();
1112
- const setPopupAsFixPosition = () => {
1113
- // apply screen position to fixed popup
1114
- this.popup.style.position = 'fixed';
1115
- ['top', 'left', 'width', 'height'].forEach((property) => {
1116
- this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
1117
- });
1118
- };
1119
- if (popupBoundingClientRect.y < 0 &&
1120
- window.innerHeight - popupBoundingClientRect.height > 0 &&
1121
- Math.abs(popupBoundingClientRect.y) <= popupBoundingClientRect.height) {
1122
- // handle case where popup is cut-off on top but there is still space available
1123
- setPopupAsFixPosition();
1124
- this.popup.style.top = '0px';
1125
- }
1126
- else if (window.innerHeight < popupBoundingClientRect.y + popupBoundingClientRect.height &&
1127
- window.innerHeight > popupBoundingClientRect.height &&
1128
- Math.abs(popupBoundingClientRect.y - window.innerHeight) <= popupBoundingClientRect.height) {
1129
- // handle case where popup is cut-off at the bottom but there is still space available above
1130
- // apply screen position to fixed popup
1131
- setPopupAsFixPosition();
1132
- this.popup.style.top = `${window.innerHeight - popupBoundingClientRect.height}px`;
1133
- }
1134
- if (window.innerWidth < popupBoundingClientRect.x + popupBoundingClientRect.width &&
1135
- window.innerWidth > popupBoundingClientRect.width &&
1136
- Math.abs(popupBoundingClientRect.x - window.innerWidth) <= popupBoundingClientRect.width) {
1137
- // handle case where popup is cut-off to the right
1138
- setPopupAsFixPosition();
1139
- this.popup.style.left = `${window.innerWidth - popupBoundingClientRect.width}px`;
1140
- }
1141
- }, 0);
1142
- }
1143
- /*
1144
- * If the popup is hoisted we popup is hoisted its position will change to fix to not be clipped of by a containing container.
1145
- * To render the popup correctly we render it normally, and then assign this screenposition to the fixed popup
1146
- */
1147
- adjustPopupForHoisting() {
1148
- if (!this.hoist) {
1149
- return;
1150
- }
1151
- // execute after dropdown has been rendered to make sure the popup reference is correctly set
1152
- setTimeout(() => {
1153
- if (!this.popup) {
1154
- return;
1155
- }
1156
- // take a snapshot of normally rendered popup
1157
- const popupBoundingClientRect = this.popup.getBoundingClientRect();
1158
- // apply screen position to fixed popup
1159
- this.popup.style.position = 'fixed';
1160
- ['top', 'left', 'width', 'height'].forEach((property) => {
1161
- this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
1162
- });
1163
- const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
1164
- const inputTop = inputBoundingClientRect.top;
1165
- const popupTop = popupBoundingClientRect.top;
1166
- this.calcIsDropDownContentUp();
1167
- // check screen position to check whether the popup should be moved above or below the trigger element
1168
- if (this.isDropDownContentUp && inputTop < popupTop) {
1169
- // move popup above input field if datepicker is at bottom of screen
1170
- this.popup.style.top = `${popupTop - popupBoundingClientRect.height - inputBoundingClientRect.height}px`;
1171
- }
1172
- }, 0);
1173
- }
1174
- connectedCallback() {
1175
- this.handleClearClick = this.handleClearClick.bind(this);
1176
- }
1177
- disconnectedCallback() {
1178
- this.eventListeners.removeAll();
1179
- }
1180
- displayCustomMessage(valid) {
1181
- if (!this.inputElement) {
1182
- return;
1183
- }
1184
- if (valid) {
1185
- void this.setCustomValidity('');
1186
- }
1187
- else {
1188
- const message = this.errorText ? this.errorText : 'Invalid date format';
1189
- void this.setCustomValidity(message);
1190
- }
1191
- }
1192
- static getCurrentDateAsPointer() {
1193
- return {
1194
- year: year(now()),
1195
- month: month(now()),
1196
- day: day(now()),
1197
- hours: hours(now()),
1198
- minutes: minutes(now()),
1199
- seconds: seconds(now()),
1200
- };
1201
- }
1202
- get host() { return index.getElement(this); }
1203
- static get watchers() { return {
1204
- "debounce": ["debounceChanged"],
1205
- "value": ["valueChanged"]
1206
- }; }
1207
- };
570
+ const NUMBER_OF_YEARS_SHOWN = 25;
571
+ const MIN_POPUP_HEIGHT = 400;
572
+ var SelectionMode;
573
+ (function (SelectionMode) {
574
+ SelectionMode["DAY"] = "day";
575
+ SelectionMode["MONTH"] = "month";
576
+ SelectionMode["YEAR"] = "year";
577
+ })(SelectionMode || (SelectionMode = {}));
578
+ const getYearSelectionAroundYear = (year) => {
579
+ const numberOfElementsPerRow = 5;
580
+ return Array.from(new Array(NUMBER_OF_YEARS_SHOWN).keys())
581
+ .map((n) => n + year - Math.floor(NUMBER_OF_YEARS_SHOWN / 2))
582
+ .reduce((curr, item, index) => {
583
+ if (index % numberOfElementsPerRow === 0) {
584
+ curr.push([]);
585
+ }
586
+ curr[curr.length - 1].push(item);
587
+ return curr;
588
+ }, []);
589
+ };
590
+ const SixDatepicker = class {
591
+ constructor(hostRef) {
592
+ index.registerInstance(this, hostRef);
593
+ this.sixSelect = index.createEvent(this, "six-datepicker-select", 7);
594
+ this.sixClear = index.createEvent(this, "six-datepicker-clear", 7);
595
+ this.sixBlur = index.createEvent(this, "six-datepicker-blur", 7);
596
+ this.eventListeners = new eventListeners.EventListeners();
597
+ this.selectedDate = null;
598
+ this.defaultValue = null;
599
+ this.handleDocumentKeyDown = (event) => {
600
+ // Close when escape is pressed
601
+ if (this.open && event.key === 'Escape') {
602
+ event.stopPropagation();
603
+ this.closePopup();
604
+ void this.inputElement.setFocus();
605
+ }
606
+ // Handle tabbing
607
+ if (event.key === 'Tab') {
608
+ this.closePopup();
609
+ }
610
+ };
611
+ this.handleDocumentMouseDown = (event) => {
612
+ // Close when clicking outside of the containing element
613
+ const path = event.composedPath();
614
+ if (!path.includes(this.container)) {
615
+ this.closePopup();
616
+ return;
617
+ }
618
+ };
619
+ this.onTimepickerChange = (sixTimepickerChange) => {
620
+ const time = sixTimepickerChange.detail.value;
621
+ const newDate = new Date();
622
+ if (this.selectedDate) {
623
+ newDate.setFullYear(this.selectedDate.getFullYear(), this.selectedDate.getMonth(), this.selectedDate.getDate());
624
+ }
625
+ newDate.setHours(time[sixTimepicker_types.SixTimePropertyName.HOURS], time[sixTimepicker_types.SixTimePropertyName.MINUTES], time[sixTimepicker_types.SixTimePropertyName.SECONDS]);
626
+ this.updateValue(newDate);
627
+ this.updatePointerDates();
628
+ };
629
+ this.onClickDateCell = (cell) => {
630
+ if (!cell.isDisabled) {
631
+ void this.select(cell.dateString);
632
+ }
633
+ };
634
+ this.onClickMonthCell = (selectedMonth) => {
635
+ const month = i18nDate[this.locale].monthsShort.findIndex((monthShort) => monthShort === selectedMonth);
636
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { month });
637
+ this.selectionMode = SelectionMode.DAY;
638
+ };
639
+ this.onClickYearCell = (year) => {
640
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year });
641
+ this.selectionMode = SelectionMode.DAY;
642
+ };
643
+ this.handleInputChange = (event) => {
644
+ const inputValue = this.inputElement.value;
645
+ if (!isValidDateString(inputValue, this.dateFormat)) {
646
+ return;
647
+ }
648
+ const inputValueDate = toDate(inputValue, this.dateFormat);
649
+ if (inputValueDate === undefined) {
650
+ return;
651
+ }
652
+ if (this.min && this.min.getTime() > inputValueDate.getTime()) {
653
+ return;
654
+ }
655
+ if (this.max && this.max.getTime() < inputValueDate.getTime()) {
656
+ return;
657
+ }
658
+ this.updateIfChanged(inputValueDate);
659
+ event.stopPropagation();
660
+ const datesOnly = inputValue.replace(/[^\d]/g, '');
661
+ let isDateValid = !inputValue;
662
+ if (inputValue && datesOnly.length >= 6) {
663
+ const date = toDate(inputValue, this.dateFormat);
664
+ const datestring = formatDate(date, this.dateFormat);
665
+ if (isValidDateString(datestring, this.dateFormat)) {
666
+ this.selectedDate = toDate(datestring, this.dateFormat);
667
+ this.updatePointerDates();
668
+ this.updateValue(this.selectedDate);
669
+ isDateValid = true;
670
+ }
671
+ }
672
+ this.displayCustomMessage(isDateValid);
673
+ };
674
+ this.handleOnBlur = (event) => {
675
+ // clear the value if the user deleted the date
676
+ if (this.inputElement.value === '' && isValidDate(this.value)) {
677
+ this.value = undefined;
678
+ }
679
+ event.stopPropagation();
680
+ const inputValue = this.inputElement.value;
681
+ const inputValueDate = toDate(inputValue, this.dateFormat);
682
+ const formattedDate = formatDate(this.value, this.dateFormat);
683
+ if (inputValueDate && inputValue !== formattedDate) {
684
+ // properly format date if necessary
685
+ this.inputElement.value = formattedDate;
686
+ }
687
+ this.sixBlur.emit(this.value);
688
+ };
689
+ this.pointerDate = SixDatepicker.getCurrentDateAsPointer();
690
+ this.selectionMode = SelectionMode.DAY;
691
+ this.isDropDownContentUp = false;
692
+ this.type = 'date';
693
+ this.locale = 'en';
694
+ this.open = false;
695
+ this.inline = false;
696
+ this.readonly = false;
697
+ this.disabled = false;
698
+ this.allowedDates = () => true;
699
+ this.min = null;
700
+ this.max = null;
701
+ this.closeOnSelect = this.type === 'date';
702
+ this.placement = undefined;
703
+ this.size = 'medium';
704
+ this.required = undefined;
705
+ this.defaultDate = undefined;
706
+ this.placeholder = undefined;
707
+ this.value = null;
708
+ this.containingElement = undefined;
709
+ this.dateFormat = SixDateFormats.DDMMYYY_DOT;
710
+ this.debounce = executionControl.DEFAULT_DEBOUNCE_FAST;
711
+ this.errorOnBlur = false;
712
+ this.errorText = '';
713
+ this.label = '';
714
+ this.name = '';
715
+ this.clearable = false;
716
+ this.iconPosition = 'left';
717
+ this.hoist = false;
718
+ }
719
+ debounceChanged() {
720
+ this.sixSelect = executionControl.debounceEvent(this.sixSelect, this.debounce);
721
+ }
722
+ /**
723
+ * Update the native input element when the value changes
724
+ */
725
+ valueChanged() {
726
+ // map unreadable values to undefined to make the datepicker fault-tolerant
727
+ if (this.isValidValue()) {
728
+ console.warn('Encountered unreadable date, will map to undefined. Received value', this.value);
729
+ this.value = undefined;
730
+ return;
731
+ }
732
+ this.selectedDate = this.value;
733
+ this.updatePointerDates();
734
+ this.sixSelect.emit(this.value);
735
+ }
736
+ async resizeHandler() {
737
+ this.calcIsDropDownContentUp();
738
+ this.moveOpenHoistedPopup();
739
+ this.adjustPopupPosition();
740
+ }
741
+ async scrollHandler() {
742
+ this.calcIsDropDownContentUp();
743
+ this.moveOpenHoistedPopup();
744
+ }
745
+ get container() {
746
+ return this.containingElement || this.host;
747
+ }
748
+ get firstDateOfBox() {
749
+ const date = new Date(this.pointerDate.year, this.pointerDate.month, 1);
750
+ return getFirstDayOfTheWeek(date);
751
+ }
752
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
753
+ async reportValidity() {
754
+ return this.inputElement.reportValidity();
755
+ }
756
+ /** Checks for validity. */
757
+ async checkValidity() {
758
+ return this.inputElement.checkValidity();
759
+ }
760
+ /** Sets a custom validation message. If `message` is not empty, the field will be considered invalid. */
761
+ async setCustomValidity(message) {
762
+ await this.inputElement.setCustomValidity(message);
763
+ }
764
+ /** Resets the formcontrol */
765
+ async reset() {
766
+ this.value = this.defaultValue;
767
+ this.inputElement.value = formatDate(this.defaultValue, this.dateFormat);
768
+ await this.inputElement.reset();
769
+ }
770
+ isValidValue() {
771
+ if (this.value === undefined || this.value === null) {
772
+ return false;
773
+ }
774
+ if (!(this.value instanceof Date)) {
775
+ return true;
776
+ }
777
+ return this.value instanceof Date && isNaN(this.value);
778
+ }
779
+ get calendarGrid() {
780
+ return createCalendarGrid({
781
+ firstDateOfBox: this.firstDateOfBox,
782
+ allowedDates: this.allowedDates,
783
+ dateFormat: this.dateFormat,
784
+ locale: this.locale,
785
+ selectedDate: this.selectedDate,
786
+ minDate: this.min,
787
+ maxDate: this.max,
788
+ pointerDate: this.pointerDate,
789
+ });
790
+ }
791
+ calcIsDropDownContentUp() {
792
+ if (!this.inputElement || !this.wrapper) {
793
+ return;
794
+ }
795
+ const inputBoundingRect = this.inputElement.getBoundingClientRect();
796
+ const wrapperBoundingRect = this.wrapper.getBoundingClientRect();
797
+ const minPopupHeight = Math.max(wrapperBoundingRect.height, MIN_POPUP_HEIGHT);
798
+ const moreSpaceInTop = inputBoundingRect.y > window.innerHeight / 2;
799
+ this.isDropDownContentUp = moreSpaceInTop && window.innerHeight < inputBoundingRect.bottom + minPopupHeight;
800
+ }
801
+ getMonthStringForIndex(index) {
802
+ return i18nDate[this.locale].months[index];
803
+ }
804
+ previousUnit() {
805
+ if (this.selectionMode === SelectionMode.DAY) {
806
+ this.previousMonth();
807
+ }
808
+ else if (this.selectionMode === SelectionMode.MONTH) {
809
+ this.previousYear();
810
+ }
811
+ else if (this.selectionMode === SelectionMode.YEAR) {
812
+ this.previousYearGroup();
813
+ }
814
+ }
815
+ previousYear() {
816
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year - 1 });
817
+ }
818
+ previousYearGroup() {
819
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year - NUMBER_OF_YEARS_SHOWN });
820
+ }
821
+ previousMonth() {
822
+ if (this.pointerDate.month === 0) {
823
+ this.pointerDate = { year: this.pointerDate.year - 1, month: 11, day: 1, hours: 0, minutes: 0, seconds: 0 };
824
+ }
825
+ else {
826
+ this.pointerDate = {
827
+ year: this.pointerDate.year,
828
+ month: this.pointerDate.month - 1,
829
+ day: 1,
830
+ hours: 0,
831
+ minutes: 0,
832
+ seconds: 0,
833
+ };
834
+ }
835
+ }
836
+ nextUnit() {
837
+ if (this.selectionMode === SelectionMode.DAY) {
838
+ this.nextMonth();
839
+ }
840
+ else if (this.selectionMode === SelectionMode.MONTH) {
841
+ this.nextYear();
842
+ }
843
+ else if (this.selectionMode === SelectionMode.YEAR) {
844
+ this.nextYearGroup();
845
+ }
846
+ }
847
+ nextMonth() {
848
+ if (this.pointerDate.month === 11) {
849
+ this.pointerDate = { year: this.pointerDate.year + 1, month: 0, day: 1, hours: 0, minutes: 0, seconds: 0 };
850
+ }
851
+ else {
852
+ this.pointerDate = {
853
+ year: this.pointerDate.year,
854
+ month: this.pointerDate.month + 1,
855
+ day: 1,
856
+ hours: 0,
857
+ minutes: 0,
858
+ seconds: 0,
859
+ };
860
+ }
861
+ }
862
+ nextYear() {
863
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year + 1 });
864
+ }
865
+ nextYearGroup() {
866
+ this.pointerDate = Object.assign(Object.assign({}, this.pointerDate), { year: this.pointerDate.year + NUMBER_OF_YEARS_SHOWN });
867
+ }
868
+ openCalendar() {
869
+ if (!this.open && !this.disabled) {
870
+ this.open = true;
871
+ this.setupEventListenersForOpenPopup();
872
+ }
873
+ }
874
+ setupEventListenersForOpenPopup() {
875
+ this.eventListeners.add(document, 'keydown', this.handleDocumentKeyDown);
876
+ this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);
877
+ }
878
+ handleClearClick(event) {
879
+ event.stopPropagation();
880
+ void this.select(undefined);
881
+ this.sixClear.emit();
882
+ }
883
+ closePopup() {
884
+ if (this.inline) {
885
+ return;
886
+ }
887
+ this.open = false;
888
+ this.eventListeners.remove(document, 'keydown', this.handleDocumentKeyDown);
889
+ this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);
890
+ this.selectionMode = SelectionMode.DAY;
891
+ }
892
+ updatePointerDates() {
893
+ const date = this.getPointerDate();
894
+ if (this.differsFromPointerDate(date)) {
895
+ this.pointerDate = {
896
+ year: year(date),
897
+ month: month(date),
898
+ day: day(date),
899
+ hours: hours(date),
900
+ minutes: minutes(date),
901
+ seconds: seconds(date),
902
+ };
903
+ }
904
+ }
905
+ differsFromPointerDate(date) {
906
+ return (this.pointerDate.day !== day(date) ||
907
+ this.pointerDate.month !== month(date) ||
908
+ this.pointerDate.year !== year(date) ||
909
+ this.pointerDate.hours !== hours(date) ||
910
+ this.pointerDate.minutes !== minutes(date) ||
911
+ this.pointerDate.seconds !== seconds(date));
912
+ }
913
+ getPointerDate() {
914
+ if (this.selectedDate !== undefined && this.selectedDate !== null) {
915
+ return this.selectedDate;
916
+ }
917
+ if (sixTimepicker_types.isNil(this.defaultDate)) {
918
+ return now();
919
+ }
920
+ else {
921
+ return this.defaultDate && toDate(this.defaultDate, this.dateFormat);
922
+ }
923
+ }
924
+ updateValue(newDate) {
925
+ this.displayCustomMessage(true);
926
+ this.updateIfChanged(newDate);
927
+ }
928
+ updateIfChanged(newDate) {
929
+ var _a;
930
+ if (((_a = this.value) === null || _a === void 0 ? void 0 : _a.getTime()) === (newDate === null || newDate === void 0 ? void 0 : newDate.getTime())) {
931
+ return;
932
+ }
933
+ this.value = newDate;
934
+ }
935
+ /**
936
+ * Selects an option
937
+ */
938
+ async select(datestring) {
939
+ if (!datestring) {
940
+ this.updateValue(undefined);
941
+ }
942
+ else {
943
+ const newDate = toDate(datestring, this.dateFormat);
944
+ newDate.setHours(this.pointerDate.hours, this.pointerDate.minutes, this.pointerDate.seconds);
945
+ this.updateValue(newDate);
946
+ }
947
+ this.updatePointerDates();
948
+ if (this.closeOnSelect) {
949
+ this.closePopup();
950
+ }
951
+ }
952
+ componentWillLoad() {
953
+ this.validateProps();
954
+ this.defaultValue = this.value;
955
+ this.selectedDate = this.value;
956
+ this.updatePointerDates();
957
+ this.updateValue(this.value);
958
+ if (this.inline) {
959
+ this.open = true;
960
+ }
961
+ if (this.open) {
962
+ this.setupEventListenersForOpenPopup();
963
+ }
964
+ }
965
+ validateProps() {
966
+ if (this.value !== null && this.value !== undefined && !(this.value instanceof Date)) {
967
+ throw new Error('Datepicker no longer supports strings as value. Use a date object instead!');
968
+ }
969
+ if (this.min !== null && this.min !== undefined && !(this.min instanceof Date)) {
970
+ throw new Error('Datepicker no longer supports strings as min. Use a date object instead!');
971
+ }
972
+ if (this.max !== null && this.max !== undefined && !(this.max instanceof Date)) {
973
+ throw new Error('Datepicker no longer supports strings as min. Use a date object instead!');
974
+ }
975
+ }
976
+ componentDidLoad() {
977
+ this.eventListeners.add(this.inputElement, 'six-input-input', executionControl.debounce(this.handleInputChange, this.debounce));
978
+ this.eventListeners.add(this.inputElement, 'six-input-blur', this.handleOnBlur);
979
+ }
980
+ renderHeader() {
981
+ return (index.h("header", { class: "datepicker-header", part: "header" }, index.h("div", { class: "datepicker-header__btn prev", onClick: () => this.previousUnit() }, index.h("svg", { viewBox: "0 5 13 13", width: "14", height: "23" }, index.h("path", { d: "M11.67 3.87L9.9 2.1 0 12l9.9 9.9 1.77-1.77L3.54 12z" }))), index.h("div", { class: "datepicker-header__label" }, this.selectionMode === SelectionMode.DAY && (index.h("div", { onClick: () => (this.selectionMode = SelectionMode.MONTH) }, index.h("span", { class: "datepicker-header__label-month" }, this.getMonthStringForIndex(this.pointerDate.month)), index.h("span", null, index.h("svg", { viewBox: "-3 -4 24 24", width: "20", height: "20" }, index.h("polyline", { points: "6 9 12 15 18 9" }))))), this.selectionMode !== SelectionMode.YEAR && (index.h("div", { onClick: () => (this.selectionMode = SelectionMode.YEAR) }, index.h("span", { class: "datepicker-header__label-year" }, this.pointerDate.year), index.h("span", null, index.h("svg", { viewBox: "-3 -4 24 24", width: "20", height: "20" }, index.h("polyline", { points: "6 9 12 15 18 9" }))))), this.selectionMode === SelectionMode.YEAR && (index.h("div", null, this.pointerDate.year - Math.floor(NUMBER_OF_YEARS_SHOWN / 2), " \u2013", ' ', this.pointerDate.year + Math.floor(NUMBER_OF_YEARS_SHOWN / 2)))), index.h("div", { class: "datepicker-header__btn next", onClick: () => this.nextUnit() }, index.h("svg", { viewBox: "5 5 13 13", width: "14", height: "23" }, index.h("path", { d: "M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z" })))));
982
+ }
983
+ renderBody() {
984
+ switch (this.selectionMode) {
985
+ case SelectionMode.DAY:
986
+ return (index.h(DaySelection, { locale: i18nDate[this.locale], calendarGrid: this.calendarGrid, onClickDateCell: this.onClickDateCell }));
987
+ case SelectionMode.MONTH:
988
+ return (index.h(MonthSelection, { locale: i18nDate[this.locale], selectedDate: this.selectedDate, onClickMonthCell: this.onClickMonthCell }));
989
+ case SelectionMode.YEAR:
990
+ return (index.h(YearSelection, { selectedDate: this.selectedDate, yearSelection: getYearSelectionAroundYear(this.pointerDate.year), onClickYearCell: this.onClickYearCell }));
991
+ }
992
+ }
993
+ renderCustomIcon() {
994
+ const icon = slot.hasSlot(this.host, 'custom-icon') ? (index.h("slot", { name: "custom-icon" })) : (index.h("six-icon", { size: this.size === 'large' ? 'medium' : this.size }, "today"));
995
+ return (index.h("span", { slot: "prefix", part: "icon", class: {
996
+ prefix: true,
997
+ 'prefix--right': this.iconPosition === 'right',
998
+ } }, icon));
999
+ }
1000
+ renderClearable() {
1001
+ return (this.clearable && (index.h("button", { slot: "suffix", class: {
1002
+ 'datepicker-clear': true,
1003
+ 'datepicker-clear--right': this.iconPosition === 'left',
1004
+ 'datepicker-clear--left': this.iconPosition === 'right',
1005
+ }, type: "button", onClick: this.handleClearClick, tabindex: "-1" }, index.h("six-icon", { size: "small" }, "clear"))));
1006
+ }
1007
+ render() {
1008
+ var _a, _b, _c;
1009
+ this.adjustPopupPosition();
1010
+ return (index.h("div", { ref: (el) => (this.wrapper = el), class: "datepicker__container" }, index.h("six-input", { part: "base", value: formatDate(this.value, this.dateFormat), ref: (el) => (this.inputElement = el), placeholder: this.placeholder, readonly: this.readonly, disabled: this.disabled, name: this.name, label: this.label, required: this.required, "error-text": this.errorText, "error-on-blur": this.errorOnBlur, onClick: () => this.openCalendar(), size: this.size, class: { 'input--empty': !this.value } }, this.renderCustomIcon(), this.renderClearable(), slot.hasSlot(this.host, 'error-text') ? (index.h("span", { slot: "error-text" }, index.h("slot", { name: "error-text" }))) : null, slot.hasSlot(this.host, 'label') ? (index.h("span", { slot: "label" }, index.h("slot", { name: "label" }))) : null), this.open && (index.h("div", { part: "popup", ref: (el) => (this.popup = el), class: {
1011
+ datepicker__popup: true,
1012
+ 'datepicker__popup--is-up': this.placement ? this.placement === 'top' : this.isDropDownContentUp,
1013
+ 'datepicker__popup--is-inline': this.inline,
1014
+ } }, this.renderHeader(), this.renderBody(), this.type === 'date-time' && (index.h("six-timepicker", { inline: true, "onSix-timepicker-change-debounced": (event) => this.onTimepickerChange(event), value: ((_a = this.selectedDate) === null || _a === void 0 ? void 0 : _a.getHours()) +
1015
+ ':' +
1016
+ ((_b = this.selectedDate) === null || _b === void 0 ? void 0 : _b.getMinutes()) +
1017
+ ':' +
1018
+ ((_c = this.selectedDate) === null || _c === void 0 ? void 0 : _c.getSeconds()) })), index.h("div", { class: "datepicker__footer" }, index.h("slot", null))))));
1019
+ }
1020
+ adjustPopupPosition() {
1021
+ this.adjustPopupForHoisting();
1022
+ this.adjustPopupForSmallScreens();
1023
+ }
1024
+ /*
1025
+ * The position of the hoisted datepicker needs to be correctly calculated since the position changes to fixed.
1026
+ * Thus if the user scrolls or adjusts the screen size we need to recalculate the datepicker position.
1027
+ */
1028
+ moveOpenHoistedPopup() {
1029
+ if (!this.hoist || !this.open) {
1030
+ return;
1031
+ }
1032
+ const popupBoundingClientRect = this.popup.getBoundingClientRect();
1033
+ const popupHeight = popupBoundingClientRect.height;
1034
+ const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
1035
+ const inputTop = inputBoundingClientRect.top;
1036
+ const inputHeight = inputBoundingClientRect.height;
1037
+ this.calcIsDropDownContentUp();
1038
+ if (this.isDropDownContentUp) {
1039
+ this.popup.style.top = `${inputTop - popupHeight}px`;
1040
+ }
1041
+ else {
1042
+ this.popup.style.top = `${inputTop + inputHeight}px`;
1043
+ }
1044
+ }
1045
+ /*
1046
+ * For small screens the datepicker popup could be cut-off even though there might still be space within the viewport.
1047
+ * This is because the popup is always aligned with the trigger input field. However in the scenario of small screens
1048
+ * we should reposition the popup to use the space available.
1049
+ */
1050
+ adjustPopupForSmallScreens() {
1051
+ // execute after dropdown has been rendered to make sure the popup reference is correctly set
1052
+ setTimeout(() => {
1053
+ if (!this.popup) {
1054
+ return;
1055
+ }
1056
+ const popupBoundingClientRect = this.popup.getBoundingClientRect();
1057
+ const setPopupAsFixPosition = () => {
1058
+ // apply screen position to fixed popup
1059
+ this.popup.style.position = 'fixed';
1060
+ ['top', 'left', 'width', 'height'].forEach((property) => {
1061
+ this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
1062
+ });
1063
+ };
1064
+ if (popupBoundingClientRect.y < 0 &&
1065
+ window.innerHeight - popupBoundingClientRect.height > 0 &&
1066
+ Math.abs(popupBoundingClientRect.y) <= popupBoundingClientRect.height) {
1067
+ // handle case where popup is cut-off on top but there is still space available
1068
+ setPopupAsFixPosition();
1069
+ this.popup.style.top = '0px';
1070
+ }
1071
+ else if (window.innerHeight < popupBoundingClientRect.y + popupBoundingClientRect.height &&
1072
+ window.innerHeight > popupBoundingClientRect.height &&
1073
+ Math.abs(popupBoundingClientRect.y - window.innerHeight) <= popupBoundingClientRect.height) {
1074
+ // handle case where popup is cut-off at the bottom but there is still space available above
1075
+ // apply screen position to fixed popup
1076
+ setPopupAsFixPosition();
1077
+ this.popup.style.top = `${window.innerHeight - popupBoundingClientRect.height}px`;
1078
+ }
1079
+ if (window.innerWidth < popupBoundingClientRect.x + popupBoundingClientRect.width &&
1080
+ window.innerWidth > popupBoundingClientRect.width &&
1081
+ Math.abs(popupBoundingClientRect.x - window.innerWidth) <= popupBoundingClientRect.width) {
1082
+ // handle case where popup is cut-off to the right
1083
+ setPopupAsFixPosition();
1084
+ this.popup.style.left = `${window.innerWidth - popupBoundingClientRect.width}px`;
1085
+ }
1086
+ }, 0);
1087
+ }
1088
+ /*
1089
+ * If the popup is hoisted we popup is hoisted its position will change to fix to not be clipped of by a containing container.
1090
+ * To render the popup correctly we render it normally, and then assign this screenposition to the fixed popup
1091
+ */
1092
+ adjustPopupForHoisting() {
1093
+ if (!this.hoist) {
1094
+ return;
1095
+ }
1096
+ // execute after dropdown has been rendered to make sure the popup reference is correctly set
1097
+ setTimeout(() => {
1098
+ if (!this.popup) {
1099
+ return;
1100
+ }
1101
+ // take a snapshot of normally rendered popup
1102
+ const popupBoundingClientRect = this.popup.getBoundingClientRect();
1103
+ // apply screen position to fixed popup
1104
+ this.popup.style.position = 'fixed';
1105
+ ['top', 'left', 'width', 'height'].forEach((property) => {
1106
+ this.popup.style[property] = `${popupBoundingClientRect[property]}px`;
1107
+ });
1108
+ const inputBoundingClientRect = this.inputElement.getBoundingClientRect();
1109
+ const inputTop = inputBoundingClientRect.top;
1110
+ const popupTop = popupBoundingClientRect.top;
1111
+ this.calcIsDropDownContentUp();
1112
+ // check screen position to check whether the popup should be moved above or below the trigger element
1113
+ if (this.isDropDownContentUp && inputTop < popupTop) {
1114
+ // move popup above input field if datepicker is at bottom of screen
1115
+ this.popup.style.top = `${popupTop - popupBoundingClientRect.height - inputBoundingClientRect.height}px`;
1116
+ }
1117
+ }, 0);
1118
+ }
1119
+ connectedCallback() {
1120
+ this.handleClearClick = this.handleClearClick.bind(this);
1121
+ }
1122
+ disconnectedCallback() {
1123
+ this.eventListeners.removeAll();
1124
+ }
1125
+ displayCustomMessage(valid) {
1126
+ if (!this.inputElement) {
1127
+ return;
1128
+ }
1129
+ if (valid) {
1130
+ void this.setCustomValidity('');
1131
+ }
1132
+ else {
1133
+ const message = this.errorText ? this.errorText : 'Invalid date format';
1134
+ void this.setCustomValidity(message);
1135
+ }
1136
+ }
1137
+ static getCurrentDateAsPointer() {
1138
+ return {
1139
+ year: year(now()),
1140
+ month: month(now()),
1141
+ day: day(now()),
1142
+ hours: hours(now()),
1143
+ minutes: minutes(now()),
1144
+ seconds: seconds(now()),
1145
+ };
1146
+ }
1147
+ get host() { return index.getElement(this); }
1148
+ static get watchers() { return {
1149
+ "debounce": ["debounceChanged"],
1150
+ "value": ["valueChanged"]
1151
+ }; }
1152
+ };
1208
1153
  SixDatepicker.style = sixDatepickerCss;
1209
1154
 
1210
1155
  exports.six_datepicker = SixDatepicker;
1156
+
1157
+ //# sourceMappingURL=six-datepicker.cjs.entry.js.map