@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,7 +1,182 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ const {
4
+ injectString
5
+ } = require("../utils/localization/translationsDictionary");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
3
9
  exports.TRANSLATIONS = exports.DateRangeRaw = void 0;
4
10
  const jsx_runtime_1 = require("react/jsx-runtime");
11
+ injectString("cs", "Custom", "Vlastn\xED");
12
+ injectString("da-DK", "Custom", "Brugerdefineret");
13
+ injectString("de", "Custom", "Individuell");
14
+ injectString("en", "Custom", "Custom");
15
+ injectString("es", "Custom", "Personalizado");
16
+ injectString("fi-FI", "Custom", "Mukautettu");
17
+ injectString("fr", "Custom", "Personnalis\xE9e");
18
+ injectString("fr-FR", "Custom", "Personnalis\xE9");
19
+ injectString("hu-HU", "Custom", "Egy\xE9ni");
20
+ injectString("id", "Custom", "Kustom");
21
+ injectString("it", "Custom", "Personalizza");
22
+ injectString("ja", "Custom", "\u671F\u9593\u8A2D\u5B9A\u306E\u5909\u66F4");
23
+ injectString("ko-KR", "Custom", "\uC0AC\uC6A9\uC790 \uC9C0\uC815");
24
+ injectString("ms", "Custom", "Tersuai");
25
+ injectString("nb-NO", "Custom", "Egendefinert");
26
+ injectString("nl", "Custom", "Aangepast");
27
+ injectString("pl", "Custom", "Niestandardowy");
28
+ injectString("pt-BR", "Custom", "Personalizado");
29
+ injectString("sk-SK", "Custom", "Vlastn\xE9");
30
+ injectString("sv", "Custom", "Modifierad");
31
+ injectString("th", "Custom", "\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E2D\u0E07");
32
+ injectString("tr", "Custom", "\xD6zel");
33
+ injectString("zh-Hans", "Custom", "\u5B9A\u5236");
34
+ injectString("zh-TW", "Custom", "\u81EA\u8A02");
35
+ injectString("cs", "Date range", "Rozmez\xED dat");
36
+ injectString("da-DK", "Date range", "Datointerval");
37
+ injectString("de", "Date range", "Datumsbereich");
38
+ injectString("en", "Date range", "Date range");
39
+ injectString("es", "Date range", "Intervalo de fechas");
40
+ injectString("fi-FI", "Date range", "P\xE4iv\xE4m\xE4\xE4r\xE4alue");
41
+ injectString("fr", "Date range", "Plage de dates");
42
+ injectString("fr-FR", "Date range", "Plage de dates");
43
+ injectString("hu-HU", "Date range", "Id\u0151tartom\xE1ny");
44
+ injectString("id", "Date range", "Rentang tanggal");
45
+ injectString("it", "Date range", "Intervallo di date");
46
+ injectString("ja", "Date range", "\u65E5\u4ED8\u7BC4\u56F2");
47
+ injectString("ko-KR", "Date range", "\uB0A0\uC9DC \uBC94\uC704");
48
+ injectString("ms", "Date range", "Julat tarikh");
49
+ injectString("nb-NO", "Date range", "Datoomr\xE5de");
50
+ injectString("nl", "Date range", "Datumbereik");
51
+ injectString("pl", "Date range", "Zakres dat");
52
+ injectString("pt-BR", "Date range", "Intervalo de datas");
53
+ injectString("sk-SK", "Date range", "Rozsah d\xE1tumov");
54
+ injectString("sv", "Date range", "Datumintervall");
55
+ injectString("th", "Date range", "\u0E0A\u0E48\u0E27\u0E07\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48");
56
+ injectString("tr", "Date range", "Tarih aral\u0131\u011F\u0131");
57
+ injectString("zh-Hans", "Date range", "\u65E5\u671F\u8303\u56F4");
58
+ injectString("zh-TW", "Date range", "\u65E5\u671F\u7BC4\u570D");
59
+ injectString("en", "Date range filter:", "Date range filter:");
60
+ injectString("cs", "Clear", "Vymazat");
61
+ injectString("da-DK", "Clear", "Ryd");
62
+ injectString("de", "Clear", "L\xF6schen");
63
+ injectString("en", "Clear", "Clear");
64
+ injectString("es", "Clear", "Borrar");
65
+ injectString("fi-FI", "Clear", "Tyhjenn\xE4");
66
+ injectString("fr", "Clear", "Effacer");
67
+ injectString("fr-FR", "Clear", "Effacer");
68
+ injectString("hu-HU", "Clear", "T\xF6r\xF6ld.");
69
+ injectString("id", "Clear", "Hapus");
70
+ injectString("it", "Clear", "Cancella");
71
+ injectString("ja", "Clear", "\u30AF\u30EA\u30A2");
72
+ injectString("ko-KR", "Clear", "\uC9C0\uC6B0\uAE30");
73
+ injectString("ms", "Clear", "Kosongkan");
74
+ injectString("nb-NO", "Clear", "T\xF8m");
75
+ injectString("nl", "Clear", "Wissen");
76
+ injectString("pl", "Clear", "Wyczy\u015B\u0107");
77
+ injectString("pt-BR", "Clear", "Limpar");
78
+ injectString("sk-SK", "Clear", "Vyma\u017E");
79
+ injectString("sv", "Clear", "Rensa");
80
+ injectString("th", "Clear", "\u0E25\u0E49\u0E32\u0E07");
81
+ injectString("tr", "Clear", "Temizle");
82
+ injectString("zh-Hans", "Clear", "\u6E05\u9664");
83
+ injectString("zh-TW", "Clear", "\u6E05\u9664");
84
+ injectString("cs", "Cancel", "Zru\u0161it");
85
+ injectString("da-DK", "Cancel", "Annuller");
86
+ injectString("de", "Cancel", "Abbrechen");
87
+ injectString("en", "Cancel", "Cancel");
88
+ injectString("es", "Cancel", "Cancelar");
89
+ injectString("fi-FI", "Cancel", "Peruuta");
90
+ injectString("fr", "Cancel", "Annuler");
91
+ injectString("fr-FR", "Cancel", "Annuler");
92
+ injectString("hu-HU", "Cancel", "M\xE9gse");
93
+ injectString("id", "Cancel", "Batalkan");
94
+ injectString("it", "Cancel", "Annullare");
95
+ injectString("ja", "Cancel", "\u30AD\u30E3\u30F3\u30BB\u30EB");
96
+ injectString("ko-KR", "Cancel", "\uCDE8\uC18C");
97
+ injectString("ms", "Cancel", "Batal");
98
+ injectString("nb-NO", "Cancel", "Avbryt");
99
+ injectString("nl", "Cancel", "Annuleren");
100
+ injectString("pl", "Cancel", "Anuluj");
101
+ injectString("pt-BR", "Cancel", "Cancelar");
102
+ injectString("sk-SK", "Cancel", "Zru\u0161.");
103
+ injectString("sv", "Cancel", "Avbryt");
104
+ injectString("th", "Cancel", "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01");
105
+ injectString("tr", "Cancel", "\u0130ptal");
106
+ injectString("zh-Hans", "Cancel", "\u53D6\u6D88");
107
+ injectString("zh-TW", "Cancel", "\u53D6\u6D88");
108
+ injectString("cs", "Apply", "Pou\u017E\xEDt");
109
+ injectString("da-DK", "Apply", "Anvend");
110
+ injectString("de", "Apply", "Anwenden");
111
+ injectString("en", "Apply", "Apply");
112
+ injectString("es", "Apply", "Aplicar");
113
+ injectString("fi-FI", "Apply", "K\xE4yt\xE4");
114
+ injectString("fr", "Apply", "Appliquer");
115
+ injectString("fr-FR", "Apply", "Appliquer");
116
+ injectString("hu-HU", "Apply", "Alkalmazd.");
117
+ injectString("id", "Apply", "Terapkan");
118
+ injectString("it", "Apply", "Applicare");
119
+ injectString("ja", "Apply", "\u9069\u7528");
120
+ injectString("ko-KR", "Apply", "\uC801\uC6A9");
121
+ injectString("ms", "Apply", "Gunakan");
122
+ injectString("nb-NO", "Apply", "Bruk");
123
+ injectString("nl", "Apply", "Toepassen");
124
+ injectString("pl", "Apply", "Zastosuj");
125
+ injectString("pt-BR", "Apply", "Aplicar");
126
+ injectString("sk-SK", "Apply", "Pou\u017Ei");
127
+ injectString("sv", "Apply", "Ans\xF6k");
128
+ injectString("th", "Apply", "\u0E43\u0E0A\u0E49");
129
+ injectString("tr", "Apply", "Uygula");
130
+ injectString("zh-Hans", "Apply", "\u5E94\u7528");
131
+ injectString("zh-TW", "Apply", "\u5957\u7528");
132
+ injectString("cs", "Previous", "P\u0159edchoz\xED");
133
+ injectString("da-DK", "Previous", "Forrige");
134
+ injectString("de", "Previous", "Vorherige");
135
+ injectString("en", "Previous", "Previous");
136
+ injectString("es", "Previous", "Anterior");
137
+ injectString("fi-FI", "Previous", "Edellinen");
138
+ injectString("fr", "Previous", "Pr\xE9c\xE9dent");
139
+ injectString("fr-FR", "Previous", "Pr\xE9c\xE9dent");
140
+ injectString("hu-HU", "Previous", "El\u0151z\u0151");
141
+ injectString("id", "Previous", "Sebelumnya");
142
+ injectString("it", "Previous", "Indietro");
143
+ injectString("ja", "Previous", "\u524D");
144
+ injectString("ko-KR", "Previous", "\uC774\uC804\uC758");
145
+ injectString("ms", "Previous", "Sebelumnya");
146
+ injectString("nb-NO", "Previous", "Tidligere");
147
+ injectString("nl", "Previous", "Vorige");
148
+ injectString("pl", "Previous", "Poprzednie");
149
+ injectString("pt-BR", "Previous", "Anterior");
150
+ injectString("sk-SK", "Previous", "Predch\xE1dzaj\xFAci");
151
+ injectString("sv", "Previous", "F\xF6reg\xE5ende");
152
+ injectString("th", "Previous", "\u0E01\u0E48\u0E2D\u0E19\u0E2B\u0E19\u0E49\u0E32");
153
+ injectString("tr", "Previous", "\xD6nceki");
154
+ injectString("zh-Hans", "Previous", "\u524D\u4E00");
155
+ injectString("zh-TW", "Previous", "\u4E0A\u4E00\u500B");
156
+ injectString("cs", "Next", "Dal\u0161\xED");
157
+ injectString("da-DK", "Next", "N\xE6ste");
158
+ injectString("de", "Next", "N\xE4chstes");
159
+ injectString("en", "Next", "Next");
160
+ injectString("es", "Next", "Siguiente");
161
+ injectString("fi-FI", "Next", "Seuraava");
162
+ injectString("fr", "Next", "Suivant");
163
+ injectString("fr-FR", "Next", "Suivant");
164
+ injectString("hu-HU", "Next", "K\xF6vetkez\u0151");
165
+ injectString("id", "Next", "Berikutnya");
166
+ injectString("it", "Next", "Avanti");
167
+ injectString("ja", "Next", "\u6B21\u306E");
168
+ injectString("ko-KR", "Next", "\uB2E4\uC74C");
169
+ injectString("ms", "Next", "Seterusnya");
170
+ injectString("nb-NO", "Next", "Neste");
171
+ injectString("nl", "Next", "Volgende");
172
+ injectString("pl", "Next", "Nast\u0119pne");
173
+ injectString("pt-BR", "Next", "Avan\xE7ar");
174
+ injectString("sk-SK", "Next", "\u010Eal\u0161\xED");
175
+ injectString("sv", "Next", "N\xE4sta");
176
+ injectString("th", "Next", "\u0E16\u0E31\u0E14\u0E44\u0E1B");
177
+ injectString("tr", "Next", "Sonraki");
178
+ injectString("zh-Hans", "Next", "\u4E0B\u4E00\u4E2A");
179
+ injectString("zh-TW", "Next", "\u4E0B\u4E00\u6B65");
5
180
  const textIconButton_1 = require("../textIconButton/textIconButton");
6
181
  const button_1 = require("../button/button");
7
182
  const iconCalendar_1 = require("../icons/iconCalendar");
@@ -30,247 +205,434 @@ const focusableSelector_1 = require("../utils/focusableSelector");
30
205
  const parseLabel_1 = require("./utils/parseLabel");
31
206
  const useFormFieldValues_1 = require("../commonHelpers/hooks/useFormFieldValues/useFormFieldValues");
32
207
  // eslint-disable-next-line complexity
33
- const DateRangeRaw = (props) => {
208
+ const DateRangeRaw = props => {
209
+ var _a;
210
+ const {
211
+ className,
212
+ classNamePopup,
213
+ options: optionsArg,
214
+ type,
215
+ id,
216
+ defaultValue,
217
+ dropDownTitle,
218
+ hasApplyButton,
219
+ disableFutureDates,
220
+ disablePastDates,
221
+ disableDatesBefore,
222
+ triggerLabel,
223
+ disableDatesAfter,
224
+ withCalendar,
225
+ lockStartDate,
226
+ lockEndDate,
227
+ timeSelect,
228
+ allowUnsetValue = false,
229
+ stepper = false,
230
+ classNameWrapper,
231
+ isReadOnly,
232
+ error,
233
+ chip,
234
+ chipId,
235
+ chipName,
236
+ chipIcon
237
+ } = props;
238
+ const {
239
+ value,
240
+ name,
241
+ disabled,
242
+ onChange,
243
+ onBlur
244
+ } = (0, useFormFieldValues_1.useFormFieldValues)(props.controller, props);
245
+ const {
246
+ translate
247
+ } = (0, useLanguage_1.useLanguage)();
248
+ const isMobile = (0, useMobile_1.useMobile)();
249
+ const isDrive = (0, useDrive_1.useDrive)();
250
+ const chipStatus = (0, chipStatusProvider_1.useChipStatus)();
251
+ const driveWrapperTriggerClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-wrapper");
252
+ const drivePopupClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-popup");
253
+ const driveWrapperPopupClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-popup-wrapper");
254
+ const [showMobileCalendar, setShowMobileCalendar] = (0, react_1.useState)(false);
255
+ const {
256
+ dateFormat,
257
+ toLocalDateTime,
258
+ toReverseOffsetDateTime,
259
+ weekStartsOnSunday
260
+ } = (0, react_1.useContext)(userFormatContext_1.userFormatContext);
261
+ const optionsMap = (0, react_1.useMemo)(() => (0, getRangeOption_1.getOptionsPeriodMap)(optionsArg, translate, toLocalDateTime, weekStartsOnSunday ? "Sunday" : "Monday", toReverseOffsetDateTime), [optionsArg, toLocalDateTime, toReverseOffsetDateTime, translate, weekStartsOnSunday]);
262
+ const previousStepOption = (0, react_1.useRef)("");
263
+ const [selectedRange, setSelectedRange] = (0, react_1.useState)((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value));
264
+ const mobileContentRef = (0, react_1.useRef)(null);
265
+ const isCustomDateOption = (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) === dateRangeInner_1.CUSTOM_CALENDAR_ID;
266
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
267
+ const prevIsOpenRef = (0, react_1.useRef)(false);
268
+ const [customDate, setCustomDate] = (0, react_1.useState)((0, normalizeDates_1.normalizeDates)(value === null || value === void 0 ? void 0 : value.from.toISOString(), value === null || value === void 0 ? void 0 : value.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter));
269
+ const isDefaultState = !defaultValue && !selectedRange || defaultValue && selectedRange && defaultValue.label === selectedRange.label && defaultValue.label !== dateRangeInner_1.CUSTOM_CALENDAR_ID || defaultValue && selectedRange && defaultValue.label === selectedRange.label && defaultValue.label === dateRangeInner_1.CUSTOM_CALENDAR_ID && customDate.from && customDate.to && new Date(customDate.from).toISOString() === defaultValue.from.toISOString() && new Date(customDate.to).toISOString() === defaultValue.to.toISOString();
270
+ const triggerRef = (0, react_1.useRef)(null);
271
+ const [prevSelection, setPrevSelection] = (0, react_1.useState)((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value));
272
+ const componentId = (0, useUniqueId_1.useUniqueId)();
273
+ const calendarLabel = translate("Custom");
274
+ const getCustomRange = (0, react_1.useCallback)(() => ({
275
+ from: (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from) || new Date(),
276
+ to: (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to) || new Date()
277
+ }), [prevSelection]);
278
+ const options = (0, react_1.useMemo)(() => (0, getRangeOption_1.getRangeOptionsArray)(optionsArg, translate, toLocalDateTime, weekStartsOnSunday ? "Sunday" : "Monday", toReverseOffsetDateTime, withCalendar || false, prevSelection && prevSelection.label === dateRangeInner_1.CUSTOM_CALENDAR_ID, prevSelection ? getCustomRange : undefined), [optionsArg, translate, toLocalDateTime, weekStartsOnSunday, toReverseOffsetDateTime, withCalendar, prevSelection, getCustomRange]);
279
+ const optionsMapRef = (0, react_1.useRef)(optionsMap);
280
+ const isEqualMaps = (0, react_1.useMemo)(() => (0, areMapsEqual_1.areMapsEqual)(optionsMapRef.current, optionsMap), [optionsMap]);
281
+ if (!isEqualMaps) {
282
+ optionsMapRef.current = optionsMap;
283
+ }
284
+ const hasCustomOption = (0, react_1.useMemo)(() => options.find(option => option.id === dateRangeInner_1.CUSTOM_CALENDAR_ID) !== undefined, [options]);
285
+ const title = (0, react_1.useMemo)(() => dropDownTitle || translate("Date range"), [dropDownTitle, translate]);
286
+ const toggleVisibility = (0, react_1.useCallback)(() => setIsOpen(currentIsOpen => !currentIsOpen), []);
287
+ const getButtonLabel = (0, react_1.useCallback)((rangeValue, titleText) => {
288
+ if (!rangeValue) {
289
+ return translate("Date range");
290
+ }
291
+ const val = rangeValue.label;
292
+ const selection = options.find(option => option.id === val);
293
+ if (selection && val !== dateRangeInner_1.CUSTOM_CALENDAR_ID) {
294
+ return titleText ? `${translate("Date range filter:")} ${selection.label}` : selection.label;
295
+ }
296
+ return titleText ? `${translate("Date range filter:")} ${(0, parseLabel_1.parseLabel)(rangeValue, dateFormat, translate, toLocalDateTime)}` : (0, parseLabel_1.parseLabel)(rangeValue, dateFormat, translate, toLocalDateTime);
297
+ }, [dateFormat, options, translate, toLocalDateTime]);
298
+ (0, react_1.useEffect)(() => {
299
+ const currentValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value);
300
+ if ((prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.label) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.label) || (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from.getTime()) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.from.getTime()) || (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to.getTime()) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.to.getTime())) {
301
+ setSelectedRange(currentValue);
302
+ setPrevSelection(currentValue);
303
+ }
304
+ }, [optionsMap, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.label, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to, value]);
305
+ const handleDateRangeSelection = (0, react_1.useCallback)(newVal => {
306
+ var _a, _b;
307
+ const selection = options.find(option => option.id === newVal);
308
+ newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID && setShowMobileCalendar(true);
309
+ if (selection && newVal !== dateRangeInner_1.CUSTOM_CALENDAR_ID && selection.getRange) {
310
+ const range = selection.getRange();
311
+ const normalizedDates = (0, normalizeDates_1.normalizeDates)(range.from.toISOString(), range.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
312
+ const newRange = newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID ? {
313
+ from: new Date(normalizedDates.from),
314
+ to: new Date(normalizedDates.to)
315
+ } : range;
316
+ setSelectedRange(Object.assign({
317
+ label: selection.id
318
+ }, newRange));
319
+ !hasApplyButton && setPrevSelection(Object.assign({
320
+ label: selection.id
321
+ }, newRange));
322
+ !hasApplyButton && (onChange === null || onChange === void 0 ? void 0 : onChange(Object.assign({
323
+ label: selection.id
324
+ }, newRange)));
325
+ previousStepOption.current = "";
326
+ } else {
327
+ const startDateForNormalize = ((_a = selection === null || selection === void 0 ? void 0 : selection.getRange) === null || _a === void 0 ? void 0 : _a.call(selection)) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) !== newVal ? selection.getRange().from.toISOString() : value === null || value === void 0 ? void 0 : value.from.toISOString();
328
+ const endDateForNormalize = ((_b = selection === null || selection === void 0 ? void 0 : selection.getRange) === null || _b === void 0 ? void 0 : _b.call(selection)) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) !== newVal ? selection.getRange().to.toISOString() : value === null || value === void 0 ? void 0 : value.to.toISOString();
329
+ const normalizedDates = (0, normalizeDates_1.normalizeDates)(startDateForNormalize, endDateForNormalize, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
330
+ const newRange = newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID ? {
331
+ from: new Date(normalizedDates.from),
332
+ to: new Date(normalizedDates.to)
333
+ } : undefined;
334
+ const newValueFrom = (newRange === null || newRange === void 0 ? void 0 : newRange.from) || new Date();
335
+ const newValueTo = (newRange === null || newRange === void 0 ? void 0 : newRange.to) || new Date();
336
+ setSelectedRange({
337
+ label: newVal,
338
+ from: newValueFrom,
339
+ to: newValueTo
340
+ });
341
+ setCustomDate(normalizedDates);
342
+ !hasApplyButton && (onChange === null || onChange === void 0 ? void 0 : onChange({
343
+ label: newVal,
344
+ from: newValueFrom,
345
+ to: newValueTo
346
+ }));
347
+ }
348
+ !hasApplyButton && newVal !== dateRangeInner_1.CUSTOM_CALENDAR_ID && setIsOpen(false);
349
+ }, [options, hasApplyButton, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter, onChange, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, value === null || value === void 0 ? void 0 : value.from, value === null || value === void 0 ? void 0 : value.to]);
350
+ const handleRangeSelection = (0, react_1.useCallback)(() => {
351
+ if (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) {
352
+ const newState = {
353
+ label: selectedRange.label,
354
+ from: new Date(customDate.from),
355
+ to: new Date(customDate.to)
356
+ };
357
+ setPrevSelection(newState);
358
+ onChange === null || onChange === void 0 ? void 0 : onChange(newState);
359
+ setSelectedRange(newState);
360
+ setIsOpen(false);
361
+ }
362
+ }, [selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, customDate.from, customDate.to, onChange]);
363
+ const handleApplyClick = (0, react_1.useCallback)(() => {
364
+ setIsOpen(false);
365
+ setShowMobileCalendar(false);
366
+ if (isCustomDateOption) {
367
+ handleRangeSelection();
368
+ previousStepOption.current = "";
369
+ return;
370
+ }
371
+ selectedRange && (onChange === null || onChange === void 0 ? void 0 : onChange(selectedRange));
372
+ selectedRange && setPrevSelection(selectedRange);
373
+ }, [handleRangeSelection, isCustomDateOption, onChange, selectedRange]);
374
+ const handleCancelClick = (0, react_1.useCallback)(() => {
375
+ hasApplyButton && prevSelection && handleDateRangeSelection(prevSelection.label);
376
+ setCustomDate({
377
+ from: prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from.toISOString(),
378
+ to: prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to.toISOString()
379
+ });
380
+ setIsOpen(!isOpen);
381
+ setShowMobileCalendar(false);
382
+ }, [handleDateRangeSelection, prevSelection, isOpen, hasApplyButton]);
383
+ const handleClearClick = (0, react_1.useCallback)(() => {
384
+ //* @ts-expect-error: Let's ignore a compile error. if onChange is triggered, then either a value is passed to the function, or undefined can be passed because the interface is IDateRangeUnsetValue
385
+ !hasApplyButton && (defaultValue || allowUnsetValue) && (onChange === null || onChange === void 0 ? void 0 : onChange(defaultValue));
386
+ !hasApplyButton && setIsOpen(false);
387
+ setSelectedRange(defaultValue);
388
+ previousStepOption.current = "";
389
+ (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.label) === dateRangeInner_1.CUSTOM_CALENDAR_ID && !allowUnsetValue && setCustomDate({
390
+ from: defaultValue.from.toISOString(),
391
+ to: defaultValue.to.toISOString()
392
+ });
393
+ setShowMobileCalendar(false);
394
+ }, [allowUnsetValue, defaultValue, hasApplyButton, onChange]);
395
+ const handleMobileBackClick = (0, react_1.useCallback)(() => {
396
+ setShowMobileCalendar(false);
397
+ }, []);
398
+ const handleStepperClick = (0, react_1.useCallback)((currentRange, isIncrease) => {
399
+ let step = previousStepOption.current ? previousStepOption.current : (0, getRangeOption_1.getDateRangeAdjustedStep)(translate, currentRange.label);
400
+ if (previousStepOption.current === "") {
401
+ previousStepOption.current = step;
402
+ } else if (previousStepOption.current !== getRangeOption_1.DEFAULT_STEP_OPTION) {
403
+ step = previousStepOption.current;
404
+ }
405
+ const adjustFn = getRangeOption_1.dateRangeAdjustedFn[step];
406
+ const newValue = adjustFn(currentRange, isIncrease, toLocalDateTime, toReverseOffsetDateTime);
407
+ const labeledValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, newValue);
408
+ labeledValue && (onChange === null || onChange === void 0 ? void 0 : onChange(labeledValue));
409
+ }, [onChange, optionsMap, toLocalDateTime, toReverseOffsetDateTime, translate]);
410
+ (0, react_1.useEffect)(() => {
411
+ setCustomDate({
412
+ from: value === null || value === void 0 ? void 0 : value.from.toISOString(),
413
+ to: value === null || value === void 0 ? void 0 : value.to.toISOString()
414
+ });
415
+ const currentValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMapRef.current, value);
416
+ setPrevSelection(currentValue);
417
+ }, [value, isEqualMaps]);
418
+ const range = (0, react_1.useMemo)(() => ({
419
+ from: customDate.from,
420
+ to: customDate.to
421
+ }), [customDate.from, customDate.to]);
422
+ const component = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(dateRangeInner_1.DateRangeInner, {
423
+ id: id || componentId,
424
+ options: options,
425
+ onOptionSelect: handleDateRangeSelection,
426
+ onCalendarSelect: hasCustomOption ? val => {
427
+ setCustomDate({
428
+ from: lockStartDate || val.from,
429
+ to: lockEndDate || (lockStartDate ? val.to || val.from : val.to)
430
+ });
431
+ } : undefined,
432
+ selection: selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label,
433
+ range: range,
434
+ timeSelect: timeSelect,
435
+ disableFutureDates: disableFutureDates,
436
+ disablePastDates: disablePastDates,
437
+ disableDatesBefore: disableDatesBefore,
438
+ disableDatesAfter: disableDatesAfter,
439
+ showMobileCalendar: isMobile ? showMobileCalendar : undefined,
440
+ setShowMobileCalendar: isMobile ? setShowMobileCalendar : undefined
441
+ }), [id, componentId, options, handleDateRangeSelection, hasCustomOption, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, range, timeSelect, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter, isMobile, showMobileCalendar, lockStartDate, lockEndDate]);
442
+ const memoizedHandleClose = (0, react_1.useCallback)(() => {
443
+ setIsOpen(false);
444
+ }, [setIsOpen]);
445
+ const onReadyForFocus = (0, react_1.useCallback)(isCurrentOpen => {
34
446
  var _a;
35
- const { className, classNamePopup, options: optionsArg, type, id, defaultValue, dropDownTitle, hasApplyButton, disableFutureDates, disablePastDates, disableDatesBefore, triggerLabel, disableDatesAfter, withCalendar, lockStartDate, lockEndDate, timeSelect, allowUnsetValue = false, stepper = false, classNameWrapper, isReadOnly, error, chip, chipId, chipName, chipIcon } = props;
36
- const { value, name, disabled, onChange, onBlur } = (0, useFormFieldValues_1.useFormFieldValues)(props.controller, props);
37
- const { translate } = (0, useLanguage_1.useLanguage)();
38
- const isMobile = (0, useMobile_1.useMobile)();
39
- const isDrive = (0, useDrive_1.useDrive)();
40
- const chipStatus = (0, chipStatusProvider_1.useChipStatus)();
41
- const driveWrapperTriggerClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-wrapper");
42
- const drivePopupClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-popup");
43
- const driveWrapperPopupClassName = (0, useDriveClassName_1.useDriveClassName)("zen-date-range-popup-wrapper");
44
- const [showMobileCalendar, setShowMobileCalendar] = (0, react_1.useState)(false);
45
- const { dateFormat, toLocalDateTime, toReverseOffsetDateTime, weekStartsOnSunday } = (0, react_1.useContext)(userFormatContext_1.userFormatContext);
46
- const optionsMap = (0, react_1.useMemo)(() => (0, getRangeOption_1.getOptionsPeriodMap)(optionsArg, translate, toLocalDateTime, weekStartsOnSunday ? "Sunday" : "Monday", toReverseOffsetDateTime), [optionsArg, toLocalDateTime, toReverseOffsetDateTime, translate, weekStartsOnSunday]);
47
- const previousStepOption = (0, react_1.useRef)("");
48
- const [selectedRange, setSelectedRange] = (0, react_1.useState)((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value));
49
- const mobileContentRef = (0, react_1.useRef)(null);
50
- const isCustomDateOption = (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) === dateRangeInner_1.CUSTOM_CALENDAR_ID;
51
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
52
- const prevIsOpenRef = (0, react_1.useRef)(false);
53
- const [customDate, setCustomDate] = (0, react_1.useState)((0, normalizeDates_1.normalizeDates)(value === null || value === void 0 ? void 0 : value.from.toISOString(), value === null || value === void 0 ? void 0 : value.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter));
54
- const isDefaultState = !defaultValue && !selectedRange
55
- || defaultValue && selectedRange && defaultValue.label === selectedRange.label && defaultValue.label !== dateRangeInner_1.CUSTOM_CALENDAR_ID
56
- || defaultValue && selectedRange && defaultValue.label === selectedRange.label && defaultValue.label === dateRangeInner_1.CUSTOM_CALENDAR_ID && customDate.from && customDate.to
57
- && new Date(customDate.from).toISOString() === defaultValue.from.toISOString() && new Date(customDate.to).toISOString() === defaultValue.to.toISOString();
58
- const triggerRef = (0, react_1.useRef)(null);
59
- const [prevSelection, setPrevSelection] = (0, react_1.useState)((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value));
60
- const componentId = (0, useUniqueId_1.useUniqueId)();
61
- const calendarLabel = translate(dateRangeInner_1.CUSTOM_CALENDAR_ID);
62
- const getCustomRange = (0, react_1.useCallback)(() => ({ from: (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from) || new Date(), to: (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to) || new Date() }), [prevSelection]);
63
- const options = (0, react_1.useMemo)(() => (0, getRangeOption_1.getRangeOptionsArray)(optionsArg, translate, toLocalDateTime, weekStartsOnSunday ? "Sunday" : "Monday", toReverseOffsetDateTime, withCalendar || false, prevSelection && prevSelection.label === dateRangeInner_1.CUSTOM_CALENDAR_ID, prevSelection ? getCustomRange : undefined), [optionsArg, translate, toLocalDateTime, weekStartsOnSunday, toReverseOffsetDateTime, withCalendar, prevSelection, getCustomRange]);
64
- const optionsMapRef = (0, react_1.useRef)(optionsMap);
65
- const isEqualMaps = (0, react_1.useMemo)(() => (0, areMapsEqual_1.areMapsEqual)(optionsMapRef.current, optionsMap), [optionsMap]);
66
- if (!isEqualMaps) {
67
- optionsMapRef.current = optionsMap;
447
+ if (!isMobile) {
448
+ return;
449
+ }
450
+ if (isCurrentOpen) {
451
+ const focusableElement = (_a = mobileContentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(focusableSelector_1.FOCUSABLE_SELECTOR);
452
+ focusableElement === null || focusableElement === void 0 ? void 0 : focusableElement.focus();
453
+ return;
454
+ }
455
+ prevIsOpenRef.current = isCurrentOpen;
456
+ }, [isMobile, mobileContentRef]);
457
+ const isValueNotChanged = (0, react_1.useMemo)(() => {
458
+ if (!hasApplyButton) {
459
+ return false;
460
+ }
461
+ if (!isCustomDateOption) {
462
+ return (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) === (value === null || value === void 0 ? void 0 : value.label);
463
+ }
464
+ return selectedRange.label === (value === null || value === void 0 ? void 0 : value.label) && customDate.from === value.from.toISOString() && customDate.to === value.to.toISOString();
465
+ }, [customDate.from, customDate.to, hasApplyButton, isCustomDateOption, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, value === null || value === void 0 ? void 0 : value.from, value === null || value === void 0 ? void 0 : value.label, value === null || value === void 0 ? void 0 : value.to]);
466
+ const memoizedDesktopView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(controlledPopup_1.ControlledPopup, {
467
+ className: (0, classNames_1.classNames)(["zen-date-range-popup-wrapper", driveWrapperPopupClassName || ""]),
468
+ ariaLabel: translate("Date range"),
469
+ useTrapFocusWithTrigger: "on",
470
+ role: "dialog",
471
+ triggerRef: triggerRef,
472
+ onOpenChange: setIsOpen,
473
+ shouldHoldScroll: true,
474
+ isOpen: isOpen,
475
+ recalculateOnScroll: true,
476
+ children: (0, jsx_runtime_1.jsxs)("div", {
477
+ className: (0, classNames_1.classNames)(["zen-date-range-popup", drivePopupClassName || "", classNamePopup !== null && classNamePopup !== void 0 ? classNamePopup : ""]),
478
+ children: [(0, jsx_runtime_1.jsx)("div", {
479
+ className: "zen-date-range-popup__header",
480
+ children: title
481
+ }), component, (0, jsx_runtime_1.jsxs)("div", {
482
+ className: "zen-date-range-popup__footer",
483
+ children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
484
+ className: "zen-date-range-popup__button-clear",
485
+ type: buttonType_1.ButtonType.Tertiary,
486
+ disabled: !!isDefaultState,
487
+ onClick: handleClearClick,
488
+ children: translate("Clear")
489
+ }), !isCustomDateOption && hasApplyButton && (0, jsx_runtime_1.jsx)(button_1.Button, {
490
+ className: "zen-date-range-popup__button-reset",
491
+ type: buttonType_1.ButtonType.Secondary,
492
+ onClick: handleCancelClick,
493
+ children: translate("Cancel")
494
+ }), (isCustomDateOption || hasApplyButton) && (0, jsx_runtime_1.jsx)(button_1.Button, {
495
+ className: "zen-date-range-popup__button-apply",
496
+ type: buttonType_1.ButtonType.Primary,
497
+ disabled: isCustomDateOption && (!customDate.from || !customDate.to) || isValueNotChanged || !selectedRange,
498
+ onClick: handleApplyClick,
499
+ children: translate("Apply")
500
+ })]
501
+ })]
502
+ })
503
+ }), [classNamePopup, component, customDate.from, customDate.to, drivePopupClassName, driveWrapperPopupClassName, handleApplyClick, handleCancelClick, handleClearClick, hasApplyButton, isCustomDateOption, isDefaultState, isOpen, isValueNotChanged, selectedRange, title, translate]);
504
+ const memoizedMobileFooter = (0, react_1.useMemo)(() => {
505
+ const clearButton = (0, jsx_runtime_1.jsx)(button_1.Button, {
506
+ type: buttonType_1.ButtonType.Tertiary,
507
+ disabled: !!isDefaultState,
508
+ onClick: handleClearClick,
509
+ children: translate("Clear")
510
+ });
511
+ const cancelButton = hasApplyButton && !showMobileCalendar ? (0, jsx_runtime_1.jsx)(button_1.Button, {
512
+ type: buttonType_1.ButtonType.Secondary,
513
+ onClick: handleCancelClick,
514
+ children: translate("Cancel")
515
+ }) : null;
516
+ const applyButton = showMobileCalendar || hasApplyButton ? (0, jsx_runtime_1.jsx)(button_1.Button, {
517
+ type: buttonType_1.ButtonType.Primary,
518
+ disabled: isCustomDateOption && (!customDate.from || !customDate.to) || isValueNotChanged || !selectedRange,
519
+ onClick: handleApplyClick,
520
+ children: translate("Apply")
521
+ }) : null;
522
+ return (0, jsx_runtime_1.jsxs)(footerButtons_1.FooterButtons, {
523
+ children: [applyButton, cancelButton, clearButton]
524
+ });
525
+ }, [customDate.from, customDate.to, handleApplyClick, handleCancelClick, handleClearClick, hasApplyButton, isCustomDateOption, isDefaultState, isValueNotChanged, selectedRange, showMobileCalendar, translate]);
526
+ const memoizedMobileView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(mobileSheet_1.MobileSheet, {
527
+ className: (0, classNames_1.classNames)(["zen-date-range-mobile-sheet", classNamePopup ? `${classNamePopup}--mobile-sheet` : ""]),
528
+ label: translate("Date range"),
529
+ triggerRef: triggerRef,
530
+ isOpen: isOpen,
531
+ onHidePanel: memoizedHandleClose,
532
+ onCloseClick: memoizedHandleClose,
533
+ useTrapFocusWithTrigger: false,
534
+ preventFirstFocus: true,
535
+ isBackVisible: showMobileCalendar,
536
+ onBackClick: handleMobileBackClick,
537
+ onReadyForFocus: onReadyForFocus,
538
+ children: [(0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Title, {
539
+ children: showMobileCalendar ? calendarLabel : title
540
+ }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Content, {
541
+ children: (0, jsx_runtime_1.jsx)("div", {
542
+ ref: mobileContentRef,
543
+ children: component
544
+ })
545
+ }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Footer, {
546
+ children: memoizedMobileFooter
547
+ })]
548
+ }), [calendarLabel, classNamePopup, component, handleMobileBackClick, isOpen, memoizedHandleClose, memoizedMobileFooter, onReadyForFocus, showMobileCalendar, title, translate, mobileContentRef]);
549
+ const checkIsRangeDisable = (0, react_1.useCallback)(isIncrease => {
550
+ if (!selectedRange) {
551
+ return true;
68
552
  }
69
- const hasCustomOption = (0, react_1.useMemo)(() => options.find(option => option.id === dateRangeInner_1.CUSTOM_CALENDAR_ID) !== undefined, [options]);
70
- const title = (0, react_1.useMemo)(() => dropDownTitle || translate("Date range"), [dropDownTitle, translate]);
71
- const toggleVisibility = (0, react_1.useCallback)(() => setIsOpen(currentIsOpen => !currentIsOpen), []);
72
- const getButtonLabel = (0, react_1.useCallback)((rangeValue, titleText) => {
73
- if (!rangeValue) {
74
- return translate("Date range");
75
- }
76
- const val = rangeValue.label;
77
- const selection = options.find(option => option.id === val);
78
- if (selection && val !== dateRangeInner_1.CUSTOM_CALENDAR_ID) {
79
- return titleText ? `${translate("Date range filter:")} ${selection.label}` : selection.label;
80
- }
81
- return titleText ? `${translate("Date range filter:")} ${(0, parseLabel_1.parseLabel)(rangeValue, dateFormat, translate, toLocalDateTime)}` : (0, parseLabel_1.parseLabel)(rangeValue, dateFormat, translate, toLocalDateTime);
82
- }, [dateFormat, options, translate, toLocalDateTime]);
83
- (0, react_1.useEffect)(() => {
84
- const currentValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value);
85
- if ((prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.label) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.label) || ((prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from.getTime()) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.from.getTime()) || (prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to.getTime()) !== (currentValue === null || currentValue === void 0 ? void 0 : currentValue.to.getTime()))) {
86
- setSelectedRange(currentValue);
87
- setPrevSelection(currentValue);
88
- }
89
- }, [optionsMap, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.label, prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to, value]);
90
- const handleDateRangeSelection = (0, react_1.useCallback)((newVal) => {
91
- var _a, _b;
92
- const selection = options.find(option => option.id === newVal);
93
- newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID && setShowMobileCalendar(true);
94
- if (selection && newVal !== dateRangeInner_1.CUSTOM_CALENDAR_ID && selection.getRange) {
95
- const range = selection.getRange();
96
- const normalizedDates = (0, normalizeDates_1.normalizeDates)(range.from.toISOString(), range.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
97
- const newRange = newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID ?
98
- { from: new Date(normalizedDates.from), to: new Date(normalizedDates.to) }
99
- : range;
100
- setSelectedRange(Object.assign({ label: selection.id }, newRange));
101
- !hasApplyButton && setPrevSelection(Object.assign({ label: selection.id }, newRange));
102
- !hasApplyButton && (onChange === null || onChange === void 0 ? void 0 : onChange(Object.assign({ label: selection.id }, newRange)));
103
- previousStepOption.current = "";
104
- }
105
- else {
106
- const startDateForNormalize = ((_a = selection === null || selection === void 0 ? void 0 : selection.getRange) === null || _a === void 0 ? void 0 : _a.call(selection)) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) !== newVal ? selection.getRange().from.toISOString() : value === null || value === void 0 ? void 0 : value.from.toISOString();
107
- const endDateForNormalize = ((_b = selection === null || selection === void 0 ? void 0 : selection.getRange) === null || _b === void 0 ? void 0 : _b.call(selection)) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) !== newVal ? selection.getRange().to.toISOString() : value === null || value === void 0 ? void 0 : value.to.toISOString();
108
- const normalizedDates = (0, normalizeDates_1.normalizeDates)(startDateForNormalize, endDateForNormalize, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
109
- const newRange = newVal === dateRangeInner_1.CUSTOM_CALENDAR_ID ?
110
- { from: new Date(normalizedDates.from), to: new Date(normalizedDates.to) }
111
- : undefined;
112
- const newValueFrom = (newRange === null || newRange === void 0 ? void 0 : newRange.from) || new Date();
113
- const newValueTo = (newRange === null || newRange === void 0 ? void 0 : newRange.to) || new Date();
114
- setSelectedRange({ label: newVal, from: newValueFrom, to: newValueTo });
115
- setCustomDate(normalizedDates);
116
- !hasApplyButton && (onChange === null || onChange === void 0 ? void 0 : onChange({ label: newVal, from: newValueFrom, to: newValueTo }));
117
- }
118
- !hasApplyButton && newVal !== dateRangeInner_1.CUSTOM_CALENDAR_ID && setIsOpen(false);
119
- }, [options, hasApplyButton, disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter, onChange, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, value === null || value === void 0 ? void 0 : value.from, value === null || value === void 0 ? void 0 : value.to]);
120
- const handleRangeSelection = (0, react_1.useCallback)(() => {
121
- if (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) {
122
- const newState = { label: selectedRange.label, from: new Date(customDate.from), to: new Date(customDate.to) };
123
- setPrevSelection(newState);
124
- onChange === null || onChange === void 0 ? void 0 : onChange(newState);
125
- setSelectedRange(newState);
126
- setIsOpen(false);
127
- }
128
- }, [selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, customDate.from, customDate.to, onChange]);
129
- const handleApplyClick = (0, react_1.useCallback)(() => {
130
- setIsOpen(false);
131
- setShowMobileCalendar(false);
132
- if (isCustomDateOption) {
133
- handleRangeSelection();
134
- previousStepOption.current = "";
135
- return;
136
- }
137
- selectedRange && (onChange === null || onChange === void 0 ? void 0 : onChange(selectedRange));
138
- selectedRange && setPrevSelection(selectedRange);
139
- }, [handleRangeSelection, isCustomDateOption, onChange, selectedRange]);
140
- const handleCancelClick = (0, react_1.useCallback)(() => {
141
- hasApplyButton && prevSelection && handleDateRangeSelection(prevSelection.label);
142
- setCustomDate({ from: prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.from.toISOString(), to: prevSelection === null || prevSelection === void 0 ? void 0 : prevSelection.to.toISOString() });
143
- setIsOpen(!isOpen);
144
- setShowMobileCalendar(false);
145
- }, [handleDateRangeSelection, prevSelection, isOpen, hasApplyButton]);
146
- const handleClearClick = (0, react_1.useCallback)(() => {
147
- //* @ts-expect-error: Let's ignore a compile error. if onChange is triggered, then either a value is passed to the function, or undefined can be passed because the interface is IDateRangeUnsetValue
148
- !hasApplyButton && (defaultValue || allowUnsetValue) && (onChange === null || onChange === void 0 ? void 0 : onChange(defaultValue));
149
- !hasApplyButton && setIsOpen(false);
150
- setSelectedRange(defaultValue);
151
- previousStepOption.current = "";
152
- (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.label) === dateRangeInner_1.CUSTOM_CALENDAR_ID && !allowUnsetValue && setCustomDate({ from: defaultValue.from.toISOString(), to: defaultValue.to.toISOString() });
153
- setShowMobileCalendar(false);
154
- }, [allowUnsetValue, defaultValue, hasApplyButton, onChange]);
155
- const handleMobileBackClick = (0, react_1.useCallback)(() => {
156
- setShowMobileCalendar(false);
157
- }, []);
158
- const handleStepperClick = (0, react_1.useCallback)((currentRange, isIncrease) => {
159
- let step = previousStepOption.current ? previousStepOption.current : (0, getRangeOption_1.getDateRangeAdjustedStep)(translate, currentRange.label);
160
- if (previousStepOption.current === "") {
161
- previousStepOption.current = step;
162
- }
163
- else if (previousStepOption.current !== getRangeOption_1.DEFAULT_STEP_OPTION) {
164
- step = previousStepOption.current;
165
- }
166
- const adjustFn = getRangeOption_1.dateRangeAdjustedFn[step];
167
- const newValue = adjustFn(currentRange, isIncrease, toLocalDateTime, toReverseOffsetDateTime);
168
- const labeledValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, newValue);
169
- labeledValue && (onChange === null || onChange === void 0 ? void 0 : onChange(labeledValue));
170
- }, [onChange, optionsMap, toLocalDateTime, toReverseOffsetDateTime, translate]);
171
- (0, react_1.useEffect)(() => {
172
- setCustomDate({ from: value === null || value === void 0 ? void 0 : value.from.toISOString(), to: value === null || value === void 0 ? void 0 : value.to.toISOString() });
173
- const currentValue = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMapRef.current, value);
174
- setPrevSelection(currentValue);
175
- }, [value, isEqualMaps]);
176
- const range = (0, react_1.useMemo)(() => ({ from: customDate.from, to: customDate.to }), [customDate.from, customDate.to]);
177
- const component = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(dateRangeInner_1.DateRangeInner, { id: id || componentId, options: options, onOptionSelect: handleDateRangeSelection, onCalendarSelect: hasCustomOption ? (val) => {
178
- setCustomDate({ from: lockStartDate || val.from, to: lockEndDate || (lockStartDate ? val.to || val.from : val.to) });
179
- } : undefined, selection: selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, range: range, timeSelect: timeSelect, disableFutureDates: disableFutureDates, disablePastDates: disablePastDates, disableDatesBefore: disableDatesBefore, disableDatesAfter: disableDatesAfter, showMobileCalendar: isMobile ? showMobileCalendar : undefined, setShowMobileCalendar: isMobile ? setShowMobileCalendar : undefined }), [id, componentId, options, handleDateRangeSelection, hasCustomOption, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, range, timeSelect, disableFutureDates, disablePastDates,
180
- disableDatesBefore, disableDatesAfter, isMobile, showMobileCalendar, lockStartDate, lockEndDate]);
181
- const memoizedHandleClose = (0, react_1.useCallback)(() => {
182
- setIsOpen(false);
183
- }, [setIsOpen]);
184
- const onReadyForFocus = (0, react_1.useCallback)((isCurrentOpen) => {
553
+ const step = previousStepOption.current ? previousStepOption.current : (0, getRangeOption_1.getDateRangeAdjustedStep)(translate, selectedRange.label);
554
+ const adjustFn = getRangeOption_1.dateRangeAdjustedFn[step];
555
+ const newValue = adjustFn({
556
+ from: selectedRange.from,
557
+ to: selectedRange.to
558
+ }, isIncrease, toLocalDateTime, toReverseOffsetDateTime);
559
+ const normalizeNewValue = (0, normalizeDates_1.normalizeDates)(newValue.from.toISOString(), newValue.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
560
+ return newValue.from.getTime() !== new Date(normalizeNewValue.from).getTime() || newValue.to.getTime() !== new Date(normalizeNewValue.to).getTime();
561
+ }, [disableDatesAfter, disableDatesBefore, disableFutureDates, disablePastDates, selectedRange, toLocalDateTime, toReverseOffsetDateTime, translate]);
562
+ const increaseRange = (0, react_1.useCallback)(() => {
563
+ selectedRange && handleStepperClick(selectedRange, true);
564
+ }, [handleStepperClick, selectedRange]);
565
+ const decreaseRange = (0, react_1.useCallback)(() => {
566
+ selectedRange && handleStepperClick(selectedRange, false);
567
+ }, [handleStepperClick, selectedRange]);
568
+ (0, react_1.useEffect)(() => {
569
+ if (!isMobile && !isOpen && prevIsOpenRef.current) {
570
+ setTimeout(() => {
185
571
  var _a;
186
- if (!isMobile) {
187
- return;
188
- }
189
- if (isCurrentOpen) {
190
- const focusableElement = (_a = mobileContentRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(focusableSelector_1.FOCUSABLE_SELECTOR);
191
- focusableElement === null || focusableElement === void 0 ? void 0 : focusableElement.focus();
192
- return;
193
- }
194
- prevIsOpenRef.current = isCurrentOpen;
195
- }, [isMobile, mobileContentRef]);
196
- const isValueNotChanged = (0, react_1.useMemo)(() => {
197
- if (!hasApplyButton) {
198
- return false;
199
- }
200
- if (!isCustomDateOption) {
201
- return (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label) === (value === null || value === void 0 ? void 0 : value.label);
202
- }
203
- return selectedRange.label === (value === null || value === void 0 ? void 0 : value.label) && customDate.from === value.from.toISOString() && customDate.to === value.to.toISOString();
204
- }, [customDate.from, customDate.to, hasApplyButton, isCustomDateOption, selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.label, value === null || value === void 0 ? void 0 : value.from, value === null || value === void 0 ? void 0 : value.label, value === null || value === void 0 ? void 0 : value.to]);
205
- const memoizedDesktopView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(controlledPopup_1.ControlledPopup, { className: (0, classNames_1.classNames)(["zen-date-range-popup-wrapper", driveWrapperPopupClassName || ""]), ariaLabel: translate("Date range"), useTrapFocusWithTrigger: "on", role: "dialog", triggerRef: triggerRef, onOpenChange: setIsOpen, shouldHoldScroll: true, isOpen: isOpen, recalculateOnScroll: true, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-date-range-popup", drivePopupClassName || "", classNamePopup !== null && classNamePopup !== void 0 ? classNamePopup : ""]), children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-date-range-popup__header", children: title }), component, (0, jsx_runtime_1.jsxs)("div", { className: "zen-date-range-popup__footer", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-date-range-popup__button-clear", type: buttonType_1.ButtonType.Tertiary, disabled: !!isDefaultState, onClick: handleClearClick, children: translate("Clear") }), (!isCustomDateOption && hasApplyButton) &&
206
- (0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-date-range-popup__button-reset", type: buttonType_1.ButtonType.Secondary, onClick: handleCancelClick, children: translate("Cancel") }), (isCustomDateOption || hasApplyButton) && (0, jsx_runtime_1.jsx)(button_1.Button, { className: "zen-date-range-popup__button-apply", type: buttonType_1.ButtonType.Primary, disabled: (isCustomDateOption && (!customDate.from || !customDate.to)) || isValueNotChanged || !selectedRange, onClick: handleApplyClick, children: translate("Apply") })] })] }) }), [classNamePopup, component, customDate.from, customDate.to, drivePopupClassName, driveWrapperPopupClassName, handleApplyClick, handleCancelClick, handleClearClick, hasApplyButton, isCustomDateOption, isDefaultState, isOpen, isValueNotChanged, selectedRange, title, translate]);
207
- const memoizedMobileFooter = (0, react_1.useMemo)(() => {
208
- const clearButton = (0, jsx_runtime_1.jsx)(button_1.Button, { type: buttonType_1.ButtonType.Tertiary, disabled: !!isDefaultState, onClick: handleClearClick, children: translate("Clear") });
209
- const cancelButton = hasApplyButton && !showMobileCalendar ? (0, jsx_runtime_1.jsx)(button_1.Button, { type: buttonType_1.ButtonType.Secondary, onClick: handleCancelClick, children: translate("Cancel") }) : null;
210
- const applyButton = showMobileCalendar || hasApplyButton ?
211
- (0, jsx_runtime_1.jsx)(button_1.Button, { type: buttonType_1.ButtonType.Primary, disabled: (isCustomDateOption && (!customDate.from || !customDate.to)) || isValueNotChanged || !selectedRange, onClick: handleApplyClick, children: translate("Apply") }) : null;
212
- return (0, jsx_runtime_1.jsxs)(footerButtons_1.FooterButtons, { children: [applyButton, cancelButton, clearButton] });
213
- }, [customDate.from, customDate.to, handleApplyClick, handleCancelClick, handleClearClick, hasApplyButton, isCustomDateOption, isDefaultState, isValueNotChanged, selectedRange,
214
- showMobileCalendar, translate]);
215
- const memoizedMobileView = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsxs)(mobileSheet_1.MobileSheet, { className: (0, classNames_1.classNames)(["zen-date-range-mobile-sheet", classNamePopup ? `${classNamePopup}--mobile-sheet` : ""]), label: translate("Date range"), triggerRef: triggerRef, isOpen: isOpen, onHidePanel: memoizedHandleClose, onCloseClick: memoizedHandleClose, useTrapFocusWithTrigger: false, preventFirstFocus: true, isBackVisible: showMobileCalendar, onBackClick: handleMobileBackClick, onReadyForFocus: onReadyForFocus, children: [(0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Title, { children: showMobileCalendar ? calendarLabel : title }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Content, { children: (0, jsx_runtime_1.jsx)("div", { ref: mobileContentRef, children: component }) }), (0, jsx_runtime_1.jsx)(mobileSheet_1.MobileSheet.Footer, { children: memoizedMobileFooter })] }), [calendarLabel, classNamePopup, component, handleMobileBackClick, isOpen, memoizedHandleClose, memoizedMobileFooter,
216
- onReadyForFocus, showMobileCalendar, title, translate, mobileContentRef]);
217
- const checkIsRangeDisable = (0, react_1.useCallback)((isIncrease) => {
218
- if (!selectedRange) {
219
- return true;
220
- }
221
- const step = previousStepOption.current ? previousStepOption.current : (0, getRangeOption_1.getDateRangeAdjustedStep)(translate, selectedRange.label);
222
- const adjustFn = getRangeOption_1.dateRangeAdjustedFn[step];
223
- const newValue = adjustFn({ from: selectedRange.from, to: selectedRange.to }, isIncrease, toLocalDateTime, toReverseOffsetDateTime);
224
- const normalizeNewValue = (0, normalizeDates_1.normalizeDates)(newValue.from.toISOString(), newValue.to.toISOString(), disableFutureDates, disablePastDates, disableDatesBefore, disableDatesAfter);
225
- return newValue.from.getTime() !== new Date(normalizeNewValue.from).getTime() || newValue.to.getTime() !== new Date(normalizeNewValue.to).getTime();
226
- }, [disableDatesAfter, disableDatesBefore, disableFutureDates, disablePastDates, selectedRange, toLocalDateTime, toReverseOffsetDateTime, translate]);
227
- const increaseRange = (0, react_1.useCallback)(() => {
228
- selectedRange && handleStepperClick(selectedRange, true);
229
- }, [handleStepperClick, selectedRange]);
230
- const decreaseRange = (0, react_1.useCallback)(() => {
231
- selectedRange && handleStepperClick(selectedRange, false);
232
- }, [handleStepperClick, selectedRange]);
233
- (0, react_1.useEffect)(() => {
234
- if (!isMobile && !isOpen && prevIsOpenRef.current) {
235
- setTimeout(() => {
236
- var _a;
237
- (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
238
- }, 0);
239
- }
240
- prevIsOpenRef.current = isOpen;
241
- }, [isOpen, isMobile]);
242
- const buttonLabel = (0, react_1.useMemo)(() => triggerLabel && !stepper ? triggerLabel : getButtonLabel((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value)), [getButtonLabel, optionsMap, value, triggerLabel, stepper]);
243
- const buttonTitle = (0, react_1.useMemo)(() => triggerLabel && !stepper ? triggerLabel : getButtonLabel((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value), true), [getButtonLabel, optionsMap, value, triggerLabel, stepper]);
244
- const currentLabel = (_a = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value)) === null || _a === void 0 ? void 0 : _a.label;
245
- const cssClass = (0, classNames_1.classNames)([
246
- "zen-date-range",
247
- error ? "zen-date-range--error" : "",
248
- className !== null && className !== void 0 ? className : "",
249
- stepper ? "zen-date-range--with-stepper" : "",
250
- stepper && currentLabel === dateRangeInner_1.CUSTOM_CALENDAR_ID && buttonLabel.length > 20 ? "zen-date-range--with-stepper-custom" : "",
251
- !defaultValue && !value || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.label) === currentLabel || type && type !== buttonType_1.ButtonType.Secondary ? "" : "zen-date-range--active"
252
- ]);
253
- const popupTriggerComponent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { onBlur: onBlur, name: name, htmlType: "button", title: buttonTitle, icon: iconCalendar_1.IconCalendar, iconPosition: textIconButton_1.ButtonIconPosition.Start, className: cssClass, type: type, disabled: disabled, onClick: toggleVisibility, ref: triggerRef, children: buttonLabel }), [onBlur, name, buttonTitle, cssClass, type, disabled, toggleVisibility, buttonLabel]);
254
- const chipTriggerComponent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(chip_1.Chip, { status: isDefaultState ? undefined : chipStatus || "active", title: isDefaultState ? chipName : buttonTitle, isOpen: isOpen, disabled: disabled, onClick: toggleVisibility, onClose: isDefaultState ? undefined : handleClearClick, triggerRef: triggerRef, icon: chipIcon || iconCalendar_1.IconCalendar, id: chipId, children: isDefaultState ? chipName : buttonLabel }), [isDefaultState, chipStatus, isOpen, disabled, toggleVisibility, handleClearClick, chipIcon, chipId, chipName, buttonLabel, buttonTitle]);
255
- if (isReadOnly) {
256
- return (0, jsx_runtime_1.jsx)(reviewTextControl_1.ReviewTextControl, { value: buttonLabel });
572
+ (_a = triggerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
573
+ }, 0);
257
574
  }
258
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [stepper ? (0, jsx_runtime_1.jsxs)("div", { className: (0, classNames_1.classNames)(["zen-date-range-wrapper", driveWrapperTriggerClassName || "", classNameWrapper || ""]), children: [(0, jsx_runtime_1.jsx)("button", { type: "button", disabled: checkIsRangeDisable(false), onClick: decreaseRange, className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--left"]), title: translate("Previous"), children: (0, jsx_runtime_1.jsx)(iconChevronLeftSmall_1.IconChevronLeftSmall, { size: isDrive ? "huge" : "large" }) }), popupTriggerComponent, (0, jsx_runtime_1.jsx)("button", { type: "button", disabled: checkIsRangeDisable(true), onClick: increaseRange, className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--right"]), title: translate("Next"), children: (0, jsx_runtime_1.jsx)(iconChevronRightSmall_1.IconChevronRightSmall, { size: isDrive ? "huge" : "large" }) })] }) : (chip ? chipTriggerComponent : popupTriggerComponent), isMobile ? memoizedMobileView : memoizedDesktopView] });
575
+ prevIsOpenRef.current = isOpen;
576
+ }, [isOpen, isMobile]);
577
+ const buttonLabel = (0, react_1.useMemo)(() => triggerLabel && !stepper ? triggerLabel : getButtonLabel((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value)), [getButtonLabel, optionsMap, value, triggerLabel, stepper]);
578
+ const buttonTitle = (0, react_1.useMemo)(() => triggerLabel && !stepper ? triggerLabel : getButtonLabel((0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value), true), [getButtonLabel, optionsMap, value, triggerLabel, stepper]);
579
+ const currentLabel = (_a = (0, getRangeOption_1.getSelectedRangeFromValue)(optionsMap, value)) === null || _a === void 0 ? void 0 : _a.label;
580
+ const cssClass = (0, classNames_1.classNames)(["zen-date-range", error ? "zen-date-range--error" : "", className !== null && className !== void 0 ? className : "", stepper ? "zen-date-range--with-stepper" : "", stepper && currentLabel === dateRangeInner_1.CUSTOM_CALENDAR_ID && buttonLabel.length > 20 ? "zen-date-range--with-stepper-custom" : "", !defaultValue && !value || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.label) === currentLabel || type && type !== buttonType_1.ButtonType.Secondary ? "" : "zen-date-range--active"]);
581
+ const popupTriggerComponent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, {
582
+ onBlur: onBlur,
583
+ name: name,
584
+ htmlType: "button",
585
+ title: buttonTitle,
586
+ icon: iconCalendar_1.IconCalendar,
587
+ iconPosition: textIconButton_1.ButtonIconPosition.Start,
588
+ className: cssClass,
589
+ type: type,
590
+ disabled: disabled,
591
+ onClick: toggleVisibility,
592
+ ref: triggerRef,
593
+ children: buttonLabel
594
+ }), [onBlur, name, buttonTitle, cssClass, type, disabled, toggleVisibility, buttonLabel]);
595
+ const chipTriggerComponent = (0, react_1.useMemo)(() => (0, jsx_runtime_1.jsx)(chip_1.Chip, {
596
+ status: isDefaultState ? undefined : chipStatus || "active",
597
+ title: isDefaultState ? chipName : buttonTitle,
598
+ isOpen: isOpen,
599
+ disabled: disabled,
600
+ onClick: toggleVisibility,
601
+ onClose: isDefaultState ? undefined : handleClearClick,
602
+ triggerRef: triggerRef,
603
+ icon: chipIcon || iconCalendar_1.IconCalendar,
604
+ id: chipId,
605
+ children: isDefaultState ? chipName : buttonLabel
606
+ }), [isDefaultState, chipStatus, isOpen, disabled, toggleVisibility, handleClearClick, chipIcon, chipId, chipName, buttonLabel, buttonTitle]);
607
+ if (isReadOnly) {
608
+ return (0, jsx_runtime_1.jsx)(reviewTextControl_1.ReviewTextControl, {
609
+ value: buttonLabel
610
+ });
611
+ }
612
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
613
+ children: [stepper ? (0, jsx_runtime_1.jsxs)("div", {
614
+ className: (0, classNames_1.classNames)(["zen-date-range-wrapper", driveWrapperTriggerClassName || "", classNameWrapper || ""]),
615
+ children: [(0, jsx_runtime_1.jsx)("button", {
616
+ type: "button",
617
+ disabled: checkIsRangeDisable(false),
618
+ onClick: decreaseRange,
619
+ className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--left"]),
620
+ title: translate("Previous"),
621
+ children: (0, jsx_runtime_1.jsx)(iconChevronLeftSmall_1.IconChevronLeftSmall, {
622
+ size: isDrive ? "huge" : "large"
623
+ })
624
+ }), popupTriggerComponent, (0, jsx_runtime_1.jsx)("button", {
625
+ type: "button",
626
+ disabled: checkIsRangeDisable(true),
627
+ onClick: increaseRange,
628
+ className: (0, classNames_1.classNames)(["zen-date-range__stepper", "zen-date-range__stepper--right"]),
629
+ title: translate("Next"),
630
+ children: (0, jsx_runtime_1.jsx)(iconChevronRightSmall_1.IconChevronRightSmall, {
631
+ size: isDrive ? "huge" : "large"
632
+ })
633
+ })]
634
+ }) : chip ? chipTriggerComponent : popupTriggerComponent, isMobile ? memoizedMobileView : memoizedDesktopView]
635
+ });
259
636
  };
260
637
  exports.DateRangeRaw = DateRangeRaw;
261
- exports.TRANSLATIONS = [
262
- "Custom",
263
- "Date range",
264
- "Clear",
265
- "Cancel",
266
- "Apply",
267
- "Reset",
268
- "Today",
269
- "Next",
270
- "Previous",
271
- "Choose dates",
272
- "Date range not available",
273
- "Choose your date range",
274
- "Some of the dates you selected aren’t available. Please try a different range.",
275
- "Please select the dates you want to view."
276
- ];
638
+ exports.TRANSLATIONS = ["Custom", "Date range", "Clear", "Cancel", "Apply", "Reset", "Today", "Next", "Previous", "Choose dates", "Date range not available", "Choose your date range", "Some of the dates you selected aren’t available. Please try a different range.", "Please select the dates you want to view."];