@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,9 +1,115 @@
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.FiltersSearchList = exports.NOT_POPULATED_NAME = exports.KEYWORD_TYPE = exports.KEYWORD_ID = exports.NO_TYPED_SEARCH_ITEM = void 0;
4
10
  const jsx_runtime_1 = require("react/jsx-runtime");
5
11
  const react_1 = require("react");
6
12
  const list_1 = require("../../list/list");
13
+ injectString("cs", "Back", "Zp\u011Bt");
14
+ injectString("da-DK", "Back", "Tilbage");
15
+ injectString("de", "Back", "Zur\xFCck");
16
+ injectString("en", "Back", "Back");
17
+ injectString("es", "Back", "Regresar");
18
+ injectString("fi-FI", "Back", "Takaisin");
19
+ injectString("fr", "Back", "Retour");
20
+ injectString("fr-FR", "Back", "Retour");
21
+ injectString("hu-HU", "Back", "Vissza");
22
+ injectString("id", "Back", "Kembali");
23
+ injectString("it", "Back", "Indietro");
24
+ injectString("ja", "Back", "\u623B\u308B");
25
+ injectString("ko-KR", "Back", "\uB4A4\uB85C");
26
+ injectString("ms", "Back", "Kembali");
27
+ injectString("nb-NO", "Back", "Tilbake");
28
+ injectString("nl", "Back", "Terug");
29
+ injectString("pl", "Back", "Wstecz");
30
+ injectString("pt-BR", "Back", "Voltar");
31
+ injectString("sk-SK", "Back", "Sp\xE4\u0165");
32
+ injectString("sv", "Back", "Tillbaka");
33
+ injectString("th", "Back", "\u0E01\u0E25\u0E31\u0E1A");
34
+ injectString("tr", "Back", "Geri");
35
+ injectString("zh-Hans", "Back", "\u8FD4\u56DE");
36
+ injectString("zh-TW", "Back", "\u8FD4\u56DE");
37
+ injectString("cs", "Clear all", "Vymazat v\u0161e");
38
+ injectString("da-DK", "Clear all", "Ryd alt");
39
+ injectString("de", "Clear all", "Alle l\xF6schen");
40
+ injectString("en", "Clear all", "Clear all");
41
+ injectString("es", "Clear all", "Borrar todo");
42
+ injectString("fi-FI", "Clear all", "Tyhjenn\xE4 kaikki");
43
+ injectString("fr", "Clear all", "Effacer tout");
44
+ injectString("fr-FR", "Clear all", "Tout effacer");
45
+ injectString("hu-HU", "Clear all", "Mindent t\xF6r\xF6lni");
46
+ injectString("id", "Clear all", "Hapus semua");
47
+ injectString("it", "Clear all", "Cancellare tutto");
48
+ injectString("ja", "Clear all", "\u3059\u3079\u3066\u3092\u30AF\u30EA\u30A2");
49
+ injectString("ko-KR", "Clear all", "\uBAA8\uB450 \uC9C0\uC6B0\uAE30");
50
+ injectString("ms", "Clear all", "Kosongkan semua");
51
+ injectString("nb-NO", "Clear all", "Fjern alt");
52
+ injectString("nl", "Clear all", "Alles wissen");
53
+ injectString("pl", "Clear all", "Wyczy\u015B\u0107 wszystkie");
54
+ injectString("pt-BR", "Clear all", "Limpar tudo");
55
+ injectString("sk-SK", "Clear all", "Vymaza\u0165 v\u0161etko");
56
+ injectString("sv", "Clear all", "Rensa alla");
57
+ injectString("th", "Clear all", "\u0E25\u0E49\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14");
58
+ injectString("tr", "Clear all", "T\xFCm\xFCn\xFC temizle");
59
+ injectString("zh-Hans", "Clear all", "\u5168\u90E8\u6E05\u9664");
60
+ injectString("zh-TW", "Clear all", "\u6E05\u9664\u5168\u90E8");
61
+ injectString("en", "Recent searches", "Recent searches");
62
+ injectString("en", "Currently selected", "Currently selected");
63
+ injectString("en", "View history", "View history");
64
+ injectString("cs", "Clear", "Vymazat");
65
+ injectString("da-DK", "Clear", "Ryd");
66
+ injectString("de", "Clear", "L\xF6schen");
67
+ injectString("en", "Clear", "Clear");
68
+ injectString("es", "Clear", "Borrar");
69
+ injectString("fi-FI", "Clear", "Tyhjenn\xE4");
70
+ injectString("fr", "Clear", "Effacer");
71
+ injectString("fr-FR", "Clear", "Effacer");
72
+ injectString("hu-HU", "Clear", "T\xF6r\xF6ld.");
73
+ injectString("id", "Clear", "Hapus");
74
+ injectString("it", "Clear", "Cancella");
75
+ injectString("ja", "Clear", "\u30AF\u30EA\u30A2");
76
+ injectString("ko-KR", "Clear", "\uC9C0\uC6B0\uAE30");
77
+ injectString("ms", "Clear", "Kosongkan");
78
+ injectString("nb-NO", "Clear", "T\xF8m");
79
+ injectString("nl", "Clear", "Wissen");
80
+ injectString("pl", "Clear", "Wyczy\u015B\u0107");
81
+ injectString("pt-BR", "Clear", "Limpar");
82
+ injectString("sk-SK", "Clear", "Vyma\u017E");
83
+ injectString("sv", "Clear", "Rensa");
84
+ injectString("th", "Clear", "\u0E25\u0E49\u0E32\u0E07");
85
+ injectString("tr", "Clear", "Temizle");
86
+ injectString("zh-Hans", "Clear", "\u6E05\u9664");
87
+ injectString("zh-TW", "Clear", "\u6E05\u9664");
88
+ injectString("en", "Top results", "Top results");
89
+ injectString("cs", "No data available", "Nejsou k\xA0dispozici \u017E\xE1dn\xE1 data");
90
+ injectString("da-DK", "No data available", "Ingen data tilg\xE6ngelige");
91
+ injectString("de", "No data available", "Keine Daten verf\xFCgbar");
92
+ injectString("en", "No data available", "No data available");
93
+ injectString("es", "No data available", "No hay datos disponibles");
94
+ injectString("fi-FI", "No data available", "Tietoja ei saatavilla");
95
+ injectString("fr", "No data available", "Aucune donn\xE9e disponible");
96
+ injectString("fr-FR", "No data available", "Aucune donn\xE9e disponible");
97
+ injectString("hu-HU", "No data available", "Nincsenek rendelkez\xE9sre \xE1ll\xF3 adatok");
98
+ injectString("id", "No data available", "Tidak ada data tersedia");
99
+ injectString("it", "No data available", "Nessun dato disponibile");
100
+ injectString("ja", "No data available", "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093");
101
+ injectString("ko-KR", "No data available", "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4");
102
+ injectString("ms", "No data available", "Tiada data tersedia");
103
+ injectString("nb-NO", "No data available", "Ingen data tilgjengelig");
104
+ injectString("nl", "No data available", "Geen gegevens beschikbaar");
105
+ injectString("pl", "No data available", "Brak dost\u0119pnych danych");
106
+ injectString("pt-BR", "No data available", "Nenhum dado dispon\xEDvel");
107
+ injectString("sk-SK", "No data available", "Nie s\xFA k dispoz\xEDcii \u017Eiadne \xFAdaje");
108
+ injectString("sv", "No data available", "Det finns inga tillg\xE4ngliga data");
109
+ injectString("th", "No data available", "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25");
110
+ injectString("tr", "No data available", "Mevcut veri yok");
111
+ injectString("zh-Hans", "No data available", "\u65E0\u53EF\u7528\u6570\u636E");
112
+ injectString("zh-TW", "No data available", "\u6C92\u6709\u53EF\u7528\u8CC7\u6599");
7
113
  const useLanguage_1 = require("../../utils/localization/useLanguage");
8
114
  const button_1 = require("../../button/button");
9
115
  const textIconButton_1 = require("../../textIconButton/textIconButton");
@@ -21,183 +127,279 @@ exports.NO_TYPED_SEARCH_ITEM = "noTypedSearchItem";
21
127
  exports.KEYWORD_ID = "keywordId";
22
128
  exports.KEYWORD_TYPE = "keyword";
23
129
  exports.NOT_POPULATED_NAME = "...";
24
- const FiltersSearchList = ({ searchValue, searchData, recentSearches, searchSelection, onlyOneType, handleSearchItemClick, onRemoveRecentSearchItem, handleRecentSearchItemClick, getIconByType, handleClearSearchSelection, searchListRef }) => {
25
- const { translate } = (0, useLanguage_1.useLanguage)();
26
- const isSearchModeAvailable = Boolean(handleSearchItemClick && searchSelection);
27
- const isRecentSearchesModeAvailable = Boolean(recentSearches && handleRecentSearchItemClick && onRemoveRecentSearchItem);
28
- const isMobile = (0, useMobile_1.useMobile)();
29
- const isDrive = (0, useDrive_1.useDrive)();
30
- const [removedItems, setRemovedItems] = (0, react_1.useState)([]);
31
- const initialSearchSelectionRef = (0, react_1.useRef)(searchSelection || []);
32
- const hasNotPopulatedName = initialSearchSelectionRef.current.length === 0 ? false : initialSearchSelectionRef.current.some(el => el.name === exports.NOT_POPULATED_NAME);
33
- const getCurrentMode = (0, react_1.useCallback)(() => {
34
- if (searchValue) {
35
- return "search";
36
- }
37
- if (isSearchModeAvailable && initialSearchSelectionRef.current.length > 0) {
38
- return "selected";
39
- }
40
- if (isRecentSearchesModeAvailable && (recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) && recentSearches.data.length > 0) {
41
- return "recent";
42
- }
43
- return "";
44
- }, [searchValue, isSearchModeAvailable, isRecentSearchesModeAvailable, recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data]);
45
- const [currentMode, setCurrentMode] = (0, react_1.useState)(getCurrentMode());
46
- const waitingItemsLimit = 5;
47
- // Handle React Query errors
48
- (0, react_1.useEffect)(() => {
49
- if (currentMode === "search" && (searchData === null || searchData === void 0 ? void 0 : searchData.error)) {
50
- console.error("Failed to fetch search results. Error:", searchData.error);
51
- }
52
- }, [currentMode, searchData === null || searchData === void 0 ? void 0 : searchData.error]);
53
- (0, react_1.useEffect)(() => {
54
- if (currentMode !== "search" && searchValue) {
55
- setCurrentMode("search");
56
- }
57
- }, [searchValue, currentMode]);
58
- (0, react_1.useEffect)(() => {
59
- if (currentMode === "recent" && searchSelection && searchSelection.length === 0) {
60
- initialSearchSelectionRef.current = [];
61
- }
62
- }, [isSearchModeAvailable, isRecentSearchesModeAvailable, currentMode, searchSelection]);
63
- // Reset history mode when search value changes
64
- (0, react_1.useEffect)(() => {
65
- if (currentMode === "history" && searchValue) {
66
- setCurrentMode(isSearchModeAvailable ? "search" : "");
67
- }
68
- else if (currentMode === "search" && !searchValue) {
69
- setCurrentMode(getCurrentMode());
70
- }
71
- }, [currentMode, getCurrentMode, isRecentSearchesModeAvailable, isSearchModeAvailable, searchValue]);
72
- (0, react_1.useEffect)(() => {
73
- if (searchSelection && searchSelection.length === 0) {
74
- return;
75
- }
76
- searchSelection === null || searchSelection === void 0 ? void 0 : searchSelection.forEach(item => {
77
- const existingItem = initialSearchSelectionRef.current.find(el => (onlyOneType ? el.id === item.id : el.id === item.id && el.type === item.type));
78
- if (!existingItem) {
79
- initialSearchSelectionRef.current = [...initialSearchSelectionRef.current, item];
80
- }
81
- else if (hasNotPopulatedName) {
82
- existingItem.name = item.name;
83
- existingItem.description = item.description;
84
- existingItem.type = item.type;
85
- }
86
- });
87
- }, [hasNotPopulatedName, onlyOneType, searchSelection]);
88
- const searchItems = (0, react_1.useMemo)(() => currentMode === "search" || currentMode === "" ? (searchData === null || searchData === void 0 ? void 0 : searchData.data) || [] : [], [currentMode, searchData === null || searchData === void 0 ? void 0 : searchData.data]);
89
- const recentItems = (0, react_1.useMemo)(() => currentMode === "recent" || currentMode === "history" ? (recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) || [] : [], [currentMode, recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data]);
90
- const isLoading = currentMode === "search" && (searchData === null || searchData === void 0 ? void 0 : searchData.isLoading) || (currentMode === "recent" || currentMode === "history" ? recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.isLoading : false) || false;
91
- const changeMode = (0, react_1.useCallback)((newVal) => {
92
- setCurrentMode(newVal);
93
- setRemovedItems([]);
94
- // Note: In React Query implementation, the parent component should handle
95
- // refetching data when switching between modes
96
- }, []);
97
- const handleRemove = (0, react_1.useCallback)((itemId) => () => {
98
- var _a;
99
- setRemovedItems(prev => [...prev, itemId]);
100
- onRemoveRecentSearchItem && onRemoveRecentSearchItem([itemId]);
101
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
102
- const firstItem = (_a = searchListRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(focusableSelector_1.FOCUSABLE_SELECTOR);
103
- firstItem === null || firstItem === void 0 ? void 0 : firstItem.focus();
104
- }, [onRemoveRecentSearchItem, searchListRef]);
105
- const handleRemoveAll = (0, react_1.useCallback)(() => {
106
- setRemovedItems(recentItems.map(item => item.id));
107
- onRemoveRecentSearchItem && onRemoveRecentSearchItem(recentItems.map(item => item.id));
108
- changeMode(getCurrentMode());
109
- }, [recentItems, onRemoveRecentSearchItem, changeMode, getCurrentMode]);
110
- const memoizedSearchItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
111
- const currentSearchItem = onlyOneType && !itemType ? searchItems.find(item => item.id === itemId)
112
- : searchItems.find(item => item.id === itemId && item.type === itemType);
113
- currentSearchItem && handleSearchItemClick && handleSearchItemClick(currentSearchItem);
114
- }, [handleSearchItemClick, onlyOneType, searchItems]);
115
- const memoizedSelectedItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
116
- const currentSelectedItem = onlyOneType && !itemType ? initialSearchSelectionRef.current.find(item => item.id === itemId)
117
- : initialSearchSelectionRef.current.find(item => item.id === itemId && item.type === itemType);
118
- currentSelectedItem && handleSearchItemClick && handleSearchItemClick(currentSelectedItem);
119
- }, [handleSearchItemClick, onlyOneType]);
120
- const memoizedRecentSearchItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
121
- const currentSearchItem = recentItems.find(item => item.id === itemId && item.type === itemType);
122
- currentSearchItem && handleRecentSearchItemClick && handleRecentSearchItemClick(currentSearchItem);
123
- }, [handleRecentSearchItemClick, recentItems]);
124
- const memoizedClearSelectedItems = (0, react_1.useCallback)(() => {
125
- var _a;
126
- handleClearSearchSelection === null || handleClearSearchSelection === void 0 ? void 0 : handleClearSearchSelection();
127
- initialSearchSelectionRef.current = [];
128
- setCurrentMode(isRecentSearchesModeAvailable && ((_a = recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) === null || _a === void 0 ? void 0 : _a.length) ? "recent" : "");
129
- }, [handleClearSearchSelection, isRecentSearchesModeAvailable, recentSearches]);
130
- const handleKeyDown = (0, react_1.useCallback)((event) => {
131
- const isListItem = event.target instanceof HTMLElement && event.target.dataset.listItem === "true";
132
- const isButtonItem = event.target instanceof HTMLElement && event.target.dataset.closeButton === "true";
133
- const getSelector = () => {
134
- if (isListItem) {
135
- return `[data-list-item="true"]`;
136
- }
137
- if (isButtonItem) {
138
- return `[data-close-button="true"]`;
139
- }
140
- return undefined;
141
- };
142
- if (event.key === "ArrowDown") {
143
- const nextItem = (0, keyboardHelpers_1.getNewFocusableItem)(1, searchListRef.current, getSelector());
144
- nextItem === null || nextItem === void 0 ? void 0 : nextItem.focus();
145
- return;
146
- }
147
- if (event.key === "ArrowUp") {
148
- const prevItem = (0, keyboardHelpers_1.getNewFocusableItem)(-1, searchListRef.current, getSelector());
149
- prevItem === null || prevItem === void 0 ? void 0 : prevItem.focus();
150
- return;
151
- }
152
- if (event.key === "ArrowRight" && isListItem) {
153
- const nextItem = (0, keyboardHelpers_1.getNewFocusableItem)(1, searchListRef.current, `[data-close-button="true"]`);
154
- nextItem === null || nextItem === void 0 ? void 0 : nextItem.focus();
155
- return;
156
- }
157
- if (event.key === "ArrowLeft" && isButtonItem) {
158
- const prevItem = (0, keyboardHelpers_1.getNewFocusableItem)(-1, searchListRef.current, `[data-list-item="true"]`);
159
- prevItem === null || prevItem === void 0 ? void 0 : prevItem.focus();
160
- return;
161
- }
162
- }, [searchListRef]);
163
- const memoizedRecentDataArr = (0, react_1.useMemo)(() => recentItems.filter(item => !removedItems.includes(item.id)).reverse(), [recentItems, removedItems]);
164
- const memoizedRecentData = (0, react_1.useMemo)(() => {
165
- if (currentMode !== "recent" && currentMode !== "history") {
166
- return [];
167
- }
168
- const recentDataArr = currentMode === "history" ? memoizedRecentDataArr : memoizedRecentDataArr.slice(0, waitingItemsLimit);
169
- return recentDataArr.map(item => ((0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, { id: item.id, name: item.name, isActive: false, secondary: item.description, onClose: handleRemove(item.id), onClick: memoizedRecentSearchItemClick(item.id, item.type), icon: getIconByType(item.type || onlyOneType), isMobile: isMobile, isDrive: isDrive }, `${currentMode}-${item.id}`)));
170
- }, [currentMode, memoizedRecentDataArr, handleRemove, memoizedRecentSearchItemClick, getIconByType, onlyOneType, isMobile, isDrive]);
171
- const memoizedSearchData = (0, react_1.useMemo)(() => currentMode !== "search" && currentMode !== "" ? [] : searchItems.slice(0, filtersHelper_1.MAX_TOTAL_RESULTS).map(item => ((0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, { id: item.id, name: item.name, isActive: isSearchModeAvailable ? (onlyOneType ? searchSelection.some(el => el.id === item.id) : searchSelection.filter(el => el.id === item.id)
172
- .some(el => el.type === (item.type || exports.NO_TYPED_SEARCH_ITEM)) || false) : false, secondary: item.description, onClose: undefined, onClick: isSearchModeAvailable ? memoizedSearchItemClick(item.id, item.type) : undefined, icon: getIconByType(item.type || onlyOneType), isMobile: isMobile, isDrive: isDrive }, `search-${item.id}-${item.type || exports.NO_TYPED_SEARCH_ITEM}`))), [currentMode, searchItems, isSearchModeAvailable, searchSelection, memoizedSearchItemClick, getIconByType, onlyOneType, isMobile, isDrive]);
173
- const memoizedSelectedData = (0, react_1.useMemo)(() => currentMode !== "selected" || initialSearchSelectionRef.current.length === 0 ? [] : initialSearchSelectionRef.current.slice(0, filtersHelper_1.MAX_TOTAL_RESULTS)
174
- .map(item => ((0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, { id: item.id, name: item.name, isActive: onlyOneType ? (searchSelection || []).some(el => el.id === item.id)
175
- : (searchSelection || []).filter(el => el.id === item.id).some(el => el.type === (item.type || exports.NO_TYPED_SEARCH_ITEM)) || false, secondary: item.description, onClose: undefined, onClick: memoizedSelectedItemClick(item.id, item.type), icon: getIconByType(item.type || onlyOneType), isMobile: isMobile, isDrive: isDrive }, `selected-${item.id}-${item.type || onlyOneType || exports.NO_TYPED_SEARCH_ITEM}-${item.name}-${hasNotPopulatedName ? "notPopulated" : ""}`))), [currentMode, onlyOneType, searchSelection, memoizedSelectedItemClick, getIconByType, isMobile, isDrive, hasNotPopulatedName]);
176
- const resultsToShow = (0, react_1.useMemo)(() => {
177
- if (currentMode === "search") {
178
- return memoizedSearchData;
179
- }
180
- if (currentMode === "recent" || currentMode === "history") {
181
- return memoizedRecentData;
182
- }
183
- if (currentMode === "selected") {
184
- return memoizedSelectedData;
185
- }
186
- return memoizedSearchData;
187
- }, [currentMode, memoizedSearchData, memoizedRecentData, memoizedSelectedData]);
188
- const getSearchHeaderContent = () => {
189
- if (currentMode === "history") {
190
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, { className: "zen-filters-search-list__header-back-button", title: translate("Back"), type: "tertiary", onClick: changeMode.bind(null, "recent"), icon: iconChevronLeft_1.IconChevronLeft, iconPosition: textIconButton_2.ButtonIconPosition.Start }), (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", onClick: handleRemoveAll, children: translate("Clear all") })] });
191
- }
192
- if (currentMode === "recent" || currentMode === "selected") {
193
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-search-list__header-title", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { type: currentMode === "recent" ? "tertiary" : "tertiary-black", className: currentMode === "recent" ? "zen-filters-search-list__header-button--active" : "", title: translate("Recent searches"), onClick: changeMode.bind(null, "recent"), children: translate("Recent searches") }), (0, jsx_runtime_1.jsx)(button_1.Button, { type: currentMode === "selected" ? "tertiary" : "tertiary-black", className: currentMode === "selected" ? "zen-filters-search-list__header-button--active" : "", title: translate("Currently selected"), onClick: changeMode.bind(null, "selected"), children: translate("Currently selected") })] }), currentMode === "recent" && recentItems.length > resultsToShow.length && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", onClick: changeMode.bind(null, "history"), children: translate("View history") }), currentMode === "selected" && resultsToShow.length > 0 && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", onClick: memoizedClearSelectedItems, children: translate("Clear") })] });
194
- }
195
- if (currentMode === "search" && resultsToShow.length > 0) {
196
- return (0, jsx_runtime_1.jsx)("div", { className: "zen-filters-search-list__header-title", children: translate("Top results") });
197
- }
198
- return undefined;
130
+ const FiltersSearchList = ({
131
+ searchValue,
132
+ searchData,
133
+ recentSearches,
134
+ searchSelection,
135
+ onlyOneType,
136
+ handleSearchItemClick,
137
+ onRemoveRecentSearchItem,
138
+ handleRecentSearchItemClick,
139
+ getIconByType,
140
+ handleClearSearchSelection,
141
+ searchListRef
142
+ }) => {
143
+ const {
144
+ translate
145
+ } = (0, useLanguage_1.useLanguage)();
146
+ const isSearchModeAvailable = Boolean(handleSearchItemClick && searchSelection);
147
+ const isRecentSearchesModeAvailable = Boolean(recentSearches && handleRecentSearchItemClick && onRemoveRecentSearchItem);
148
+ const isMobile = (0, useMobile_1.useMobile)();
149
+ const isDrive = (0, useDrive_1.useDrive)();
150
+ const [removedItems, setRemovedItems] = (0, react_1.useState)([]);
151
+ const initialSearchSelectionRef = (0, react_1.useRef)(searchSelection || []);
152
+ const hasNotPopulatedName = initialSearchSelectionRef.current.length === 0 ? false : initialSearchSelectionRef.current.some(el => el.name === exports.NOT_POPULATED_NAME);
153
+ const getCurrentMode = (0, react_1.useCallback)(() => {
154
+ if (searchValue) {
155
+ return "search";
156
+ }
157
+ if (isSearchModeAvailable && initialSearchSelectionRef.current.length > 0) {
158
+ return "selected";
159
+ }
160
+ if (isRecentSearchesModeAvailable && (recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) && recentSearches.data.length > 0) {
161
+ return "recent";
162
+ }
163
+ return "";
164
+ }, [searchValue, isSearchModeAvailable, isRecentSearchesModeAvailable, recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data]);
165
+ const [currentMode, setCurrentMode] = (0, react_1.useState)(getCurrentMode());
166
+ const waitingItemsLimit = 5;
167
+ // Handle React Query errors
168
+ (0, react_1.useEffect)(() => {
169
+ if (currentMode === "search" && (searchData === null || searchData === void 0 ? void 0 : searchData.error)) {
170
+ console.error("Failed to fetch search results. Error:", searchData.error);
171
+ }
172
+ }, [currentMode, searchData === null || searchData === void 0 ? void 0 : searchData.error]);
173
+ (0, react_1.useEffect)(() => {
174
+ if (currentMode !== "search" && searchValue) {
175
+ setCurrentMode("search");
176
+ }
177
+ }, [searchValue, currentMode]);
178
+ (0, react_1.useEffect)(() => {
179
+ if (currentMode === "recent" && searchSelection && searchSelection.length === 0) {
180
+ initialSearchSelectionRef.current = [];
181
+ }
182
+ }, [isSearchModeAvailable, isRecentSearchesModeAvailable, currentMode, searchSelection]);
183
+ // Reset history mode when search value changes
184
+ (0, react_1.useEffect)(() => {
185
+ if (currentMode === "history" && searchValue) {
186
+ setCurrentMode(isSearchModeAvailable ? "search" : "");
187
+ } else if (currentMode === "search" && !searchValue) {
188
+ setCurrentMode(getCurrentMode());
189
+ }
190
+ }, [currentMode, getCurrentMode, isRecentSearchesModeAvailable, isSearchModeAvailable, searchValue]);
191
+ (0, react_1.useEffect)(() => {
192
+ if (searchSelection && searchSelection.length === 0) {
193
+ return;
194
+ }
195
+ searchSelection === null || searchSelection === void 0 ? void 0 : searchSelection.forEach(item => {
196
+ const existingItem = initialSearchSelectionRef.current.find(el => onlyOneType ? el.id === item.id : el.id === item.id && el.type === item.type);
197
+ if (!existingItem) {
198
+ initialSearchSelectionRef.current = [...initialSearchSelectionRef.current, item];
199
+ } else if (hasNotPopulatedName) {
200
+ existingItem.name = item.name;
201
+ existingItem.description = item.description;
202
+ existingItem.type = item.type;
203
+ }
204
+ });
205
+ }, [hasNotPopulatedName, onlyOneType, searchSelection]);
206
+ const searchItems = (0, react_1.useMemo)(() => currentMode === "search" || currentMode === "" ? (searchData === null || searchData === void 0 ? void 0 : searchData.data) || [] : [], [currentMode, searchData === null || searchData === void 0 ? void 0 : searchData.data]);
207
+ const recentItems = (0, react_1.useMemo)(() => currentMode === "recent" || currentMode === "history" ? (recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) || [] : [], [currentMode, recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data]);
208
+ const isLoading = currentMode === "search" && (searchData === null || searchData === void 0 ? void 0 : searchData.isLoading) || (currentMode === "recent" || currentMode === "history" ? recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.isLoading : false) || false;
209
+ const changeMode = (0, react_1.useCallback)(newVal => {
210
+ setCurrentMode(newVal);
211
+ setRemovedItems([]);
212
+ // Note: In React Query implementation, the parent component should handle
213
+ // refetching data when switching between modes
214
+ }, []);
215
+ const handleRemove = (0, react_1.useCallback)(itemId => () => {
216
+ var _a;
217
+ setRemovedItems(prev => [...prev, itemId]);
218
+ onRemoveRecentSearchItem && onRemoveRecentSearchItem([itemId]);
219
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
220
+ const firstItem = (_a = searchListRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(focusableSelector_1.FOCUSABLE_SELECTOR);
221
+ firstItem === null || firstItem === void 0 ? void 0 : firstItem.focus();
222
+ }, [onRemoveRecentSearchItem, searchListRef]);
223
+ const handleRemoveAll = (0, react_1.useCallback)(() => {
224
+ setRemovedItems(recentItems.map(item => item.id));
225
+ onRemoveRecentSearchItem && onRemoveRecentSearchItem(recentItems.map(item => item.id));
226
+ changeMode(getCurrentMode());
227
+ }, [recentItems, onRemoveRecentSearchItem, changeMode, getCurrentMode]);
228
+ const memoizedSearchItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
229
+ const currentSearchItem = onlyOneType && !itemType ? searchItems.find(item => item.id === itemId) : searchItems.find(item => item.id === itemId && item.type === itemType);
230
+ currentSearchItem && handleSearchItemClick && handleSearchItemClick(currentSearchItem);
231
+ }, [handleSearchItemClick, onlyOneType, searchItems]);
232
+ const memoizedSelectedItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
233
+ const currentSelectedItem = onlyOneType && !itemType ? initialSearchSelectionRef.current.find(item => item.id === itemId) : initialSearchSelectionRef.current.find(item => item.id === itemId && item.type === itemType);
234
+ currentSelectedItem && handleSearchItemClick && handleSearchItemClick(currentSelectedItem);
235
+ }, [handleSearchItemClick, onlyOneType]);
236
+ const memoizedRecentSearchItemClick = (0, react_1.useCallback)((itemId, itemType) => () => {
237
+ const currentSearchItem = recentItems.find(item => item.id === itemId && item.type === itemType);
238
+ currentSearchItem && handleRecentSearchItemClick && handleRecentSearchItemClick(currentSearchItem);
239
+ }, [handleRecentSearchItemClick, recentItems]);
240
+ const memoizedClearSelectedItems = (0, react_1.useCallback)(() => {
241
+ var _a;
242
+ handleClearSearchSelection === null || handleClearSearchSelection === void 0 ? void 0 : handleClearSearchSelection();
243
+ initialSearchSelectionRef.current = [];
244
+ setCurrentMode(isRecentSearchesModeAvailable && ((_a = recentSearches === null || recentSearches === void 0 ? void 0 : recentSearches.data) === null || _a === void 0 ? void 0 : _a.length) ? "recent" : "");
245
+ }, [handleClearSearchSelection, isRecentSearchesModeAvailable, recentSearches]);
246
+ const handleKeyDown = (0, react_1.useCallback)(event => {
247
+ const isListItem = event.target instanceof HTMLElement && event.target.dataset.listItem === "true";
248
+ const isButtonItem = event.target instanceof HTMLElement && event.target.dataset.closeButton === "true";
249
+ const getSelector = () => {
250
+ if (isListItem) {
251
+ return `[data-list-item="true"]`;
252
+ }
253
+ if (isButtonItem) {
254
+ return `[data-close-button="true"]`;
255
+ }
256
+ return undefined;
199
257
  };
200
- const searchHeaderContent = getSearchHeaderContent();
201
- return (0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-search-list", children: [searchHeaderContent ? (0, jsx_runtime_1.jsx)("div", { className: (0, classNames_1.classNames)(["zen-filters-search-list__header", isDrive ? (isMobile ? "zen-filters-search-list__header--drive" : "zen-filters-search-list__header--drive-tablet") : ""]), children: searchHeaderContent }) : null, (0, jsx_runtime_1.jsx)("div", { ref: searchListRef, children: (0, jsx_runtime_1.jsx)(list_1.List, { className: "zen-filters-search-list__data", onKeyDown: handleKeyDown, isLoading: currentMode === "selected" ? false : isLoading, type: "data", waitingItems: waitingItemsLimit, children: resultsToShow }) }), !isLoading && resultsToShow.length === 0 ? (0, jsx_runtime_1.jsx)(emptySearchList_1.EmptySearchList, { children: translate("No data available") }) : null] });
258
+ if (event.key === "ArrowDown") {
259
+ const nextItem = (0, keyboardHelpers_1.getNewFocusableItem)(1, searchListRef.current, getSelector());
260
+ nextItem === null || nextItem === void 0 ? void 0 : nextItem.focus();
261
+ return;
262
+ }
263
+ if (event.key === "ArrowUp") {
264
+ const prevItem = (0, keyboardHelpers_1.getNewFocusableItem)(-1, searchListRef.current, getSelector());
265
+ prevItem === null || prevItem === void 0 ? void 0 : prevItem.focus();
266
+ return;
267
+ }
268
+ if (event.key === "ArrowRight" && isListItem) {
269
+ const nextItem = (0, keyboardHelpers_1.getNewFocusableItem)(1, searchListRef.current, `[data-close-button="true"]`);
270
+ nextItem === null || nextItem === void 0 ? void 0 : nextItem.focus();
271
+ return;
272
+ }
273
+ if (event.key === "ArrowLeft" && isButtonItem) {
274
+ const prevItem = (0, keyboardHelpers_1.getNewFocusableItem)(-1, searchListRef.current, `[data-list-item="true"]`);
275
+ prevItem === null || prevItem === void 0 ? void 0 : prevItem.focus();
276
+ return;
277
+ }
278
+ }, [searchListRef]);
279
+ const memoizedRecentDataArr = (0, react_1.useMemo)(() => recentItems.filter(item => !removedItems.includes(item.id)).reverse(), [recentItems, removedItems]);
280
+ const memoizedRecentData = (0, react_1.useMemo)(() => {
281
+ if (currentMode !== "recent" && currentMode !== "history") {
282
+ return [];
283
+ }
284
+ const recentDataArr = currentMode === "history" ? memoizedRecentDataArr : memoizedRecentDataArr.slice(0, waitingItemsLimit);
285
+ return recentDataArr.map(item => (0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, {
286
+ id: item.id,
287
+ name: item.name,
288
+ isActive: false,
289
+ secondary: item.description,
290
+ onClose: handleRemove(item.id),
291
+ onClick: memoizedRecentSearchItemClick(item.id, item.type),
292
+ icon: getIconByType(item.type || onlyOneType),
293
+ isMobile: isMobile,
294
+ isDrive: isDrive
295
+ }, `${currentMode}-${item.id}`));
296
+ }, [currentMode, memoizedRecentDataArr, handleRemove, memoizedRecentSearchItemClick, getIconByType, onlyOneType, isMobile, isDrive]);
297
+ const memoizedSearchData = (0, react_1.useMemo)(() => currentMode !== "search" && currentMode !== "" ? [] : searchItems.slice(0, filtersHelper_1.MAX_TOTAL_RESULTS).map(item => (0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, {
298
+ id: item.id,
299
+ name: item.name,
300
+ isActive: isSearchModeAvailable ? onlyOneType ? searchSelection.some(el => el.id === item.id) : searchSelection.filter(el => el.id === item.id).some(el => el.type === (item.type || exports.NO_TYPED_SEARCH_ITEM)) || false : false,
301
+ secondary: item.description,
302
+ onClose: undefined,
303
+ onClick: isSearchModeAvailable ? memoizedSearchItemClick(item.id, item.type) : undefined,
304
+ icon: getIconByType(item.type || onlyOneType),
305
+ isMobile: isMobile,
306
+ isDrive: isDrive
307
+ }, `search-${item.id}-${item.type || exports.NO_TYPED_SEARCH_ITEM}`)), [currentMode, searchItems, isSearchModeAvailable, searchSelection, memoizedSearchItemClick, getIconByType, onlyOneType, isMobile, isDrive]);
308
+ const memoizedSelectedData = (0, react_1.useMemo)(() => currentMode !== "selected" || initialSearchSelectionRef.current.length === 0 ? [] : initialSearchSelectionRef.current.slice(0, filtersHelper_1.MAX_TOTAL_RESULTS).map(item => (0, jsx_runtime_1.jsx)(filtersSearchItemData_1.FiltersSearchItemData, {
309
+ id: item.id,
310
+ name: item.name,
311
+ isActive: onlyOneType ? (searchSelection || []).some(el => el.id === item.id) : (searchSelection || []).filter(el => el.id === item.id).some(el => el.type === (item.type || exports.NO_TYPED_SEARCH_ITEM)) || false,
312
+ secondary: item.description,
313
+ onClose: undefined,
314
+ onClick: memoizedSelectedItemClick(item.id, item.type),
315
+ icon: getIconByType(item.type || onlyOneType),
316
+ isMobile: isMobile,
317
+ isDrive: isDrive
318
+ }, `selected-${item.id}-${item.type || onlyOneType || exports.NO_TYPED_SEARCH_ITEM}-${item.name}-${hasNotPopulatedName ? "notPopulated" : ""}`)), [currentMode, onlyOneType, searchSelection, memoizedSelectedItemClick, getIconByType, isMobile, isDrive, hasNotPopulatedName]);
319
+ const resultsToShow = (0, react_1.useMemo)(() => {
320
+ if (currentMode === "search") {
321
+ return memoizedSearchData;
322
+ }
323
+ if (currentMode === "recent" || currentMode === "history") {
324
+ return memoizedRecentData;
325
+ }
326
+ if (currentMode === "selected") {
327
+ return memoizedSelectedData;
328
+ }
329
+ return memoizedSearchData;
330
+ }, [currentMode, memoizedSearchData, memoizedRecentData, memoizedSelectedData]);
331
+ const getSearchHeaderContent = () => {
332
+ if (currentMode === "history") {
333
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
334
+ children: [(0, jsx_runtime_1.jsx)(textIconButton_1.TextIconButton, {
335
+ className: "zen-filters-search-list__header-back-button",
336
+ title: translate("Back"),
337
+ type: "tertiary",
338
+ onClick: changeMode.bind(null, "recent"),
339
+ icon: iconChevronLeft_1.IconChevronLeft,
340
+ iconPosition: textIconButton_2.ButtonIconPosition.Start
341
+ }), (0, jsx_runtime_1.jsx)(button_1.Button, {
342
+ type: "tertiary",
343
+ onClick: handleRemoveAll,
344
+ children: translate("Clear all")
345
+ })]
346
+ });
347
+ }
348
+ if (currentMode === "recent" || currentMode === "selected") {
349
+ return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
350
+ children: [(0, jsx_runtime_1.jsxs)("div", {
351
+ className: "zen-filters-search-list__header-title",
352
+ children: [(0, jsx_runtime_1.jsx)(button_1.Button, {
353
+ type: currentMode === "recent" ? "tertiary" : "tertiary-black",
354
+ className: currentMode === "recent" ? "zen-filters-search-list__header-button--active" : "",
355
+ title: translate("Recent searches"),
356
+ onClick: changeMode.bind(null, "recent"),
357
+ children: translate("Recent searches")
358
+ }), (0, jsx_runtime_1.jsx)(button_1.Button, {
359
+ type: currentMode === "selected" ? "tertiary" : "tertiary-black",
360
+ className: currentMode === "selected" ? "zen-filters-search-list__header-button--active" : "",
361
+ title: translate("Currently selected"),
362
+ onClick: changeMode.bind(null, "selected"),
363
+ children: translate("Currently selected")
364
+ })]
365
+ }), currentMode === "recent" && recentItems.length > resultsToShow.length && (0, jsx_runtime_1.jsx)(button_1.Button, {
366
+ type: "tertiary",
367
+ onClick: changeMode.bind(null, "history"),
368
+ children: translate("View history")
369
+ }), currentMode === "selected" && resultsToShow.length > 0 && (0, jsx_runtime_1.jsx)(button_1.Button, {
370
+ type: "tertiary",
371
+ onClick: memoizedClearSelectedItems,
372
+ children: translate("Clear")
373
+ })]
374
+ });
375
+ }
376
+ if (currentMode === "search" && resultsToShow.length > 0) {
377
+ return (0, jsx_runtime_1.jsx)("div", {
378
+ className: "zen-filters-search-list__header-title",
379
+ children: translate("Top results")
380
+ });
381
+ }
382
+ return undefined;
383
+ };
384
+ const searchHeaderContent = getSearchHeaderContent();
385
+ return (0, jsx_runtime_1.jsxs)("div", {
386
+ className: "zen-filters-search-list",
387
+ children: [searchHeaderContent ? (0, jsx_runtime_1.jsx)("div", {
388
+ className: (0, classNames_1.classNames)(["zen-filters-search-list__header", isDrive ? isMobile ? "zen-filters-search-list__header--drive" : "zen-filters-search-list__header--drive-tablet" : ""]),
389
+ children: searchHeaderContent
390
+ }) : null, (0, jsx_runtime_1.jsx)("div", {
391
+ ref: searchListRef,
392
+ children: (0, jsx_runtime_1.jsx)(list_1.List, {
393
+ className: "zen-filters-search-list__data",
394
+ onKeyDown: handleKeyDown,
395
+ isLoading: currentMode === "selected" ? false : isLoading,
396
+ type: "data",
397
+ waitingItems: waitingItemsLimit,
398
+ children: resultsToShow
399
+ })
400
+ }), !isLoading && resultsToShow.length === 0 ? (0, jsx_runtime_1.jsx)(emptySearchList_1.EmptySearchList, {
401
+ children: translate("No data available")
402
+ }) : null]
403
+ });
202
404
  };
203
- exports.FiltersSearchList = FiltersSearchList;
405
+ exports.FiltersSearchList = FiltersSearchList;