@geotab/zenith 3.0.1 → 3.1.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 (262) hide show
  1. package/README.md +17 -0
  2. package/dist/advancedGroupsFilter/advancedGroupsFilter.d.ts +1 -0
  3. package/dist/advancedGroupsFilter/advancedGroupsFilter.js +2 -2
  4. package/dist/advancedGroupsFilter/advancedGroupsFilterFormSection.js +3 -1
  5. package/dist/chip/chip.js +5 -5
  6. package/dist/commonStyles/zIndex.less +5 -0
  7. package/dist/dateInput/dateInput.d.ts +2 -1
  8. package/dist/dateInput/dateInput.js +11 -2
  9. package/dist/dateRange/dateRange.js +9 -8
  10. package/dist/dropdown/dropdown.d.ts +2 -0
  11. package/dist/dropdown/dropdown.js +6 -5
  12. package/dist/dropdown/dropdownHelper.d.ts +4 -4
  13. package/dist/dropdown/dropdownHelper.js +2 -1
  14. package/dist/dropdown/dropdownList.js +2 -2
  15. package/dist/dropdown/dropdownPopup.d.ts +1 -0
  16. package/dist/dropdown/dropdownPopup.js +2 -2
  17. package/dist/dropdown/dropdownSearchableTrigger.js +1 -1
  18. package/dist/dropdown/stateReducer/stateReducer.d.ts +6 -2
  19. package/dist/dropdown/stateReducer/stateReducer.js +28 -42
  20. package/dist/dropdown/stateReducer/stateReducerHelper.d.ts +2 -0
  21. package/dist/dropdown/stateReducer/stateReducerHelper.js +12 -1
  22. package/dist/dropdown/useDropdownState.d.ts +1 -1
  23. package/dist/dropdown/useDropdownState.js +5 -2
  24. package/dist/filters/components/filtersContainer.d.ts +1 -0
  25. package/dist/filters/components/filtersContainer.js +10 -11
  26. package/dist/filters/components/filtersDateInput.d.ts +10 -0
  27. package/dist/filters/components/filtersDateInput.js +27 -0
  28. package/dist/filters/components/filtersDropdown.d.ts +5 -4
  29. package/dist/filters/components/filtersDropdown.js +3 -3
  30. package/dist/filters/components/filtersEmptySelectedList.d.ts +2 -0
  31. package/dist/filters/components/filtersEmptySelectedList.js +11 -0
  32. package/dist/filters/components/filtersItem.d.ts +5 -4
  33. package/dist/filters/components/filtersItem.js +2 -1
  34. package/dist/filters/components/filtersSaveModal.d.ts +3 -1
  35. package/dist/filters/components/filtersSaveModal.js +2 -2
  36. package/dist/filters/components/filtersSavedChipComponent.js +68 -6
  37. package/dist/filters/components/filtersSearch.d.ts +4 -4
  38. package/dist/filters/components/filtersSearch.js +20 -9
  39. package/dist/filters/components/filtersSearchItemData.js +18 -1
  40. package/dist/filters/components/filtersSearchList.d.ts +5 -1
  41. package/dist/filters/components/filtersSearchList.js +155 -27
  42. package/dist/filters/components/filtersSelect.d.ts +1 -0
  43. package/dist/filters/components/filtersSelect.js +35 -7
  44. package/dist/filters/components/filtersSelectListItem.d.ts +21 -15
  45. package/dist/filters/components/filtersSelectListItem.js +13 -3
  46. package/dist/filters/components/filtersSidePanel.d.ts +15 -0
  47. package/dist/filters/components/filtersSidePanel.js +212 -0
  48. package/dist/filters/components/filtersSidePanelChip.d.ts +9 -0
  49. package/dist/filters/components/filtersSidePanelChip.js +13 -0
  50. package/dist/filters/components/filtersSidePanelDropdown.d.ts +6 -0
  51. package/dist/filters/components/filtersSidePanelDropdown.js +85 -0
  52. package/dist/filters/components/filtersSidePanelItem.d.ts +16 -0
  53. package/dist/filters/components/filtersSidePanelItem.js +67 -0
  54. package/dist/filters/components/filtersSidePanelRange.d.ts +6 -0
  55. package/dist/filters/components/filtersSidePanelRange.js +28 -0
  56. package/dist/filters/filters.d.ts +5 -0
  57. package/dist/filters/filters.js +101 -38
  58. package/dist/filters/filtersHelper.d.ts +4 -2
  59. package/dist/filters/filtersHelper.js +40 -1
  60. package/dist/filters/filtersHooks.d.ts +12 -2
  61. package/dist/filters/filtersHooks.js +21 -3
  62. package/dist/formStepper/formStepper.d.ts +1 -1
  63. package/dist/formStepper/formStepper.js +5 -2
  64. package/dist/groupsFilter/groupsFilter.js +72 -37
  65. package/dist/groupsFilter/groupsFilterMenu.d.ts +1 -0
  66. package/dist/groupsFilter/groupsFilterMenu.js +2 -2
  67. package/dist/groupsFilter/groupsFilterTrigger.js +1 -1
  68. package/dist/images/imageLooking.d.ts +4 -0
  69. package/dist/images/imageLooking.js +16 -0
  70. package/dist/index.css +407 -83
  71. package/dist/index.d.ts +7 -4
  72. package/dist/index.js +26 -15
  73. package/dist/list/list.d.ts +3 -1
  74. package/dist/list/list.js +2 -2
  75. package/dist/mobileSheet/mobileSheet.d.ts +2 -0
  76. package/dist/mobileSheet/mobileSheet.js +4 -4
  77. package/dist/modal/modal.d.ts +1 -0
  78. package/dist/modal/modal.js +2 -2
  79. package/dist/radioGroup/radioGroup.d.ts +1 -0
  80. package/dist/radioGroup/radioGroup.js +3 -2
  81. package/dist/range/range.js +29 -10
  82. package/dist/searchInputRaw/searchInputRaw.js +1 -1
  83. package/dist/sidePanel/sidePanel.d.ts +1 -0
  84. package/dist/sidePanel/sidePanel.js +3 -3
  85. package/dist/tabs/tabItem/tabItem.d.ts +1 -0
  86. package/dist/tabs/tabItem/tabItem.js +2 -2
  87. package/dist/tabs/tabs.d.ts +1 -0
  88. package/dist/tabs/tabs.js +1 -1
  89. package/dist/utils/keyboardHelpers.d.ts +2 -0
  90. package/dist/utils/keyboardHelpers.js +49 -0
  91. package/dist/utils/localization/translations/cs-json.d.ts +1 -0
  92. package/dist/utils/localization/translations/cs-json.js +2 -1
  93. package/dist/utils/localization/translations/de-json.d.ts +1 -0
  94. package/dist/utils/localization/translations/de-json.js +2 -1
  95. package/dist/utils/localization/translations/en-json.d.ts +7 -0
  96. package/dist/utils/localization/translations/en-json.js +8 -1
  97. package/dist/utils/localization/translations/es-json.d.ts +1 -0
  98. package/dist/utils/localization/translations/es-json.js +2 -1
  99. package/dist/utils/localization/translations/fr-FR-json.d.ts +1 -0
  100. package/dist/utils/localization/translations/fr-FR-json.js +2 -1
  101. package/dist/utils/localization/translations/fr-json.d.ts +1 -0
  102. package/dist/utils/localization/translations/fr-json.js +2 -1
  103. package/dist/utils/localization/translations/id-json.d.ts +1 -0
  104. package/dist/utils/localization/translations/id-json.js +2 -1
  105. package/dist/utils/localization/translations/it-json.d.ts +1 -0
  106. package/dist/utils/localization/translations/it-json.js +2 -1
  107. package/dist/utils/localization/translations/ja-json.d.ts +1 -0
  108. package/dist/utils/localization/translations/ja-json.js +2 -1
  109. package/dist/utils/localization/translations/ko-KR-json.d.ts +1 -0
  110. package/dist/utils/localization/translations/ko-KR-json.js +2 -1
  111. package/dist/utils/localization/translations/ms-json.d.ts +1 -0
  112. package/dist/utils/localization/translations/ms-json.js +2 -1
  113. package/dist/utils/localization/translations/nl-json.d.ts +1 -0
  114. package/dist/utils/localization/translations/nl-json.js +2 -1
  115. package/dist/utils/localization/translations/pl-json.d.ts +1 -0
  116. package/dist/utils/localization/translations/pl-json.js +2 -1
  117. package/dist/utils/localization/translations/pt-BR-json.d.ts +1 -0
  118. package/dist/utils/localization/translations/pt-BR-json.js +2 -1
  119. package/dist/utils/localization/translations/sv-json.d.ts +1 -0
  120. package/dist/utils/localization/translations/sv-json.js +2 -1
  121. package/dist/utils/localization/translations/th-json.d.ts +1 -0
  122. package/dist/utils/localization/translations/th-json.js +2 -1
  123. package/dist/utils/localization/translations/tr-json.d.ts +1 -0
  124. package/dist/utils/localization/translations/tr-json.js +2 -1
  125. package/dist/utils/localization/translations/zh-Hans-json.d.ts +1 -0
  126. package/dist/utils/localization/translations/zh-Hans-json.js +2 -1
  127. package/dist/utils/localization/translations/zh-TW-json.d.ts +1 -0
  128. package/dist/utils/localization/translations/zh-TW-json.js +2 -1
  129. package/esm/advancedGroupsFilter/advancedGroupsFilter.d.ts +1 -0
  130. package/esm/advancedGroupsFilter/advancedGroupsFilter.js +2 -2
  131. package/esm/advancedGroupsFilter/advancedGroupsFilterFormSection.js +3 -1
  132. package/esm/chip/chip.js +5 -5
  133. package/esm/dateInput/dateInput.d.ts +2 -1
  134. package/esm/dateInput/dateInput.js +11 -2
  135. package/esm/dateRange/dateRange.js +9 -8
  136. package/esm/dropdown/dropdown.d.ts +2 -0
  137. package/esm/dropdown/dropdown.js +5 -4
  138. package/esm/dropdown/dropdownHelper.d.ts +4 -4
  139. package/esm/dropdown/dropdownHelper.js +2 -1
  140. package/esm/dropdown/dropdownList.js +2 -2
  141. package/esm/dropdown/dropdownPopup.d.ts +1 -0
  142. package/esm/dropdown/dropdownPopup.js +2 -2
  143. package/esm/dropdown/dropdownSearchableTrigger.js +1 -1
  144. package/esm/dropdown/stateReducer/stateReducer.d.ts +6 -2
  145. package/esm/dropdown/stateReducer/stateReducer.js +29 -43
  146. package/esm/dropdown/stateReducer/stateReducerHelper.d.ts +2 -0
  147. package/esm/dropdown/stateReducer/stateReducerHelper.js +10 -0
  148. package/esm/dropdown/useDropdownState.d.ts +1 -1
  149. package/esm/dropdown/useDropdownState.js +5 -2
  150. package/esm/filters/components/filtersContainer.d.ts +1 -0
  151. package/esm/filters/components/filtersContainer.js +12 -13
  152. package/esm/filters/components/filtersDateInput.d.ts +10 -0
  153. package/esm/filters/components/filtersDateInput.js +23 -0
  154. package/esm/filters/components/filtersDropdown.d.ts +5 -4
  155. package/esm/filters/components/filtersDropdown.js +3 -3
  156. package/esm/filters/components/filtersEmptySelectedList.d.ts +2 -0
  157. package/esm/filters/components/filtersEmptySelectedList.js +7 -0
  158. package/esm/filters/components/filtersItem.d.ts +5 -4
  159. package/esm/filters/components/filtersItem.js +2 -1
  160. package/esm/filters/components/filtersSaveModal.d.ts +3 -1
  161. package/esm/filters/components/filtersSaveModal.js +2 -2
  162. package/esm/filters/components/filtersSavedChipComponent.js +68 -6
  163. package/esm/filters/components/filtersSearch.d.ts +4 -4
  164. package/esm/filters/components/filtersSearch.js +20 -9
  165. package/esm/filters/components/filtersSearchItemData.js +18 -1
  166. package/esm/filters/components/filtersSearchList.d.ts +5 -1
  167. package/esm/filters/components/filtersSearchList.js +156 -28
  168. package/esm/filters/components/filtersSelect.d.ts +1 -0
  169. package/esm/filters/components/filtersSelect.js +36 -8
  170. package/esm/filters/components/filtersSelectListItem.d.ts +21 -15
  171. package/esm/filters/components/filtersSelectListItem.js +13 -3
  172. package/esm/filters/components/filtersSidePanel.d.ts +15 -0
  173. package/esm/filters/components/filtersSidePanel.js +208 -0
  174. package/esm/filters/components/filtersSidePanelChip.d.ts +9 -0
  175. package/esm/filters/components/filtersSidePanelChip.js +9 -0
  176. package/esm/filters/components/filtersSidePanelDropdown.d.ts +6 -0
  177. package/esm/filters/components/filtersSidePanelDropdown.js +81 -0
  178. package/esm/filters/components/filtersSidePanelItem.d.ts +16 -0
  179. package/esm/filters/components/filtersSidePanelItem.js +63 -0
  180. package/esm/filters/components/filtersSidePanelRange.d.ts +6 -0
  181. package/esm/filters/components/filtersSidePanelRange.js +24 -0
  182. package/esm/filters/filters.d.ts +5 -0
  183. package/esm/filters/filters.js +101 -38
  184. package/esm/filters/filtersHelper.d.ts +4 -2
  185. package/esm/filters/filtersHelper.js +37 -0
  186. package/esm/filters/filtersHooks.d.ts +12 -2
  187. package/esm/filters/filtersHooks.js +19 -2
  188. package/esm/formStepper/formStepper.d.ts +1 -1
  189. package/esm/formStepper/formStepper.js +5 -2
  190. package/esm/groupsFilter/groupsFilter.js +72 -37
  191. package/esm/groupsFilter/groupsFilterMenu.d.ts +1 -0
  192. package/esm/groupsFilter/groupsFilterMenu.js +2 -2
  193. package/esm/groupsFilter/groupsFilterTrigger.js +1 -1
  194. package/esm/images/imageLooking.d.ts +4 -0
  195. package/esm/images/imageLooking.js +12 -0
  196. package/esm/index.d.ts +7 -4
  197. package/esm/index.js +6 -3
  198. package/esm/list/list.d.ts +3 -1
  199. package/esm/list/list.js +2 -2
  200. package/esm/mobileSheet/mobileSheet.d.ts +2 -0
  201. package/esm/mobileSheet/mobileSheet.js +4 -4
  202. package/esm/modal/modal.d.ts +1 -0
  203. package/esm/modal/modal.js +2 -2
  204. package/esm/radioGroup/radioGroup.d.ts +1 -0
  205. package/esm/radioGroup/radioGroup.js +3 -2
  206. package/esm/range/range.js +29 -10
  207. package/esm/searchInputRaw/searchInputRaw.js +1 -1
  208. package/esm/sidePanel/sidePanel.d.ts +1 -0
  209. package/esm/sidePanel/sidePanel.js +3 -3
  210. package/esm/tabs/tabItem/tabItem.d.ts +1 -0
  211. package/esm/tabs/tabItem/tabItem.js +2 -2
  212. package/esm/tabs/tabs.d.ts +1 -0
  213. package/esm/tabs/tabs.js +1 -1
  214. package/esm/utils/keyboardHelpers.d.ts +2 -0
  215. package/esm/utils/keyboardHelpers.js +44 -0
  216. package/esm/utils/localization/translations/cs-json.d.ts +1 -0
  217. package/esm/utils/localization/translations/cs-json.js +2 -1
  218. package/esm/utils/localization/translations/de-json.d.ts +1 -0
  219. package/esm/utils/localization/translations/de-json.js +2 -1
  220. package/esm/utils/localization/translations/en-json.d.ts +7 -0
  221. package/esm/utils/localization/translations/en-json.js +8 -1
  222. package/esm/utils/localization/translations/es-json.d.ts +1 -0
  223. package/esm/utils/localization/translations/es-json.js +2 -1
  224. package/esm/utils/localization/translations/fr-FR-json.d.ts +1 -0
  225. package/esm/utils/localization/translations/fr-FR-json.js +2 -1
  226. package/esm/utils/localization/translations/fr-json.d.ts +1 -0
  227. package/esm/utils/localization/translations/fr-json.js +2 -1
  228. package/esm/utils/localization/translations/id-json.d.ts +1 -0
  229. package/esm/utils/localization/translations/id-json.js +2 -1
  230. package/esm/utils/localization/translations/it-json.d.ts +1 -0
  231. package/esm/utils/localization/translations/it-json.js +2 -1
  232. package/esm/utils/localization/translations/ja-json.d.ts +1 -0
  233. package/esm/utils/localization/translations/ja-json.js +2 -1
  234. package/esm/utils/localization/translations/ko-KR-json.d.ts +1 -0
  235. package/esm/utils/localization/translations/ko-KR-json.js +2 -1
  236. package/esm/utils/localization/translations/ms-json.d.ts +1 -0
  237. package/esm/utils/localization/translations/ms-json.js +2 -1
  238. package/esm/utils/localization/translations/nl-json.d.ts +1 -0
  239. package/esm/utils/localization/translations/nl-json.js +2 -1
  240. package/esm/utils/localization/translations/pl-json.d.ts +1 -0
  241. package/esm/utils/localization/translations/pl-json.js +2 -1
  242. package/esm/utils/localization/translations/pt-BR-json.d.ts +1 -0
  243. package/esm/utils/localization/translations/pt-BR-json.js +2 -1
  244. package/esm/utils/localization/translations/sv-json.d.ts +1 -0
  245. package/esm/utils/localization/translations/sv-json.js +2 -1
  246. package/esm/utils/localization/translations/th-json.d.ts +1 -0
  247. package/esm/utils/localization/translations/th-json.js +2 -1
  248. package/esm/utils/localization/translations/tr-json.d.ts +1 -0
  249. package/esm/utils/localization/translations/tr-json.js +2 -1
  250. package/esm/utils/localization/translations/zh-Hans-json.d.ts +1 -0
  251. package/esm/utils/localization/translations/zh-Hans-json.js +2 -1
  252. package/esm/utils/localization/translations/zh-TW-json.d.ts +1 -0
  253. package/esm/utils/localization/translations/zh-TW-json.js +2 -1
  254. package/package.json +1 -1
  255. package/dist/filters/components/filtersModal.d.ts +0 -17
  256. package/dist/filters/components/filtersModal.js +0 -107
  257. package/dist/filters/components/filtersModalItem.d.ts +0 -9
  258. package/dist/filters/components/filtersModalItem.js +0 -74
  259. package/esm/filters/components/filtersModal.d.ts +0 -17
  260. package/esm/filters/components/filtersModal.js +0 -103
  261. package/esm/filters/components/filtersModalItem.d.ts +0 -9
  262. package/esm/filters/components/filtersModalItem.js +0 -70
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FiltersModal = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const modal_1 = require("../../modal/modal");
7
- const useLanguage_1 = require("../../utils/localization/useLanguage");
8
- const tabs_1 = require("../../tabs/tabs");
9
- const filtersHelper_1 = require("../filtersHelper");
10
- const filtersModalItem_1 = require("./filtersModalItem");
11
- const classNames_1 = require("../../commonHelpers/classNames/classNames");
12
- const filtersSavedItemsProvider_1 = require("./filtersSavedItemsProvider");
13
- const filtersSelect_1 = require("./filtersSelect");
14
- const filtersSaveModal_1 = require("./filtersSaveModal");
15
- const button_1 = require("../../button/button");
16
- const iconDisk_1 = require("../../icons/iconDisk");
17
- const useDriveClassName_1 = require("../../utils/theme/useDriveClassName");
18
- const iconPin2_1 = require("../../icons/iconPin2");
19
- const FiltersModal = ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned = false }) => {
20
- const { translate } = (0, useLanguage_1.useLanguage)();
21
- const { onSave } = (0, filtersSavedItemsProvider_1.useFiltersSavedItems)();
22
- const iconDriveClassName = (0, useDriveClassName_1.useDriveClassName)("icon");
23
- const [activeTabId, setActiveTabId] = (0, react_1.useState)(filtersSelect_1.ALL_SELECT_OPTION_ID);
24
- const [isSaveModalOpen, setIsSaveModalOpen] = (0, react_1.useState)(false);
25
- const [filtersInternalModalState, setFiltersInternalModalState] = (0, react_1.useState)((0, filtersHelper_1.createStateObject)(filters, "state"));
26
- const [initialExternalModalState] = (0, react_1.useState)(externalModalState);
27
- const onTabChange = (newVal) => {
28
- setActiveTabId(newVal);
29
- };
30
- const externalMode = (0, react_1.useMemo)(() => {
31
- if (externalModalState === undefined || setExternalModalState === undefined) {
32
- return false;
33
- }
34
- return true;
35
- }, [externalModalState, setExternalModalState]);
36
- const handleInternalFiltersStateChange = (0, react_1.useCallback)((id) => (newState) => {
37
- setFiltersInternalModalState((prevState) => (Object.assign(Object.assign({}, prevState), { [id]: newState })));
38
- }, []);
39
- const handleExternalFiltersStateChange = (0, react_1.useCallback)((id) => (newState) => {
40
- setExternalModalState && setExternalModalState({ [id]: newState });
41
- }, [setExternalModalState]);
42
- const currentState = (0, react_1.useMemo)(() => externalMode ? externalModalState
43
- : filtersInternalModalState, [externalMode, externalModalState, filtersInternalModalState]);
44
- const currentFilters = (0, react_1.useMemo)(() => filters.filter((item) => currentState.hasOwnProperty(item.props.id)
45
- && (typeof item.props.visible === "boolean" ? item.props.visible
46
- : item.props.visible === undefined ? true : item.props.visible([activeTabId], currentState))), [activeTabId, currentState, filters]);
47
- const inhibitedFilters = (0, react_1.useMemo)(() => {
48
- const inhibited = new Set();
49
- if (externalMode) {
50
- return inhibited;
51
- }
52
- currentFilters.forEach((item) => {
53
- if (item.props.inhibit && item.props.inhibit.length > 0) {
54
- item.props.inhibit.forEach((id) => inhibited.add(id));
55
- }
56
- });
57
- return inhibited;
58
- }, [currentFilters, externalMode]);
59
- const handleClearClick = (0, react_1.useCallback)(() => {
60
- const newState = (0, filtersHelper_1.createStateObject)(filters, "defaultState");
61
- externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
62
- }, [externalMode, filters, setExternalModalState]);
63
- const handleApplyClick = (0, react_1.useCallback)(() => {
64
- const stateForApply = externalMode ? currentState : {};
65
- if (!externalMode) {
66
- Object.keys(currentState).forEach(key => {
67
- if (!inhibitedFilters.has(key)) {
68
- stateForApply[key] = currentState[key];
69
- }
70
- });
71
- }
72
- onApply(stateForApply);
73
- onClose();
74
- }, [currentState, externalMode, inhibitedFilters, onApply, onClose]);
75
- const handleCancelClick = (0, react_1.useCallback)(() => {
76
- const newState = (0, filtersHelper_1.createStateObject)(filters, "state");
77
- externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
78
- onClose();
79
- }, [externalMode, filters, onClose, setExternalModalState]);
80
- const handleExternalModeClose = (0, react_1.useCallback)(() => {
81
- if (!(externalMode && initialExternalModalState && setExternalModalState)) {
82
- return;
83
- }
84
- setExternalModalState(initialExternalModalState);
85
- onClose();
86
- }, [externalMode, initialExternalModalState, onClose, setExternalModalState]);
87
- const toggleSaveModal = (0, react_1.useCallback)(() => {
88
- setIsSaveModalOpen(val => !val);
89
- }, []);
90
- const handleSaveFilters = (0, react_1.useCallback)((filterName) => {
91
- const stateForApply = externalMode ? currentState : {};
92
- if (!externalMode) {
93
- Object.keys(currentState).forEach(key => {
94
- if (!inhibitedFilters.has(key)) {
95
- stateForApply[key] = currentState[key];
96
- }
97
- });
98
- }
99
- onSave && onSave(filterName, stateForApply);
100
- }, [externalMode, currentState, onSave, inhibitedFilters]);
101
- const modalItemChangeHandler = (0, react_1.useCallback)((id) => externalMode ? handleExternalFiltersStateChange(id) : handleInternalFiltersStateChange(id), [externalMode, handleExternalFiltersStateChange, handleInternalFiltersStateChange]);
102
- const tabsContent = (0, react_1.useMemo)(() => currentFilters.filter((item) => !inhibitedFilters.has(item.props.id))
103
- .map((item) => (0, jsx_runtime_1.jsx)(filtersModalItem_1.FiltersModalItem, { item: item, itemState: currentState[item.props.id], changeHandler: modalItemChangeHandler(item.props.id) }, item.props.id)), [currentFilters, inhibitedFilters, currentState, modalItemChangeHandler]);
104
- const memoizedActionButtons = (0, react_1.useCallback)((onSaveFn, onPinFn, isPin) => ((0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-modal__header-buttons", children: [onSaveFn && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", "data-focusable": "save", className: "zen-filters-modal__save-button zen-filters-modal__header-button", title: translate("Save"), "aria-label": translate("Save"), onClick: onSaveFn, children: (0, jsx_runtime_1.jsx)(iconDisk_1.IconDisk, { description: translate("Save"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) }), onPinFn && (0, jsx_runtime_1.jsx)(button_1.Button, { type: "tertiary", "data-focusable": "pin", className: (0, classNames_1.classNames)(["zen-filters-modal__pin-button", isPin ? "zen-filters-modal__header-button--active" : "", "zen-filters-modal__header-button"]), title: translate("Pin"), "aria-label": translate("Pin"), onClick: onPinFn, children: (0, jsx_runtime_1.jsx)(iconPin2_1.IconPin2, { description: translate("Pin"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) })] })), [iconDriveClassName, translate]);
105
- return (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(modal_1.Modal, { className: (0, classNames_1.classNames)(["zen-filters-modal", isSaveModalOpen ? "zen-filters-modal--secondary" : ""]), isOpen: isOpen, onClose: externalMode ? handleExternalModeClose : onClose, title: translate("All Filters"), children: [memoizedActionButtons(onSave ? toggleSaveModal : undefined, onPin, isPinned), (0, jsx_runtime_1.jsx)(tabs_1.Tabs, { activeTabId: activeTabId, onTabChange: onTabChange, tabs: tabItems }), (0, jsx_runtime_1.jsx)("div", { className: "zen-filters-modal__content", children: tabsContent }), (0, jsx_runtime_1.jsx)(modal_1.Modal.TertiaryButton, { type: "tertiary", onClick: handleClearClick, children: translate("Clear") }), (0, jsx_runtime_1.jsx)(modal_1.Modal.SecondaryButton, { onClick: handleCancelClick, children: translate("Cancel") }), (0, jsx_runtime_1.jsx)(modal_1.Modal.PrimaryButton, { onClick: handleApplyClick, children: translate("Apply") })] }), (0, jsx_runtime_1.jsx)(filtersSaveModal_1.FiltersSaveModal, { isOpen: isSaveModalOpen, onClose: toggleSaveModal, onSave: handleSaveFilters })] });
106
- };
107
- exports.FiltersModal = FiltersModal;
@@ -1,9 +0,0 @@
1
- import { ReactElement } from "react";
2
- import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
3
- interface IFiltersModalItem {
4
- item: ReactElement<TFiltersComponentsProps>;
5
- itemState: TFiltersComponentsItemState;
6
- changeHandler: (newState: TFiltersComponentsItemState) => void;
7
- }
8
- export declare const FiltersModalItem: React.FC<IFiltersModalItem>;
9
- export {};
@@ -1,74 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.FiltersModalItem = void 0;
15
- const jsx_runtime_1 = require("react/jsx-runtime");
16
- const react_1 = require("react");
17
- const filtersChip_1 = require("./filtersChip");
18
- const chip_1 = require("../../chip/chip");
19
- const filtersRange_1 = require("./filtersRange");
20
- const classNames_1 = require("../../commonHelpers/classNames/classNames");
21
- const filtersDropdown_1 = require("./filtersDropdown");
22
- const dropdown_1 = require("../../dropdown/dropdown");
23
- const filtersGroups_1 = require("./filtersGroups");
24
- const groupsFilter_1 = require("../../groupsFilter/groupsFilter");
25
- const filtersDateRange_1 = require("./filtersDateRange");
26
- const dateRange_1 = require("../../dateRange/dateRange");
27
- const range_1 = require("../../range/range");
28
- const chipStatusProvider_1 = require("../../chip/chipStatusProvider");
29
- const filtersHelper_1 = require("../filtersHelper");
30
- const FiltersModalItem = ({ item, itemState, changeHandler }) => {
31
- const status = (0, chipStatusProvider_1.useChipStatus)();
32
- const getComponent = (0, react_1.useCallback)((elem, currentState, handleStateChange, chipStatus) => {
33
- const { type, props } = elem;
34
- switch (type) {
35
- case filtersChip_1.FiltersChip: {
36
- const _a = props, { id, state: _globalState, name, onChange: _globalOnChange, className } = _a, otherProps = __rest(_a, ["id", "state", "name", "onChange", "className"]);
37
- return (0, jsx_runtime_1.jsx)(chip_1.Chip, Object.assign({ id: `${id}-modal` }, otherProps, { active: currentState, status: currentState ? chipStatus || undefined : undefined, onChange: handleStateChange, children: name }));
38
- }
39
- case filtersRange_1.FiltersRange: {
40
- const _b = props, { id, state: _globalState, name, onChange: _globalOnChange, defaultState, className } = _b, otherProps = __rest(_b, ["id", "state", "name", "onChange", "defaultState", "className"]);
41
- return (0, jsx_runtime_1.jsx)(range_1.Range, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", className || ""]), fullWidthTriggerButton: true, label: name, value: currentState, onChange: handleStateChange, defaultValue: defaultState, chip: false }));
42
- }
43
- case filtersDropdown_1.FiltersDropdown: {
44
- const _c = props, { id, name, state: _globalState, onChange: _globalOnChange, defaultState, fetchState, classNamePopup } = _c, otherProps = __rest(_c, ["id", "name", "state", "onChange", "defaultState", "fetchState", "classNamePopup"]);
45
- const prepareValue = (value) => {
46
- if (Array.isArray(value)) {
47
- return value.map((el) => el.id);
48
- }
49
- return Object.assign(Object.assign({}, value), { selected: value.selected.map((el) => el.id) });
50
- };
51
- const dropdownStateType = (0, filtersHelper_1.getDropdownStateType)(currentState);
52
- const preparedDefaultState = defaultState ? defaultState : (0, filtersHelper_1.prepareDefaultDropdownState)(dropdownStateType);
53
- const dropdownProps = Object.assign(Object.assign({}, otherProps), { id: `${id}-modal`, fetchState: fetchState, classNamePopup: (0, classNames_1.classNames)(["zen-filters-modal__item-popup", classNamePopup || ""]), isLoading: undefined, multiselect: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.multiselect, selectAllButton: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.selectAllButton, fullWidthTriggerButton: true, errorHandler: (() => { }), placeholder: otherProps.placeholder || name, showSelection: true, value: currentState, onChange: (newValue) => {
54
- const preparedValue = prepareValue(newValue);
55
- handleStateChange(preparedValue);
56
- }, defaultValue: preparedDefaultState, chip: false });
57
- return (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, Object.assign({}, dropdownProps));
58
- }
59
- case filtersGroups_1.FiltersGroups: {
60
- const _d = props, { id, state: _globalState, onChange: _globalOnChange } = _d, otherProps = __rest(_d, ["id", "state", "onChange"]);
61
- return (0, jsx_runtime_1.jsx)(groupsFilter_1.GroupsFilter, Object.assign({ initialFilterState: currentState, onChange: handleStateChange }, otherProps, { chip: false, fullSize: true }));
62
- }
63
- case filtersDateRange_1.FiltersDateRange: {
64
- const _e = props, { id, state: _globalState, onChange: _globalOnChange, defaultState, allowUnsetValue, className } = _e, otherProps = __rest(_e, ["id", "state", "onChange", "defaultState", "allowUnsetValue", "className"]);
65
- return allowUnsetValue ? (0, jsx_runtime_1.jsx)(dateRange_1.DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: true, chip: false })) : (0, jsx_runtime_1.jsx)(dateRange_1.DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: (0, classNames_1.classNames)(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: false, chip: false }));
66
- }
67
- default:
68
- return null;
69
- }
70
- }, []);
71
- const memoizedItem = (0, react_1.useMemo)(() => getComponent(item, itemState, changeHandler, status), [getComponent, item, itemState, changeHandler, status]);
72
- return ((0, jsx_runtime_1.jsxs)("div", { className: "zen-filters-modal__item", children: [(0, jsx_runtime_1.jsx)("div", { className: "zen-filters-modal__item-label", children: item.props.name }), (0, jsx_runtime_1.jsx)("div", { children: memoizedItem })] }));
73
- };
74
- exports.FiltersModalItem = FiltersModalItem;
@@ -1,17 +0,0 @@
1
- import { ReactElement } from "react";
2
- import { IZenComponentProps } from "../../commonHelpers/zenComponent";
3
- import { ITabElement } from "../../tabs/tabs";
4
- import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
5
- import "./filtersModal.less";
6
- export interface IFiltersModal extends IZenComponentProps {
7
- isOpen: boolean;
8
- onClose: () => void;
9
- onApply: (state: Record<string, TFiltersComponentsItemState>) => void;
10
- onPin?: () => void;
11
- isPinned?: boolean;
12
- tabItems: ITabElement[];
13
- filters: ReactElement<TFiltersComponentsProps>[];
14
- externalModalState?: Record<string, TFiltersComponentsItemState>;
15
- setExternalModalState?: (newState: Partial<Record<string, TFiltersComponentsItemState>>) => void;
16
- }
17
- export declare const FiltersModal: ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned }: IFiltersModal) => import("react/jsx-runtime").JSX.Element;
@@ -1,103 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useCallback, useMemo, useState } from "react";
3
- import { Modal } from "../../modal/modal";
4
- import { useLanguage } from "../../utils/localization/useLanguage";
5
- import { Tabs } from "../../tabs/tabs";
6
- import { createStateObject } from "../filtersHelper";
7
- import { FiltersModalItem } from "./filtersModalItem";
8
- import { classNames } from "../../commonHelpers/classNames/classNames";
9
- import { useFiltersSavedItems } from "./filtersSavedItemsProvider";
10
- import { ALL_SELECT_OPTION_ID } from "./filtersSelect";
11
- import { FiltersSaveModal } from "./filtersSaveModal";
12
- import { Button } from "../../button/button";
13
- import { IconDisk } from "../../icons/iconDisk";
14
- import { useDriveClassName } from "../../utils/theme/useDriveClassName";
15
- import { IconPin2 } from "../../icons/iconPin2";
16
- export const FiltersModal = ({ isOpen, onClose, onApply, onPin, tabItems, filters, externalModalState, setExternalModalState, isPinned = false }) => {
17
- const { translate } = useLanguage();
18
- const { onSave } = useFiltersSavedItems();
19
- const iconDriveClassName = useDriveClassName("icon");
20
- const [activeTabId, setActiveTabId] = useState(ALL_SELECT_OPTION_ID);
21
- const [isSaveModalOpen, setIsSaveModalOpen] = useState(false);
22
- const [filtersInternalModalState, setFiltersInternalModalState] = useState(createStateObject(filters, "state"));
23
- const [initialExternalModalState] = useState(externalModalState);
24
- const onTabChange = (newVal) => {
25
- setActiveTabId(newVal);
26
- };
27
- const externalMode = useMemo(() => {
28
- if (externalModalState === undefined || setExternalModalState === undefined) {
29
- return false;
30
- }
31
- return true;
32
- }, [externalModalState, setExternalModalState]);
33
- const handleInternalFiltersStateChange = useCallback((id) => (newState) => {
34
- setFiltersInternalModalState((prevState) => (Object.assign(Object.assign({}, prevState), { [id]: newState })));
35
- }, []);
36
- const handleExternalFiltersStateChange = useCallback((id) => (newState) => {
37
- setExternalModalState && setExternalModalState({ [id]: newState });
38
- }, [setExternalModalState]);
39
- const currentState = useMemo(() => externalMode ? externalModalState
40
- : filtersInternalModalState, [externalMode, externalModalState, filtersInternalModalState]);
41
- const currentFilters = useMemo(() => filters.filter((item) => currentState.hasOwnProperty(item.props.id)
42
- && (typeof item.props.visible === "boolean" ? item.props.visible
43
- : item.props.visible === undefined ? true : item.props.visible([activeTabId], currentState))), [activeTabId, currentState, filters]);
44
- const inhibitedFilters = useMemo(() => {
45
- const inhibited = new Set();
46
- if (externalMode) {
47
- return inhibited;
48
- }
49
- currentFilters.forEach((item) => {
50
- if (item.props.inhibit && item.props.inhibit.length > 0) {
51
- item.props.inhibit.forEach((id) => inhibited.add(id));
52
- }
53
- });
54
- return inhibited;
55
- }, [currentFilters, externalMode]);
56
- const handleClearClick = useCallback(() => {
57
- const newState = createStateObject(filters, "defaultState");
58
- externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
59
- }, [externalMode, filters, setExternalModalState]);
60
- const handleApplyClick = useCallback(() => {
61
- const stateForApply = externalMode ? currentState : {};
62
- if (!externalMode) {
63
- Object.keys(currentState).forEach(key => {
64
- if (!inhibitedFilters.has(key)) {
65
- stateForApply[key] = currentState[key];
66
- }
67
- });
68
- }
69
- onApply(stateForApply);
70
- onClose();
71
- }, [currentState, externalMode, inhibitedFilters, onApply, onClose]);
72
- const handleCancelClick = useCallback(() => {
73
- const newState = createStateObject(filters, "state");
74
- externalMode && setExternalModalState ? setExternalModalState(Object.assign({}, newState)) : setFiltersInternalModalState(newState);
75
- onClose();
76
- }, [externalMode, filters, onClose, setExternalModalState]);
77
- const handleExternalModeClose = useCallback(() => {
78
- if (!(externalMode && initialExternalModalState && setExternalModalState)) {
79
- return;
80
- }
81
- setExternalModalState(initialExternalModalState);
82
- onClose();
83
- }, [externalMode, initialExternalModalState, onClose, setExternalModalState]);
84
- const toggleSaveModal = useCallback(() => {
85
- setIsSaveModalOpen(val => !val);
86
- }, []);
87
- const handleSaveFilters = useCallback((filterName) => {
88
- const stateForApply = externalMode ? currentState : {};
89
- if (!externalMode) {
90
- Object.keys(currentState).forEach(key => {
91
- if (!inhibitedFilters.has(key)) {
92
- stateForApply[key] = currentState[key];
93
- }
94
- });
95
- }
96
- onSave && onSave(filterName, stateForApply);
97
- }, [externalMode, currentState, onSave, inhibitedFilters]);
98
- const modalItemChangeHandler = useCallback((id) => externalMode ? handleExternalFiltersStateChange(id) : handleInternalFiltersStateChange(id), [externalMode, handleExternalFiltersStateChange, handleInternalFiltersStateChange]);
99
- const tabsContent = useMemo(() => currentFilters.filter((item) => !inhibitedFilters.has(item.props.id))
100
- .map((item) => _jsx(FiltersModalItem, { item: item, itemState: currentState[item.props.id], changeHandler: modalItemChangeHandler(item.props.id) }, item.props.id)), [currentFilters, inhibitedFilters, currentState, modalItemChangeHandler]);
101
- const memoizedActionButtons = useCallback((onSaveFn, onPinFn, isPin) => (_jsxs("div", { className: "zen-filters-modal__header-buttons", children: [onSaveFn && _jsx(Button, { type: "tertiary", "data-focusable": "save", className: "zen-filters-modal__save-button zen-filters-modal__header-button", title: translate("Save"), "aria-label": translate("Save"), onClick: onSaveFn, children: _jsx(IconDisk, { description: translate("Save"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) }), onPinFn && _jsx(Button, { type: "tertiary", "data-focusable": "pin", className: classNames(["zen-filters-modal__pin-button", isPin ? "zen-filters-modal__header-button--active" : "", "zen-filters-modal__header-button"]), title: translate("Pin"), "aria-label": translate("Pin"), onClick: onPinFn, children: _jsx(IconPin2, { description: translate("Pin"), className: "svgIcon", size: iconDriveClassName ? "huge" : "large" }) })] })), [iconDriveClassName, translate]);
102
- return _jsxs(_Fragment, { children: [_jsxs(Modal, { className: classNames(["zen-filters-modal", isSaveModalOpen ? "zen-filters-modal--secondary" : ""]), isOpen: isOpen, onClose: externalMode ? handleExternalModeClose : onClose, title: translate("All Filters"), children: [memoizedActionButtons(onSave ? toggleSaveModal : undefined, onPin, isPinned), _jsx(Tabs, { activeTabId: activeTabId, onTabChange: onTabChange, tabs: tabItems }), _jsx("div", { className: "zen-filters-modal__content", children: tabsContent }), _jsx(Modal.TertiaryButton, { type: "tertiary", onClick: handleClearClick, children: translate("Clear") }), _jsx(Modal.SecondaryButton, { onClick: handleCancelClick, children: translate("Cancel") }), _jsx(Modal.PrimaryButton, { onClick: handleApplyClick, children: translate("Apply") })] }), _jsx(FiltersSaveModal, { isOpen: isSaveModalOpen, onClose: toggleSaveModal, onSave: handleSaveFilters })] });
103
- };
@@ -1,9 +0,0 @@
1
- import { ReactElement } from "react";
2
- import { TFiltersComponentsItemState, TFiltersComponentsProps } from "./filtersItem";
3
- interface IFiltersModalItem {
4
- item: ReactElement<TFiltersComponentsProps>;
5
- itemState: TFiltersComponentsItemState;
6
- changeHandler: (newState: TFiltersComponentsItemState) => void;
7
- }
8
- export declare const FiltersModalItem: React.FC<IFiltersModalItem>;
9
- export {};
@@ -1,70 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { useCallback, useMemo } from "react";
14
- import { FiltersChip } from "./filtersChip";
15
- import { Chip } from "../../chip/chip";
16
- import { FiltersRange } from "./filtersRange";
17
- import { classNames } from "../../commonHelpers/classNames/classNames";
18
- import { FiltersDropdown } from "./filtersDropdown";
19
- import { Dropdown } from "../../dropdown/dropdown";
20
- import { FiltersGroups } from "./filtersGroups";
21
- import { GroupsFilter } from "../../groupsFilter/groupsFilter";
22
- import { FiltersDateRange } from "./filtersDateRange";
23
- import { DateRange } from "../../dateRange/dateRange";
24
- import { Range } from "../../range/range";
25
- import { useChipStatus } from "../../chip/chipStatusProvider";
26
- import { getDropdownStateType, prepareDefaultDropdownState } from "../filtersHelper";
27
- export const FiltersModalItem = ({ item, itemState, changeHandler }) => {
28
- const status = useChipStatus();
29
- const getComponent = useCallback((elem, currentState, handleStateChange, chipStatus) => {
30
- const { type, props } = elem;
31
- switch (type) {
32
- case FiltersChip: {
33
- const _a = props, { id, state: _globalState, name, onChange: _globalOnChange, className } = _a, otherProps = __rest(_a, ["id", "state", "name", "onChange", "className"]);
34
- return _jsx(Chip, Object.assign({ id: `${id}-modal` }, otherProps, { active: currentState, status: currentState ? chipStatus || undefined : undefined, onChange: handleStateChange, children: name }));
35
- }
36
- case FiltersRange: {
37
- const _b = props, { id, state: _globalState, name, onChange: _globalOnChange, defaultState, className } = _b, otherProps = __rest(_b, ["id", "state", "name", "onChange", "defaultState", "className"]);
38
- return _jsx(Range, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", className || ""]), fullWidthTriggerButton: true, label: name, value: currentState, onChange: handleStateChange, defaultValue: defaultState, chip: false }));
39
- }
40
- case FiltersDropdown: {
41
- const _c = props, { id, name, state: _globalState, onChange: _globalOnChange, defaultState, fetchState, classNamePopup } = _c, otherProps = __rest(_c, ["id", "name", "state", "onChange", "defaultState", "fetchState", "classNamePopup"]);
42
- const prepareValue = (value) => {
43
- if (Array.isArray(value)) {
44
- return value.map((el) => el.id);
45
- }
46
- return Object.assign(Object.assign({}, value), { selected: value.selected.map((el) => el.id) });
47
- };
48
- const dropdownStateType = getDropdownStateType(currentState);
49
- const preparedDefaultState = defaultState ? defaultState : prepareDefaultDropdownState(dropdownStateType);
50
- const dropdownProps = Object.assign(Object.assign({}, otherProps), { id: `${id}-modal`, fetchState: fetchState, classNamePopup: classNames(["zen-filters-modal__item-popup", classNamePopup || ""]), isLoading: undefined, multiselect: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.multiselect, selectAllButton: dropdownStateType === "fullSelection" || dropdownStateType === "fullSelectionWithCheckbox" ? true : otherProps.selectAllButton, fullWidthTriggerButton: true, errorHandler: (() => { }), placeholder: otherProps.placeholder || name, showSelection: true, value: currentState, onChange: (newValue) => {
51
- const preparedValue = prepareValue(newValue);
52
- handleStateChange(preparedValue);
53
- }, defaultValue: preparedDefaultState, chip: false });
54
- return _jsx(Dropdown, Object.assign({}, dropdownProps));
55
- }
56
- case FiltersGroups: {
57
- const _d = props, { id, state: _globalState, onChange: _globalOnChange } = _d, otherProps = __rest(_d, ["id", "state", "onChange"]);
58
- return _jsx(GroupsFilter, Object.assign({ initialFilterState: currentState, onChange: handleStateChange }, otherProps, { chip: false, fullSize: true }));
59
- }
60
- case FiltersDateRange: {
61
- const _e = props, { id, state: _globalState, onChange: _globalOnChange, defaultState, allowUnsetValue, className } = _e, otherProps = __rest(_e, ["id", "state", "onChange", "defaultState", "allowUnsetValue", "className"]);
62
- return allowUnsetValue ? _jsx(DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: true, chip: false })) : _jsx(DateRange, Object.assign({}, otherProps, { id: `${id}-modal`, className: classNames(["zen-filters-modal__item-element", "zen-filters-modal__item-element--centred", className || ""]), value: currentState, onChange: handleStateChange, defaultValue: defaultState, allowUnsetValue: false, chip: false }));
63
- }
64
- default:
65
- return null;
66
- }
67
- }, []);
68
- const memoizedItem = useMemo(() => getComponent(item, itemState, changeHandler, status), [getComponent, item, itemState, changeHandler, status]);
69
- return (_jsxs("div", { className: "zen-filters-modal__item", children: [_jsx("div", { className: "zen-filters-modal__item-label", children: item.props.name }), _jsx("div", { children: memoizedItem })] }));
70
- };