@geotab/zenith 3.1.1-beta.6 → 3.2.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 (430) hide show
  1. package/README.md +20 -0
  2. package/dist/advancedGroupsFilter/advancedGroupsFilter.js +136 -30
  3. package/dist/advancedGroupsFilter/advancedGroupsFilterForm.js +139 -34
  4. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +352 -87
  5. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  6. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +83 -9
  7. package/dist/alertRaw/alertRaw.js +175 -54
  8. package/dist/banner/bannerMultipLine.js +131 -23
  9. package/dist/banner/bannerSingleLine.js +110 -16
  10. package/dist/betaPill/betaPill.js +111 -20
  11. package/dist/bookmark/bookmark.js +95 -28
  12. package/dist/bulkEditControl/bulkEditControl.js +167 -34
  13. package/dist/calendar/calendar.js +943 -273
  14. package/dist/calendar/calendarUtils.js +157 -85
  15. package/dist/card/card.js +268 -123
  16. package/dist/chart/accessibleChart/accessibleChartNarrative.js +648 -555
  17. package/dist/chart/accessibleChart/accessibleChartTable.js +245 -86
  18. package/dist/chart/chart.js +36 -21
  19. package/dist/chart/chartAxis/chartAxis.js +85 -7
  20. package/dist/checkboxListWithAction/checkboxListWithAction.js +224 -69
  21. package/dist/chip/chip.js +195 -91
  22. package/dist/columnsSelector/columnsSelector.js +97 -12
  23. package/dist/columnsSelector/columnsTab/columnsTab.js +59 -15
  24. package/dist/columnsSelector/columnsTabGroup/columnsTabGroup.js +81 -34
  25. package/dist/comboboxSelected/comboboxSelected.js +1 -3
  26. package/dist/dataFeed/feedExpandControl/feedExpandControl.js +25 -10
  27. package/dist/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +92 -11
  28. package/dist/dataGrid/dataGrid.js +227 -117
  29. package/dist/dataGrid/emptySearchList/emptySearchList.js +56 -9
  30. package/dist/dataGrid/entitiesListActions/actions/columnsListButton.js +51 -7
  31. package/dist/dataGrid/entitiesListActions/actions/fullscreenButton.js +64 -18
  32. package/dist/dataGrid/withFlexibleColumns/components/columnSettings.js +84 -10
  33. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +48 -16
  34. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +223 -32
  35. package/dist/dataGrid/withSelectableRows/withSelectableRows.js +286 -213
  36. package/dist/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +178 -95
  37. package/dist/dateInputInner/dateInputInner.js +791 -476
  38. package/dist/dateInputInner/dateInputInnerControlBlock.js +125 -22
  39. package/dist/dateInputRaw/dateInputRaw.js +315 -104
  40. package/dist/dateInputRaw/utils/getLabel.js +38 -7
  41. package/dist/dateRangeInner/dateRangeInner.js +172 -58
  42. package/dist/dateRangeRaw/dateRangeRaw.js +601 -239
  43. package/dist/dateRangeRaw/utils/dateRangeUtils.js +629 -241
  44. package/dist/dateSelectionWrapper/dateSelectionWrapper.js +152 -14
  45. package/dist/dialog/dialogContent.js +123 -40
  46. package/dist/dropdownRaw/dropdownHelper.d.ts +2 -2
  47. package/dist/dropdownRaw/dropdownHelper.js +9 -9
  48. package/dist/dropdownRaw/dropdownList.js +447 -78
  49. package/dist/dropdownRaw/dropdownPopup.js +218 -20
  50. package/dist/dropdownRaw/dropdownRaw.js +866 -506
  51. package/dist/dropdownRaw/dropdownSearchableTrigger.js +223 -46
  52. package/dist/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  53. package/dist/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  54. package/dist/dropdownRaw/stateReducer/stateActionType.js +1 -0
  55. package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  56. package/dist/dropdownRaw/stateReducer/stateReducer.js +24 -12
  57. package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  58. package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +20 -1
  59. package/dist/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  60. package/dist/dropdownRaw/stateReducer/stateReducerTestData.js +74 -0
  61. package/dist/dropdownRaw/types.d.ts +1 -0
  62. package/dist/favoriteButton/favoriteButton.js +59 -10
  63. package/dist/filters/components/filtersContainer.js +151 -64
  64. package/dist/filters/components/filtersEmptySelectedList.js +30 -4
  65. package/dist/filters/components/filtersSaveModal.js +140 -42
  66. package/dist/filters/components/filtersSavedChipComponent.js +318 -108
  67. package/dist/filters/components/filtersSearchItemData.js +127 -47
  68. package/dist/filters/components/filtersSearchList.js +381 -179
  69. package/dist/filters/components/filtersSelect.js +128 -61
  70. package/dist/filters/components/filtersSelectListItem.js +125 -13
  71. package/dist/filters/components/filtersSidePanel.js +510 -178
  72. package/dist/filters/filters.js +445 -268
  73. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +729 -272
  74. package/dist/filtersBar/components/resetComponentButton.js +45 -5
  75. package/dist/filtersBar/filtersBarActions/filtersBarActions.js +126 -15
  76. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +155 -49
  77. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +360 -104
  78. package/dist/filtersBar/filtersContainer/filtersContainer.js +204 -134
  79. package/dist/formField/components/formFieldWithLabel.d.ts +2 -1
  80. package/dist/formField/components/formFieldWithLabel.js +3 -2
  81. package/dist/formField/components/formFieldWithoutLabel.d.ts +2 -1
  82. package/dist/formField/components/formFieldWithoutLabel.js +3 -3
  83. package/dist/formField/components/trailingComponent.d.ts +8 -0
  84. package/dist/formField/components/trailingComponent.js +11 -0
  85. package/dist/formField/formField.js +12 -11
  86. package/dist/formField/hooks/useError.js +100 -36
  87. package/dist/formGroup/components/reviewListToggle/reviewListToggle.js +72 -7
  88. package/dist/formGroup/hooks/useToggle.js +37 -11
  89. package/dist/formGroup/utils/getControls.js +8 -7
  90. package/dist/formLayout/hooks/useError.js +55 -15
  91. package/dist/formLayout/hooks/useFormButtons.js +128 -27
  92. package/dist/formSection/components/formSectionModal.js +1 -1
  93. package/dist/formSection/formSection.js +1 -1
  94. package/dist/formSection/hooks/useError.js +70 -22
  95. package/dist/formStepper/components/formStep.js +65 -10
  96. package/dist/formStepper/formStepper.js +129 -33
  97. package/dist/formStepperButtons/formStepperButtons.js +184 -38
  98. package/dist/groupsFilter/groupsHelper.d.ts +1 -1
  99. package/dist/groupsFilterRaw/groupsFilterAdjustmentState.js +162 -17
  100. package/dist/groupsFilterRaw/groupsFilterBox.js +137 -32
  101. package/dist/groupsFilterRaw/groupsFilterCommon.js +75 -8
  102. package/dist/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +184 -25
  103. package/dist/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  104. package/dist/groupsFilterRaw/groupsFilterHelper.js +284 -168
  105. package/dist/groupsFilterRaw/groupsFilterInitialState.js +266 -18
  106. package/dist/groupsFilterRaw/groupsFilterMenu.js +124 -9
  107. package/dist/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  108. package/dist/groupsFilterRaw/groupsFilterRaw.js +816 -308
  109. package/dist/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  110. package/dist/groupsFilterRaw/groupsFilterTestData.js +153 -58
  111. package/dist/groupsFilterRaw/groupsFilterTrigger.js +139 -35
  112. package/dist/groupsFilterRaw/groupsHelper.js +739 -208
  113. package/dist/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  114. package/dist/groupsFilterRaw/types.d.ts +1 -0
  115. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +107 -52
  116. package/dist/header/components/mobileFilterControl/mobileFilterControl.js +62 -9
  117. package/dist/header/components/mobileSearchControl/mobileSearchControl.js +119 -14
  118. package/dist/header/headerBack.js +64 -20
  119. package/dist/index.css +110 -71
  120. package/dist/index.d.ts +1 -0
  121. package/dist/index.js +4 -1
  122. package/dist/list/itemData/itemDataInternal.js +216 -51
  123. package/dist/list/listItem/listItem.js +168 -55
  124. package/dist/menu/components/menuErrorItem.js +33 -5
  125. package/dist/mobileSheet/mobileSheet.js +195 -69
  126. package/dist/modal/modal.js +300 -142
  127. package/dist/nav/nav.js +1 -1
  128. package/dist/nav/navFooter/navFooter.js +82 -39
  129. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +52 -13
  130. package/dist/nav/navHeader/navHeader.js +86 -36
  131. package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +88 -29
  132. package/dist/nav/navItem/navItem.d.ts +3 -3
  133. package/dist/nav/navItem/navItem.js +35 -33
  134. package/dist/nav/navMobileBar/navMobileBar.js +67 -21
  135. package/dist/notification/notification.js +124 -21
  136. package/dist/pagination/paginationArrow.js +81 -11
  137. package/dist/pagination/paginationText/paginationText.js +45 -11
  138. package/dist/pill/components/pillNonActionable/pillNonActionable.js +93 -24
  139. package/dist/pillBox/components/pillBoxItem.js +52 -9
  140. package/dist/pillBox/pillBox.js +121 -20
  141. package/dist/pillExpandable/pillExpandable.js +333 -139
  142. package/dist/rangeRaw/rangeRaw.js +486 -141
  143. package/dist/rangeRaw/utils/rangeHelper.js +209 -39
  144. package/dist/searchInputRaw/searchInputRaw.js +180 -65
  145. package/dist/skeleton/skeleton.js +51 -6
  146. package/dist/sortControl/sortControl.js +152 -42
  147. package/dist/stepperRaw/stepperRaw.js +116 -42
  148. package/dist/summary/summary.js +94 -8
  149. package/dist/table/actions/actionsMenu.js +171 -78
  150. package/dist/table/flexible/columnSettings.js +80 -10
  151. package/dist/table/flexible/columnsList.js +110 -43
  152. package/dist/table/flexible/columnsPopup.js +77 -20
  153. package/dist/table/nested/useNestedRows.js +167 -77
  154. package/dist/table/selectable/selectableHeader.js +180 -41
  155. package/dist/table/selectable/useSelectableRows.js +270 -191
  156. package/dist/table/sortable/sortableHeader.js +153 -75
  157. package/dist/tabs/tabs.js +227 -118
  158. package/dist/timePickerRaw/timePickerRaw.js +278 -58
  159. package/dist/toastRaw/toastRaw.js +138 -32
  160. package/dist/toggleButton/toggleButton.d.ts +0 -1
  161. package/dist/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  162. package/dist/toggleButtonRaw/toggleButtonRaw.js +146 -40
  163. package/dist/utils/formatDate.js +1001 -117
  164. package/{esm/utils/localization/translations/cs-json.js → dist/utils/localization/translations/cs.json} +11 -12
  165. package/{esm/utils/localization/translations/da-DK-json.js → dist/utils/localization/translations/da-DK.json} +31 -23
  166. package/{esm/utils/localization/translations/de-json.js → dist/utils/localization/translations/de.json} +12 -13
  167. package/dist/utils/localization/translations/en.json +308 -0
  168. package/{esm/utils/localization/translations/es-json.js → dist/utils/localization/translations/es.json} +11 -12
  169. package/{esm/utils/localization/translations/fi-FI-json.js → dist/utils/localization/translations/fi-FI.json} +31 -23
  170. package/{esm/utils/localization/translations/fr-FR-json.js → dist/utils/localization/translations/fr-FR.json} +12 -12
  171. package/{esm/utils/localization/translations/fr-json.js → dist/utils/localization/translations/fr.json} +11 -12
  172. package/{esm/utils/localization/translations/hu-HU-json.js → dist/utils/localization/translations/hu-HU.json} +31 -23
  173. package/{esm/utils/localization/translations/id-json.js → dist/utils/localization/translations/id.json} +11 -13
  174. package/{esm/utils/localization/translations/it-json.js → dist/utils/localization/translations/it.json} +11 -12
  175. package/{esm/utils/localization/translations/ja-json.js → dist/utils/localization/translations/ja.json} +11 -12
  176. package/{esm/utils/localization/translations/ko-KR-json.js → dist/utils/localization/translations/ko-KR.json} +24 -23
  177. package/{esm/utils/localization/translations/ms-json.js → dist/utils/localization/translations/ms.json} +11 -12
  178. package/{esm/utils/localization/translations/nb-NO-json.js → dist/utils/localization/translations/nb-NO.json} +31 -23
  179. package/{esm/utils/localization/translations/nl-json.js → dist/utils/localization/translations/nl.json} +11 -12
  180. package/{esm/utils/localization/translations/pl-json.js → dist/utils/localization/translations/pl.json} +11 -12
  181. package/{esm/utils/localization/translations/pt-BR-json.js → dist/utils/localization/translations/pt-BR.json} +11 -12
  182. package/{esm/utils/localization/translations/sk-SK-json.js → dist/utils/localization/translations/sk-SK.json} +31 -23
  183. package/{esm/utils/localization/translations/sv-json.js → dist/utils/localization/translations/sv.json} +11 -12
  184. package/{esm/utils/localization/translations/th-json.js → dist/utils/localization/translations/th.json} +11 -12
  185. package/{esm/utils/localization/translations/tr-json.js → dist/utils/localization/translations/tr.json} +11 -12
  186. package/{esm/utils/localization/translations/zh-Hans-json.js → dist/utils/localization/translations/zh-Hans.json} +11 -12
  187. package/{esm/utils/localization/translations/zh-TW-json.js → dist/utils/localization/translations/zh-TW.json} +11 -23
  188. package/dist/utils/localization/translationsDictionary.d.ts +2 -0
  189. package/dist/utils/localization/translationsDictionary.js +63 -0
  190. package/dist/utils/localization/useLanguage.js +2 -74
  191. package/esm/advancedGroupsFilter/advancedGroupsFilter.js +130 -29
  192. package/esm/advancedGroupsFilter/advancedGroupsFilterForm.js +133 -33
  193. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +317 -65
  194. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  195. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +77 -8
  196. package/esm/alertRaw/alertRaw.js +165 -51
  197. package/esm/banner/bannerMultipLine.js +121 -20
  198. package/esm/banner/bannerSingleLine.js +100 -13
  199. package/esm/betaPill/betaPill.js +105 -19
  200. package/esm/bookmark/bookmark.js +89 -27
  201. package/esm/bulkEditControl/bulkEditControl.js +161 -33
  202. package/esm/calendar/calendar.js +937 -272
  203. package/esm/calendar/calendarUtils.js +151 -84
  204. package/esm/card/card.js +233 -101
  205. package/esm/chart/accessibleChart/accessibleChartNarrative.js +642 -554
  206. package/esm/chart/accessibleChart/accessibleChartTable.js +239 -85
  207. package/esm/chart/chart.js +30 -20
  208. package/esm/chart/chartAxis/chartAxis.js +79 -6
  209. package/esm/checkboxListWithAction/checkboxListWithAction.js +218 -68
  210. package/esm/chip/chip.js +189 -90
  211. package/esm/columnsSelector/columnsSelector.js +91 -11
  212. package/esm/columnsSelector/columnsTab/columnsTab.js +53 -14
  213. package/esm/columnsSelector/columnsTabGroup/columnsTabGroup.js +75 -33
  214. package/esm/comboboxSelected/comboboxSelected.js +1 -3
  215. package/esm/dataFeed/feedExpandControl/feedExpandControl.js +21 -9
  216. package/esm/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +86 -10
  217. package/esm/dataGrid/dataGrid.js +221 -116
  218. package/esm/dataGrid/emptySearchList/emptySearchList.js +50 -8
  219. package/esm/dataGrid/entitiesListActions/actions/columnsListButton.js +45 -6
  220. package/esm/dataGrid/entitiesListActions/actions/fullscreenButton.js +58 -17
  221. package/esm/dataGrid/withFlexibleColumns/components/columnSettings.js +78 -9
  222. package/esm/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +44 -15
  223. package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +217 -31
  224. package/esm/dataGrid/withSelectableRows/withSelectableRows.js +280 -212
  225. package/esm/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +172 -94
  226. package/esm/dateInputInner/dateInputInner.js +785 -475
  227. package/esm/dateInputInner/dateInputInnerControlBlock.js +119 -21
  228. package/esm/dateInputRaw/dateInputRaw.js +309 -103
  229. package/esm/dateInputRaw/utils/getLabel.js +32 -6
  230. package/esm/dateRangeInner/dateRangeInner.js +166 -57
  231. package/esm/dateRangeRaw/dateRangeRaw.js +595 -238
  232. package/esm/dateRangeRaw/utils/dateRangeUtils.js +622 -239
  233. package/esm/dateSelectionWrapper/dateSelectionWrapper.js +146 -13
  234. package/esm/dialog/dialogContent.js +117 -39
  235. package/esm/dropdownRaw/dropdownHelper.d.ts +2 -2
  236. package/esm/dropdownRaw/dropdownHelper.js +10 -10
  237. package/esm/dropdownRaw/dropdownList.js +412 -56
  238. package/esm/dropdownRaw/dropdownPopup.js +212 -19
  239. package/esm/dropdownRaw/dropdownRaw.js +862 -507
  240. package/esm/dropdownRaw/dropdownSearchableTrigger.js +217 -45
  241. package/esm/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  242. package/esm/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  243. package/esm/dropdownRaw/stateReducer/stateActionType.js +1 -0
  244. package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  245. package/esm/dropdownRaw/stateReducer/stateReducer.js +24 -12
  246. package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  247. package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +18 -0
  248. package/esm/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  249. package/esm/dropdownRaw/stateReducer/stateReducerTestData.js +71 -0
  250. package/esm/dropdownRaw/types.d.ts +1 -0
  251. package/esm/favoriteButton/favoriteButton.js +53 -9
  252. package/esm/filters/components/filtersContainer.js +141 -61
  253. package/esm/filters/components/filtersEmptySelectedList.js +24 -3
  254. package/esm/filters/components/filtersSaveModal.js +134 -41
  255. package/esm/filters/components/filtersSavedChipComponent.js +312 -107
  256. package/esm/filters/components/filtersSearchItemData.js +121 -46
  257. package/esm/filters/components/filtersSearchList.js +375 -178
  258. package/esm/filters/components/filtersSelect.js +122 -60
  259. package/esm/filters/components/filtersSelectListItem.js +119 -12
  260. package/esm/filters/components/filtersSidePanel.js +504 -177
  261. package/esm/filters/filters.js +435 -265
  262. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +722 -270
  263. package/esm/filtersBar/components/resetComponentButton.js +39 -4
  264. package/esm/filtersBar/filtersBarActions/filtersBarActions.js +120 -14
  265. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +149 -48
  266. package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +354 -103
  267. package/esm/filtersBar/filtersContainer/filtersContainer.js +198 -133
  268. package/esm/formField/components/formFieldWithLabel.d.ts +2 -1
  269. package/esm/formField/components/formFieldWithLabel.js +3 -2
  270. package/esm/formField/components/formFieldWithoutLabel.d.ts +2 -1
  271. package/esm/formField/components/formFieldWithoutLabel.js +3 -3
  272. package/esm/formField/components/trailingComponent.d.ts +8 -0
  273. package/esm/formField/components/trailingComponent.js +7 -0
  274. package/esm/formField/formField.js +12 -11
  275. package/esm/formField/hooks/useError.js +94 -35
  276. package/esm/formGroup/components/reviewListToggle/reviewListToggle.js +66 -6
  277. package/esm/formGroup/hooks/useToggle.js +31 -10
  278. package/esm/formGroup/utils/getControls.js +8 -7
  279. package/esm/formLayout/hooks/useError.js +49 -14
  280. package/esm/formLayout/hooks/useFormButtons.js +122 -26
  281. package/esm/formSection/components/formSectionModal.js +1 -1
  282. package/esm/formSection/formSection.js +1 -1
  283. package/esm/formSection/hooks/useError.js +64 -21
  284. package/esm/formStepper/components/formStep.js +59 -9
  285. package/esm/formStepper/formStepper.js +123 -32
  286. package/esm/formStepperButtons/formStepperButtons.js +178 -37
  287. package/esm/groupsFilter/groupsHelper.d.ts +1 -1
  288. package/esm/groupsFilterRaw/groupsFilterAdjustmentState.js +152 -14
  289. package/esm/groupsFilterRaw/groupsFilterBox.js +131 -31
  290. package/esm/groupsFilterRaw/groupsFilterCommon.js +69 -7
  291. package/esm/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +178 -24
  292. package/esm/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  293. package/esm/groupsFilterRaw/groupsFilterHelper.js +279 -168
  294. package/esm/groupsFilterRaw/groupsFilterInitialState.js +260 -17
  295. package/esm/groupsFilterRaw/groupsFilterMenu.js +118 -8
  296. package/esm/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  297. package/esm/groupsFilterRaw/groupsFilterRaw.js +811 -308
  298. package/esm/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  299. package/esm/groupsFilterRaw/groupsFilterTestData.js +152 -57
  300. package/esm/groupsFilterRaw/groupsFilterTrigger.js +133 -34
  301. package/esm/groupsFilterRaw/groupsHelper.js +733 -207
  302. package/esm/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  303. package/esm/groupsFilterRaw/types.d.ts +1 -0
  304. package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +101 -51
  305. package/esm/header/components/mobileFilterControl/mobileFilterControl.js +56 -8
  306. package/esm/header/components/mobileSearchControl/mobileSearchControl.js +113 -13
  307. package/esm/header/headerBack.js +58 -19
  308. package/esm/index.d.ts +1 -0
  309. package/esm/index.js +1 -0
  310. package/esm/list/itemData/itemDataInternal.js +210 -50
  311. package/esm/list/listItem/listItem.js +162 -54
  312. package/esm/menu/components/menuErrorItem.js +27 -4
  313. package/esm/mobileSheet/mobileSheet.js +189 -68
  314. package/esm/modal/modal.js +265 -120
  315. package/esm/nav/nav.js +1 -1
  316. package/esm/nav/navFooter/navFooter.js +76 -38
  317. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +46 -12
  318. package/esm/nav/navHeader/navHeader.js +80 -35
  319. package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +82 -28
  320. package/esm/nav/navItem/navItem.d.ts +3 -3
  321. package/esm/nav/navItem/navItem.js +35 -33
  322. package/esm/nav/navMobileBar/navMobileBar.js +61 -20
  323. package/esm/notification/notification.js +114 -18
  324. package/esm/pagination/paginationArrow.js +75 -10
  325. package/esm/pagination/paginationText/paginationText.js +39 -10
  326. package/esm/pill/components/pillNonActionable/pillNonActionable.js +87 -23
  327. package/esm/pillBox/components/pillBoxItem.js +46 -8
  328. package/esm/pillBox/pillBox.js +115 -19
  329. package/esm/pillExpandable/pillExpandable.js +327 -138
  330. package/esm/rangeRaw/rangeRaw.js +480 -140
  331. package/esm/rangeRaw/utils/rangeHelper.js +203 -38
  332. package/esm/searchInputRaw/searchInputRaw.js +145 -43
  333. package/esm/skeleton/skeleton.js +45 -5
  334. package/esm/sortControl/sortControl.js +146 -41
  335. package/esm/stepperRaw/stepperRaw.js +112 -41
  336. package/esm/storybookHelpers/dataGridWithDifferentCellOptions/components/EntitiesListAction.js +178 -19
  337. package/esm/summary/summary.js +88 -7
  338. package/esm/table/actions/actionsMenu.js +165 -77
  339. package/esm/table/flexible/columnSettings.js +74 -9
  340. package/esm/table/flexible/columnsList.js +104 -42
  341. package/esm/table/flexible/columnsPopup.js +71 -19
  342. package/esm/table/nested/useNestedRows.js +161 -76
  343. package/esm/table/selectable/selectableHeader.js +174 -40
  344. package/esm/table/selectable/useSelectableRows.js +264 -190
  345. package/esm/table/sortable/sortableHeader.js +147 -74
  346. package/esm/tabs/tabs.js +221 -117
  347. package/esm/timePickerRaw/timePickerRaw.js +272 -57
  348. package/esm/toastRaw/toastRaw.js +132 -31
  349. package/esm/toggleButton/toggleButton.d.ts +0 -1
  350. package/esm/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  351. package/esm/toggleButtonRaw/toggleButtonRaw.js +111 -18
  352. package/esm/utils/formatDate.js +995 -116
  353. package/{dist/utils/localization/translations/cs-json.js → esm/utils/localization/translations/cs.json} +11 -15
  354. package/{dist/utils/localization/translations/da-DK-json.js → esm/utils/localization/translations/da-DK.json} +31 -26
  355. package/{dist/utils/localization/translations/de-json.js → esm/utils/localization/translations/de.json} +12 -16
  356. package/esm/utils/localization/translations/en.json +308 -0
  357. package/{dist/utils/localization/translations/es-json.js → esm/utils/localization/translations/es.json} +11 -15
  358. package/{dist/utils/localization/translations/fi-FI-json.js → esm/utils/localization/translations/fi-FI.json} +31 -26
  359. package/{dist/utils/localization/translations/fr-FR-json.js → esm/utils/localization/translations/fr-FR.json} +12 -15
  360. package/{dist/utils/localization/translations/fr-json.js → esm/utils/localization/translations/fr.json} +11 -15
  361. package/{dist/utils/localization/translations/hu-HU-json.js → esm/utils/localization/translations/hu-HU.json} +31 -26
  362. package/{dist/utils/localization/translations/id-json.js → esm/utils/localization/translations/id.json} +11 -16
  363. package/{dist/utils/localization/translations/it-json.js → esm/utils/localization/translations/it.json} +11 -15
  364. package/{dist/utils/localization/translations/ja-json.js → esm/utils/localization/translations/ja.json} +11 -15
  365. package/{dist/utils/localization/translations/ko-KR-json.js → esm/utils/localization/translations/ko-KR.json} +24 -26
  366. package/{dist/utils/localization/translations/ms-json.js → esm/utils/localization/translations/ms.json} +11 -15
  367. package/{dist/utils/localization/translations/nb-NO-json.js → esm/utils/localization/translations/nb-NO.json} +31 -26
  368. package/{dist/utils/localization/translations/nl-json.js → esm/utils/localization/translations/nl.json} +11 -15
  369. package/{dist/utils/localization/translations/pl-json.js → esm/utils/localization/translations/pl.json} +11 -15
  370. package/{dist/utils/localization/translations/pt-BR-json.js → esm/utils/localization/translations/pt-BR.json} +11 -15
  371. package/{dist/utils/localization/translations/sk-SK-json.js → esm/utils/localization/translations/sk-SK.json} +31 -26
  372. package/{dist/utils/localization/translations/sv-json.js → esm/utils/localization/translations/sv.json} +11 -15
  373. package/{dist/utils/localization/translations/th-json.js → esm/utils/localization/translations/th.json} +11 -15
  374. package/{dist/utils/localization/translations/tr-json.js → esm/utils/localization/translations/tr.json} +11 -15
  375. package/{dist/utils/localization/translations/zh-Hans-json.js → esm/utils/localization/translations/zh-Hans.json} +11 -15
  376. package/{dist/utils/localization/translations/zh-TW-json.js → esm/utils/localization/translations/zh-TW.json} +11 -26
  377. package/esm/utils/localization/translationsDictionary.d.ts +2 -0
  378. package/esm/utils/localization/translationsDictionary.js +59 -0
  379. package/esm/utils/localization/useLanguage.js +1 -50
  380. package/package.json +17 -10
  381. package/dist/utils/localization/translations/cs-json.d.ts +0 -251
  382. package/dist/utils/localization/translations/da-DK-json.d.ts +0 -252
  383. package/dist/utils/localization/translations/de-json.d.ts +0 -251
  384. package/dist/utils/localization/translations/en-json.d.ts +0 -314
  385. package/dist/utils/localization/translations/en-json.js +0 -317
  386. package/dist/utils/localization/translations/es-json.d.ts +0 -251
  387. package/dist/utils/localization/translations/fi-FI-json.d.ts +0 -252
  388. package/dist/utils/localization/translations/fr-FR-json.d.ts +0 -250
  389. package/dist/utils/localization/translations/fr-json.d.ts +0 -251
  390. package/dist/utils/localization/translations/hu-HU-json.d.ts +0 -252
  391. package/dist/utils/localization/translations/id-json.d.ts +0 -252
  392. package/dist/utils/localization/translations/it-json.d.ts +0 -251
  393. package/dist/utils/localization/translations/ja-json.d.ts +0 -251
  394. package/dist/utils/localization/translations/ko-KR-json.d.ts +0 -258
  395. package/dist/utils/localization/translations/ms-json.d.ts +0 -251
  396. package/dist/utils/localization/translations/nb-NO-json.d.ts +0 -252
  397. package/dist/utils/localization/translations/nl-json.d.ts +0 -251
  398. package/dist/utils/localization/translations/pl-json.d.ts +0 -251
  399. package/dist/utils/localization/translations/pt-BR-json.d.ts +0 -251
  400. package/dist/utils/localization/translations/sk-SK-json.d.ts +0 -251
  401. package/dist/utils/localization/translations/sv-json.d.ts +0 -251
  402. package/dist/utils/localization/translations/th-json.d.ts +0 -251
  403. package/dist/utils/localization/translations/tr-json.d.ts +0 -251
  404. package/dist/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  405. package/dist/utils/localization/translations/zh-TW-json.d.ts +0 -271
  406. package/esm/utils/localization/translations/cs-json.d.ts +0 -251
  407. package/esm/utils/localization/translations/da-DK-json.d.ts +0 -252
  408. package/esm/utils/localization/translations/de-json.d.ts +0 -251
  409. package/esm/utils/localization/translations/en-json.d.ts +0 -314
  410. package/esm/utils/localization/translations/en-json.js +0 -314
  411. package/esm/utils/localization/translations/es-json.d.ts +0 -251
  412. package/esm/utils/localization/translations/fi-FI-json.d.ts +0 -252
  413. package/esm/utils/localization/translations/fr-FR-json.d.ts +0 -250
  414. package/esm/utils/localization/translations/fr-json.d.ts +0 -251
  415. package/esm/utils/localization/translations/hu-HU-json.d.ts +0 -252
  416. package/esm/utils/localization/translations/id-json.d.ts +0 -252
  417. package/esm/utils/localization/translations/it-json.d.ts +0 -251
  418. package/esm/utils/localization/translations/ja-json.d.ts +0 -251
  419. package/esm/utils/localization/translations/ko-KR-json.d.ts +0 -258
  420. package/esm/utils/localization/translations/ms-json.d.ts +0 -251
  421. package/esm/utils/localization/translations/nb-NO-json.d.ts +0 -252
  422. package/esm/utils/localization/translations/nl-json.d.ts +0 -251
  423. package/esm/utils/localization/translations/pl-json.d.ts +0 -251
  424. package/esm/utils/localization/translations/pt-BR-json.d.ts +0 -251
  425. package/esm/utils/localization/translations/sk-SK-json.d.ts +0 -251
  426. package/esm/utils/localization/translations/sv-json.d.ts +0 -251
  427. package/esm/utils/localization/translations/th-json.d.ts +0 -251
  428. package/esm/utils/localization/translations/tr-json.d.ts +0 -251
  429. package/esm/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  430. package/esm/utils/localization/translations/zh-TW-json.d.ts +0 -271
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
4
  import { addDays, addMonth, getCalendarMonthDates, getEndOfMonth, getEndOfWeek, getSameDateOrTheLastForMonth, getSelectableYears, getStartOfMonth, getStartOfWeek, isDifferentPeriod, isDisableDate, setYear, toDayStart } from "./dateUtils";
@@ -12,280 +13,944 @@ import { TextIconButton } from "../textIconButton/textIconButton";
12
13
  import { ButtonIconPosition } from "../textIconButton/textIconButton";
13
14
  import { Button } from "../button/button";
14
15
  import { ButtonType } from "../button/buttonType";
16
+ injectString("cs", "ShortSunday", "Ne");
17
+ injectString("da-DK", "ShortSunday", "S");
18
+ injectString("de", "ShortSunday", "So");
19
+ injectString("en", "ShortSunday", "S");
20
+ injectString("es", "ShortSunday", "D");
21
+ injectString("fi-FI", "ShortSunday", "su");
22
+ injectString("fr", "ShortSunday", "D");
23
+ injectString("fr-FR", "ShortSunday", "D");
24
+ injectString("hu-HU", "ShortSunday", "V");
25
+ injectString("id", "ShortSunday", "S");
26
+ injectString("it", "ShortSunday", "D");
27
+ injectString("ja", "ShortSunday", "\u65E5");
28
+ injectString("ko-KR", "ShortSunday", "\uC77C");
29
+ injectString("ms", "ShortSunday", "A");
30
+ injectString("nb-NO", "ShortSunday", "s\xF8n");
31
+ injectString("nl", "ShortSunday", "z");
32
+ injectString("pl", "ShortSunday", "N");
33
+ injectString("pt-BR", "ShortSunday", "D");
34
+ injectString("sk-SK", "ShortSunday", "N");
35
+ injectString("sv", "ShortSunday", "S");
36
+ injectString("th", "ShortSunday", "\u0E2D\u0E32.");
37
+ injectString("tr", "ShortSunday", "Pa");
38
+ injectString("zh-Hans", "ShortSunday", "\u65E5");
39
+ injectString("zh-TW", "ShortSunday", "\u9031\u65E5");
40
+ injectString("cs", "ShortMonday", "Po");
41
+ injectString("da-DK", "ShortMonday", "M");
42
+ injectString("de", "ShortMonday", "Mo");
43
+ injectString("en", "ShortMonday", "M");
44
+ injectString("es", "ShortMonday", "L");
45
+ injectString("fi-FI", "ShortMonday", "ma");
46
+ injectString("fr", "ShortMonday", "L");
47
+ injectString("fr-FR", "ShortMonday", "L");
48
+ injectString("hu-HU", "ShortMonday", "H");
49
+ injectString("id", "ShortMonday", "M");
50
+ injectString("it", "ShortMonday", "L");
51
+ injectString("ja", "ShortMonday", "\u6708");
52
+ injectString("ko-KR", "ShortMonday", "\uC6D4");
53
+ injectString("ms", "ShortMonday", "I");
54
+ injectString("nb-NO", "ShortMonday", "man");
55
+ injectString("nl", "ShortMonday", "m");
56
+ injectString("pl", "ShortMonday", "P");
57
+ injectString("pt-BR", "ShortMonday", "S");
58
+ injectString("sk-SK", "ShortMonday", "P");
59
+ injectString("sv", "ShortMonday", "M");
60
+ injectString("th", "ShortMonday", "\u0E08.");
61
+ injectString("tr", "ShortMonday", "Pt");
62
+ injectString("zh-Hans", "ShortMonday", "\u4E00");
63
+ injectString("zh-TW", "ShortMonday", "\u9031\u4E00");
64
+ injectString("cs", "ShortTuesday", "\xDAt");
65
+ injectString("da-DK", "ShortTuesday", "T");
66
+ injectString("de", "ShortTuesday", "Di");
67
+ injectString("en", "ShortTuesday", "T");
68
+ injectString("es", "ShortTuesday", "M");
69
+ injectString("fi-FI", "ShortTuesday", "ti");
70
+ injectString("fr", "ShortTuesday", "M");
71
+ injectString("fr-FR", "ShortTuesday", "M");
72
+ injectString("hu-HU", "ShortTuesday", "K");
73
+ injectString("id", "ShortTuesday", "T");
74
+ injectString("it", "ShortTuesday", "M");
75
+ injectString("ja", "ShortTuesday", "\u706B");
76
+ injectString("ko-KR", "ShortTuesday", "\uD654");
77
+ injectString("ms", "ShortTuesday", "S");
78
+ injectString("nb-NO", "ShortTuesday", "tir");
79
+ injectString("nl", "ShortTuesday", "d");
80
+ injectString("pl", "ShortTuesday", "W");
81
+ injectString("pt-BR", "ShortTuesday", "T");
82
+ injectString("sk-SK", "ShortTuesday", "U");
83
+ injectString("sv", "ShortTuesday", "T");
84
+ injectString("th", "ShortTuesday", "\u0E2D.");
85
+ injectString("tr", "ShortTuesday", "Sa");
86
+ injectString("zh-Hans", "ShortTuesday", "\u4E8C");
87
+ injectString("zh-TW", "ShortTuesday", "\u9031\u4E8C");
88
+ injectString("cs", "ShortWednesday", "St");
89
+ injectString("da-DK", "ShortWednesday", "O");
90
+ injectString("de", "ShortWednesday", "Mi");
91
+ injectString("en", "ShortWednesday", "W");
92
+ injectString("es", "ShortWednesday", "X");
93
+ injectString("fi-FI", "ShortWednesday", "ke");
94
+ injectString("fr", "ShortWednesday", "M");
95
+ injectString("fr-FR", "ShortWednesday", "M");
96
+ injectString("hu-HU", "ShortWednesday", "S");
97
+ injectString("id", "ShortWednesday", "W");
98
+ injectString("it", "ShortWednesday", "M");
99
+ injectString("ja", "ShortWednesday", "\u6C34");
100
+ injectString("ko-KR", "ShortWednesday", "\uC218");
101
+ injectString("ms", "ShortWednesday", "R");
102
+ injectString("nb-NO", "ShortWednesday", "ons");
103
+ injectString("nl", "ShortWednesday", "w");
104
+ injectString("pl", "ShortWednesday", "\u015A");
105
+ injectString("pt-BR", "ShortWednesday", "Q");
106
+ injectString("sk-SK", "ShortWednesday", "S");
107
+ injectString("sv", "ShortWednesday", "O");
108
+ injectString("th", "ShortWednesday", "\u0E1E.");
109
+ injectString("tr", "ShortWednesday", "\xC7a");
110
+ injectString("zh-Hans", "ShortWednesday", "\u4E09");
111
+ injectString("zh-TW", "ShortWednesday", "\u9031\u4E09");
112
+ injectString("cs", "ShortThursday", "\u010Ct");
113
+ injectString("da-DK", "ShortThursday", "T");
114
+ injectString("de", "ShortThursday", "Do");
115
+ injectString("en", "ShortThursday", "T");
116
+ injectString("es", "ShortThursday", "J");
117
+ injectString("fi-FI", "ShortThursday", "to");
118
+ injectString("fr", "ShortThursday", "J");
119
+ injectString("fr-FR", "ShortThursday", "J");
120
+ injectString("hu-HU", "ShortThursday", "C");
121
+ injectString("id", "ShortThursday", "T");
122
+ injectString("it", "ShortThursday", "G");
123
+ injectString("ja", "ShortThursday", "\u6728");
124
+ injectString("ko-KR", "ShortThursday", "\uBAA9");
125
+ injectString("ms", "ShortThursday", "K");
126
+ injectString("nb-NO", "ShortThursday", "tor");
127
+ injectString("nl", "ShortThursday", "d");
128
+ injectString("pl", "ShortThursday", "C");
129
+ injectString("pt-BR", "ShortThursday", "Q");
130
+ injectString("sk-SK", "ShortThursday", "\u0160");
131
+ injectString("sv", "ShortThursday", "T");
132
+ injectString("th", "ShortThursday", "\u0E1E\u0E24.");
133
+ injectString("tr", "ShortThursday", "Pe");
134
+ injectString("zh-Hans", "ShortThursday", "\u56DB");
135
+ injectString("zh-TW", "ShortThursday", "\u9031\u56DB");
136
+ injectString("cs", "ShortFriday", "P\xE1");
137
+ injectString("da-DK", "ShortFriday", "F");
138
+ injectString("de", "ShortFriday", "Fr");
139
+ injectString("en", "ShortFriday", "F");
140
+ injectString("es", "ShortFriday", "V");
141
+ injectString("fi-FI", "ShortFriday", "pe");
142
+ injectString("fr", "ShortFriday", "V");
143
+ injectString("fr-FR", "ShortFriday", "V");
144
+ injectString("hu-HU", "ShortFriday", "P");
145
+ injectString("id", "ShortFriday", "F");
146
+ injectString("it", "ShortFriday", "V");
147
+ injectString("ja", "ShortFriday", "\u91D1");
148
+ injectString("ko-KR", "ShortFriday", "\uAE08");
149
+ injectString("ms", "ShortFriday", "J");
150
+ injectString("nb-NO", "ShortFriday", "fre");
151
+ injectString("nl", "ShortFriday", "v");
152
+ injectString("pl", "ShortFriday", "P");
153
+ injectString("pt-BR", "ShortFriday", "S");
154
+ injectString("sk-SK", "ShortFriday", "P");
155
+ injectString("sv", "ShortFriday", "F");
156
+ injectString("th", "ShortFriday", "\u0E28.");
157
+ injectString("tr", "ShortFriday", "Cu");
158
+ injectString("zh-Hans", "ShortFriday", "\u4E94");
159
+ injectString("zh-TW", "ShortFriday", "\u9031\u4E94");
160
+ injectString("cs", "ShortSaturday", "So");
161
+ injectString("da-DK", "ShortSaturday", "L");
162
+ injectString("de", "ShortSaturday", "Sa");
163
+ injectString("en", "ShortSaturday", "S");
164
+ injectString("es", "ShortSaturday", "S");
165
+ injectString("fi-FI", "ShortSaturday", "la");
166
+ injectString("fr", "ShortSaturday", "S");
167
+ injectString("fr-FR", "ShortSaturday", "S");
168
+ injectString("hu-HU", "ShortSaturday", "S");
169
+ injectString("id", "ShortSaturday", "S");
170
+ injectString("it", "ShortSaturday", "S");
171
+ injectString("ja", "ShortSaturday", "\u571F");
172
+ injectString("ko-KR", "ShortSaturday", "\uD1A0");
173
+ injectString("ms", "ShortSaturday", "S");
174
+ injectString("nb-NO", "ShortSaturday", "l\xF8r");
175
+ injectString("nl", "ShortSaturday", "z");
176
+ injectString("pl", "ShortSaturday", "S");
177
+ injectString("pt-BR", "ShortSaturday", "S");
178
+ injectString("sk-SK", "ShortSaturday", "S");
179
+ injectString("sv", "ShortSaturday", "L");
180
+ injectString("th", "ShortSaturday", "\u0E2A.");
181
+ injectString("tr", "ShortSaturday", "Ct");
182
+ injectString("zh-Hans", "ShortSaturday", "\u516D");
183
+ injectString("zh-TW", "ShortSaturday", "\u9031\u516D");
184
+ injectString("cs", "Jan", "Led");
185
+ injectString("da-DK", "Jan", "Jan");
186
+ injectString("de", "Jan", "Jan");
187
+ injectString("en", "Jan", "Jan");
188
+ injectString("es", "Jan", "Ene");
189
+ injectString("fi-FI", "Jan", "Tam.");
190
+ injectString("fr", "Jan", "janv");
191
+ injectString("fr-FR", "Jan", "Jan");
192
+ injectString("hu-HU", "Jan", "Jan");
193
+ injectString("id", "Jan", "Jan");
194
+ injectString("it", "Jan", "Gen");
195
+ injectString("ja", "Jan", "1\u6708");
196
+ injectString("ko-KR", "Jan", "1\uC6D4");
197
+ injectString("ms", "Jan", "Jan");
198
+ injectString("nb-NO", "Jan", "Jan");
199
+ injectString("nl", "Jan", "jan");
200
+ injectString("pl", "Jan", "Sty");
201
+ injectString("pt-BR", "Jan", "Jan");
202
+ injectString("sk-SK", "Jan", "an.");
203
+ injectString("sv", "Jan", "Jan");
204
+ injectString("th", "Jan", "\u0E21.\u0E04.");
205
+ injectString("tr", "Jan", "Oca");
206
+ injectString("zh-Hans", "Jan", "\u4E00\u6708");
207
+ injectString("zh-TW", "Jan", "\u4E00\u6708");
208
+ injectString("cs", "Feb", "\xDAno");
209
+ injectString("da-DK", "Feb", "Feb");
210
+ injectString("de", "Feb", "Feb");
211
+ injectString("en", "Feb", "Feb");
212
+ injectString("es", "Feb", "Feb");
213
+ injectString("fi-FI", "Feb", "Hel.");
214
+ injectString("fr", "Feb", "f\xE9vr");
215
+ injectString("fr-FR", "Feb", "F\xE9v");
216
+ injectString("hu-HU", "Feb", "Feb");
217
+ injectString("id", "Feb", "Feb");
218
+ injectString("it", "Feb", "Feb");
219
+ injectString("ja", "Feb", "2\u6708");
220
+ injectString("ko-KR", "Feb", "2\uC6D4");
221
+ injectString("ms", "Feb", "Feb");
222
+ injectString("nb-NO", "Feb", "Feb");
223
+ injectString("nl", "Feb", "feb");
224
+ injectString("pl", "Feb", "Lut");
225
+ injectString("pt-BR", "Feb", "Fev");
226
+ injectString("sk-SK", "Feb", "feb.");
227
+ injectString("sv", "Feb", "Feb");
228
+ injectString("th", "Feb", "\u0E01.\u0E1E.");
229
+ injectString("tr", "Feb", "\u015Eub");
230
+ injectString("zh-Hans", "Feb", "\u4E8C\u6708");
231
+ injectString("zh-TW", "Feb", "\u4E8C\u6708");
232
+ injectString("cs", "Mar", "B\u0159e");
233
+ injectString("da-DK", "Mar", "Mar");
234
+ injectString("de", "Mar", "M\xE4r");
235
+ injectString("en", "Mar", "Mar");
236
+ injectString("es", "Mar", "Mar");
237
+ injectString("fi-FI", "Mar", "Maal.");
238
+ injectString("fr", "Mar", "mars");
239
+ injectString("fr-FR", "Mar", "Mar");
240
+ injectString("hu-HU", "Mar", "M\xE1r");
241
+ injectString("id", "Mar", "Mar");
242
+ injectString("it", "Mar", "Mar");
243
+ injectString("ja", "Mar", "3\u6708");
244
+ injectString("ko-KR", "Mar", "3\uC6D4");
245
+ injectString("ms", "Mar", "Mac");
246
+ injectString("nb-NO", "Mar", "Mar");
247
+ injectString("nl", "Mar", "maa");
248
+ injectString("pl", "Mar", "Mar");
249
+ injectString("pt-BR", "Mar", "Mar");
250
+ injectString("sk-SK", "Mar", "mar.");
251
+ injectString("sv", "Mar", "Mar");
252
+ injectString("th", "Mar", "\u0E21\u0E35.\u0E04.");
253
+ injectString("tr", "Mar", "Mar");
254
+ injectString("zh-Hans", "Mar", "\u4E09\u6708");
255
+ injectString("zh-TW", "Mar", "\u4E09\u6708");
256
+ injectString("cs", "Apr", "Dub");
257
+ injectString("da-DK", "Apr", "Apr");
258
+ injectString("de", "Apr", "Apr");
259
+ injectString("en", "Apr", "Apr");
260
+ injectString("es", "Apr", "Abr");
261
+ injectString("fi-FI", "Apr", "Huht.");
262
+ injectString("fr", "Apr", "avr");
263
+ injectString("fr-FR", "Apr", "Avr");
264
+ injectString("hu-HU", "Apr", "\xC1pr");
265
+ injectString("id", "Apr", "Apr");
266
+ injectString("it", "Apr", "Apr");
267
+ injectString("ja", "Apr", "4\u6708");
268
+ injectString("ko-KR", "Apr", "4\uC6D4");
269
+ injectString("ms", "Apr", "Apr");
270
+ injectString("nb-NO", "Apr", "Apr");
271
+ injectString("nl", "Apr", "apr");
272
+ injectString("pl", "Apr", "Kwi");
273
+ injectString("pt-BR", "Apr", "Abr");
274
+ injectString("sk-SK", "Apr", "apr.");
275
+ injectString("sv", "Apr", "Apr");
276
+ injectString("th", "Apr", "\u0E40\u0E21.\u0E22.");
277
+ injectString("tr", "Apr", "Nis");
278
+ injectString("zh-Hans", "Apr", "\u56DB\u6708");
279
+ injectString("zh-TW", "Apr", "\u56DB\u6708");
280
+ injectString("cs", "May", "Kv\u011Bten");
281
+ injectString("da-DK", "May", "Maj");
282
+ injectString("de", "May", "Mai");
283
+ injectString("en", "May", "May");
284
+ injectString("es", "May", "Mayo");
285
+ injectString("fi-FI", "May", "Toukokuu");
286
+ injectString("fr", "May", "Mai");
287
+ injectString("fr-FR", "May", "Mai");
288
+ injectString("hu-HU", "May", "M\xE1jus");
289
+ injectString("id", "May", "Mei");
290
+ injectString("it", "May", "Mag");
291
+ injectString("ja", "May", "5\u6708");
292
+ injectString("ko-KR", "May", "5\uC6D4");
293
+ injectString("ms", "May", "Mei");
294
+ injectString("nb-NO", "May", "Mai");
295
+ injectString("nl", "May", "mei");
296
+ injectString("pl", "May", "Maj");
297
+ injectString("pt-BR", "May", "Maio");
298
+ injectString("sk-SK", "May", "m\xE1j");
299
+ injectString("sv", "May", "Maj");
300
+ injectString("th", "May", "\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21");
301
+ injectString("tr", "May", "May\u0131s");
302
+ injectString("zh-Hans", "May", "\u4E94\u6708");
303
+ injectString("zh-TW", "May", "\u4E94\u6708");
304
+ injectString("cs", "Jun", "\u010Cvn");
305
+ injectString("da-DK", "Jun", "Jun");
306
+ injectString("de", "Jun", "Jun");
307
+ injectString("en", "Jun", "Jun");
308
+ injectString("es", "Jun", "Jun");
309
+ injectString("fi-FI", "Jun", "Kes.");
310
+ injectString("fr", "Jun", "juin");
311
+ injectString("fr-FR", "Jun", "Juin");
312
+ injectString("hu-HU", "Jun", "J\xFAn");
313
+ injectString("id", "Jun", "Jun");
314
+ injectString("it", "Jun", "Giu");
315
+ injectString("ja", "Jun", "6\u6708");
316
+ injectString("ko-KR", "Jun", "6\uC6D4");
317
+ injectString("ms", "Jun", "Jun");
318
+ injectString("nb-NO", "Jun", "Jun");
319
+ injectString("nl", "Jun", "jun");
320
+ injectString("pl", "Jun", "Cze");
321
+ injectString("pt-BR", "Jun", "Jun");
322
+ injectString("sk-SK", "Jun", "j\xFAn");
323
+ injectString("sv", "Jun", "Jun");
324
+ injectString("th", "Jun", "\u0E21\u0E34.\u0E22.");
325
+ injectString("tr", "Jun", "Haz");
326
+ injectString("zh-Hans", "Jun", "\u516D\u6708");
327
+ injectString("zh-TW", "Jun", "\u516D\u6708");
328
+ injectString("cs", "Jul", "\u010Cvc");
329
+ injectString("da-DK", "Jul", "Jul");
330
+ injectString("de", "Jul", "Jul");
331
+ injectString("en", "Jul", "Jul");
332
+ injectString("es", "Jul", "Jul");
333
+ injectString("fi-FI", "Jul", "Hei.");
334
+ injectString("fr", "Jul", "juil");
335
+ injectString("fr-FR", "Jul", "Juil");
336
+ injectString("hu-HU", "Jul", "J\xFAl");
337
+ injectString("id", "Jul", "Jul");
338
+ injectString("it", "Jul", "Lug");
339
+ injectString("ja", "Jul", "7\u6708");
340
+ injectString("ko-KR", "Jul", "7\uC6D4");
341
+ injectString("ms", "Jul", "Jul");
342
+ injectString("nb-NO", "Jul", "Jul");
343
+ injectString("nl", "Jul", "jul");
344
+ injectString("pl", "Jul", "Lip");
345
+ injectString("pt-BR", "Jul", "Jul");
346
+ injectString("sk-SK", "Jul", "j\xFAl");
347
+ injectString("sv", "Jul", "Jul");
348
+ injectString("th", "Jul", "\u0E01.\u0E04.");
349
+ injectString("tr", "Jul", "Tem");
350
+ injectString("zh-Hans", "Jul", "\u4E03\u6708");
351
+ injectString("zh-TW", "Jul", "\u4E03\u6708");
352
+ injectString("cs", "Aug", "Srp");
353
+ injectString("da-DK", "Aug", "Aug");
354
+ injectString("de", "Aug", "Aug");
355
+ injectString("en", "Aug", "Aug");
356
+ injectString("es", "Aug", "Ago");
357
+ injectString("fi-FI", "Aug", "Elo.");
358
+ injectString("fr", "Aug", "ao\xFBt");
359
+ injectString("fr-FR", "Aug", "Ao\xFB");
360
+ injectString("hu-HU", "Aug", "Aug");
361
+ injectString("id", "Aug", "Agu");
362
+ injectString("it", "Aug", "Ago");
363
+ injectString("ja", "Aug", "8\u6708");
364
+ injectString("ko-KR", "Aug", "8\uC6D4");
365
+ injectString("ms", "Aug", "Ogos");
366
+ injectString("nb-NO", "Aug", "Aug");
367
+ injectString("nl", "Aug", "aug");
368
+ injectString("pl", "Aug", "Sie");
369
+ injectString("pt-BR", "Aug", "Ago");
370
+ injectString("sk-SK", "Aug", "aug.");
371
+ injectString("sv", "Aug", "Aug");
372
+ injectString("th", "Aug", "\u0E2A.\u0E04.");
373
+ injectString("tr", "Aug", "A\u011Fu");
374
+ injectString("zh-Hans", "Aug", "\u516B\u6708");
375
+ injectString("zh-TW", "Aug", "\u516B\u6708");
376
+ injectString("cs", "Sep", "Z\xE1\u0159");
377
+ injectString("da-DK", "Sep", "Sep");
378
+ injectString("de", "Sep", "Sep");
379
+ injectString("en", "Sep", "Sep");
380
+ injectString("es", "Sep", "Sep");
381
+ injectString("fi-FI", "Sep", "Syys.");
382
+ injectString("fr", "Sep", "sept");
383
+ injectString("fr-FR", "Sep", "Sep");
384
+ injectString("hu-HU", "Sep", "Szept");
385
+ injectString("id", "Sep", "Sep");
386
+ injectString("it", "Sep", "Set");
387
+ injectString("ja", "Sep", "9\u6708");
388
+ injectString("ko-KR", "Sep", "9\uC6D4");
389
+ injectString("ms", "Sep", "Sep");
390
+ injectString("nb-NO", "Sep", "Sep");
391
+ injectString("nl", "Sep", "sep");
392
+ injectString("pl", "Sep", "Wrz");
393
+ injectString("pt-BR", "Sep", "Set");
394
+ injectString("sk-SK", "Sep", "sep.");
395
+ injectString("sv", "Sep", "Sep");
396
+ injectString("th", "Sep", "\u0E01.\u0E22.");
397
+ injectString("tr", "Sep", "Eyl");
398
+ injectString("zh-Hans", "Sep", "\u4E5D\u6708");
399
+ injectString("zh-TW", "Sep", "\u4E5D\u6708");
400
+ injectString("cs", "Oct", "\u0158\xEDj");
401
+ injectString("da-DK", "Oct", "Okt");
402
+ injectString("de", "Oct", "Okt");
403
+ injectString("en", "Oct", "Oct");
404
+ injectString("es", "Oct", "Oct");
405
+ injectString("fi-FI", "Oct", "Lok.");
406
+ injectString("fr", "Oct", "oct");
407
+ injectString("fr-FR", "Oct", "Oct");
408
+ injectString("hu-HU", "Oct", "Okt");
409
+ injectString("id", "Oct", "Okt");
410
+ injectString("it", "Oct", "Ott");
411
+ injectString("ja", "Oct", "10\u6708");
412
+ injectString("ko-KR", "Oct", "10\uC6D4");
413
+ injectString("ms", "Oct", "Okt");
414
+ injectString("nb-NO", "Oct", "Okt");
415
+ injectString("nl", "Oct", "okt");
416
+ injectString("pl", "Oct", "Pa\u017A");
417
+ injectString("pt-BR", "Oct", "Out");
418
+ injectString("sk-SK", "Oct", "okt.");
419
+ injectString("sv", "Oct", "Okt");
420
+ injectString("th", "Oct", "\u0E15.\u0E04.");
421
+ injectString("tr", "Oct", "Eki");
422
+ injectString("zh-Hans", "Oct", "\u5341\u6708");
423
+ injectString("zh-TW", "Oct", "\u5341\u6708");
424
+ injectString("cs", "Nov", "Lis");
425
+ injectString("da-DK", "Nov", "Nov");
426
+ injectString("de", "Nov", "Nov");
427
+ injectString("en", "Nov", "Nov");
428
+ injectString("es", "Nov", "Nov");
429
+ injectString("fi-FI", "Nov", "Marr.");
430
+ injectString("fr", "Nov", "nov");
431
+ injectString("fr-FR", "Nov", "Nov");
432
+ injectString("hu-HU", "Nov", "Nov");
433
+ injectString("id", "Nov", "Nov");
434
+ injectString("it", "Nov", "Nov");
435
+ injectString("ja", "Nov", "11\u6708");
436
+ injectString("ko-KR", "Nov", "11\uC6D4");
437
+ injectString("ms", "Nov", "Nov");
438
+ injectString("nb-NO", "Nov", "Nov");
439
+ injectString("nl", "Nov", "nov");
440
+ injectString("pl", "Nov", "Lis");
441
+ injectString("pt-BR", "Nov", "Nov");
442
+ injectString("sk-SK", "Nov", "nov.");
443
+ injectString("sv", "Nov", "Nov");
444
+ injectString("th", "Nov", "\u0E1E.\u0E22.");
445
+ injectString("tr", "Nov", "Kas");
446
+ injectString("zh-Hans", "Nov", "\u5341\u4E00\u6708");
447
+ injectString("zh-TW", "Nov", "\u5341\u4E00\u6708");
448
+ injectString("cs", "Dec", "Pro");
449
+ injectString("da-DK", "Dec", "Dec");
450
+ injectString("de", "Dec", "Dez");
451
+ injectString("en", "Dec", "Dec");
452
+ injectString("es", "Dec", "Dic");
453
+ injectString("fi-FI", "Dec", "Jou.");
454
+ injectString("fr", "Dec", "d\xE9c");
455
+ injectString("fr-FR", "Dec", "D\xE9c");
456
+ injectString("hu-HU", "Dec", "Dec");
457
+ injectString("id", "Dec", "Des");
458
+ injectString("it", "Dec", "Dic");
459
+ injectString("ja", "Dec", "12\u6708");
460
+ injectString("ko-KR", "Dec", "12\uC6D4");
461
+ injectString("ms", "Dec", "Dis");
462
+ injectString("nb-NO", "Dec", "Des");
463
+ injectString("nl", "Dec", "dec");
464
+ injectString("pl", "Dec", "Gru");
465
+ injectString("pt-BR", "Dec", "Dez");
466
+ injectString("sk-SK", "Dec", "dec.");
467
+ injectString("sv", "Dec", "Dec");
468
+ injectString("th", "Dec", "\u0E18.\u0E04.");
469
+ injectString("tr", "Dec", "Ara");
470
+ injectString("zh-Hans", "Dec", "\u5341\u4E8C\u6708");
471
+ injectString("zh-TW", "Dec", "\u5341\u4E8C\u6708");
472
+ injectString("cs", "Previous month", "P\u0159edchoz\xED m\u011Bs\xEDc");
473
+ injectString("da-DK", "Previous month", "Forrige m\xE5ned");
474
+ injectString("de", "Previous month", "Vorheriger Monat");
475
+ injectString("en", "Previous month", "Previous month");
476
+ injectString("es", "Previous month", "Mes anterior");
477
+ injectString("fi-FI", "Previous month", "Edellinen kuukausi");
478
+ injectString("fr", "Previous month", "Mois pr\xE9c\xE9dent");
479
+ injectString("fr-FR", "Previous month", "Mois pr\xE9c\xE9dent");
480
+ injectString("hu-HU", "Previous month", "El\u0151z\u0151 h\xF3nap");
481
+ injectString("id", "Previous month", "Bulan sebelumnya");
482
+ injectString("it", "Previous month", "Mese precedente");
483
+ injectString("ja", "Previous month", "\u5148\u6708");
484
+ injectString("ko-KR", "Previous month", "\uC774\uC804 \uB2EC");
485
+ injectString("ms", "Previous month", "Bulan sebelumnya");
486
+ injectString("nb-NO", "Previous month", "Forrige m\xE5ned");
487
+ injectString("nl", "Previous month", "Vorige maand");
488
+ injectString("pl", "Previous month", "Poprzedni miesi\u0105c");
489
+ injectString("pt-BR", "Previous month", "M\xEAs anterior");
490
+ injectString("sk-SK", "Previous month", "Predch\xE1dzaj\xFAci mesiac");
491
+ injectString("sv", "Previous month", "F\xF6reg\xE5ende m\xE5nad");
492
+ injectString("th", "Previous month", "\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32");
493
+ injectString("tr", "Previous month", "\xD6nceki ay");
494
+ injectString("zh-Hans", "Previous month", "\u524D\u4E00\u6708");
495
+ injectString("zh-TW", "Previous month", "\u4E0A\u500B\u6708");
496
+ injectString("cs", "Select year", "Vybrat rok");
497
+ injectString("da-DK", "Select year", "V\xE6lg \xE5r");
498
+ injectString("de", "Select year", "Jahr ausw\xE4hlen");
499
+ injectString("en", "Select year", "Select year");
500
+ injectString("es", "Select year", "Seleccionar a\xF1o");
501
+ injectString("fi-FI", "Select year", "Valitse vuosi");
502
+ injectString("fr", "Select year", "S\xE9lectionner l\u2019ann\xE9e");
503
+ injectString("fr-FR", "Select year", "S\xE9lectionner l\u2019ann\xE9e");
504
+ injectString("hu-HU", "Select year", "V\xE1laszd ki az \xE9vet.");
505
+ injectString("id", "Select year", "Pilih tahun");
506
+ injectString("it", "Select year", "Seleziona anno");
507
+ injectString("ja", "Select year", "\u5E74\u3092\u9078\u629E");
508
+ injectString("ko-KR", "Select year", "\uC5F0\uB3C4 \uC120\uD0DD");
509
+ injectString("ms", "Select year", "Pilih tahun");
510
+ injectString("nb-NO", "Select year", "Velg \xE5r");
511
+ injectString("nl", "Select year", "Jaar selecteren");
512
+ injectString("pl", "Select year", "Wybierz rok");
513
+ injectString("pt-BR", "Select year", "Selecionar ano");
514
+ injectString("sk-SK", "Select year", "Vyber rok");
515
+ injectString("sv", "Select year", "V\xE4lj \xE5r");
516
+ injectString("th", "Select year", "\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E1B\u0E35");
517
+ injectString("tr", "Select year", "Y\u0131l se\xE7");
518
+ injectString("zh-Hans", "Select year", "\u9009\u62E9\u5E74");
519
+ injectString("zh-TW", "Select year", "\u9078\u53D6\u5E74\u4EFD");
520
+ injectString("cs", "Today", "Dnes");
521
+ injectString("da-DK", "Today", "I dag");
522
+ injectString("de", "Today", "Heute");
523
+ injectString("en", "Today", "Today");
524
+ injectString("es", "Today", "Hoy");
525
+ injectString("fi-FI", "Today", "T\xE4n\xE4\xE4n");
526
+ injectString("fr", "Today", "Aujourd\u2019hui");
527
+ injectString("fr-FR", "Today", "Aujourd\u2019hui");
528
+ injectString("hu-HU", "Today", "Ma");
529
+ injectString("id", "Today", "Hari ini");
530
+ injectString("it", "Today", "Oggi");
531
+ injectString("ja", "Today", "\u4ECA\u65E5");
532
+ injectString("ko-KR", "Today", "\uC624\uB298");
533
+ injectString("ms", "Today", "Hari Ini");
534
+ injectString("nb-NO", "Today", "I dag");
535
+ injectString("nl", "Today", "Vandaag");
536
+ injectString("pl", "Today", "Dzi\u015B");
537
+ injectString("pt-BR", "Today", "Hoje");
538
+ injectString("sk-SK", "Today", "Dnes");
539
+ injectString("sv", "Today", "Idag");
540
+ injectString("th", "Today", "\u0E27\u0E31\u0E19\u0E19\u0E35\u0E49");
541
+ injectString("tr", "Today", "Bug\xFCn");
542
+ injectString("zh-Hans", "Today", "\u4ECA\u65E5");
543
+ injectString("zh-TW", "Today", "\u4ECA\u5929");
544
+ injectString("cs", "Next month", "P\u0159\xED\u0161t\xED m\u011Bs\xEDc");
545
+ injectString("da-DK", "Next month", "N\xE6ste m\xE5ned");
546
+ injectString("de", "Next month", "N\xE4chsten Monat");
547
+ injectString("en", "Next month", "Next month");
548
+ injectString("es", "Next month", "Pr\xF3ximo mes");
549
+ injectString("fi-FI", "Next month", "Seuraava kuukausi");
550
+ injectString("fr", "Next month", "Mois prochain");
551
+ injectString("fr-FR", "Next month", "Le mois prochain");
552
+ injectString("hu-HU", "Next month", "K\xF6vetkez\u0151 h\xF3nap");
553
+ injectString("id", "Next month", "Bulan Berikutnya");
554
+ injectString("it", "Next month", "Prossimo mese");
555
+ injectString("ja", "Next month", "\u6765\u6708");
556
+ injectString("ko-KR", "Next month", "\uB2E4\uC74C \uB2EC");
557
+ injectString("ms", "Next month", "Bulan seterusnya");
558
+ injectString("nb-NO", "Next month", "Neste m\xE5ned");
559
+ injectString("nl", "Next month", "Volgende maand");
560
+ injectString("pl", "Next month", "Nast\u0119pny miesi\u0105c");
561
+ injectString("pt-BR", "Next month", "Pr\xF3ximo m\xEAs");
562
+ injectString("sk-SK", "Next month", "\u010Eal\u0161\xED mesiac");
563
+ injectString("sv", "Next month", "N\xE4sta m\xE5nad");
564
+ injectString("th", "Next month", "\u0E40\u0E14\u0E37\u0E2D\u0E19\u0E16\u0E31\u0E14\u0E44\u0E1B");
565
+ injectString("tr", "Next month", "Gelecek ay");
566
+ injectString("zh-Hans", "Next month", "\u4E0B\u6708");
567
+ injectString("zh-TW", "Next month", "\u4E0B\u500B\u6708");
15
568
  const DEFAULT_START_DAY_OF_WEEK = 0;
16
569
  const DEFAULT_YEAR_RANGE = 20;
17
570
  export const monthLabelsArray = ["Jan", "Feb", "Mar", "Apr", "Ma", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
18
- export const Calendar = ({ id, value, onChange, disableFutureDates = false, disablePastDates = false, disableDatesAfter, disableDatesBefore, dateRangeMode = false, startDayOfWeek, yearRange, isMobileView, getCurrentActiveField, onTodayButtonClick }) => {
19
- const { translate } = useLanguage();
20
- const fromDate = useMemo(() => value.from ? toDayStart(value.from) : undefined, [value.from]);
21
- const toDate = useMemo(() => value.to ? toDayStart(value.to) : undefined, [value.to]);
22
- const driveClassName = useDriveClassName("zen-calendar");
23
- const parentRef = useRef(null);
24
- const focusRef = useRef(null);
25
- const parallelSelectionTriggerRef = useRef(null);
26
- const [viewDate, setViewDate] = useState(fromDate || new Date().toISOString());
27
- const [hoverDate, setHoverDate] = useState(fromDate);
28
- const [focusDate, setFocusDate] = useState(fromDate || new Date().toISOString());
29
- const changeView = useCallback((date) => {
30
- var _a, _b;
31
- focusRef.current = document.activeElement;
32
- const dateLike = new Date(date);
33
- dateLike.setDate(15);
34
- if ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.classList.contains("zen-parallel-selection__select")) {
35
- (_b = parallelSelectionTriggerRef.current) === null || _b === void 0 ? void 0 : _b.focus();
36
- }
37
- setViewDate(dateLike.toISOString());
38
- }, [setViewDate]);
39
- const handleFocusDateChange = useCallback((focusing = false) => (date) => {
40
- var _a;
41
- if (date && focusing) {
571
+ export const Calendar = ({
572
+ id,
573
+ value,
574
+ onChange,
575
+ disableFutureDates = false,
576
+ disablePastDates = false,
577
+ disableDatesAfter,
578
+ disableDatesBefore,
579
+ dateRangeMode = false,
580
+ startDayOfWeek,
581
+ yearRange,
582
+ isMobileView,
583
+ getCurrentActiveField,
584
+ onTodayButtonClick
585
+ }) => {
586
+ const {
587
+ translate
588
+ } = useLanguage();
589
+ const fromDate = useMemo(() => value.from ? toDayStart(value.from) : undefined, [value.from]);
590
+ const toDate = useMemo(() => value.to ? toDayStart(value.to) : undefined, [value.to]);
591
+ const driveClassName = useDriveClassName("zen-calendar");
592
+ const parentRef = useRef(null);
593
+ const focusRef = useRef(null);
594
+ const parallelSelectionTriggerRef = useRef(null);
595
+ const [viewDate, setViewDate] = useState(fromDate || new Date().toISOString());
596
+ const [hoverDate, setHoverDate] = useState(fromDate);
597
+ const [focusDate, setFocusDate] = useState(fromDate || new Date().toISOString());
598
+ const changeView = useCallback(date => {
599
+ var _a, _b;
600
+ focusRef.current = document.activeElement;
601
+ const dateLike = new Date(date);
602
+ dateLike.setDate(15);
603
+ if ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.classList.contains("zen-parallel-selection__select")) {
604
+ (_b = parallelSelectionTriggerRef.current) === null || _b === void 0 ? void 0 : _b.focus();
605
+ }
606
+ setViewDate(dateLike.toISOString());
607
+ }, [setViewDate]);
608
+ const handleFocusDateChange = useCallback((focusing = false) => date => {
609
+ var _a;
610
+ if (date && focusing) {
611
+ const dateLike = new Date(date);
612
+ const button = (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-id="${id}-day-${dateLike.getDate()}-${dateLike.getMonth()}-${dateLike.getFullYear()}"]`);
613
+ button === null || button === void 0 ? void 0 : button.focus();
614
+ }
615
+ changeView(date);
616
+ setFocusDate(date);
617
+ }, [changeView, setFocusDate, id]);
618
+ const dayLabels = useMemo(() => ({
619
+ 0: translate("ShortSunday"),
620
+ 1: translate("ShortMonday"),
621
+ 2: translate("ShortTuesday"),
622
+ 3: translate("ShortWednesday"),
623
+ 4: translate("ShortThursday"),
624
+ 5: translate("ShortFriday"),
625
+ 6: translate("ShortSaturday")
626
+ }), [translate]);
627
+ const getDayOfWeek = useCallback(date => {
628
+ const dayOfWeek = new Date(date).getDay();
629
+ return dayLabels[dayOfWeek];
630
+ }, [dayLabels]);
631
+ const monthLabels = useMemo(() => ({
632
+ 0: translate("Jan"),
633
+ 1: translate("Feb"),
634
+ 2: translate("Mar"),
635
+ 3: translate("Apr"),
636
+ 4: translate("May"),
637
+ 5: translate("Jun"),
638
+ 6: translate("Jul"),
639
+ 7: translate("Aug"),
640
+ 8: translate("Sep"),
641
+ 9: translate("Oct"),
642
+ 10: translate("Nov"),
643
+ 11: translate("Dec")
644
+ }), [translate]);
645
+ const getMonthYear = useCallback(date => {
646
+ const month = new Date(date).getMonth();
647
+ const year = new Date(date).getFullYear();
648
+ return `${monthLabels[month]} ${year}`;
649
+ }, [monthLabels]);
650
+ const dates = useMemo(() => getCalendarMonthDates(viewDate, startDayOfWeek || DEFAULT_START_DAY_OF_WEEK), [viewDate, startDayOfWeek]);
651
+ const monthStart = useMemo(() => getStartOfMonth(viewDate), [viewDate]);
652
+ const monthEnd = useMemo(() => getEndOfMonth(viewDate), [viewDate]);
653
+ const now = new Date().toISOString();
654
+ const years = getSelectableYears(viewDate, yearRange || DEFAULT_YEAR_RANGE, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
655
+ const selectionHandler = useCallback(
656
+ // eslint-disable-next-line complexity
657
+ (selectedDate, isOtherMonth) => {
658
+ setHoverDate(undefined);
659
+ if (isOtherMonth) {
660
+ handleFocusDateChange()(selectedDate);
661
+ }
662
+ // single date mode
663
+ if (!dateRangeMode || !getCurrentActiveField) {
664
+ if (fromDate && fromDate === selectedDate) {
665
+ onChange({
666
+ from: undefined,
667
+ to: undefined
668
+ });
669
+ } else {
670
+ onChange({
671
+ from: selectedDate,
672
+ to: undefined
673
+ });
674
+ }
675
+ return;
676
+ }
677
+ const currentActiveField = getCurrentActiveField();
678
+ // no selection yet
679
+ if (!fromDate && !toDate) {
680
+ onChange({
681
+ from: currentActiveField === "start" ? selectedDate : undefined,
682
+ to: currentActiveField === "end" ? selectedDate : undefined
683
+ }, currentActiveField);
684
+ return;
685
+ }
686
+ if (currentActiveField === "start" && toDate && selectedDate > toDate) {
687
+ onChange({
688
+ from: selectedDate,
689
+ to: undefined
690
+ }, "start");
691
+ return;
692
+ }
693
+ if (currentActiveField === "end" && fromDate && selectedDate < fromDate) {
694
+ onChange({
695
+ from: undefined,
696
+ to: selectedDate
697
+ }, "end");
698
+ return;
699
+ }
700
+ if (fromDate && selectedDate === fromDate && currentActiveField === "end") {
701
+ onChange({
702
+ from: selectedDate,
703
+ to: selectedDate
704
+ }, "end");
705
+ return;
706
+ }
707
+ if (toDate && selectedDate === toDate && currentActiveField === "start") {
708
+ onChange({
709
+ from: selectedDate,
710
+ to: selectedDate
711
+ }, "start");
712
+ return;
713
+ }
714
+ const isWrongPeriodFn = (start, end) => isDifferentPeriod(start, end, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
715
+ const newRangeOptions = getCalendarRange(selectedDate, currentActiveField, isWrongPeriodFn, fromDate, toDate);
716
+ onChange(newRangeOptions, currentActiveField);
717
+ return;
718
+ }, [dateRangeMode, getCurrentActiveField, fromDate, toDate, onChange, handleFocusDateChange, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter]);
719
+ const handleDateKeyDown = useCallback((e, isDisabled, date, isOtherMonth) => {
720
+ if (e.code === "Enter" || e.code === "Space") {
721
+ e.preventDefault();
722
+ !isDisabled && selectionHandler(date, isOtherMonth);
723
+ return;
724
+ }
725
+ if (e.code === "ArrowLeft") {
726
+ setFocusTo(e, addDays(new Date(date), -1).toISOString(), handleFocusDateChange(true));
727
+ return;
728
+ }
729
+ if (e.code === "ArrowRight") {
730
+ setFocusTo(e, addDays(new Date(date), 1).toISOString(), handleFocusDateChange(true));
731
+ return;
732
+ }
733
+ if (e.code === "ArrowUp") {
734
+ setFocusTo(e, addDays(new Date(date), -7).toISOString(), handleFocusDateChange(true));
735
+ return;
736
+ }
737
+ if (e.code === "ArrowDown") {
738
+ setFocusTo(e, addDays(new Date(date), 7).toISOString(), handleFocusDateChange(true));
739
+ return;
740
+ }
741
+ if (e.code === "Home") {
742
+ setFocusTo(e, getStartOfWeek(date), handleFocusDateChange(true));
743
+ return;
744
+ }
745
+ if (e.code === "End") {
746
+ setFocusTo(e, getEndOfWeek(date), handleFocusDateChange(true));
747
+ return;
748
+ }
749
+ if (e.code === "PageUp" && e.shiftKey) {
750
+ setFocusTo(e, getSameDateOrTheLastForMonth(date, -12), handleFocusDateChange(true));
751
+ return;
752
+ }
753
+ if (e.code === "PageDown" && e.shiftKey) {
754
+ setFocusTo(e, getSameDateOrTheLastForMonth(date, 12), handleFocusDateChange(true));
755
+ return;
756
+ }
757
+ if (e.code === "PageUp") {
758
+ setFocusTo(e, getSameDateOrTheLastForMonth(date, -1), handleFocusDateChange(true));
759
+ return;
760
+ }
761
+ if (e.code === "PageDown") {
762
+ setFocusTo(e, getSameDateOrTheLastForMonth(date, 1), handleFocusDateChange(true));
763
+ return;
764
+ }
765
+ }, [selectionHandler, handleFocusDateChange]);
766
+ const isDisabledDay = useCallback(date => {
767
+ const dateTime = new Date(date).getTime();
768
+ const nowDateTime = new Date(now).getTime();
769
+ return disableFutureDates && dateTime > nowDateTime || disablePastDates && dateTime < nowDateTime || isDisableDate(dateTime, disableDatesBefore, disableDatesAfter);
770
+ }, [disableFutureDates, disablePastDates, now, disableDatesAfter, disableDatesBefore]);
771
+ const onPointerDown = useCallback((date, isOtherMonth) => {
772
+ selectionHandler(date, isOtherMonth);
773
+ setFocusDate(undefined);
774
+ }, [selectionHandler]);
775
+ useEffect(() => {
776
+ value.to && handleFocusDateChange()(value.to);
777
+ }, [value.to, handleFocusDateChange]);
778
+ useEffect(() => {
779
+ value.from && handleFocusDateChange()(value.from);
780
+ }, [value.from, handleFocusDateChange]);
781
+ const getBeforeDecorator = useCallback((date, isFirstDayOfMonth, isFirstDayOfWeek) => {
782
+ if (!dateRangeMode) {
783
+ return null;
784
+ }
785
+ if (isFirstDayOfMonth && fromDate && fromDate < date && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
786
+ return _jsx("div", {
787
+ className: "zen-calendar__month-start"
788
+ });
789
+ }
790
+ if (isFirstDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
791
+ return _jsx("div", {
792
+ className: "zen-calendar__week-start"
793
+ });
794
+ }
795
+ if (isLeftBorderVisible(date, hoverDate || focusDate, fromDate, toDate)) {
796
+ return _jsx("div", {
797
+ className: "zen-calendar__left-border"
798
+ });
799
+ }
800
+ return null;
801
+ }, [dateRangeMode, hoverDate, focusDate, fromDate, toDate]);
802
+ const getAfterDecorator = useCallback((date, isLastDayOfMonth, isLastDayOfWeek) => {
803
+ if (!dateRangeMode) {
804
+ return null;
805
+ }
806
+ if (isLastDayOfMonth && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
807
+ return _jsx("div", {
808
+ className: "zen-calendar__month-end"
809
+ });
810
+ }
811
+ if (isLastDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
812
+ return _jsx("div", {
813
+ className: "zen-calendar__week-end"
814
+ });
815
+ }
816
+ if (isRightBorderVisible(date, hoverDate || focusDate, fromDate, toDate)) {
817
+ return _jsx("div", {
818
+ className: "zen-calendar__right-border"
819
+ });
820
+ }
821
+ return null;
822
+ }, [dateRangeMode, hoverDate, focusDate, fromDate, toDate]);
823
+ const handleTodayButtonClick = useCallback(e => {
824
+ if (!onTodayButtonClick) {
825
+ return;
826
+ }
827
+ setViewDate(new Date().toISOString());
828
+ onTodayButtonClick(e);
829
+ }, [onTodayButtonClick]);
830
+ const memoizedVisibleFocus = useMemo(() => focusDate ? dates.some(arr => arr.some(el => el === focusDate)) : true, [dates, focusDate]);
831
+ const currentActiveField = getCurrentActiveField ? getCurrentActiveField() : undefined;
832
+ return _jsxs("div", {
833
+ ref: parentRef,
834
+ onBlur: () => setFocusDate(fromDate || viewDate),
835
+ className: classNames(["zen-calendar", driveClassName || ""]),
836
+ children: [_jsxs("div", {
837
+ className: "zen-calendar__header",
838
+ children: [isMobileView ? null : _jsx(TextIconButton, {
839
+ className: "zen-calendar__btn",
840
+ type: "tertiary-black",
841
+ icon: IconChevronLeftSmall,
842
+ title: translate("Previous month"),
843
+ onClick: () => changeView(addMonth(viewDate, -1)),
844
+ iconPosition: ButtonIconPosition.Start
845
+ }), _jsxs("div", {
846
+ className: classNames(["zen-calendar__year", onTodayButtonClick ? "zen-calendar__year--limited" : ""]),
847
+ children: [_jsx("div", {
848
+ className: classNames(["zen-calendar__year-name", onTodayButtonClick ? "zen-calendar__year-name--left" : "", "zen-ellipsis"]),
849
+ "aria-live": "polite",
850
+ children: getMonthYear(viewDate)
851
+ }), _jsx(ParallelSelectionTrigger, {
852
+ className: "zen-calendar__year-trigger zen-calendar__btn",
853
+ title: translate("Select year"),
854
+ ref: parallelSelectionTriggerRef
855
+ }), _jsx(ParallelSelection, {
856
+ selected: new Date(viewDate).getFullYear().toString(),
857
+ items: years,
858
+ triggerRef: parallelSelectionTriggerRef,
859
+ title: translate("Select year"),
860
+ onSelect: year => changeView(setYear(viewDate, year)),
861
+ isMobileView: isMobileView,
862
+ alignment: onTodayButtonClick ? "bottom" : "bottom-right"
863
+ })]
864
+ }), onTodayButtonClick ? _jsx(Button, {
865
+ type: ButtonType.Tertiary,
866
+ className: "zen-calendar__today-button",
867
+ disabled: false,
868
+ onClick: handleTodayButtonClick,
869
+ children: translate("Today")
870
+ }) : null, isMobileView ? _jsxs("div", {
871
+ className: "zen-calendar__months",
872
+ children: [_jsx(TextIconButton, {
873
+ className: "zen-calendar__btn",
874
+ type: "tertiary-black",
875
+ icon: IconChevronLeftSmall,
876
+ title: translate("Previous month"),
877
+ onClick: () => changeView(addMonth(viewDate, -1)),
878
+ iconPosition: ButtonIconPosition.Start
879
+ }), _jsx(TextIconButton, {
880
+ className: "zen-calendar__btn",
881
+ type: "tertiary-black",
882
+ icon: IconChevronRightSmall,
883
+ title: translate("Next month"),
884
+ onClick: () => changeView(addMonth(viewDate, 1)),
885
+ iconPosition: ButtonIconPosition.Start
886
+ })]
887
+ }) : null, isMobileView ? null : _jsx(TextIconButton, {
888
+ className: "zen-calendar__btn",
889
+ type: "tertiary-black",
890
+ icon: IconChevronRightSmall,
891
+ title: translate("Next month"),
892
+ onClick: () => changeView(addMonth(viewDate, 1)),
893
+ iconPosition: ButtonIconPosition.Start
894
+ })]
895
+ }), _jsxs("table", {
896
+ className: "zen-calendar__table",
897
+ children: [_jsx("thead", {
898
+ children: _jsx("tr", {
899
+ className: "zen-calendar__columns",
900
+ children: dates[0].map(date => _jsx("th", {
901
+ className: "zen-calendar__column",
902
+ children: getDayOfWeek(date)
903
+ }, `cal-h-${date}`))
904
+ })
905
+ }), _jsx("tbody", {
906
+ className: classNames(["zen-calendar__body", isMobileView ? "zen-calendar__body--mobile-view" : ""]),
907
+ children: dates.map((week, weekIndex) => _jsx("tr", {
908
+ className: "zen-calendar__row",
909
+ children: week.map((date, index) => {
910
+ const isOtherMonth = date < monthStart || date > monthEnd;
911
+ const isDisabled = isDisabledDay(date);
42
912
  const dateLike = new Date(date);
43
- const button = (_a = parentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-id="${id}-day-${dateLike.getDate()}-${dateLike.getMonth()}-${dateLike.getFullYear()}"]`);
44
- button === null || button === void 0 ? void 0 : button.focus();
45
- }
46
- changeView(date);
47
- setFocusDate(date);
48
- }, [changeView, setFocusDate, id]);
49
- const dayLabels = useMemo(() => ({
50
- 0: translate("ShortSunday"),
51
- 1: translate("ShortMonday"),
52
- 2: translate("ShortTuesday"),
53
- 3: translate("ShortWednesday"),
54
- 4: translate("ShortThursday"),
55
- 5: translate("ShortFriday"),
56
- 6: translate("ShortSaturday")
57
- }), [translate]);
58
- const getDayOfWeek = useCallback((date) => {
59
- const dayOfWeek = new Date(date).getDay();
60
- return dayLabels[dayOfWeek];
61
- }, [dayLabels]);
62
- const monthLabels = useMemo(() => ({
63
- 0: translate(monthLabelsArray[0]),
64
- 1: translate(monthLabelsArray[1]),
65
- 2: translate(monthLabelsArray[2]),
66
- 3: translate(monthLabelsArray[3]),
67
- 4: translate(monthLabelsArray[4]),
68
- 5: translate(monthLabelsArray[5]),
69
- 6: translate(monthLabelsArray[6]),
70
- 7: translate(monthLabelsArray[7]),
71
- 8: translate(monthLabelsArray[8]),
72
- 9: translate(monthLabelsArray[9]),
73
- 10: translate(monthLabelsArray[10]),
74
- 11: translate(monthLabelsArray[11])
75
- }), [translate]);
76
- const getMonthYear = useCallback((date) => {
77
- const month = new Date(date).getMonth();
78
- const year = new Date(date).getFullYear();
79
- return `${monthLabels[month]} ${year}`;
80
- }, [monthLabels]);
81
- const dates = useMemo(() => getCalendarMonthDates(viewDate, startDayOfWeek || DEFAULT_START_DAY_OF_WEEK), [viewDate, startDayOfWeek]);
82
- const monthStart = useMemo(() => getStartOfMonth(viewDate), [viewDate]);
83
- const monthEnd = useMemo(() => getEndOfMonth(viewDate), [viewDate]);
84
- const now = new Date().toISOString();
85
- const years = getSelectableYears(viewDate, yearRange || DEFAULT_YEAR_RANGE, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
86
- const selectionHandler = useCallback(
87
- // eslint-disable-next-line complexity
88
- (selectedDate, isOtherMonth) => {
89
- setHoverDate(undefined);
90
- if (isOtherMonth) {
91
- handleFocusDateChange()(selectedDate);
92
- }
93
- // single date mode
94
- if (!dateRangeMode || !getCurrentActiveField) {
95
- if (fromDate && fromDate === selectedDate) {
96
- onChange({ from: undefined, to: undefined });
97
- }
98
- else {
99
- onChange({ from: selectedDate, to: undefined });
100
- }
101
- return;
102
- }
103
- const currentActiveField = getCurrentActiveField();
104
- // no selection yet
105
- if (!fromDate && !toDate) {
106
- onChange({ from: currentActiveField === "start" ? selectedDate : undefined, to: currentActiveField === "end" ? selectedDate : undefined }, currentActiveField);
107
- return;
108
- }
109
- if (currentActiveField === "start" && toDate && selectedDate > toDate) {
110
- onChange({ from: selectedDate, to: undefined }, "start");
111
- return;
112
- }
113
- if (currentActiveField === "end" && fromDate && selectedDate < fromDate) {
114
- onChange({ from: undefined, to: selectedDate }, "end");
115
- return;
116
- }
117
- if (fromDate && selectedDate === fromDate && currentActiveField === "end") {
118
- onChange({ from: selectedDate, to: selectedDate }, "end");
119
- return;
120
- }
121
- if (toDate && selectedDate === toDate && currentActiveField === "start") {
122
- onChange({ from: selectedDate, to: selectedDate }, "start");
123
- return;
124
- }
125
- const isWrongPeriodFn = (start, end) => isDifferentPeriod(start, end, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
126
- const newRangeOptions = getCalendarRange(selectedDate, currentActiveField, isWrongPeriodFn, fromDate, toDate);
127
- onChange(newRangeOptions, currentActiveField);
128
- return;
129
- }, [dateRangeMode, getCurrentActiveField, fromDate, toDate, onChange, handleFocusDateChange,
130
- disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter]);
131
- const handleDateKeyDown = useCallback((e, isDisabled, date, isOtherMonth) => {
132
- if (e.code === "Enter" || e.code === "Space") {
133
- e.preventDefault();
134
- !isDisabled && selectionHandler(date, isOtherMonth);
135
- return;
136
- }
137
- if (e.code === "ArrowLeft") {
138
- setFocusTo(e, addDays(new Date(date), -1).toISOString(), handleFocusDateChange(true));
139
- return;
140
- }
141
- if (e.code === "ArrowRight") {
142
- setFocusTo(e, addDays(new Date(date), 1).toISOString(), handleFocusDateChange(true));
143
- return;
144
- }
145
- if (e.code === "ArrowUp") {
146
- setFocusTo(e, addDays(new Date(date), -7).toISOString(), handleFocusDateChange(true));
147
- return;
148
- }
149
- if (e.code === "ArrowDown") {
150
- setFocusTo(e, addDays(new Date(date), 7).toISOString(), handleFocusDateChange(true));
151
- return;
152
- }
153
- if (e.code === "Home") {
154
- setFocusTo(e, getStartOfWeek(date), handleFocusDateChange(true));
155
- return;
156
- }
157
- if (e.code === "End") {
158
- setFocusTo(e, getEndOfWeek(date), handleFocusDateChange(true));
159
- return;
160
- }
161
- if (e.code === "PageUp" && e.shiftKey) {
162
- setFocusTo(e, getSameDateOrTheLastForMonth(date, -12), handleFocusDateChange(true));
163
- return;
164
- }
165
- if (e.code === "PageDown" && e.shiftKey) {
166
- setFocusTo(e, getSameDateOrTheLastForMonth(date, 12), handleFocusDateChange(true));
167
- return;
168
- }
169
- if (e.code === "PageUp") {
170
- setFocusTo(e, getSameDateOrTheLastForMonth(date, -1), handleFocusDateChange(true));
171
- return;
172
- }
173
- if (e.code === "PageDown") {
174
- setFocusTo(e, getSameDateOrTheLastForMonth(date, 1), handleFocusDateChange(true));
175
- return;
176
- }
177
- }, [selectionHandler, handleFocusDateChange]);
178
- const isDisabledDay = useCallback((date) => {
179
- const dateTime = new Date(date).getTime();
180
- const nowDateTime = new Date(now).getTime();
181
- return (disableFutureDates && dateTime > nowDateTime) || (disablePastDates && dateTime < nowDateTime)
182
- || isDisableDate(dateTime, disableDatesBefore, disableDatesAfter);
183
- }, [disableFutureDates, disablePastDates, now, disableDatesAfter, disableDatesBefore]);
184
- const onPointerDown = useCallback((date, isOtherMonth) => {
185
- selectionHandler(date, isOtherMonth);
186
- setFocusDate(undefined);
187
- }, [selectionHandler]);
188
- useEffect(() => {
189
- value.to && handleFocusDateChange()(value.to);
190
- }, [value.to, handleFocusDateChange]);
191
- useEffect(() => {
192
- value.from && handleFocusDateChange()(value.from);
193
- }, [value.from, handleFocusDateChange]);
194
- const getBeforeDecorator = useCallback((date, isFirstDayOfMonth, isFirstDayOfWeek) => {
195
- if (!dateRangeMode) {
196
- return null;
197
- }
198
- if (isFirstDayOfMonth && (fromDate && fromDate < date) && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
199
- return _jsx("div", { className: "zen-calendar__month-start" });
200
- }
201
- if (isFirstDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
202
- return _jsx("div", { className: "zen-calendar__week-start" });
203
- }
204
- if (isLeftBorderVisible(date, hoverDate || focusDate, fromDate, toDate)) {
205
- return _jsx("div", { className: "zen-calendar__left-border" });
206
- }
207
- return null;
208
- }, [dateRangeMode, hoverDate, focusDate, fromDate, toDate]);
209
- const getAfterDecorator = useCallback((date, isLastDayOfMonth, isLastDayOfWeek) => {
210
- if (!dateRangeMode) {
211
- return null;
212
- }
213
- if (isLastDayOfMonth && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
214
- return _jsx("div", { className: "zen-calendar__month-end" });
215
- }
216
- if (isLastDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate)) {
217
- return _jsx("div", { className: "zen-calendar__week-end" });
218
- }
219
- if (isRightBorderVisible(date, hoverDate || focusDate, fromDate, toDate)) {
220
- return _jsx("div", { className: "zen-calendar__right-border" });
221
- }
222
- return null;
223
- }, [dateRangeMode, hoverDate, focusDate, fromDate, toDate]);
224
- const handleTodayButtonClick = useCallback((e) => {
225
- if (!onTodayButtonClick) {
226
- return;
227
- }
228
- setViewDate(new Date().toISOString());
229
- onTodayButtonClick(e);
230
- }, [onTodayButtonClick]);
231
- const memoizedVisibleFocus = useMemo(() => focusDate ? dates.some(arr => arr.some(el => el === focusDate)) : true, [dates, focusDate]);
232
- const currentActiveField = getCurrentActiveField ? getCurrentActiveField() : undefined;
233
- return (_jsxs("div", { ref: parentRef, onBlur: () => setFocusDate(fromDate || viewDate), className: classNames(["zen-calendar", driveClassName || ""]), children: [_jsxs("div", { className: "zen-calendar__header", children: [isMobileView ? null : _jsx(TextIconButton, { className: "zen-calendar__btn", type: "tertiary-black", icon: IconChevronLeftSmall, title: translate("Previous month"), onClick: () => changeView(addMonth(viewDate, -1)), iconPosition: ButtonIconPosition.Start }), _jsxs("div", { className: classNames(["zen-calendar__year", onTodayButtonClick ? "zen-calendar__year--limited" : ""]), children: [_jsx("div", { className: classNames(["zen-calendar__year-name", onTodayButtonClick ? "zen-calendar__year-name--left" : "", "zen-ellipsis"]), "aria-live": "polite", children: getMonthYear(viewDate) }), _jsx(ParallelSelectionTrigger, { className: "zen-calendar__year-trigger zen-calendar__btn", title: translate("Select year"), ref: parallelSelectionTriggerRef }), _jsx(ParallelSelection, { selected: new Date(viewDate).getFullYear().toString(), items: years, triggerRef: parallelSelectionTriggerRef, title: translate("Select year"), onSelect: year => changeView(setYear(viewDate, year)), isMobileView: isMobileView, alignment: onTodayButtonClick ? "bottom" : "bottom-right" })] }), onTodayButtonClick ? _jsx(Button, { type: ButtonType.Tertiary, className: "zen-calendar__today-button", disabled: false, onClick: handleTodayButtonClick, children: translate("Today") }) : null, isMobileView ? _jsxs("div", { className: "zen-calendar__months", children: [_jsx(TextIconButton, { className: "zen-calendar__btn", type: "tertiary-black", icon: IconChevronLeftSmall, title: translate("Previous month"), onClick: () => changeView(addMonth(viewDate, -1)), iconPosition: ButtonIconPosition.Start }), _jsx(TextIconButton, { className: "zen-calendar__btn", type: "tertiary-black", icon: IconChevronRightSmall, title: translate("Next month"), onClick: () => changeView(addMonth(viewDate, 1)), iconPosition: ButtonIconPosition.Start })] }) : null, isMobileView ? null : _jsx(TextIconButton, { className: "zen-calendar__btn", type: "tertiary-black", icon: IconChevronRightSmall, title: translate("Next month"), onClick: () => changeView(addMonth(viewDate, 1)), iconPosition: ButtonIconPosition.Start })] }), _jsxs("table", { className: "zen-calendar__table", children: [_jsx("thead", { children: _jsx("tr", { className: "zen-calendar__columns", children: dates[0].map(date => _jsx("th", { className: "zen-calendar__column", children: getDayOfWeek(date) }, `cal-h-${date}`)) }) }), _jsx("tbody", { className: classNames(["zen-calendar__body", isMobileView ? "zen-calendar__body--mobile-view" : ""]), children: dates.map((week, weekIndex) => _jsx("tr", { className: "zen-calendar__row", children: week.map((date, index) => {
234
- const isOtherMonth = date < monthStart || date > monthEnd;
235
- const isDisabled = isDisabledDay(date);
236
- const dateLike = new Date(date);
237
- const isActive = date === fromDate || date === toDate;
238
- const isReadyToChange = date === fromDate && currentActiveField === "start" || date === toDate && currentActiveField === "end";
239
- const isFocusable = memoizedVisibleFocus ? date === (fromDate || viewDate) : date.split("T")[0] === viewDate.split("T")[0];
240
- const isFirstDayOfWeek = index === 0;
241
- const isLastDayOfWeek = index === 6;
242
- const isFirstDayOfMonth = weekIndex === 0 && index === 0;
243
- const isLastDayOfMonth = weekIndex === dates.length - 1 && index === 6;
244
- const isInRange = dateRangeMode && !isFirstDayOfWeek && !isLastDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate);
245
- return _jsx("td", { className: "zen-calendar__cell", children: _jsxs("button", { className: classNames([
246
- "zen-calendar__day-wrapper",
247
- isActive ? "zen-calendar__day-wrapper--active" : "",
248
- isReadyToChange ? "zen-calendar__day-wrapper--ready-to-change" : ""
249
- ]), onPointerDown: evt => {
250
- evt.preventDefault();
251
- !isDisabled && evt.button !== 2 && onPointerDown(date, isOtherMonth);
252
- }, onPointerEnter: () => { !isDisabled && setHoverDate(date); }, onPointerLeave: () => { setHoverDate(undefined); }, tabIndex: isFocusable ? 0 : -1, type: "button", "data-id": `${id}-day-${dateLike.getDate()}-${dateLike.getMonth()}-${dateLike.getFullYear()}`, "aria-label": getButtonLabel(translate, date, dateRangeMode, fromDate, toDate), onKeyDown: evt => handleDateKeyDown(evt, isDisabled, date, isOtherMonth), onFocus: () => {
253
- !isDisabled && !isOtherMonth && handleFocusDateChange(true)(date);
254
- }, disabled: isDisabled, children: [getBeforeDecorator(date, isFirstDayOfMonth, isFirstDayOfWeek), _jsx("div", { className: classNames([
255
- "zen-calendar__day",
256
- isInRange ? "zen-calendar__day--in-range" : "",
257
- isOtherMonth ? "zen-calendar__day--other-month" : "",
258
- isDisabled ? "zen-calendar__day--disabled" : ""
259
- ]), children: dateLike.getDate() }), getAfterDecorator(date, isLastDayOfMonth, isLastDayOfWeek)] }) }, date);
260
- }) }, `week_${week[0]}`)) })] })] }));
913
+ const isActive = date === fromDate || date === toDate;
914
+ const isReadyToChange = date === fromDate && currentActiveField === "start" || date === toDate && currentActiveField === "end";
915
+ const isFocusable = memoizedVisibleFocus ? date === (fromDate || viewDate) : date.split("T")[0] === viewDate.split("T")[0];
916
+ const isFirstDayOfWeek = index === 0;
917
+ const isLastDayOfWeek = index === 6;
918
+ const isFirstDayOfMonth = weekIndex === 0 && index === 0;
919
+ const isLastDayOfMonth = weekIndex === dates.length - 1 && index === 6;
920
+ const isInRange = dateRangeMode && !isFirstDayOfWeek && !isLastDayOfWeek && isDateInRange(date, hoverDate || focusDate, fromDate, toDate);
921
+ return _jsx("td", {
922
+ className: "zen-calendar__cell",
923
+ children: _jsxs("button", {
924
+ className: classNames(["zen-calendar__day-wrapper", isActive ? "zen-calendar__day-wrapper--active" : "", isReadyToChange ? "zen-calendar__day-wrapper--ready-to-change" : ""]),
925
+ onPointerDown: evt => {
926
+ evt.preventDefault();
927
+ !isDisabled && evt.button !== 2 && onPointerDown(date, isOtherMonth);
928
+ },
929
+ onPointerEnter: () => {
930
+ !isDisabled && setHoverDate(date);
931
+ },
932
+ onPointerLeave: () => {
933
+ setHoverDate(undefined);
934
+ },
935
+ tabIndex: isFocusable ? 0 : -1,
936
+ type: "button",
937
+ "data-id": `${id}-day-${dateLike.getDate()}-${dateLike.getMonth()}-${dateLike.getFullYear()}`,
938
+ "aria-label": getButtonLabel(translate, date, dateRangeMode, fromDate, toDate),
939
+ onKeyDown: evt => handleDateKeyDown(evt, isDisabled, date, isOtherMonth),
940
+ onFocus: () => {
941
+ !isDisabled && !isOtherMonth && handleFocusDateChange(true)(date);
942
+ },
943
+ disabled: isDisabled,
944
+ children: [getBeforeDecorator(date, isFirstDayOfMonth, isFirstDayOfWeek), _jsx("div", {
945
+ className: classNames(["zen-calendar__day", isInRange ? "zen-calendar__day--in-range" : "", isOtherMonth ? "zen-calendar__day--other-month" : "", isDisabled ? "zen-calendar__day--disabled" : ""]),
946
+ children: dateLike.getDate()
947
+ }), getAfterDecorator(date, isLastDayOfMonth, isLastDayOfWeek)]
948
+ })
949
+ }, date);
950
+ })
951
+ }, `week_${week[0]}`))
952
+ })]
953
+ })]
954
+ });
261
955
  };
262
- export const TRANSLATIONS = [
263
- "Select year",
264
- "Previous month",
265
- "Next month",
266
- "Change daterange start date, {date}",
267
- "Change daterange end date, {date}",
268
- "Choose daterange end date",
269
- "Choose daterange start date",
270
- "Change date, {date}",
271
- "Choose date",
272
- "{short-day-of-week-sunday}S",
273
- "{short-day-of-week-monday}M",
274
- "{short-day-of-week-tuesday}T",
275
- "{short-day-of-week-wednesday}W",
276
- "{short-day-of-week-thursday}T",
277
- "{short-day-of-week-friday}F",
278
- "{short-day-of-week-saturday}S",
279
- "January",
280
- "February",
281
- "March",
282
- "April",
283
- "May",
284
- "June",
285
- "July",
286
- "August",
287
- "September",
288
- "October",
289
- "November",
290
- "December"
291
- ];
956
+ export const TRANSLATIONS = ["Select year", "Previous month", "Next month", "Change start date, {date}", "Change end date, {date}", "Choose end date", "Choose start date", "Change date, {date}", "Choose date", "{short-day-of-week-sunday}S", "{short-day-of-week-monday}M", "{short-day-of-week-tuesday}T", "{short-day-of-week-wednesday}W", "{short-day-of-week-thursday}T", "{short-day-of-week-friday}F", "{short-day-of-week-saturday}S", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];