@geotab/zenith 3.1.1-beta.6 → 3.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/README.md +20 -0
  2. package/dist/advancedGroupsFilter/advancedGroupsFilter.js +136 -30
  3. package/dist/advancedGroupsFilter/advancedGroupsFilterForm.js +139 -34
  4. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +352 -87
  5. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  6. package/dist/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +83 -9
  7. package/dist/alertRaw/alertRaw.js +175 -54
  8. package/dist/banner/bannerMultipLine.js +131 -23
  9. package/dist/banner/bannerSingleLine.js +110 -16
  10. package/dist/betaPill/betaPill.js +111 -20
  11. package/dist/bookmark/bookmark.js +95 -28
  12. package/dist/bulkEditControl/bulkEditControl.js +167 -34
  13. package/dist/calendar/calendar.js +943 -273
  14. package/dist/calendar/calendarUtils.js +157 -85
  15. package/dist/card/card.js +268 -123
  16. package/dist/chart/accessibleChart/accessibleChartNarrative.js +648 -555
  17. package/dist/chart/accessibleChart/accessibleChartTable.js +245 -86
  18. package/dist/chart/chart.js +36 -21
  19. package/dist/chart/chartAxis/chartAxis.js +85 -7
  20. package/dist/checkboxListWithAction/checkboxListWithAction.js +224 -69
  21. package/dist/chip/chip.js +195 -91
  22. package/dist/columnsSelector/columnsSelector.js +97 -12
  23. package/dist/columnsSelector/columnsTab/columnsTab.js +59 -15
  24. package/dist/columnsSelector/columnsTabGroup/columnsTabGroup.js +81 -34
  25. package/dist/comboboxSelected/comboboxSelected.js +1 -3
  26. package/dist/dataFeed/feedExpandControl/feedExpandControl.js +25 -10
  27. package/dist/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +92 -11
  28. package/dist/dataGrid/dataGrid.js +227 -117
  29. package/dist/dataGrid/emptySearchList/emptySearchList.js +56 -9
  30. package/dist/dataGrid/entitiesListActions/actions/columnsListButton.js +51 -7
  31. package/dist/dataGrid/entitiesListActions/actions/fullscreenButton.js +64 -18
  32. package/dist/dataGrid/withFlexibleColumns/components/columnSettings.js +84 -10
  33. package/dist/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +48 -16
  34. package/dist/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +223 -32
  35. package/dist/dataGrid/withSelectableRows/withSelectableRows.js +286 -213
  36. package/dist/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +178 -95
  37. package/dist/dateInputInner/dateInputInner.js +791 -476
  38. package/dist/dateInputInner/dateInputInnerControlBlock.js +125 -22
  39. package/dist/dateInputRaw/dateInputRaw.js +315 -104
  40. package/dist/dateInputRaw/utils/getLabel.js +38 -7
  41. package/dist/dateRangeInner/dateRangeInner.js +172 -58
  42. package/dist/dateRangeRaw/dateRangeRaw.js +601 -239
  43. package/dist/dateRangeRaw/utils/dateRangeUtils.js +629 -241
  44. package/dist/dateSelectionWrapper/dateSelectionWrapper.js +152 -14
  45. package/dist/dialog/dialogContent.js +123 -40
  46. package/dist/dropdownRaw/dropdownHelper.d.ts +2 -2
  47. package/dist/dropdownRaw/dropdownHelper.js +9 -9
  48. package/dist/dropdownRaw/dropdownList.js +447 -78
  49. package/dist/dropdownRaw/dropdownPopup.js +218 -20
  50. package/dist/dropdownRaw/dropdownRaw.js +866 -506
  51. package/dist/dropdownRaw/dropdownSearchableTrigger.js +223 -46
  52. package/dist/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  53. package/dist/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  54. package/dist/dropdownRaw/stateReducer/stateActionType.js +1 -0
  55. package/dist/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  56. package/dist/dropdownRaw/stateReducer/stateReducer.js +24 -12
  57. package/dist/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  58. package/dist/dropdownRaw/stateReducer/stateReducerHelper.js +20 -1
  59. package/dist/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  60. package/dist/dropdownRaw/stateReducer/stateReducerTestData.js +74 -0
  61. package/dist/dropdownRaw/types.d.ts +1 -0
  62. package/dist/favoriteButton/favoriteButton.js +59 -10
  63. package/dist/filters/components/filtersContainer.js +151 -64
  64. package/dist/filters/components/filtersEmptySelectedList.js +30 -4
  65. package/dist/filters/components/filtersSaveModal.js +140 -42
  66. package/dist/filters/components/filtersSavedChipComponent.js +318 -108
  67. package/dist/filters/components/filtersSearchItemData.js +127 -47
  68. package/dist/filters/components/filtersSearchList.js +381 -179
  69. package/dist/filters/components/filtersSelect.js +128 -61
  70. package/dist/filters/components/filtersSelectListItem.js +125 -13
  71. package/dist/filters/components/filtersSidePanel.js +510 -178
  72. package/dist/filters/filters.js +445 -268
  73. package/dist/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +729 -272
  74. package/dist/filtersBar/components/resetComponentButton.js +45 -5
  75. package/dist/filtersBar/filtersBarActions/filtersBarActions.js +126 -15
  76. package/dist/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +155 -49
  77. package/dist/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +360 -104
  78. package/dist/filtersBar/filtersContainer/filtersContainer.js +204 -134
  79. package/dist/formField/components/formFieldWithLabel.d.ts +2 -1
  80. package/dist/formField/components/formFieldWithLabel.js +3 -2
  81. package/dist/formField/components/formFieldWithoutLabel.d.ts +2 -1
  82. package/dist/formField/components/formFieldWithoutLabel.js +3 -3
  83. package/dist/formField/components/trailingComponent.d.ts +8 -0
  84. package/dist/formField/components/trailingComponent.js +11 -0
  85. package/dist/formField/formField.js +12 -11
  86. package/dist/formField/hooks/useError.js +100 -36
  87. package/dist/formGroup/components/reviewListToggle/reviewListToggle.js +72 -7
  88. package/dist/formGroup/hooks/useToggle.js +37 -11
  89. package/dist/formGroup/utils/getControls.js +8 -7
  90. package/dist/formLayout/hooks/useError.js +55 -15
  91. package/dist/formLayout/hooks/useFormButtons.js +128 -27
  92. package/dist/formSection/components/formSectionModal.js +1 -1
  93. package/dist/formSection/formSection.js +1 -1
  94. package/dist/formSection/hooks/useError.js +70 -22
  95. package/dist/formStepper/components/formStep.js +65 -10
  96. package/dist/formStepper/formStepper.js +129 -33
  97. package/dist/formStepperButtons/formStepperButtons.js +184 -38
  98. package/dist/groupsFilter/groupsHelper.d.ts +1 -1
  99. package/dist/groupsFilterRaw/groupsFilterAdjustmentState.js +162 -17
  100. package/dist/groupsFilterRaw/groupsFilterBox.js +137 -32
  101. package/dist/groupsFilterRaw/groupsFilterCommon.js +75 -8
  102. package/dist/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +184 -25
  103. package/dist/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  104. package/dist/groupsFilterRaw/groupsFilterHelper.js +284 -168
  105. package/dist/groupsFilterRaw/groupsFilterInitialState.js +266 -18
  106. package/dist/groupsFilterRaw/groupsFilterMenu.js +124 -9
  107. package/dist/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  108. package/dist/groupsFilterRaw/groupsFilterRaw.js +816 -308
  109. package/dist/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  110. package/dist/groupsFilterRaw/groupsFilterTestData.js +153 -58
  111. package/dist/groupsFilterRaw/groupsFilterTrigger.js +139 -35
  112. package/dist/groupsFilterRaw/groupsHelper.js +739 -208
  113. package/dist/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  114. package/dist/groupsFilterRaw/types.d.ts +1 -0
  115. package/dist/header/components/collapsedItemsControl/collapsedItemsControl.js +107 -52
  116. package/dist/header/components/mobileFilterControl/mobileFilterControl.js +62 -9
  117. package/dist/header/components/mobileSearchControl/mobileSearchControl.js +119 -14
  118. package/dist/header/headerBack.js +64 -20
  119. package/dist/index.css +110 -71
  120. package/dist/index.d.ts +1 -0
  121. package/dist/index.js +4 -1
  122. package/dist/list/itemData/itemDataInternal.js +216 -51
  123. package/dist/list/listItem/listItem.js +168 -55
  124. package/dist/menu/components/menuErrorItem.js +33 -5
  125. package/dist/mobileSheet/mobileSheet.js +195 -69
  126. package/dist/modal/modal.js +300 -142
  127. package/dist/nav/nav.js +1 -1
  128. package/dist/nav/navFooter/navFooter.js +82 -39
  129. package/dist/nav/navFooter/navFooterAction/navFooterAction.js +52 -13
  130. package/dist/nav/navHeader/navHeader.js +86 -36
  131. package/dist/nav/navHeader/navHeaderSearch/navHeaderSearch.js +88 -29
  132. package/dist/nav/navItem/navItem.d.ts +3 -3
  133. package/dist/nav/navItem/navItem.js +35 -33
  134. package/dist/nav/navMobileBar/navMobileBar.js +67 -21
  135. package/dist/notification/notification.js +124 -21
  136. package/dist/pagination/paginationArrow.js +81 -11
  137. package/dist/pagination/paginationText/paginationText.js +45 -11
  138. package/dist/pill/components/pillNonActionable/pillNonActionable.js +93 -24
  139. package/dist/pillBox/components/pillBoxItem.js +52 -9
  140. package/dist/pillBox/pillBox.js +121 -20
  141. package/dist/pillExpandable/pillExpandable.js +333 -139
  142. package/dist/rangeRaw/rangeRaw.js +486 -141
  143. package/dist/rangeRaw/utils/rangeHelper.js +209 -39
  144. package/dist/searchInputRaw/searchInputRaw.js +180 -65
  145. package/dist/skeleton/skeleton.js +51 -6
  146. package/dist/sortControl/sortControl.js +152 -42
  147. package/dist/stepperRaw/stepperRaw.js +116 -42
  148. package/dist/summary/summary.js +94 -8
  149. package/dist/table/actions/actionsMenu.js +171 -78
  150. package/dist/table/flexible/columnSettings.js +80 -10
  151. package/dist/table/flexible/columnsList.js +110 -43
  152. package/dist/table/flexible/columnsPopup.js +77 -20
  153. package/dist/table/nested/useNestedRows.js +167 -77
  154. package/dist/table/selectable/selectableHeader.js +180 -41
  155. package/dist/table/selectable/useSelectableRows.js +270 -191
  156. package/dist/table/sortable/sortableHeader.js +153 -75
  157. package/dist/tabs/tabs.js +227 -118
  158. package/dist/timePickerRaw/timePickerRaw.js +278 -58
  159. package/dist/toastRaw/toastRaw.js +138 -32
  160. package/dist/toggleButton/toggleButton.d.ts +0 -1
  161. package/dist/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  162. package/dist/toggleButtonRaw/toggleButtonRaw.js +146 -40
  163. package/dist/utils/formatDate.js +1001 -117
  164. package/{esm/utils/localization/translations/cs-json.js → dist/utils/localization/translations/cs.json} +11 -12
  165. package/{esm/utils/localization/translations/da-DK-json.js → dist/utils/localization/translations/da-DK.json} +31 -23
  166. package/{esm/utils/localization/translations/de-json.js → dist/utils/localization/translations/de.json} +12 -13
  167. package/dist/utils/localization/translations/en.json +308 -0
  168. package/{esm/utils/localization/translations/es-json.js → dist/utils/localization/translations/es.json} +11 -12
  169. package/{esm/utils/localization/translations/fi-FI-json.js → dist/utils/localization/translations/fi-FI.json} +31 -23
  170. package/{esm/utils/localization/translations/fr-FR-json.js → dist/utils/localization/translations/fr-FR.json} +12 -12
  171. package/{esm/utils/localization/translations/fr-json.js → dist/utils/localization/translations/fr.json} +11 -12
  172. package/{esm/utils/localization/translations/hu-HU-json.js → dist/utils/localization/translations/hu-HU.json} +31 -23
  173. package/{esm/utils/localization/translations/id-json.js → dist/utils/localization/translations/id.json} +11 -13
  174. package/{esm/utils/localization/translations/it-json.js → dist/utils/localization/translations/it.json} +11 -12
  175. package/{esm/utils/localization/translations/ja-json.js → dist/utils/localization/translations/ja.json} +11 -12
  176. package/{esm/utils/localization/translations/ko-KR-json.js → dist/utils/localization/translations/ko-KR.json} +24 -23
  177. package/{esm/utils/localization/translations/ms-json.js → dist/utils/localization/translations/ms.json} +11 -12
  178. package/{esm/utils/localization/translations/nb-NO-json.js → dist/utils/localization/translations/nb-NO.json} +31 -23
  179. package/{esm/utils/localization/translations/nl-json.js → dist/utils/localization/translations/nl.json} +11 -12
  180. package/{esm/utils/localization/translations/pl-json.js → dist/utils/localization/translations/pl.json} +11 -12
  181. package/{esm/utils/localization/translations/pt-BR-json.js → dist/utils/localization/translations/pt-BR.json} +11 -12
  182. package/{esm/utils/localization/translations/sk-SK-json.js → dist/utils/localization/translations/sk-SK.json} +31 -23
  183. package/{esm/utils/localization/translations/sv-json.js → dist/utils/localization/translations/sv.json} +11 -12
  184. package/{esm/utils/localization/translations/th-json.js → dist/utils/localization/translations/th.json} +11 -12
  185. package/{esm/utils/localization/translations/tr-json.js → dist/utils/localization/translations/tr.json} +11 -12
  186. package/{esm/utils/localization/translations/zh-Hans-json.js → dist/utils/localization/translations/zh-Hans.json} +11 -12
  187. package/{esm/utils/localization/translations/zh-TW-json.js → dist/utils/localization/translations/zh-TW.json} +11 -23
  188. package/dist/utils/localization/translationsDictionary.d.ts +2 -0
  189. package/dist/utils/localization/translationsDictionary.js +63 -0
  190. package/dist/utils/localization/useLanguage.js +2 -74
  191. package/esm/advancedGroupsFilter/advancedGroupsFilter.js +130 -29
  192. package/esm/advancedGroupsFilter/advancedGroupsFilterForm.js +133 -33
  193. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +317 -65
  194. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.d.ts +0 -1
  195. package/esm/advancedGroupsFilter/advancedGroupsFilterSectionTooltip.js +77 -8
  196. package/esm/alertRaw/alertRaw.js +165 -51
  197. package/esm/banner/bannerMultipLine.js +121 -20
  198. package/esm/banner/bannerSingleLine.js +100 -13
  199. package/esm/betaPill/betaPill.js +105 -19
  200. package/esm/bookmark/bookmark.js +89 -27
  201. package/esm/bulkEditControl/bulkEditControl.js +161 -33
  202. package/esm/calendar/calendar.js +937 -272
  203. package/esm/calendar/calendarUtils.js +151 -84
  204. package/esm/card/card.js +233 -101
  205. package/esm/chart/accessibleChart/accessibleChartNarrative.js +642 -554
  206. package/esm/chart/accessibleChart/accessibleChartTable.js +239 -85
  207. package/esm/chart/chart.js +30 -20
  208. package/esm/chart/chartAxis/chartAxis.js +79 -6
  209. package/esm/checkboxListWithAction/checkboxListWithAction.js +218 -68
  210. package/esm/chip/chip.js +189 -90
  211. package/esm/columnsSelector/columnsSelector.js +91 -11
  212. package/esm/columnsSelector/columnsTab/columnsTab.js +53 -14
  213. package/esm/columnsSelector/columnsTabGroup/columnsTabGroup.js +75 -33
  214. package/esm/comboboxSelected/comboboxSelected.js +1 -3
  215. package/esm/dataFeed/feedExpandControl/feedExpandControl.js +21 -9
  216. package/esm/dataGrid/columns/checkboxColumn/checkboxHeaderCell.js +86 -10
  217. package/esm/dataGrid/dataGrid.js +221 -116
  218. package/esm/dataGrid/emptySearchList/emptySearchList.js +50 -8
  219. package/esm/dataGrid/entitiesListActions/actions/columnsListButton.js +45 -6
  220. package/esm/dataGrid/entitiesListActions/actions/fullscreenButton.js +58 -17
  221. package/esm/dataGrid/withFlexibleColumns/components/columnSettings.js +78 -9
  222. package/esm/dataGrid/withFlexibleColumns/components/columnSettingsSidePanel.js +44 -15
  223. package/esm/dataGrid/withSelectableRows/components/bulkActions/bulkActions.js +217 -31
  224. package/esm/dataGrid/withSelectableRows/withSelectableRows.js +280 -212
  225. package/esm/dataGrid/withSortableColumns/columns/sortableColumnWrapper.js +172 -94
  226. package/esm/dateInputInner/dateInputInner.js +785 -475
  227. package/esm/dateInputInner/dateInputInnerControlBlock.js +119 -21
  228. package/esm/dateInputRaw/dateInputRaw.js +309 -103
  229. package/esm/dateInputRaw/utils/getLabel.js +32 -6
  230. package/esm/dateRangeInner/dateRangeInner.js +166 -57
  231. package/esm/dateRangeRaw/dateRangeRaw.js +595 -238
  232. package/esm/dateRangeRaw/utils/dateRangeUtils.js +622 -239
  233. package/esm/dateSelectionWrapper/dateSelectionWrapper.js +146 -13
  234. package/esm/dialog/dialogContent.js +117 -39
  235. package/esm/dropdownRaw/dropdownHelper.d.ts +2 -2
  236. package/esm/dropdownRaw/dropdownHelper.js +10 -10
  237. package/esm/dropdownRaw/dropdownList.js +412 -56
  238. package/esm/dropdownRaw/dropdownPopup.js +212 -19
  239. package/esm/dropdownRaw/dropdownRaw.js +862 -507
  240. package/esm/dropdownRaw/dropdownSearchableTrigger.js +217 -45
  241. package/esm/dropdownRaw/stateReducer/stateAction.d.ts +5 -1
  242. package/esm/dropdownRaw/stateReducer/stateActionType.d.ts +2 -1
  243. package/esm/dropdownRaw/stateReducer/stateActionType.js +1 -0
  244. package/esm/dropdownRaw/stateReducer/stateReducer.d.ts +6 -1
  245. package/esm/dropdownRaw/stateReducer/stateReducer.js +24 -12
  246. package/esm/dropdownRaw/stateReducer/stateReducerHelper.d.ts +2 -0
  247. package/esm/dropdownRaw/stateReducer/stateReducerHelper.js +18 -0
  248. package/esm/dropdownRaw/stateReducer/stateReducerTestData.d.ts +39 -0
  249. package/esm/dropdownRaw/stateReducer/stateReducerTestData.js +71 -0
  250. package/esm/dropdownRaw/types.d.ts +1 -0
  251. package/esm/favoriteButton/favoriteButton.js +53 -9
  252. package/esm/filters/components/filtersContainer.js +141 -61
  253. package/esm/filters/components/filtersEmptySelectedList.js +24 -3
  254. package/esm/filters/components/filtersSaveModal.js +134 -41
  255. package/esm/filters/components/filtersSavedChipComponent.js +312 -107
  256. package/esm/filters/components/filtersSearchItemData.js +121 -46
  257. package/esm/filters/components/filtersSearchList.js +375 -178
  258. package/esm/filters/components/filtersSelect.js +122 -60
  259. package/esm/filters/components/filtersSelectListItem.js +119 -12
  260. package/esm/filters/components/filtersSidePanel.js +504 -177
  261. package/esm/filters/filters.js +435 -265
  262. package/esm/filtersBar/components/filtersBarPeriodPicker/getRangeOption.js +722 -270
  263. package/esm/filtersBar/components/resetComponentButton.js +39 -4
  264. package/esm/filtersBar/filtersBarActions/filtersBarActions.js +120 -14
  265. package/esm/filtersBar/filtersBarSidePanel/components/filtersBarSidePanelRange/filtersBarSidePanelRange.js +149 -48
  266. package/esm/filtersBar/filtersBarSidePanel/filtersBarSidePanel.js +354 -103
  267. package/esm/filtersBar/filtersContainer/filtersContainer.js +198 -133
  268. package/esm/formField/components/formFieldWithLabel.d.ts +2 -1
  269. package/esm/formField/components/formFieldWithLabel.js +3 -2
  270. package/esm/formField/components/formFieldWithoutLabel.d.ts +2 -1
  271. package/esm/formField/components/formFieldWithoutLabel.js +3 -3
  272. package/esm/formField/components/trailingComponent.d.ts +8 -0
  273. package/esm/formField/components/trailingComponent.js +7 -0
  274. package/esm/formField/formField.js +12 -11
  275. package/esm/formField/hooks/useError.js +94 -35
  276. package/esm/formGroup/components/reviewListToggle/reviewListToggle.js +66 -6
  277. package/esm/formGroup/hooks/useToggle.js +31 -10
  278. package/esm/formGroup/utils/getControls.js +8 -7
  279. package/esm/formLayout/hooks/useError.js +49 -14
  280. package/esm/formLayout/hooks/useFormButtons.js +122 -26
  281. package/esm/formSection/components/formSectionModal.js +1 -1
  282. package/esm/formSection/formSection.js +1 -1
  283. package/esm/formSection/hooks/useError.js +64 -21
  284. package/esm/formStepper/components/formStep.js +59 -9
  285. package/esm/formStepper/formStepper.js +123 -32
  286. package/esm/formStepperButtons/formStepperButtons.js +178 -37
  287. package/esm/groupsFilter/groupsHelper.d.ts +1 -1
  288. package/esm/groupsFilterRaw/groupsFilterAdjustmentState.js +152 -14
  289. package/esm/groupsFilterRaw/groupsFilterBox.js +131 -31
  290. package/esm/groupsFilterRaw/groupsFilterCommon.js +69 -7
  291. package/esm/groupsFilterRaw/groupsFilterCurrentlySelectedState.js +178 -24
  292. package/esm/groupsFilterRaw/groupsFilterHelper.d.ts +2 -1
  293. package/esm/groupsFilterRaw/groupsFilterHelper.js +279 -168
  294. package/esm/groupsFilterRaw/groupsFilterInitialState.js +260 -17
  295. package/esm/groupsFilterRaw/groupsFilterMenu.js +118 -8
  296. package/esm/groupsFilterRaw/groupsFilterRaw.d.ts +1 -0
  297. package/esm/groupsFilterRaw/groupsFilterRaw.js +811 -308
  298. package/esm/groupsFilterRaw/groupsFilterTestData.d.ts +155 -2
  299. package/esm/groupsFilterRaw/groupsFilterTestData.js +152 -57
  300. package/esm/groupsFilterRaw/groupsFilterTrigger.js +133 -34
  301. package/esm/groupsFilterRaw/groupsHelper.js +733 -207
  302. package/esm/groupsFilterRaw/stateReducer/stateReducerHelper.js +3 -1
  303. package/esm/groupsFilterRaw/types.d.ts +1 -0
  304. package/esm/header/components/collapsedItemsControl/collapsedItemsControl.js +101 -51
  305. package/esm/header/components/mobileFilterControl/mobileFilterControl.js +56 -8
  306. package/esm/header/components/mobileSearchControl/mobileSearchControl.js +113 -13
  307. package/esm/header/headerBack.js +58 -19
  308. package/esm/index.d.ts +1 -0
  309. package/esm/index.js +1 -0
  310. package/esm/list/itemData/itemDataInternal.js +210 -50
  311. package/esm/list/listItem/listItem.js +162 -54
  312. package/esm/menu/components/menuErrorItem.js +27 -4
  313. package/esm/mobileSheet/mobileSheet.js +189 -68
  314. package/esm/modal/modal.js +265 -120
  315. package/esm/nav/nav.js +1 -1
  316. package/esm/nav/navFooter/navFooter.js +76 -38
  317. package/esm/nav/navFooter/navFooterAction/navFooterAction.js +46 -12
  318. package/esm/nav/navHeader/navHeader.js +80 -35
  319. package/esm/nav/navHeader/navHeaderSearch/navHeaderSearch.js +82 -28
  320. package/esm/nav/navItem/navItem.d.ts +3 -3
  321. package/esm/nav/navItem/navItem.js +35 -33
  322. package/esm/nav/navMobileBar/navMobileBar.js +61 -20
  323. package/esm/notification/notification.js +114 -18
  324. package/esm/pagination/paginationArrow.js +75 -10
  325. package/esm/pagination/paginationText/paginationText.js +39 -10
  326. package/esm/pill/components/pillNonActionable/pillNonActionable.js +87 -23
  327. package/esm/pillBox/components/pillBoxItem.js +46 -8
  328. package/esm/pillBox/pillBox.js +115 -19
  329. package/esm/pillExpandable/pillExpandable.js +327 -138
  330. package/esm/rangeRaw/rangeRaw.js +480 -140
  331. package/esm/rangeRaw/utils/rangeHelper.js +203 -38
  332. package/esm/searchInputRaw/searchInputRaw.js +145 -43
  333. package/esm/skeleton/skeleton.js +45 -5
  334. package/esm/sortControl/sortControl.js +146 -41
  335. package/esm/stepperRaw/stepperRaw.js +112 -41
  336. package/esm/storybookHelpers/dataGridWithDifferentCellOptions/components/EntitiesListAction.js +178 -19
  337. package/esm/summary/summary.js +88 -7
  338. package/esm/table/actions/actionsMenu.js +165 -77
  339. package/esm/table/flexible/columnSettings.js +74 -9
  340. package/esm/table/flexible/columnsList.js +104 -42
  341. package/esm/table/flexible/columnsPopup.js +71 -19
  342. package/esm/table/nested/useNestedRows.js +161 -76
  343. package/esm/table/selectable/selectableHeader.js +174 -40
  344. package/esm/table/selectable/useSelectableRows.js +264 -190
  345. package/esm/table/sortable/sortableHeader.js +147 -74
  346. package/esm/tabs/tabs.js +221 -117
  347. package/esm/timePickerRaw/timePickerRaw.js +272 -57
  348. package/esm/toastRaw/toastRaw.js +132 -31
  349. package/esm/toggleButton/toggleButton.d.ts +0 -1
  350. package/esm/toggleButtonRaw/toggleButtonRaw.d.ts +1 -0
  351. package/esm/toggleButtonRaw/toggleButtonRaw.js +111 -18
  352. package/esm/utils/formatDate.js +995 -116
  353. package/{dist/utils/localization/translations/cs-json.js → esm/utils/localization/translations/cs.json} +11 -15
  354. package/{dist/utils/localization/translations/da-DK-json.js → esm/utils/localization/translations/da-DK.json} +31 -26
  355. package/{dist/utils/localization/translations/de-json.js → esm/utils/localization/translations/de.json} +12 -16
  356. package/esm/utils/localization/translations/en.json +308 -0
  357. package/{dist/utils/localization/translations/es-json.js → esm/utils/localization/translations/es.json} +11 -15
  358. package/{dist/utils/localization/translations/fi-FI-json.js → esm/utils/localization/translations/fi-FI.json} +31 -26
  359. package/{dist/utils/localization/translations/fr-FR-json.js → esm/utils/localization/translations/fr-FR.json} +12 -15
  360. package/{dist/utils/localization/translations/fr-json.js → esm/utils/localization/translations/fr.json} +11 -15
  361. package/{dist/utils/localization/translations/hu-HU-json.js → esm/utils/localization/translations/hu-HU.json} +31 -26
  362. package/{dist/utils/localization/translations/id-json.js → esm/utils/localization/translations/id.json} +11 -16
  363. package/{dist/utils/localization/translations/it-json.js → esm/utils/localization/translations/it.json} +11 -15
  364. package/{dist/utils/localization/translations/ja-json.js → esm/utils/localization/translations/ja.json} +11 -15
  365. package/{dist/utils/localization/translations/ko-KR-json.js → esm/utils/localization/translations/ko-KR.json} +24 -26
  366. package/{dist/utils/localization/translations/ms-json.js → esm/utils/localization/translations/ms.json} +11 -15
  367. package/{dist/utils/localization/translations/nb-NO-json.js → esm/utils/localization/translations/nb-NO.json} +31 -26
  368. package/{dist/utils/localization/translations/nl-json.js → esm/utils/localization/translations/nl.json} +11 -15
  369. package/{dist/utils/localization/translations/pl-json.js → esm/utils/localization/translations/pl.json} +11 -15
  370. package/{dist/utils/localization/translations/pt-BR-json.js → esm/utils/localization/translations/pt-BR.json} +11 -15
  371. package/{dist/utils/localization/translations/sk-SK-json.js → esm/utils/localization/translations/sk-SK.json} +31 -26
  372. package/{dist/utils/localization/translations/sv-json.js → esm/utils/localization/translations/sv.json} +11 -15
  373. package/{dist/utils/localization/translations/th-json.js → esm/utils/localization/translations/th.json} +11 -15
  374. package/{dist/utils/localization/translations/tr-json.js → esm/utils/localization/translations/tr.json} +11 -15
  375. package/{dist/utils/localization/translations/zh-Hans-json.js → esm/utils/localization/translations/zh-Hans.json} +11 -15
  376. package/{dist/utils/localization/translations/zh-TW-json.js → esm/utils/localization/translations/zh-TW.json} +11 -26
  377. package/esm/utils/localization/translationsDictionary.d.ts +2 -0
  378. package/esm/utils/localization/translationsDictionary.js +59 -0
  379. package/esm/utils/localization/useLanguage.js +1 -50
  380. package/package.json +17 -10
  381. package/dist/utils/localization/translations/cs-json.d.ts +0 -251
  382. package/dist/utils/localization/translations/da-DK-json.d.ts +0 -252
  383. package/dist/utils/localization/translations/de-json.d.ts +0 -251
  384. package/dist/utils/localization/translations/en-json.d.ts +0 -314
  385. package/dist/utils/localization/translations/en-json.js +0 -317
  386. package/dist/utils/localization/translations/es-json.d.ts +0 -251
  387. package/dist/utils/localization/translations/fi-FI-json.d.ts +0 -252
  388. package/dist/utils/localization/translations/fr-FR-json.d.ts +0 -250
  389. package/dist/utils/localization/translations/fr-json.d.ts +0 -251
  390. package/dist/utils/localization/translations/hu-HU-json.d.ts +0 -252
  391. package/dist/utils/localization/translations/id-json.d.ts +0 -252
  392. package/dist/utils/localization/translations/it-json.d.ts +0 -251
  393. package/dist/utils/localization/translations/ja-json.d.ts +0 -251
  394. package/dist/utils/localization/translations/ko-KR-json.d.ts +0 -258
  395. package/dist/utils/localization/translations/ms-json.d.ts +0 -251
  396. package/dist/utils/localization/translations/nb-NO-json.d.ts +0 -252
  397. package/dist/utils/localization/translations/nl-json.d.ts +0 -251
  398. package/dist/utils/localization/translations/pl-json.d.ts +0 -251
  399. package/dist/utils/localization/translations/pt-BR-json.d.ts +0 -251
  400. package/dist/utils/localization/translations/sk-SK-json.d.ts +0 -251
  401. package/dist/utils/localization/translations/sv-json.d.ts +0 -251
  402. package/dist/utils/localization/translations/th-json.d.ts +0 -251
  403. package/dist/utils/localization/translations/tr-json.d.ts +0 -251
  404. package/dist/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  405. package/dist/utils/localization/translations/zh-TW-json.d.ts +0 -271
  406. package/esm/utils/localization/translations/cs-json.d.ts +0 -251
  407. package/esm/utils/localization/translations/da-DK-json.d.ts +0 -252
  408. package/esm/utils/localization/translations/de-json.d.ts +0 -251
  409. package/esm/utils/localization/translations/en-json.d.ts +0 -314
  410. package/esm/utils/localization/translations/en-json.js +0 -314
  411. package/esm/utils/localization/translations/es-json.d.ts +0 -251
  412. package/esm/utils/localization/translations/fi-FI-json.d.ts +0 -252
  413. package/esm/utils/localization/translations/fr-FR-json.d.ts +0 -250
  414. package/esm/utils/localization/translations/fr-json.d.ts +0 -251
  415. package/esm/utils/localization/translations/hu-HU-json.d.ts +0 -252
  416. package/esm/utils/localization/translations/id-json.d.ts +0 -252
  417. package/esm/utils/localization/translations/it-json.d.ts +0 -251
  418. package/esm/utils/localization/translations/ja-json.d.ts +0 -251
  419. package/esm/utils/localization/translations/ko-KR-json.d.ts +0 -258
  420. package/esm/utils/localization/translations/ms-json.d.ts +0 -251
  421. package/esm/utils/localization/translations/nb-NO-json.d.ts +0 -252
  422. package/esm/utils/localization/translations/nl-json.d.ts +0 -251
  423. package/esm/utils/localization/translations/pl-json.d.ts +0 -251
  424. package/esm/utils/localization/translations/pt-BR-json.d.ts +0 -251
  425. package/esm/utils/localization/translations/sk-SK-json.d.ts +0 -251
  426. package/esm/utils/localization/translations/sv-json.d.ts +0 -251
  427. package/esm/utils/localization/translations/th-json.d.ts +0 -251
  428. package/esm/utils/localization/translations/tr-json.d.ts +0 -251
  429. package/esm/utils/localization/translations/zh-Hans-json.d.ts +0 -251
  430. package/esm/utils/localization/translations/zh-TW-json.d.ts +0 -271
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { useCallback, useMemo, useState } from "react";
3
4
  import { ColumnSortDirection } from "./interfaces";
@@ -6,87 +7,159 @@ import { IconFilter3Asc } from "../../icons/iconFilter3Asc";
6
7
  import { useLanguage } from "../../utils/localization/useLanguage";
7
8
  import { IconFilter3Desc } from "../../icons/iconFilter3Desc";
8
9
  import { classNames } from "../../commonHelpers/classNames/classNames";
10
+ injectString("cs", "Sort by {COLUMN_NAME} descending", "Se\u0159adit sestupn\u011B podle {COLUMN_NAME}");
11
+ injectString("da-DK", "Sort by {COLUMN_NAME} descending", "Sorter efter {COLUMN_NAME} faldende");
12
+ injectString("de", "Sort by {COLUMN_NAME} descending", "Absteigend nach {COLUMN_NAME} sortieren");
13
+ injectString("en", "Sort by {COLUMN_NAME} descending", "Sort by {COLUMN_NAME} descending");
14
+ injectString("es", "Sort by {COLUMN_NAME} descending", "Ordenar por {COLUMN_NAME} de manera descendente");
15
+ injectString("fi-FI", "Sort by {COLUMN_NAME} descending", "J\xE4rjest\xE4 {COLUMN_NAME} laskevasti");
16
+ injectString("fr", "Sort by {COLUMN_NAME} descending", "Trier par {COLUMN_NAME} en ordre d\xE9croissant");
17
+ injectString("fr-FR", "Sort by {COLUMN_NAME} descending", "Trier par {COLUMN_NAME} d\xE9croissant");
18
+ injectString("hu-HU", "Sort by {COLUMN_NAME} descending", "Rendezd cs\xF6kken\u0151 sorrendben a(z) {COLUMN_NAME} alapj\xE1n.");
19
+ injectString("id", "Sort by {COLUMN_NAME} descending", "Urutkan menurut {COLUMN_NAME} ke bawah");
20
+ injectString("it", "Sort by {COLUMN_NAME} descending", "Consente di ordinare per {COLUMN_NAME} in ordine decrescente");
21
+ injectString("ja", "Sort by {COLUMN_NAME} descending", "{COLUMN_NAME} \u3092\u964D\u9806\u3067\u30BD\u30FC\u30C8");
22
+ injectString("ko-KR", "Sort by {COLUMN_NAME} descending", "{COLUMN_NAME} \uC5F4\uC744 \uB0B4\uB9BC\uCC28\uC21C\uC73C\uB85C \uC815\uB82C");
23
+ injectString("ms", "Sort by {COLUMN_NAME} descending", "Isih mengikut {COLUMN_NAME} secara menurun");
24
+ injectString("nb-NO", "Sort by {COLUMN_NAME} descending", "Sorter etter {COLUMN_NAME} fallende");
25
+ injectString("nl", "Sort by {COLUMN_NAME} descending", "Sorteren op {COLUMN_NAME}, aflopend");
26
+ injectString("pl", "Sort by {COLUMN_NAME} descending", "Sortuj wed\u0142ug {COLUMN_NAME} malej\u0105co");
27
+ injectString("pt-BR", "Sort by {COLUMN_NAME} descending", "Classificar por {COLUMN_NAME} em ordem descendente");
28
+ injectString("sk-SK", "Sort by {COLUMN_NAME} descending", "Zoradi\u0165 pod\u013Ea {COLUMN_NAME} zostupne");
29
+ injectString("sv", "Sort by {COLUMN_NAME} descending", "Sortera efter {COLUMN_NAME} i fallande ordning");
30
+ injectString("th", "Sort by {COLUMN_NAME} descending", "\u0E40\u0E23\u0E35\u0E22\u0E07\u0E15\u0E32\u0E21 {COLUMN_NAME} \u0E08\u0E32\u0E01\u0E21\u0E32\u0E01\u0E44\u0E1B\u0E2B\u0E32\u0E19\u0E49\u0E2D\u0E22");
31
+ injectString("tr", "Sort by {COLUMN_NAME} descending", "{COLUMN_NAME} s\xFCtununa g\xF6re azalan s\u0131rada g\xF6ster");
32
+ injectString("zh-Hans", "Sort by {COLUMN_NAME} descending", "\u6309 {COLUMN_NAME} \u964D\u5E8F\u6392\u5E8F");
33
+ injectString("zh-TW", "Sort by {COLUMN_NAME} descending", "\u4F9D\u300C{COLUMN_NAME}\u300D\u905E\u6E1B\u6392\u5E8F");
34
+ injectString("cs", "Sort by {COLUMN_NAME} ascending", "Se\u0159adit vzestupn\u011B podle {COLUMN_NAME}");
35
+ injectString("da-DK", "Sort by {COLUMN_NAME} ascending", "Sorter efter {COLUMN_NAME} stigende");
36
+ injectString("de", "Sort by {COLUMN_NAME} ascending", "Aufsteigend nach {COLUMN_NAME} sortieren");
37
+ injectString("en", "Sort by {COLUMN_NAME} ascending", "Sort by {COLUMN_NAME} ascending");
38
+ injectString("es", "Sort by {COLUMN_NAME} ascending", "Ordenar por {COLUMN_NAME} de manera ascendente");
39
+ injectString("fi-FI", "Sort by {COLUMN_NAME} ascending", "J\xE4rjest\xE4 {COLUMN_NAME} nousevasti");
40
+ injectString("fr", "Sort by {COLUMN_NAME} ascending", "Trier par {COLUMN_NAME} en ordre croissant");
41
+ injectString("fr-FR", "Sort by {COLUMN_NAME} ascending", "Trier par {COLUMN_NAME} croissant");
42
+ injectString("hu-HU", "Sort by {COLUMN_NAME} ascending", "Rendezd n\xF6vekv\u0151 sorrendben a(z) {COLUMN_NAME} szerint.");
43
+ injectString("id", "Sort by {COLUMN_NAME} ascending", "Urutkan menurut {COLUMN_NAME} ke atas");
44
+ injectString("it", "Sort by {COLUMN_NAME} ascending", "Consente di ordinare per {COLUMN_NAME} in ordine crescente");
45
+ injectString("ja", "Sort by {COLUMN_NAME} ascending", "{COLUMN_NAME} \u3092\u6607\u9806\u3067\u30BD\u30FC\u30C8");
46
+ injectString("ko-KR", "Sort by {COLUMN_NAME} ascending", "{COLUMN_NAME} \uC5F4\uC744 \uC624\uB984\uCC28\uC21C\uC73C\uB85C \uC815\uB82C");
47
+ injectString("ms", "Sort by {COLUMN_NAME} ascending", "Isih mengikut {COLUMN_NAME} secara menaik");
48
+ injectString("nb-NO", "Sort by {COLUMN_NAME} ascending", "Sorter etter {COLUMN_NAME} stigende");
49
+ injectString("nl", "Sort by {COLUMN_NAME} ascending", "Sorteren op {COLUMN_NAME}, oplopend");
50
+ injectString("pl", "Sort by {COLUMN_NAME} ascending", "Sortuj wed\u0142ug {COLUMN_NAME} rosn\u0105co");
51
+ injectString("pt-BR", "Sort by {COLUMN_NAME} ascending", "Classificar por {COLUMN_NAME} em ordem ascendente");
52
+ injectString("sk-SK", "Sort by {COLUMN_NAME} ascending", "Zoradi\u0165 pod\u013Ea {COLUMN_NAME} vzostupne");
53
+ injectString("sv", "Sort by {COLUMN_NAME} ascending", "Sortera efter {COLUMN_NAME} i stigande ordning");
54
+ injectString("th", "Sort by {COLUMN_NAME} ascending", "\u0E40\u0E23\u0E35\u0E22\u0E07\u0E15\u0E32\u0E21 {COLUMN_NAME} \u0E08\u0E32\u0E01\u0E19\u0E49\u0E2D\u0E22\u0E44\u0E1B\u0E2B\u0E32\u0E21\u0E32\u0E01");
55
+ injectString("tr", "Sort by {COLUMN_NAME} ascending", "{COLUMN_NAME} s\xFCtununa g\xF6re artan s\u0131rada g\xF6ster");
56
+ injectString("zh-Hans", "Sort by {COLUMN_NAME} ascending", "\u6309 {COLUMN_NAME} \u5347\u5E8F\u6392\u5E8F");
57
+ injectString("zh-TW", "Sort by {COLUMN_NAME} ascending", "\u4F9D\u300C{COLUMN_NAME}\u300D\u905E\u589E\u6392\u5E8F");
9
58
  const getSortButtonTitle = (sortDirection, title, translate) => {
10
- const titleTemplate = sortDirection === ColumnSortDirection.Descending ? "Sort by {COLUMN_NAME} descending" : "Sort by {COLUMN_NAME} ascending";
11
- return translate(titleTemplate).replace("{COLUMN_NAME}", title);
59
+ const titleTemplate = sortDirection === ColumnSortDirection.Descending ? translate("Sort by {COLUMN_NAME} descending") : translate("Sort by {COLUMN_NAME} ascending");
60
+ return titleTemplate.replace("{COLUMN_NAME}", title);
12
61
  };
13
62
  const activeElementNames = new Set(["BUTTON", "A", "LABEL", "INPUT"]);
14
- const isActiveElement = (element) => activeElementNames.has(element.nodeName);
63
+ const isActiveElement = element => activeElementNames.has(element.nodeName);
15
64
  const findParent = (element, className) => {
16
- if (element.classList.contains(className)) {
17
- return element;
18
- }
19
- if (isActiveElement(element)) {
20
- return element;
21
- }
22
- if (!element.parentElement) {
23
- return element;
24
- }
25
- return findParent(element.parentElement, className);
65
+ if (element.classList.contains(className)) {
66
+ return element;
67
+ }
68
+ if (isActiveElement(element)) {
69
+ return element;
70
+ }
71
+ if (!element.parentElement) {
72
+ return element;
73
+ }
74
+ return findParent(element.parentElement, className);
26
75
  };
27
- const isClickOnSortableParent = (element) => {
28
- const parent = findParent(element, "zen-sortable-column-button");
29
- return parent.classList.contains("zen-sortable-column-button") || parent.classList.contains("zen-sortable-column-button__dir-icon");
76
+ const isClickOnSortableParent = element => {
77
+ const parent = findParent(element, "zen-sortable-column-button");
78
+ return parent.classList.contains("zen-sortable-column-button") || parent.classList.contains("zen-sortable-column-button__dir-icon");
30
79
  };
31
- export const SortableHeaderCell = ({ columnName, isSortedBy, sortDirection, title, tooltip, onSortChange, isMobile = false, initialSortDirection = ColumnSortDirection.Ascending }) => {
32
- const { translate } = useLanguage();
33
- const [isHovered, setIsHovered] = useState(false);
34
- const [isFocused, setIsFocused] = useState(false);
35
- const isActive = isHovered || isFocused;
36
- const iconTitleText = useMemo(() => {
37
- switch (sortDirection) {
38
- case ColumnSortDirection.Ascending: {
39
- return ColumnSortDirection.Descending;
40
- }
41
- case ColumnSortDirection.Descending: {
42
- return ColumnSortDirection.Ascending;
43
- }
44
- case undefined:
45
- default:
46
- return initialSortDirection;
80
+ export const SortableHeaderCell = ({
81
+ columnName,
82
+ isSortedBy,
83
+ sortDirection,
84
+ title,
85
+ tooltip,
86
+ onSortChange,
87
+ isMobile = false,
88
+ initialSortDirection = ColumnSortDirection.Ascending
89
+ }) => {
90
+ const {
91
+ translate
92
+ } = useLanguage();
93
+ const [isHovered, setIsHovered] = useState(false);
94
+ const [isFocused, setIsFocused] = useState(false);
95
+ const isActive = isHovered || isFocused;
96
+ const iconTitleText = useMemo(() => {
97
+ switch (sortDirection) {
98
+ case ColumnSortDirection.Ascending:
99
+ {
100
+ return ColumnSortDirection.Descending;
47
101
  }
48
- }, [sortDirection, initialSortDirection]);
49
- const iconTitle = getSortButtonTitle(iconTitleText, tooltip, translate);
50
- const icon = useMemo(() => {
51
- switch (sortDirection) {
52
- case ColumnSortDirection.Ascending: {
53
- return isActive ? IconFilter3Desc : IconFilter3Asc;
54
- }
55
- case ColumnSortDirection.Descending:
56
- return isActive ? IconFilter3Asc : IconFilter3Desc;
57
- case undefined:
58
- default: {
59
- return initialSortDirection === ColumnSortDirection.Ascending ? IconFilter3Asc : IconFilter3Desc;
60
- }
102
+ case ColumnSortDirection.Descending:
103
+ {
104
+ return ColumnSortDirection.Ascending;
61
105
  }
62
- }, [sortDirection, isActive, initialSortDirection]);
63
- const iconButton = (_jsx(TextIconButton, { className: "zen-sortable-column-button__dir-icon zen-caption__post-icon", icon: icon, iconPosition: isMobile ? ButtonIconPosition.Start : ButtonIconPosition.End, type: "tertiary-black", title: iconTitle }));
64
- const onHeaderClick = useCallback((e) => {
65
- const target = e && e.target;
66
- if (!target) {
67
- return;
106
+ case undefined:
107
+ default:
108
+ return initialSortDirection;
109
+ }
110
+ }, [sortDirection, initialSortDirection]);
111
+ const iconTitle = getSortButtonTitle(iconTitleText, tooltip, translate);
112
+ const icon = useMemo(() => {
113
+ switch (sortDirection) {
114
+ case ColumnSortDirection.Ascending:
115
+ {
116
+ return isActive ? IconFilter3Desc : IconFilter3Asc;
68
117
  }
69
- if (isClickOnSortableParent(target)) {
70
- onSortChange({
71
- sortColumn: columnName,
72
- sortDirection: sortDirection === undefined ? initialSortDirection :
73
- sortDirection === ColumnSortDirection.Ascending
74
- ? ColumnSortDirection.Descending
75
- : ColumnSortDirection.Ascending
76
- });
118
+ case ColumnSortDirection.Descending:
119
+ return isActive ? IconFilter3Asc : IconFilter3Desc;
120
+ case undefined:
121
+ default:
122
+ {
123
+ return initialSortDirection === ColumnSortDirection.Ascending ? IconFilter3Asc : IconFilter3Desc;
77
124
  }
78
- }, [onSortChange, columnName, sortDirection, initialSortDirection]);
79
- return (_jsx("div", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), onFocus: () => setIsFocused(true), onBlur: () => setIsFocused(false), className: classNames([
80
- "zen-sortable-column",
81
- isSortedBy ? `zen-sortable-column--active` : "",
82
- isMobile ? `zen-sortable-column--mobile` : ""
83
- ]), children: _jsx("div", { className: classNames([
84
- "zen-caption",
85
- "zen-sortable-column__button",
86
- "zen-sortable-column-button",
87
- isSortedBy ? `zen-sortable-column-button--active` : "",
88
- sortDirection === ColumnSortDirection.Ascending
89
- ? "zen-sortable-column-button--dir-asc"
90
- : "zen-sortable-column-button--dir-desc"
91
- ]), title: iconTitle, "aria-label": iconTitle, onClick: onHeaderClick, children: _jsxs(_Fragment, { children: [isMobile ? iconButton : null, _jsx("div", { className: "zen-sortable-column-button__content zen-caption__content", children: title }), isMobile ? null : iconButton] }) }) }));
92
- };
125
+ }
126
+ }, [sortDirection, isActive, initialSortDirection]);
127
+ const iconButton = _jsx(TextIconButton, {
128
+ className: "zen-sortable-column-button__dir-icon zen-caption__post-icon",
129
+ icon: icon,
130
+ iconPosition: isMobile ? ButtonIconPosition.Start : ButtonIconPosition.End,
131
+ type: "tertiary-black",
132
+ title: iconTitle
133
+ });
134
+ const onHeaderClick = useCallback(e => {
135
+ const target = e && e.target;
136
+ if (!target) {
137
+ return;
138
+ }
139
+ if (isClickOnSortableParent(target)) {
140
+ onSortChange({
141
+ sortColumn: columnName,
142
+ sortDirection: sortDirection === undefined ? initialSortDirection : sortDirection === ColumnSortDirection.Ascending ? ColumnSortDirection.Descending : ColumnSortDirection.Ascending
143
+ });
144
+ }
145
+ }, [onSortChange, columnName, sortDirection, initialSortDirection]);
146
+ return _jsx("div", {
147
+ onMouseEnter: () => setIsHovered(true),
148
+ onMouseLeave: () => setIsHovered(false),
149
+ onFocus: () => setIsFocused(true),
150
+ onBlur: () => setIsFocused(false),
151
+ className: classNames(["zen-sortable-column", isSortedBy ? `zen-sortable-column--active` : "", isMobile ? `zen-sortable-column--mobile` : ""]),
152
+ children: _jsx("div", {
153
+ className: classNames(["zen-caption", "zen-sortable-column__button", "zen-sortable-column-button", isSortedBy ? `zen-sortable-column-button--active` : "", sortDirection === ColumnSortDirection.Ascending ? "zen-sortable-column-button--dir-asc" : "zen-sortable-column-button--dir-desc"]),
154
+ title: iconTitle,
155
+ "aria-label": iconTitle,
156
+ onClick: onHeaderClick,
157
+ children: _jsxs(_Fragment, {
158
+ children: [isMobile ? iconButton : null, _jsx("div", {
159
+ className: "zen-sortable-column-button__content zen-caption__content",
160
+ children: title
161
+ }), isMobile ? null : iconButton]
162
+ })
163
+ })
164
+ });
165
+ };
package/esm/tabs/tabs.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { injectString } from "../utils/localization/translationsDictionary";
1
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import { createElement, useCallback, useEffect, useRef, useState } from "react";
3
4
  import { classNames } from "../commonHelpers/classNames/classNames";
@@ -7,128 +8,231 @@ import { TabItem } from "./tabItem/tabItem";
7
8
  import { IconChevronRight } from "../icons/iconChevronRight";
8
9
  import { ButtonIconPosition, TextIconButton } from "../textIconButton/textIconButton";
9
10
  import { tabsKeyboardHandler, tabsKeyboardTabHandler } from "../commonHelpers/tabsKeyboard";
11
+ injectString("cs", "Scroll left", "P\u0159ej\xEDt doleva");
12
+ injectString("da-DK", "Scroll left", "Rul til venstre");
13
+ injectString("de", "Scroll left", "Nach links scrollen");
14
+ injectString("en", "Scroll left", "Scroll left");
15
+ injectString("es", "Scroll left", "Desplazarse a la izquierda");
16
+ injectString("fi-FI", "Scroll left", "Selaa vasemmalle");
17
+ injectString("fr", "Scroll left", "D\xE9filer vers la gauche");
18
+ injectString("fr-FR", "Scroll left", "Faire d\xE9filer vers la gauche");
19
+ injectString("hu-HU", "Scroll left", "Lapozz balra.");
20
+ injectString("id", "Scroll left", "Gulir ke kiri");
21
+ injectString("it", "Scroll left", "Scorrere verso sinistra");
22
+ injectString("ja", "Scroll left", "\u5DE6\u306B\u30B9\u30AF\u30ED\u30FC\u30EB");
23
+ injectString("ko-KR", "Scroll left", "\uC67C\uCABD\uC73C\uB85C \uC2A4\uD06C\uB864");
24
+ injectString("ms", "Scroll left", "Skrol ke kiri");
25
+ injectString("nb-NO", "Scroll left", "Rull til venstre");
26
+ injectString("nl", "Scroll left", "Blader naar links");
27
+ injectString("pl", "Scroll left", "Przewi\u0144 w lewo");
28
+ injectString("pt-BR", "Scroll left", "Rolar para a esquerda");
29
+ injectString("sk-SK", "Scroll left", "Posu\u0148 do\u013Eava");
30
+ injectString("sv", "Scroll left", "Bl\xE4ddra \xE5t v\xE4nster");
31
+ injectString("th", "Scroll left", "\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E32\u0E07\u0E0B\u0E49\u0E32\u0E22");
32
+ injectString("tr", "Scroll left", "Sola kayd\u0131r");
33
+ injectString("zh-Hans", "Scroll left", "\u5411\u5DE6\u6EDA\u52A8");
34
+ injectString("zh-TW", "Scroll left", "\u5411\u5DE6\u6372\u52D5");
35
+ injectString("cs", "Scroll right", "P\u0159ej\xEDt doprava");
36
+ injectString("da-DK", "Scroll right", "Rul til h\xF8jre");
37
+ injectString("de", "Scroll right", "Nach rechts scrollen");
38
+ injectString("en", "Scroll right", "Scroll right");
39
+ injectString("es", "Scroll right", "Desplazarse a la derecha");
40
+ injectString("fi-FI", "Scroll right", "Selaa oikealle");
41
+ injectString("fr", "Scroll right", "D\xE9filer vers la droite");
42
+ injectString("fr-FR", "Scroll right", "Faire d\xE9filer vers la droite");
43
+ injectString("hu-HU", "Scroll right", "Lapozz jobbra.");
44
+ injectString("id", "Scroll right", "Gulir ke kanan");
45
+ injectString("it", "Scroll right", "Scorrere verso destra");
46
+ injectString("ja", "Scroll right", "\u53F3\u306B\u30B9\u30AF\u30ED\u30FC\u30EB");
47
+ injectString("ko-KR", "Scroll right", "\uC624\uB978\uCABD\uC73C\uB85C \uC2A4\uD06C\uB864");
48
+ injectString("ms", "Scroll right", "Skrol ke kanan");
49
+ injectString("nb-NO", "Scroll right", "Rull til h\xF8yre");
50
+ injectString("nl", "Scroll right", "Blader naar rechts");
51
+ injectString("pl", "Scroll right", "Przewi\u0144 w prawo");
52
+ injectString("pt-BR", "Scroll right", "Rolar para a direita");
53
+ injectString("sk-SK", "Scroll right", "Posu\u0148 doprava");
54
+ injectString("sv", "Scroll right", "Bl\xE4ddra \xE5t h\xF6ger");
55
+ injectString("th", "Scroll right", "\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E32\u0E07\u0E02\u0E27\u0E32");
56
+ injectString("tr", "Scroll right", "Sa\u011Fa Kayd\u0131r");
57
+ injectString("zh-Hans", "Scroll right", "\u5411\u53F3\u6EDA\u52A8");
58
+ injectString("zh-TW", "Scroll right", "\u5411\u53F3\u6372\u52D5");
10
59
  export const TabsDisplayName = "Tabs";
11
- const getScrollButtonType = (element) => {
12
- const scrollLeft = element.scrollLeft;
13
- const scrollWidth = element.scrollWidth;
14
- const clientWidth = element.clientWidth;
15
- if (scrollLeft === 0 && scrollWidth === clientWidth) {
16
- return "";
60
+ const getScrollButtonType = element => {
61
+ const scrollLeft = element.scrollLeft;
62
+ const scrollWidth = element.scrollWidth;
63
+ const clientWidth = element.clientWidth;
64
+ if (scrollLeft === 0 && scrollWidth === clientWidth) {
65
+ return "";
66
+ }
67
+ if (scrollLeft > 0 && scrollWidth > clientWidth + scrollLeft + 1) {
68
+ return "both";
69
+ }
70
+ if (scrollLeft === 0) {
71
+ return "end";
72
+ }
73
+ return "start";
74
+ };
75
+ export const Tabs = ({
76
+ className,
77
+ tabs = [],
78
+ activeTabId,
79
+ onTabChange
80
+ }) => {
81
+ const driveClassname = useDriveClassName("zen-tabs");
82
+ const scrollableStep = 200;
83
+ const {
84
+ translate
85
+ } = useLanguage();
86
+ const driveClassNameScroller = useDriveClassName("zen-tabs__scroller");
87
+ const driveClassNameGradient = useDriveClassName("zen-tabs__gradient");
88
+ const [scrollButtonType, setScrollButtonType] = useState("");
89
+ const scrollableRef = useRef(null);
90
+ const scrollRef = useRef(0);
91
+ const focusableTabIdRef = useRef("");
92
+ const handleButtonClick = e => {
93
+ const newState = e.currentTarget.id;
94
+ focusableTabIdRef.current = newState;
95
+ if (newState !== activeTabId) {
96
+ onTabChange(newState);
17
97
  }
18
- if (scrollLeft > 0 && (scrollWidth > clientWidth + scrollLeft + 1)) {
19
- return "both";
98
+ };
99
+ const keyDownHandler = useCallback(e => {
100
+ var _a;
101
+ if (e.key === "Shift") {
102
+ return;
20
103
  }
21
- if (scrollLeft === 0) {
22
- return "end";
104
+ if (e.key === "Enter" || e.key === " ") {
105
+ const target = e.target;
106
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
107
+ if (target && target.id && tabs.some(tab => tab.id === target.id)) {
108
+ focusableTabIdRef.current = target.id;
109
+ onTabChange(target.id);
110
+ }
111
+ return;
23
112
  }
24
- return "start";
25
- };
26
- export const Tabs = ({ className, tabs = [], activeTabId, onTabChange }) => {
27
- const driveClassname = useDriveClassName("zen-tabs");
28
- const scrollableStep = 200;
29
- const { translate } = useLanguage();
30
- const driveClassNameScroller = useDriveClassName("zen-tabs__scroller");
31
- const driveClassNameGradient = useDriveClassName("zen-tabs__gradient");
32
- const [scrollButtonType, setScrollButtonType] = useState("");
33
- const scrollableRef = useRef(null);
34
- const scrollRef = useRef(0);
35
- const focusableTabIdRef = useRef("");
36
- const handleButtonClick = (e) => {
37
- const newState = e.currentTarget.id;
38
- focusableTabIdRef.current = newState;
39
- if (newState !== activeTabId) {
40
- onTabChange(newState);
41
- }
113
+ if (e.key === "Tab") {
114
+ const nextTabId = tabsKeyboardTabHandler(e, tabs, document.activeElement);
115
+ if (nextTabId) {
116
+ focusableTabIdRef.current = nextTabId;
117
+ }
118
+ return;
119
+ }
120
+ const newActiveTabId = tabsKeyboardHandler(e, tabs, focusableTabIdRef.current) || activeTabId;
121
+ focusableTabIdRef.current = newActiveTabId;
122
+ const focusableTab = (_a = scrollableRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`.zen-tab-item[id='${newActiveTabId}']`);
123
+ focusableTab === null || focusableTab === void 0 ? void 0 : focusableTab.focus();
124
+ }, [tabs, activeTabId, onTabChange]);
125
+ useEffect(() => {
126
+ if (!scrollableRef.current) {
127
+ return () => {};
128
+ }
129
+ let timer = undefined;
130
+ const resizeHandler = () => {
131
+ const scrollableElt = scrollableRef.current;
132
+ if (scrollableElt) {
133
+ timer && window.clearTimeout(timer);
134
+ timer = window.setTimeout(() => {
135
+ setScrollButtonType(getScrollButtonType(scrollableElt));
136
+ }, 200);
137
+ }
42
138
  };
43
- const keyDownHandler = useCallback((e) => {
44
- var _a;
45
- if (e.key === "Shift") {
46
- return;
47
- }
48
- if (e.key === "Enter" || e.key === " ") {
49
- const target = e.target;
50
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
51
- if (target && target.id && tabs.some(tab => tab.id === target.id)) {
52
- focusableTabIdRef.current = target.id;
53
- onTabChange(target.id);
54
- }
55
- return;
56
- }
57
- if (e.key === "Tab") {
58
- const nextTabId = tabsKeyboardTabHandler(e, tabs, document.activeElement);
59
- if (nextTabId) {
60
- focusableTabIdRef.current = nextTabId;
61
- }
62
- return;
63
- }
64
- const newActiveTabId = tabsKeyboardHandler(e, tabs, focusableTabIdRef.current) || activeTabId;
65
- focusableTabIdRef.current = newActiveTabId;
66
- const focusableTab = (_a = scrollableRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`.zen-tab-item[id='${newActiveTabId}']`);
67
- focusableTab === null || focusableTab === void 0 ? void 0 : focusableTab.focus();
68
- }, [tabs, activeTabId, onTabChange]);
69
- useEffect(() => {
70
- if (!scrollableRef.current) {
71
- return () => { };
72
- }
73
- let timer = undefined;
74
- const resizeHandler = () => {
75
- const scrollableElt = scrollableRef.current;
76
- if (scrollableElt) {
77
- timer && window.clearTimeout(timer);
78
- timer = window.setTimeout(() => {
79
- setScrollButtonType(getScrollButtonType(scrollableElt));
80
- }, 200);
81
- }
82
- };
83
- const scrollableElement = scrollableRef.current;
84
- scrollableElement.addEventListener("scroll", resizeHandler);
85
- window.addEventListener("resize", resizeHandler);
86
- resizeHandler();
87
- return () => {
88
- timer && window.clearTimeout(timer);
89
- scrollableElement.removeEventListener("scroll", resizeHandler);
90
- window.removeEventListener("resize", resizeHandler);
91
- };
92
- }, [scrollableRef]);
93
- useEffect(() => {
94
- if (scrollableRef.current) {
95
- setScrollButtonType(getScrollButtonType(scrollableRef.current));
96
- }
97
- }, [scrollableRef, tabs, activeTabId]);
98
- const handleScrollButtonClick = useCallback((scrollableElt, delta) => () => {
99
- if (scrollableElt) {
100
- let iterations = 0;
101
- const maxIterations = 100;
102
- const start = scrollableElt.scrollLeft;
103
- const end = start + delta;
104
- const duration = 300;
105
- const animateScroll = (timestamp) => {
106
- if (!scrollRef.current) {
107
- scrollRef.current = timestamp;
108
- }
109
- const progress = Math.min((timestamp - scrollRef.current) / duration, 1);
110
- scrollableElt.scrollLeft = start + (end - start) * progress;
111
- if (progress < 1 && iterations < maxIterations) {
112
- iterations++;
113
- window.requestAnimationFrame(animateScroll);
114
- }
115
- else {
116
- scrollRef.current = 0;
117
- }
118
- };
119
- window.requestAnimationFrame(animateScroll);
120
- }
121
- }, []);
122
- useEffect(() => {
123
- if (!scrollableRef.current || !activeTabId) {
124
- return;
139
+ const scrollableElement = scrollableRef.current;
140
+ scrollableElement.addEventListener("scroll", resizeHandler);
141
+ window.addEventListener("resize", resizeHandler);
142
+ resizeHandler();
143
+ return () => {
144
+ timer && window.clearTimeout(timer);
145
+ scrollableElement.removeEventListener("scroll", resizeHandler);
146
+ window.removeEventListener("resize", resizeHandler);
147
+ };
148
+ }, [scrollableRef]);
149
+ useEffect(() => {
150
+ if (scrollableRef.current) {
151
+ setScrollButtonType(getScrollButtonType(scrollableRef.current));
152
+ }
153
+ }, [scrollableRef, tabs, activeTabId]);
154
+ const handleScrollButtonClick = useCallback((scrollableElt, delta) => () => {
155
+ if (scrollableElt) {
156
+ let iterations = 0;
157
+ const maxIterations = 100;
158
+ const start = scrollableElt.scrollLeft;
159
+ const end = start + delta;
160
+ const duration = 300;
161
+ const animateScroll = timestamp => {
162
+ if (!scrollRef.current) {
163
+ scrollRef.current = timestamp;
125
164
  }
126
- const activeTab = scrollableRef.current.querySelector(`.zen-tab-item[id='${activeTabId}']`);
127
- if (activeTab instanceof HTMLElement) {
128
- focusableTabIdRef.current = activeTab.getAttribute("id") || "";
129
- // activeTab.focus();
165
+ const progress = Math.min((timestamp - scrollRef.current) / duration, 1);
166
+ scrollableElt.scrollLeft = start + (end - start) * progress;
167
+ if (progress < 1 && iterations < maxIterations) {
168
+ iterations++;
169
+ window.requestAnimationFrame(animateScroll);
170
+ } else {
171
+ scrollRef.current = 0;
130
172
  }
131
- }, [activeTabId]);
132
- return _jsx("div", { className: classNames(["zen-tabs", driveClassname || "", className !== null && className !== void 0 ? className : ""]), children: _jsxs("div", { className: classNames(["zen-tabs__tabs-container", className !== null && className !== void 0 ? className : "", scrollButtonType]), children: [scrollButtonType === "start" || scrollButtonType === "both" ? _jsxs(_Fragment, { children: [_jsx("div", { className: classNames(["zen-tabs__gradient", driveClassNameGradient || "", "zen-tabs__gradient--left"]) }), _jsx(TextIconButton, { title: translate("Scroll left"), className: classNames(["zen-tabs__scroller", driveClassNameScroller || "", "zen-tabs__start"]), icon: IconChevronRight, type: "tertiary", iconPosition: ButtonIconPosition.Start, onClick: handleScrollButtonClick(scrollableRef.current, -scrollableStep), iconClasses: "zen-tabs__start-icon" })] }) : null, _jsx("div", { ref: scrollableRef, onKeyDown: keyDownHandler, className: "zen-tabs__scrollable", children: _jsx("div", { className: "zen-tabs__tabs", role: "tablist", children: tabs.map(tab => (_jsx(TabItem, { className: "zen-tabs__tab-item", tabId: tab.id, tabName: tab.name, icon: typeof tab.icon === "function" ? createElement(tab.icon, { size: "large" }) : tab.icon, quantity: tab.quantity, active: activeTabId === tab.id, ariaControl: `panel-${tab.id}`, handleButtonClick: handleButtonClick }, tab.id))) }) }), scrollButtonType === "end" || scrollButtonType === "both" ? _jsxs(_Fragment, { children: [_jsx("div", { className: classNames(["zen-tabs__gradient", driveClassNameGradient || "", "zen-tabs__gradient--right"]) }), _jsx(TextIconButton, { title: translate("Scroll right"), className: classNames(["zen-tabs__scroller", driveClassNameScroller || "", "zen-tabs__end"]), icon: IconChevronRight, type: "tertiary", onClick: handleScrollButtonClick(scrollableRef.current, scrollableStep), iconPosition: ButtonIconPosition.End })] }) : null] }) });
173
+ };
174
+ window.requestAnimationFrame(animateScroll);
175
+ }
176
+ }, []);
177
+ useEffect(() => {
178
+ if (!scrollableRef.current || !activeTabId) {
179
+ return;
180
+ }
181
+ const activeTab = scrollableRef.current.querySelector(`.zen-tab-item[id='${activeTabId}']`);
182
+ if (activeTab instanceof HTMLElement) {
183
+ focusableTabIdRef.current = activeTab.getAttribute("id") || "";
184
+ // activeTab.focus();
185
+ }
186
+ }, [activeTabId]);
187
+ return _jsx("div", {
188
+ className: classNames(["zen-tabs", driveClassname || "", className !== null && className !== void 0 ? className : ""]),
189
+ children: _jsxs("div", {
190
+ className: classNames(["zen-tabs__tabs-container", className !== null && className !== void 0 ? className : "", scrollButtonType]),
191
+ children: [scrollButtonType === "start" || scrollButtonType === "both" ? _jsxs(_Fragment, {
192
+ children: [_jsx("div", {
193
+ className: classNames(["zen-tabs__gradient", driveClassNameGradient || "", "zen-tabs__gradient--left"])
194
+ }), _jsx(TextIconButton, {
195
+ title: translate("Scroll left"),
196
+ className: classNames(["zen-tabs__scroller", driveClassNameScroller || "", "zen-tabs__start"]),
197
+ icon: IconChevronRight,
198
+ type: "tertiary",
199
+ iconPosition: ButtonIconPosition.Start,
200
+ onClick: handleScrollButtonClick(scrollableRef.current, -scrollableStep),
201
+ iconClasses: "zen-tabs__start-icon"
202
+ })]
203
+ }) : null, _jsx("div", {
204
+ ref: scrollableRef,
205
+ onKeyDown: keyDownHandler,
206
+ className: "zen-tabs__scrollable",
207
+ children: _jsx("div", {
208
+ className: "zen-tabs__tabs",
209
+ role: "tablist",
210
+ children: tabs.map(tab => _jsx(TabItem, {
211
+ className: "zen-tabs__tab-item",
212
+ tabId: tab.id,
213
+ tabName: tab.name,
214
+ icon: typeof tab.icon === "function" ? createElement(tab.icon, {
215
+ size: "large"
216
+ }) : tab.icon,
217
+ quantity: tab.quantity,
218
+ active: activeTabId === tab.id,
219
+ ariaControl: `panel-${tab.id}`,
220
+ handleButtonClick: handleButtonClick
221
+ }, tab.id))
222
+ })
223
+ }), scrollButtonType === "end" || scrollButtonType === "both" ? _jsxs(_Fragment, {
224
+ children: [_jsx("div", {
225
+ className: classNames(["zen-tabs__gradient", driveClassNameGradient || "", "zen-tabs__gradient--right"])
226
+ }), _jsx(TextIconButton, {
227
+ title: translate("Scroll right"),
228
+ className: classNames(["zen-tabs__scroller", driveClassNameScroller || "", "zen-tabs__end"]),
229
+ icon: IconChevronRight,
230
+ type: "tertiary",
231
+ onClick: handleScrollButtonClick(scrollableRef.current, scrollableStep),
232
+ iconPosition: ButtonIconPosition.End
233
+ })]
234
+ }) : null]
235
+ })
236
+ });
133
237
  };
134
- Tabs.displayName = TabsDisplayName;
238
+ Tabs.displayName = TabsDisplayName;