@onewelcome/react-lib-components 8.13.0 → 8.15.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 (227) hide show
  1. package/dist/cjs/Breadcrumbs/Breadcrumbs.module.scss.cjs.js +1 -1
  2. package/dist/cjs/Button/BaseButton.module.scss.cjs.js +1 -1
  3. package/dist/cjs/Button/Button.module.scss.cjs.js +1 -1
  4. package/dist/cjs/Button/IconButton.module.scss.cjs.js +1 -1
  5. package/dist/cjs/ContextMenu/ContextMenu.module.scss.cjs.js +1 -1
  6. package/dist/cjs/ContextMenu/ContextMenuItem.module.scss.cjs.js +1 -1
  7. package/dist/cjs/DataGrid/DataGrid.module.scss.cjs.js +1 -1
  8. package/dist/cjs/DataGrid/DataGridActions/DataGridActions.module.scss.cjs.js +1 -1
  9. package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.cjs.js +1 -1
  10. package/dist/cjs/DataGrid/DataGridBody/DataGridBody.module.scss.cjs.js +1 -1
  11. package/dist/cjs/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.cjs.js +1 -1
  12. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.cjs.js +1 -1
  13. package/dist/cjs/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.cjs.js +1 -1
  14. package/dist/cjs/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.cjs.js +1 -1
  15. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.cjs.js +1 -1
  16. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.cjs.js.map +1 -1
  17. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilter.module.scss.cjs.js +1 -1
  18. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterPopover.cjs.js +1 -1
  19. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterPopover.cjs.js.map +1 -1
  20. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterService.cjs.js +1 -1
  21. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterService.cjs.js.map +1 -1
  22. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterValueSelect.cjs.js +2 -0
  23. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterValueSelect.cjs.js.map +1 -0
  24. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js +1 -1
  25. package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js.map +1 -1
  26. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js +1 -1
  27. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js.map +1 -1
  28. package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.module.scss.cjs.js +1 -1
  29. package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +1 -1
  30. package/dist/cjs/DataGrid/DataGridFilters/useFiltersReducer.cjs.js +1 -1
  31. package/dist/cjs/DataGrid/DataGridFilters/useFiltersReducer.cjs.js.map +1 -1
  32. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeader.module.scss.cjs.js +1 -1
  33. package/dist/cjs/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.cjs.js +1 -1
  34. package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
  35. package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
  36. package/dist/cjs/Form/Fieldset/Fieldset.module.scss.cjs.js +1 -1
  37. package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
  38. package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
  39. package/dist/cjs/Form/Form.module.scss.cjs.js +1 -1
  40. package/dist/cjs/Form/FormControl/FormControl.module.scss.cjs.js +1 -1
  41. package/dist/cjs/Form/FormGroup/FormGroup.module.scss.cjs.js +1 -1
  42. package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
  43. package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.cjs.js +1 -1
  44. package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
  45. package/dist/cjs/Form/Label/Label.module.scss.cjs.js +1 -1
  46. package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
  47. package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
  48. package/dist/cjs/Form/Select/MultiSelect/SelectButton.module.scss.cjs.js +1 -1
  49. package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
  50. package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
  51. package/dist/cjs/Form/Select/useAddNewBtn.module.scss.cjs.js +1 -1
  52. package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
  53. package/dist/cjs/Form/Toggle/Toggle.module.scss.cjs.js +1 -1
  54. package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.cjs.js +1 -1
  55. package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
  56. package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.cjs.js +1 -1
  57. package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.cjs.js +1 -1
  58. package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.cjs.js +1 -1
  59. package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
  60. package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
  61. package/dist/cjs/Icon/Icon.module.scss.cjs.js +1 -1
  62. package/dist/cjs/Layout/ContentHeader/ContentHeader.module.scss.cjs.js +1 -1
  63. package/dist/cjs/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.cjs.js +1 -1
  64. package/dist/cjs/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.cjs.js +1 -1
  65. package/dist/cjs/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.cjs.js +1 -1
  66. package/dist/cjs/Link/Link.module.scss.cjs.js +1 -1
  67. package/dist/cjs/Notifications/Alert/AlertContainer/AlertContainer.module.scss.cjs.js +1 -1
  68. package/dist/cjs/Notifications/Alert/AlertItem/AlertItem.module.scss.cjs.js +1 -1
  69. package/dist/cjs/Notifications/Banner/Banner.module.scss.cjs.js +1 -1
  70. package/dist/cjs/Notifications/BaseModal/BaseModal.module.scss.cjs.js +1 -1
  71. package/dist/cjs/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.cjs.js +1 -1
  72. package/dist/cjs/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.cjs.js +1 -1
  73. package/dist/cjs/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.cjs.js +1 -1
  74. package/dist/cjs/Notifications/Dialog/Dialog.module.scss.cjs.js +1 -1
  75. package/dist/cjs/Notifications/Dialog/DialogActions/DialogActions.module.scss.cjs.js +1 -1
  76. package/dist/cjs/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.cjs.js +1 -1
  77. package/dist/cjs/Notifications/SideSheet/SideSheet.module.scss.cjs.js +1 -1
  78. package/dist/cjs/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.cjs.js +1 -1
  79. package/dist/cjs/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.cjs.js +1 -1
  80. package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.scss.cjs.js +1 -1
  81. package/dist/cjs/Pagination/Pagination.module.scss.cjs.js +1 -1
  82. package/dist/cjs/Popover/Popover.module.scss.cjs.js +1 -1
  83. package/dist/cjs/ProgressBar/ProgressBar.module.scss.cjs.js +1 -1
  84. package/dist/cjs/Skeleton/Skeleton.module.scss.cjs.js +1 -1
  85. package/dist/cjs/Spinner/Spinner.module.scss.cjs.js +1 -1
  86. package/dist/cjs/Stepper/Step.module.scss.cjs.js +1 -1
  87. package/dist/cjs/Stepper/Stepper.module.scss.cjs.js +1 -1
  88. package/dist/cjs/Tabs/Tab.module.scss.cjs.js +1 -1
  89. package/dist/cjs/Tabs/TabButton.module.scss.cjs.js +1 -1
  90. package/dist/cjs/Tabs/Tabs.module.scss.cjs.js +1 -1
  91. package/dist/cjs/Tag/RemoveButton.module.scss.cjs.js +1 -1
  92. package/dist/cjs/Tag/Tag.module.scss.cjs.js +1 -1
  93. package/dist/cjs/TextEllipsis/TextEllipsis.module.scss.cjs.js +1 -1
  94. package/dist/cjs/Tiles/Tile.module.scss.cjs.js +1 -1
  95. package/dist/cjs/Tiles/Tiles.module.scss.cjs.js +1 -1
  96. package/dist/cjs/Tooltip/Tooltip.module.scss.cjs.js +1 -1
  97. package/dist/cjs/Typography/Typography.module.scss.cjs.js +1 -1
  98. package/dist/cjs/admin/layout/LeftNav/LeftNav.module.scss.cjs.js +1 -1
  99. package/dist/cjs/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.cjs.js +1 -1
  100. package/dist/cjs/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.cjs.js +1 -1
  101. package/dist/cjs/miscellaneous/IdentityProviderButton.module.scss.cjs.js +1 -1
  102. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilter.d.ts +3 -2
  103. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterService.d.ts +3 -2
  104. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.d.ts +12 -0
  105. package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +9 -0
  106. package/dist/cjs/src/components/DataGrid/DataGridFilters/useFiltersReducer.d.ts +1 -0
  107. package/dist/cjs/src/readyclasses.module.scss.cjs.js +1 -1
  108. package/dist/cjs/withReadOnly.cjs.js +1 -1
  109. package/dist/cjs/withReadOnly.cjs.js.map +1 -1
  110. package/dist/esm/Breadcrumbs/Breadcrumbs.module.scss.esm.js +2 -2
  111. package/dist/esm/Button/BaseButton.module.scss.esm.js +2 -2
  112. package/dist/esm/Button/Button.module.scss.esm.js +2 -2
  113. package/dist/esm/Button/IconButton.module.scss.esm.js +2 -2
  114. package/dist/esm/ContextMenu/ContextMenu.module.scss.esm.js +2 -2
  115. package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
  116. package/dist/esm/DataGrid/DataGrid.module.scss.esm.js +2 -2
  117. package/dist/esm/DataGrid/DataGridActions/DataGridActions.module.scss.esm.js +2 -2
  118. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.scss.esm.js +2 -2
  119. package/dist/esm/DataGrid/DataGridBody/DataGridBody.module.scss.esm.js +2 -2
  120. package/dist/esm/DataGrid/DataGridBody/DataGridCell/DataGridCell.module.scss.esm.js +2 -2
  121. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawer.module.scss.esm.js +2 -2
  122. package/dist/esm/DataGrid/DataGridBody/DataGridDrawer/DataGridDrawerItem.module.scss.esm.js +2 -2
  123. package/dist/esm/DataGrid/DataGridBody/DataGridRow/DataGridRow.module.scss.esm.js +2 -2
  124. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js +3 -3
  125. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.esm.js.map +1 -1
  126. package/dist/esm/DataGrid/DataGridFilters/DataGridFilter.module.scss.esm.js +2 -2
  127. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js +3 -25
  128. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterPopover.esm.js.map +1 -1
  129. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterService.esm.js +21 -3
  130. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterService.esm.js.map +1 -1
  131. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterValueSelect.esm.js +59 -0
  132. package/dist/esm/DataGrid/DataGridFilters/DataGridFilterValueSelect.esm.js.map +1 -0
  133. package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js +6 -1
  134. package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js.map +1 -1
  135. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js +13 -4
  136. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js.map +1 -1
  137. package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.module.scss.esm.js +2 -2
  138. package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +2 -2
  139. package/dist/esm/DataGrid/DataGridFilters/useFiltersReducer.esm.js +7 -1
  140. package/dist/esm/DataGrid/DataGridFilters/useFiltersReducer.esm.js.map +1 -1
  141. package/dist/esm/DataGrid/DataGridHeader/DataGridHeader.module.scss.esm.js +2 -2
  142. package/dist/esm/DataGrid/DataGridHeader/DataGridHeaderCell.module.scss.esm.js +2 -2
  143. package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
  144. package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +2 -2
  145. package/dist/esm/Form/Fieldset/Fieldset.module.scss.esm.js +2 -2
  146. package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +2 -2
  147. package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
  148. package/dist/esm/Form/Form.module.scss.esm.js +2 -2
  149. package/dist/esm/Form/FormControl/FormControl.module.scss.esm.js +2 -2
  150. package/dist/esm/Form/FormGroup/FormGroup.module.scss.esm.js +2 -2
  151. package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +2 -2
  152. package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.module.scss.esm.js +2 -2
  153. package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
  154. package/dist/esm/Form/Label/Label.module.scss.esm.js +2 -2
  155. package/dist/esm/Form/Radio/Radio.module.scss.esm.js +2 -2
  156. package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
  157. package/dist/esm/Form/Select/MultiSelect/SelectButton.module.scss.esm.js +2 -2
  158. package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +2 -2
  159. package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
  160. package/dist/esm/Form/Select/useAddNewBtn.module.scss.esm.js +2 -2
  161. package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +2 -2
  162. package/dist/esm/Form/Toggle/Toggle.module.scss.esm.js +2 -2
  163. package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.module.scss.esm.js +2 -2
  164. package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +2 -2
  165. package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.module.scss.esm.js +2 -2
  166. package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.module.scss.esm.js +2 -2
  167. package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.module.scss.esm.js +2 -2
  168. package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
  169. package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +2 -2
  170. package/dist/esm/Icon/Icon.module.scss.esm.js +2 -2
  171. package/dist/esm/Layout/ContentHeader/ContentHeader.module.scss.esm.js +2 -2
  172. package/dist/esm/Layout/FormPage/FormWithStepper/FormSection/FormSection.module.scss.esm.js +2 -2
  173. package/dist/esm/Layout/FormPage/FormWithStepper/FormStepper/FormStepper.module.scss.esm.js +2 -2
  174. package/dist/esm/Layout/FormPage/FormWithStepper/FormWithStepper.module.scss.esm.js +2 -2
  175. package/dist/esm/Link/Link.module.scss.esm.js +2 -2
  176. package/dist/esm/Notifications/Alert/AlertContainer/AlertContainer.module.scss.esm.js +2 -2
  177. package/dist/esm/Notifications/Alert/AlertItem/AlertItem.module.scss.esm.js +2 -2
  178. package/dist/esm/Notifications/Banner/Banner.module.scss.esm.js +2 -2
  179. package/dist/esm/Notifications/BaseModal/BaseModal.module.scss.esm.js +2 -2
  180. package/dist/esm/Notifications/BaseModal/BaseModalActions/BaseModalActions.module.scss.esm.js +2 -2
  181. package/dist/esm/Notifications/BaseModal/BaseModalContent/BaseModalContent.module.scss.esm.js +2 -2
  182. package/dist/esm/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.module.scss.esm.js +2 -2
  183. package/dist/esm/Notifications/Dialog/Dialog.module.scss.esm.js +2 -2
  184. package/dist/esm/Notifications/Dialog/DialogActions/DialogActions.module.scss.esm.js +2 -2
  185. package/dist/esm/Notifications/Dialog/DialogTitle/DialogTitle.module.scss.esm.js +2 -2
  186. package/dist/esm/Notifications/SideSheet/SideSheet.module.scss.esm.js +2 -2
  187. package/dist/esm/Notifications/SideSheet/SideSheetContent/SideSheetContent.module.scss.esm.js +2 -2
  188. package/dist/esm/Notifications/SideSheet/SideSheetHeader/SideSheetHeader.module.scss.esm.js +2 -2
  189. package/dist/esm/Notifications/SlideInModal/SlideInModal.module.scss.esm.js +2 -2
  190. package/dist/esm/Pagination/Pagination.module.scss.esm.js +2 -2
  191. package/dist/esm/Popover/Popover.module.scss.esm.js +2 -2
  192. package/dist/esm/ProgressBar/ProgressBar.module.scss.esm.js +2 -2
  193. package/dist/esm/Skeleton/Skeleton.module.scss.esm.js +2 -2
  194. package/dist/esm/Spinner/Spinner.module.scss.esm.js +2 -2
  195. package/dist/esm/Stepper/Step.module.scss.esm.js +2 -2
  196. package/dist/esm/Stepper/Stepper.module.scss.esm.js +2 -2
  197. package/dist/esm/Tabs/Tab.module.scss.esm.js +2 -2
  198. package/dist/esm/Tabs/TabButton.module.scss.esm.js +2 -2
  199. package/dist/esm/Tabs/Tabs.module.scss.esm.js +2 -2
  200. package/dist/esm/Tag/RemoveButton.module.scss.esm.js +2 -2
  201. package/dist/esm/Tag/Tag.module.scss.esm.js +2 -2
  202. package/dist/esm/TextEllipsis/TextEllipsis.module.scss.esm.js +2 -2
  203. package/dist/esm/Tiles/Tile.module.scss.esm.js +2 -2
  204. package/dist/esm/Tiles/Tiles.module.scss.esm.js +2 -2
  205. package/dist/esm/Tooltip/Tooltip.module.scss.esm.js +2 -2
  206. package/dist/esm/Typography/Typography.module.scss.esm.js +2 -2
  207. package/dist/esm/admin/layout/LeftNav/LeftNav.module.scss.esm.js +2 -2
  208. package/dist/esm/admin/layout/LeftNav/LeftNavItem/LeftNavItem.module.scss.esm.js +2 -2
  209. package/dist/esm/admin/layout/MicrofrontendContainer/MicrofrontendContainer.module.scss.esm.js +2 -2
  210. package/dist/esm/miscellaneous/IdentityProviderButton.module.scss.esm.js +2 -2
  211. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilter.d.ts +3 -2
  212. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterService.d.ts +3 -2
  213. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.d.ts +12 -0
  214. package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +9 -0
  215. package/dist/esm/src/components/DataGrid/DataGridFilters/useFiltersReducer.d.ts +1 -0
  216. package/dist/esm/src/readyclasses.module.scss.esm.js +2 -2
  217. package/dist/esm/withReadOnly.esm.js +1 -1
  218. package/dist/esm/withReadOnly.esm.js.map +1 -1
  219. package/package.json +1 -1
  220. package/src/components/DataGrid/DataGridFilters/DataGridFilter.tsx +8 -4
  221. package/src/components/DataGrid/DataGridFilters/DataGridFilterPopover.tsx +10 -44
  222. package/src/components/DataGrid/DataGridFilters/DataGridFilterService.ts +30 -4
  223. package/src/components/DataGrid/DataGridFilters/DataGridFilterValueSelect.tsx +118 -0
  224. package/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.ts +11 -0
  225. package/src/components/DataGrid/DataGridFilters/DataGridToolbar.tsx +17 -2
  226. package/src/components/DataGrid/DataGridFilters/useFiltersReducer.tsx +8 -1
  227. package/src/components/withReadOnly.tsx +1 -1
@@ -18,10 +18,9 @@ import React, { useEffect } from "react";
18
18
  import classes from "./DataGridFilter.module.scss";
19
19
  import { Button } from "../../Button/Button";
20
20
  import { Option } from "../../Form/Select/SingleSelect/Option";
21
- import { MultiOption } from "../../Form/Select/MultiSelect/MultiOption";
22
- import { MultiSelectWrapper } from "../../Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper";
23
21
  import { SelectWrapper } from "../../Form/Wrapper/SelectWrapper/SelectWrapper";
24
22
  import { Popover } from "../../Popover/Popover";
23
+ import { DataGridFilterValueSelect } from "./DataGridFilterValueSelect";
25
24
  import {
26
25
  DataGridColumnMetadata,
27
26
  DefaultOperators,
@@ -73,9 +72,6 @@ export const DataGridFilterPopover = ({
73
72
  const {
74
73
  columnSelectLabel = "Filter by",
75
74
  operatorSelectLabel = "Operator",
76
- valueSelectLabel = "Value",
77
- addNewValueLabel = "Create new",
78
- addNewValueButtonTitle = "Add new select value",
79
75
  submitButtonTitle = "Apply",
80
76
  cancelButtonTitle = "Cancel"
81
77
  } = translations || {};
@@ -87,9 +83,6 @@ export const DataGridFilterPopover = ({
87
83
  }
88
84
  }, [isOpen]);
89
85
 
90
- const columnMetadata = columnsMetadata.find(({ name }) => name === column);
91
- const disableAddNew = columnMetadata?.disableAddNew;
92
-
93
86
  return (
94
87
  <Popover
95
88
  tabIndex={-1}
@@ -144,42 +137,15 @@ export const DataGridFilterPopover = ({
144
137
  </Option>
145
138
  ))}
146
139
  </SelectWrapper>
147
- <MultiSelectWrapper
148
- label={valueSelectLabel}
149
- name={"value"}
150
- value={pickedValues}
151
- onChange={e =>
152
- setPickedValues(
153
- [...Array.from(e.target.options)]
154
- .filter(option => option.selected)
155
- .map(option => option.value)
156
- )
157
- }
158
- selectProps={{
159
- addNew: disableAddNew
160
- ? undefined
161
- : {
162
- label: addNewValueLabel,
163
- onAddNew: value => {
164
- if (value) {
165
- setValues(prev => [...prev, value]);
166
- setPickedValues(prev => [...prev, value]);
167
- }
168
- },
169
- btnProps: { title: addNewValueButtonTitle, type: "button" }
170
- },
171
- search: {
172
- enabled: true,
173
- renderThreshold: 0
174
- }
175
- }}
176
- >
177
- {values.map(value => (
178
- <MultiOption key={value} value={value}>
179
- {value}
180
- </MultiOption>
181
- ))}
182
- </MultiSelectWrapper>
140
+ <DataGridFilterValueSelect
141
+ column={column}
142
+ columnsMetadata={columnsMetadata}
143
+ values={values}
144
+ pickedValues={pickedValues}
145
+ setValues={setValues}
146
+ setPickedValues={setPickedValues}
147
+ translations={translations}
148
+ />
183
149
  </div>
184
150
  <div className={classes["actions"]}>
185
151
  <Button onClick={onFilterSubmit}>{submitButtonTitle}</Button>
@@ -19,18 +19,23 @@ import {
19
19
  DataGridColumnMetadata,
20
20
  DefaultOperators,
21
21
  Filter,
22
- FilterEditorMode
22
+ FilterEditorMode,
23
+ FiltersState
23
24
  } from "./DataGridFilters.interfaces";
24
25
 
25
26
  export const useDataGridFilter = (
26
27
  mode: FilterEditorMode,
27
- columnsMetadata: DataGridColumnMetadata[]
28
+ columnsMetadata: DataGridColumnMetadata[],
29
+ filterState: FiltersState
28
30
  ) => {
29
31
  const [column, setColumn] = useState("");
30
32
  const [operator, setOperator] = useState("");
31
33
  const [operators, setOperators] = useState<string[]>(Object.values(DefaultOperators));
32
34
  const [values, setValues] = useState<string[]>([]);
33
35
  const [pickedValues, setPickedValues] = useState<string[]>([]);
36
+ const [allowedColumnsMetaData, setAllowedColumnsMetaData] = useState<DataGridColumnMetadata[]>(
37
+ []
38
+ );
34
39
 
35
40
  //user can extend the list of picked values with custom ones. We need to make sure that the default list includes the user created values.
36
41
  const mergeCustomValuesWithPredefined = (values: string[], pickedValues: string[]) => {
@@ -45,10 +50,14 @@ export const useDataGridFilter = (
45
50
  };
46
51
 
47
52
  const initialiseFilterValues = (filter?: Filter) => {
53
+ const allowedColumnMetaData = getAllowedColumnsMetadata(filter);
54
+
48
55
  if (mode === "ADD") {
49
- const firstColumnMetadata = columnsMetadata[0];
56
+ const firstColumnMetadata = allowedColumnMetaData[0];
50
57
 
51
58
  if (!firstColumnMetadata) {
59
+ resetFields();
60
+ setAllowedColumnsMetaData([]);
52
61
  return;
53
62
  }
54
63
 
@@ -78,6 +87,22 @@ export const useDataGridFilter = (
78
87
  setPickedValues(value);
79
88
  setValues(mergeCustomValuesWithPredefined(defaultValues || [], value));
80
89
  }
90
+
91
+ setAllowedColumnsMetaData(allowedColumnMetaData);
92
+ };
93
+
94
+ const getAllowedColumnsMetadata = (filter?: Filter) => {
95
+ return columnsMetadata.filter(value => {
96
+ if (!value.allowSingleFilterOnly) {
97
+ return true;
98
+ }
99
+
100
+ return !filterState.filters.find(v => {
101
+ return mode === "ADD"
102
+ ? v.column == value.name
103
+ : v.column == value.name && v.column != filter?.column;
104
+ });
105
+ });
81
106
  };
82
107
 
83
108
  return {
@@ -92,6 +117,7 @@ export const useDataGridFilter = (
92
117
  values,
93
118
  setValues,
94
119
  pickedValues,
95
- setPickedValues
120
+ setPickedValues,
121
+ allowedColumnsMetaData
96
122
  };
97
123
  };
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Copyright 2022 OneWelcome B.V.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React from "react";
18
+ import { Option } from "../../Form/Select/SingleSelect/Option";
19
+ import { MultiOption } from "../../Form/Select/MultiSelect/MultiOption";
20
+ import { MultiSelectWrapper } from "../../Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper";
21
+ import { SelectWrapper } from "../../Form/Wrapper/SelectWrapper/SelectWrapper";
22
+ import {
23
+ DataGridColumnMetadata,
24
+ PopoverTranslations,
25
+ ValueSelectType
26
+ } from "./DataGridFilters.interfaces";
27
+
28
+ export type Props = {
29
+ column: string;
30
+ columnsMetadata: DataGridColumnMetadata[];
31
+ values: string[];
32
+ pickedValues: string[];
33
+ setValues: (values: React.SetStateAction<string[]>) => void;
34
+ setPickedValues: (pickedValues: React.SetStateAction<string[]>) => void;
35
+ translations?: PopoverTranslations;
36
+ };
37
+
38
+ export const DataGridFilterValueSelect = ({
39
+ column,
40
+ columnsMetadata,
41
+ values,
42
+ pickedValues,
43
+ setValues,
44
+ setPickedValues,
45
+ translations
46
+ }: Props) => {
47
+ const {
48
+ valueSelectLabel = "Value",
49
+ addNewValueLabel = "Create new",
50
+ addNewValueButtonTitle = "Add new select value"
51
+ } = translations || {};
52
+
53
+ const columnMetadata = columnsMetadata.find(({ name }) => name === column);
54
+ const disableAddNew = columnMetadata?.disableAddNew;
55
+ const valueSelectType = columnMetadata?.valueSelectType;
56
+
57
+ const addNewBtnProps: React.ButtonHTMLAttributes<HTMLButtonElement> = {
58
+ title: addNewValueButtonTitle,
59
+ type: "button"
60
+ };
61
+
62
+ const onChangeHandler = (e: React.ChangeEvent<HTMLSelectElement>) => {
63
+ setPickedValues(
64
+ [...Array.from(e.target.options)]
65
+ .filter(option => option.selected)
66
+ .map(option => option.value)
67
+ );
68
+ };
69
+
70
+ const selectProps = {
71
+ addNew: disableAddNew
72
+ ? undefined
73
+ : {
74
+ label: addNewValueLabel,
75
+ onAddNew: (value: string) => {
76
+ if (value) {
77
+ setValues(prev => [...prev, value]);
78
+ setPickedValues(prev => [...prev, value]);
79
+ }
80
+ },
81
+ btnProps: addNewBtnProps
82
+ },
83
+ search: {
84
+ enabled: true,
85
+ renderThreshold: 0
86
+ }
87
+ };
88
+
89
+ return ValueSelectType.single === valueSelectType ? (
90
+ <SelectWrapper
91
+ label={valueSelectLabel}
92
+ name={"value"}
93
+ value={pickedValues[0]}
94
+ onChange={onChangeHandler}
95
+ selectProps={selectProps}
96
+ >
97
+ {values.map(value => (
98
+ <Option key={value} value={value}>
99
+ {value}
100
+ </Option>
101
+ ))}
102
+ </SelectWrapper>
103
+ ) : (
104
+ <MultiSelectWrapper
105
+ label={valueSelectLabel}
106
+ name={"value"}
107
+ value={pickedValues}
108
+ onChange={onChangeHandler}
109
+ selectProps={selectProps}
110
+ >
111
+ {values.map(value => (
112
+ <MultiOption key={value} value={value}>
113
+ {value}
114
+ </MultiOption>
115
+ ))}
116
+ </MultiSelectWrapper>
117
+ );
118
+ };
@@ -34,6 +34,10 @@ export type FiltersAction =
34
34
  type: "remove";
35
35
  payload: { id: string };
36
36
  }
37
+ | {
38
+ type: "reset";
39
+ payload: Filter[];
40
+ }
37
41
  | {
38
42
  type: "clear";
39
43
  };
@@ -58,6 +62,8 @@ export interface DataGridColumnMetadata {
58
62
  operators?: string[];
59
63
  defaultValues?: string[];
60
64
  disableAddNew?: boolean;
65
+ allowSingleFilterOnly?: boolean;
66
+ valueSelectType?: ValueSelectType;
61
67
  }
62
68
 
63
69
  export interface PopoverTranslations {
@@ -105,3 +111,8 @@ export interface DateTimeFilter {
105
111
  toDate: string;
106
112
  type: DateTimeFilterType;
107
113
  }
114
+
115
+ export enum ValueSelectType {
116
+ single = "single",
117
+ multi = "multi"
118
+ }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import React, { Fragment } from "react";
17
+ import React, { Fragment, useEffect, useRef } from "react";
18
18
  import { DataGridFilter } from "./DataGridFilter";
19
19
  import classes from "./DataGridToolbar.module.scss";
20
20
  import {
@@ -52,8 +52,21 @@ export const DataGridToolbar = ({
52
52
  onFiltersClear,
53
53
  customEditTagContent
54
54
  }: DataGridToolbarProps) => {
55
- const { state, addFilter, editFilter, deleteFilter, clearFilters } =
55
+ const { state, addFilter, editFilter, deleteFilter, resetFilters, clearFilters } =
56
56
  useFiltersReducer(filterValues);
57
+
58
+ const isFirstRenderRef = useRef(true);
59
+
60
+ useEffect(() => {
61
+ if (!isFirstRenderRef.current && filterValues) {
62
+ resetFilters(filterValues);
63
+ }
64
+ }, [filterValues]);
65
+
66
+ useEffect(() => {
67
+ isFirstRenderRef.current = false;
68
+ }, []);
69
+
57
70
  const { clearButtonCaption = "Clear all filters" } = translations?.toolbar || {};
58
71
  return (
59
72
  <Fragment>
@@ -64,6 +77,7 @@ export const DataGridToolbar = ({
64
77
  key={filter.id}
65
78
  filter={filter}
66
79
  columnsMetadata={columnsMetadata}
80
+ filterState={state}
67
81
  onFilterEdit={filter => {
68
82
  editFilter(filter);
69
83
  onFilterEdit && onFilterEdit(filter);
@@ -83,6 +97,7 @@ export const DataGridToolbar = ({
83
97
  mode="ADD"
84
98
  customEditTagContent={customEditTagContent}
85
99
  columnsMetadata={columnsMetadata}
100
+ filterState={state}
86
101
  onFilterAdd={filter => {
87
102
  addFilter(filter);
88
103
  onFilterAdd && onFilterAdd(filter);
@@ -39,6 +39,11 @@ export const useFiltersReducer = (filterValues: Filter[] | undefined) => {
39
39
  ...state,
40
40
  filters: [...state.filters.filter(value => value.id !== action.payload.id)]
41
41
  };
42
+ case "reset":
43
+ return {
44
+ ...state,
45
+ filters: action.payload
46
+ };
42
47
  case "clear":
43
48
  return { ...state, filters: [] };
44
49
  }
@@ -60,7 +65,9 @@ export const useFiltersReducer = (filterValues: Filter[] | undefined) => {
60
65
 
61
66
  const deleteFilter = (id: string) => dispatch({ type: "remove", payload: { id } });
62
67
 
68
+ const resetFilters = (filters: Filter[]) => dispatch({ type: "reset", payload: filters });
69
+
63
70
  const clearFilters = () => dispatch({ type: "clear" });
64
71
 
65
- return { state, addFilter, deleteFilter, editFilter, clearFilters };
72
+ return { state, addFilter, deleteFilter, editFilter, resetFilters, clearFilters };
66
73
  };
@@ -37,7 +37,7 @@ const getConditionalProps = (readOnlyView: boolean, type: string, helperText?: s
37
37
  if (helperText) {
38
38
  props.helperText = "";
39
39
  }
40
- } else {
40
+ } else if (helperText) {
41
41
  props.helperText = helperText;
42
42
  }
43
43